使用RGBA值填充C++Cinder纹理

Fill C++ Cinder textures with RGBA values

本文关键字:C++Cinder 纹理 填充 RGBA 使用      更新时间:2023-10-16

我使用Cinder Library,想要创建一个纹理,填充我保存在数组中的RGBA值。互联网上没有任何有用的解释。

我以前从未使用过煤渣,但快速阅读文档似乎表明,您可以从文件或Surface加载纹理。

因此,看看这些文档,你似乎会创建一个曲面,如下所示:

cinder::Surface8u surf( 128, 128, SurfaceChannelOrder::RGBA );

然后,您可以使用getData函数填充它,如下所示:

uint8_t* pCols = surf.getData();
for( int y = 0; y < 128; y++ )
{
    for( int x = 0; x < 128; x++ )
    {
        // Fill each pixel with red.
        const idx = (y * (128 * 4)) + (x * 4);
        pCols[idx + 0] = 0xff;
        pCols[idx + 1] = 0x00;
        pCols[idx + 2] = 0x00;
        pCols[idx + 3] = 0xff;
    }
}

然后,您将从曲面加载纹理,如下所示:

cinder::gl::Texture texture( surf );