Desenhando uma textura 2D no OpenGL [fechado]
Eu tinha uma função de desenho chamadaDrawImage
mas é realmente confuso e está apenas trabalhando com uma forma específica da função remodelar, então eu tenho duas perguntas:
a função é como aqui:
void DrawImage(char filename, int xx, int yy, int ww, int hh, int angle)
{
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, filename);
glLoadIdentity();
glTranslatef(xx,yy,0.0);
glRotatef(angle,0.0,0.0,1.0);
glTranslatef(-xx,-yy,0.0);
// Draw a textured quad
glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex2f(xx,yy);
glTexCoord2f(0, 1); glVertex2f(xx,yy + hh);
glTexCoord2f(1, 1); glVertex2f(xx + ww,yy + hh);
glTexCoord2f(1, 0); glVertex2f(xx + ww,yy);
glDisable(GL_TEXTURE_2D);
glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glEnd();
}
Alguém me disse que você não pode ligarglDisable
, glPopMatrix
ouglMatrixMode
entreglBegin
eglEnd
. O problema é - o código não funcionará sem ele. Alguma idéia de como fazê-lo funcionar sem ele? 2. Sobre o glutReshapeFunc, a documentação diz que ele fornece um ponteiro para funções com 2 args, largura e altura - eu criei (até agora) uma função que é anulada - qualquer idéia de como escrever uma função de remodelação que tenha uma largura e altura e realmente faz o que a remodelagem precisa fazer.
e uma pergunta secundária: qual é a melhor qualidade do C ++ que o C quando se trata de GUIs como o OpenGL? Como tudo o que posso ver, apenas OOP é o problema e eu não enfrentei nenhum problema que OOP pudesse resolver e C não (no OpenGL, quero dizer).
Não é necessário responder a todas as perguntas - a pergunta número 1 é basicamente a mais importante para mim: P