テクスチャを表示できません。何が問題なのかわかりません。チュートリアルは役に立ちませんでした。これが私のコードです:
Player p();
//The glutDisplayFunc();
void display() {
glPushMatrix();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);
//Load png with SOIL
playerTex = loadTex("Data/Sprites/player.png");
p.draw();
glFlush();
glPopMatrix(); }
//Load texture
GLuint loadTex(const char* c) {
GLuint temp = SOIL_load_OGL_texture(
c,
SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID,
SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
);
if (0 == temp)
{
printf("SOIL loading error: '%s'\n", SOIL_last_result());
//return 0;
}
glBindTexture(GL_TEXTURE_2D, temp);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
return temp; }
//Player object's draw function
void player::draw() {
glEnable(GL_TEXTURE_2D);
glBegin(GL_TRIANGLES);
glColor3f(0, 0, 0);
glTexCoord2f(0.0, 0.0);
glVertex2f(x, y);
glTexCoord2f(0.0, 1.0);
glVertex2f(x + spriteW, y);
glTexCoord2f(1.0, 1.0);
glVertex2f(x + spriteW, y + spriteL);
glEnd();}
スプライトX = 0、スプライトY = 0、スプライトW = 400、スプライトL = 400、x = 0、y = 0
これは私が得る出力です: 出力ウィンドウ
ご覧のとおり、BLACK の三角形は問題なく表示されていますが、テクスチャはありません