OpenGL と GxBase を使用してテクスチャをロードしています。
if (Image.Load("ball.jpg"))
{
Image.FlipY();
glBindTexture(GL_TEXTURE_2D, MyTexture[0]);
Image.gluBuild2DMipmaps();
}
同じテクスチャを 2 回読み込まないようにするにはどうすればよいですか?
GxBaseを使用したことはありませんが、ファイル名をテクスチャID(文字列からGLuints)にマップするマップを維持するだけです。
新しいマップをロードするときは、最初にマップを確認し、そこにある場合は、再度ロードするのではなく、テクスチャIDを返します。それ以外の場合はロードして、生成されたテクスチャIDを保存します
次のようなものを試してください:
std::map<std::string,GLuint> textures;
...
// Inside your method to load textures:
if (textures.count(textureName) == 0)
{
// load texture
textures[textureName] = // the GLuint texture id
}
else
{
return textures[textureName];
}