簡體   English   中英

用RGBA值填充C ++ Cinder紋理

[英]Fill C++ Cinder textures with RGBA values

我使用了Cinder庫,想要創建一個紋理,並用我保存在數組中的RGBA值填充。 互聯網上沒有任何有用的解釋。

我以前沒有使用過cinder,但是快速瀏覽文檔似乎建議您可以從文件或從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 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM