本文整理汇总了C++中PixelBox::getSliceSkip方法的典型用法代码示例。如果您正苦于以下问题:C++ PixelBox::getSliceSkip方法的具体用法?C++ PixelBox::getSliceSkip怎么用?C++ PixelBox::getSliceSkip使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PixelBox
的用法示例。
在下文中一共展示了PixelBox::getSliceSkip方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: naiveBulkPixelConversion
// Pure 32 bit float precision brute force pixel conversion; for comparison
void naiveBulkPixelConversion(const PixelBox &src, const PixelBox &dst)
{
uint8 *srcptr = static_cast<uint8*>(src.data);
uint8 *dstptr = static_cast<uint8*>(dst.data);
unsigned int srcPixelSize = PixelUtil::getNumElemBytes(src.format);
unsigned int dstPixelSize = PixelUtil::getNumElemBytes(dst.format);
// Calculate pitches+skips in bytes
int srcRowSkipBytes = src.getRowSkip()*srcPixelSize;
int srcSliceSkipBytes = src.getSliceSkip()*srcPixelSize;
int dstRowSkipBytes = dst.getRowSkip()*dstPixelSize;
int dstSliceSkipBytes = dst.getSliceSkip()*dstPixelSize;
// The brute force fallback
float r,g,b,a;
for(size_t z=src.front; z<src.back; z++)
{
for(size_t y=src.top; y<src.bottom; y++)
{
for(size_t x=src.left; x<src.right; x++)
{
PixelUtil::unpackColour(&r, &g, &b, &a, src.format, srcptr);
PixelUtil::packColour(r, g, b, a, dst.format, dstptr);
srcptr += srcPixelSize;
dstptr += dstPixelSize;
}
srcptr += srcRowSkipBytes;
dstptr += dstRowSkipBytes;
}
srcptr += srcSliceSkipBytes;
dstptr += dstSliceSkipBytes;
}
}