128x128サイズのPNG画像があります。libpngでIHDRチャンクを読み取ると、画像のカラータイプが3であることがわかります。問題は、このカラータイプのテクスチャ形式をどこにも見つけることができないことです。この画像をOpenGLで描きたいです。しかし、正しいテクスチャフォーマットがないと、画像の色は本来あるべき色ではありません。また、この件についての詳細を読むことができる参考資料を提供していただければ幸いです。
このメソッドを使用して、他のカラータイプのテクスチャフォーマットを設定します
inline void GetPNGtextureInfo (int color_type,GLuint *format)
{
switch (color_type)
{
case PNG_COLOR_TYPE_GRAY:
*format = GL_LUMINANCE;
break;
case PNG_COLOR_TYPE_GRAY_ALPHA:
*format = GL_LUMINANCE_ALPHA;
break;
case PNG_COLOR_TYPE_RGB:
*format = GL_RGB;
break;
case PNG_COLOR_TYPE_RGB_ALPHA:
*format = GL_RGBA;
break;
default:
break;
}
}