| |
| |
| #include "ttoonzimage.h" |
| #include "tpalette.h" |
| |
| |
| |
| |
| |
| TToonzImage::TToonzImage() |
| : m_ras() |
| , m_dpix(0) |
| , m_dpiy(0) |
| , m_subsampling(1) |
| , m_name("") |
| , m_savebox() |
| |
| , m_offset(0, 0) |
| , m_size() {} |
| |
| |
| |
| TToonzImage::TToonzImage(const TRasterCM32P &ras, const TRect &saveBox) |
| : m_ras(ras) |
| , m_size(ras->getSize()) |
| , m_dpix(0) |
| , m_dpiy(0) |
| , m_subsampling(1) |
| , m_name("") |
| , m_savebox(saveBox) |
| |
| , m_offset(0, 0) { |
| assert(ras->getBounds().contains(saveBox)); |
| } |
| |
| |
| |
| TToonzImage::TToonzImage(const TToonzImage &src) |
| : m_ras(TRasterCM32P()) |
| , m_dpix(src.m_dpix) |
| , m_dpiy(src.m_dpiy) |
| , m_subsampling(src.m_subsampling) |
| , m_name(src.m_name) |
| , m_savebox(src.m_savebox) |
| |
| , m_offset(src.m_offset) |
| , m_size(src.m_size) { |
| if (src.m_ras) |
| { |
| m_ras = src.m_ras->clone(); |
| } else { |
| assert(false); |
| assert(!src.m_ras); |
| } |
| |
| TPalette *palette = src.getPalette(); |
| if (palette) { |
| m_palette = palette->clone(); |
| m_palette->addRef(); |
| } else |
| m_palette = 0; |
| } |
| |
| |
| |
| TToonzImageP TToonzImage::clone() const { return TToonzImageP(cloneImage()); } |
| |
| |
| |
| TToonzImage::~TToonzImage() {} |
| |
| |
| |
| TImage *TToonzImage::cloneImage() const { return new TToonzImage(*this); } |
| |
| |
| |
| void TToonzImage::setSubsampling(int s) { m_subsampling = s; } |
| |
| |
| |
| void TToonzImage::setSavebox(const TRect &rect) { |
| QMutexLocker sl(&m_mutex); |
| |
| |
| assert(m_ras); |
| m_savebox = TRect(m_size) * rect; |
| assert(TRect(m_size).contains(m_savebox)); |
| } |
| |
| |
| |
| namespace { |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| TRasterCM32P TToonzImage::getCMapped() const { |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| { |
| |
| return m_ras; |
| } |
| } |
| |
| |
| |
| void TToonzImage::setCMapped(const TRasterCM32P &ras) { |
| QMutexLocker sl(&m_mutex); |
| m_ras = ras; |
| m_size = ras->getSize(); |
| m_savebox = ras->getBounds(); |
| |
| |
| |
| } |
| |
| |
| |
| void TToonzImage::getCMapped(const TRasterCM32P &ras) { |
| assert(ras && ras->getSize() == m_size); |
| |
| QMutexLocker sl(&m_mutex); |
| if (m_ras) ras->copy(m_ras); |
| |
| |
| |
| |
| } |
| |