Question

J'essaie d'apprendre OpenGL sur l'iPhone en utilisant la " Super Bible & ; mais avoir des problèmes de portage depuis OpenGL vers OpenGL ES. D'après ce que je comprends, le glRectf () < La fonction / code> n'est pas disponible dans ce dernier. Quelle est l'approche de substitution? Toute information conceptuelle pertinente serait également appréciée.

Était-ce utile?

La solution

L’approche de substitution consiste à tracer une bande triangulaire:

GLfloat texture[] =
{
    0, 0,
    0, 1,
    1, 0,
    1, 1
};

GLfloat model[] =
{
    0, 0, // lower left
    0, h, // upper left
    w, 0, // lower right
    w, h  // upper right
};

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

glVertexPointer(2, GL_FLOAT, 0, model);
glTexCoordPointer(2, GL_FLOAT, 0, texture);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

Ceci dessine un rectangle texturé de largeur w et de hauteur h .

Autres conseils

Plutôt que de faire un rect, vous ne faites que deux triangles.

Cela n’a vraiment aucune importance, car GL-ES sur l’iPhone ne prend pas en charge le mode immédiat. Vous devez définir tous vos sommets dans un tableau et utiliser l'une des fonctions de rendu de tableau de sommets pour les dessiner plutôt que d'utiliser les fonctions en mode immédiat.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top