X8B8G8R8のフォーマットのハードウェアピクセルバッファをunsigned int 24ビットメモリバッファに変換したいと考えています。あなたはそれがしたい場合はBGRtoRGB
がここに両方の方法を変換し、それを覚えている:X8B8G8R8をR8G8B8に変換するC++コード
// pixels is uin32_t;
src.pixels = new pixel_t[src.width*src.height];
readbuffer->lock(Ogre::HardwareBuffer::HBL_DISCARD);
const Ogre::PixelBox &pb = readbuffer->getCurrentLock();
/// Update the contents of pb here
/// Image data starts at pb.data and has format pb.format
uint32 *data = static_cast<uint32*>(pb.data);
size_t height = pb.getHeight();
size_t width = pb.getWidth();
size_t pitch = pb.rowPitch; // Skip between rows of image
for (size_t y = 0; y<height; ++y)
{
for (size_t x = 0; x<width; ++x)
{
src.pixels[pitch*y + x] = data[pitch*y + x];
}
}
だから、あなたはどのような問題が発生しているのアルファを持つ、他の方法で回避を変換するには
? – auburg
そして結果/問題は? – Matt