00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #include "qvimagebuffer.h"
00026
00027
00028 #define CREATE_COPY_CONSTRUCTOR(TYPE, C) \
00029 template <> QVImageBuffer<TYPE,C>::QVImageBuffer(const QVImageBuffer<TYPE,C> &imageBuffer): QSharedData(imageBuffer), \
00030 data(NULL) \
00031 { \
00032 qDebug() << "QVImageBuffer<uChar, 1>::QVImageBuffer(" << imageBuffer.getCols() << "," << imageBuffer.getRows() << ")"; \
00033 allocData(imageBuffer.getCols(), imageBuffer.getRows()); \
00034 memcpy(this->data, imageBuffer.getReadData(), this->dataSize); \
00035 qDebug() << "QVImageBuffer<uChar, 1>::QVImageBuffer() <- return"; \
00036 }
00037
00038 CREATE_COPY_CONSTRUCTOR(uChar, 1);
00039 CREATE_COPY_CONSTRUCTOR(uChar, 3);
00040 CREATE_COPY_CONSTRUCTOR(uShort, 1);
00041 CREATE_COPY_CONSTRUCTOR(uShort, 3);
00042 CREATE_COPY_CONSTRUCTOR(sShort, 1);
00043 CREATE_COPY_CONSTRUCTOR(sShort, 3);
00044 CREATE_COPY_CONSTRUCTOR(sInt, 1);
00045 CREATE_COPY_CONSTRUCTOR(sInt, 3);
00046
00047
00048 CREATE_COPY_CONSTRUCTOR(sFloat, 1);
00049 CREATE_COPY_CONSTRUCTOR(sFloat, 3);
00050
00051