我在 OpenGL 中做一些像素工作,一切都很顺利,直到我不得不加载 PNG。我找到了一个叫做“DevIL”的东西,并按照我找到的一个例子。它确实显示了一些东西,但它只是一种随机的彩虹。据我所知,我做得对;我将数据输出到文本文件以进行检查。我尝试了其他一些库,但构建它们有点超出我的能力。这是我的设置:
((In global scope))
unsigned char pixels[160000*3];
ILubyte * bytes ;
((Main))
ilInit();
ilLoadImage( "test.png" ) ;
size = ilGetInteger( IL_IMAGE_SIZE_OF_DATA ) ;
bytes = ilGetData() ;
这是我的绘图程序:
//Color the screen all pretty
for(int i=0;i<160000*3;)
{
pixels[i] = a;
i++;
pixels[i] = b;
i++;
pixels[i] = c;
i++;
}
//Break the png
for( int i = 0 ; i < size;)
{
if(bytes[i+3] != 255)
{ i+=4;
continue; }
pixels[i] = bytes[i];
i++;
pixels[i] = bytes[i];
i++;
pixels[i] = bytes[i];
i++;
i++;
}
glDrawPixels(
400,
300,
GL_RGB,
GL_UNSIGNED_BYTE,
pixels
);
我知道对齐是错误的;我稍后会解决这个问题。问题是颜色完全不对
PS我知道你应该使用带纹理的四边形