2009-10-13 9 views
1

Je travaille sur une application mobile pour Symbian 5ème édition en utilisant OpenGLES.
Cette application est une application 2D assez standard, et je ne fais pas usage du DepthBuffer.Comment faire pour dessiner les données de pixel prises à partir du backbuffer à lui-même?

J'ai besoin de prendre une photo de l'écran, puis de ramener le même instantané sur le backbuffer.

J'utilise glReadPixels((GLint)0, (GLint)0, (GLint)nWidth-1, (GLint)nHeight-1, GL_RGB, GL_UNSIGNED_BYTE, m_pPixelData)

afin d'obtenir les données de pixel j'ai besoin, mais je suis assez nouveau pour OpenGLES et je ne sais pas comment tirer les données au backbuffer. (dans OpenGL, il est facile d'utiliser DrawPixels ..)

J'ai lu que je devais générer une texture à partir des données, ce que j'ai fait. Mais maintenant je ne sais pas comment dessiner cette texture. Ai-je besoin de dessiner comme une texture d'un élément Rectangulaire?

si oui, comment je suis supposé définir ce rect? (Les coordonnées juste n'a pas de sens pour moi ..)

La taille d'affichage est 480x640 et est ici le code que je veux utiliser afin d'en tirer le rect:

glEnable(GL_TEXTURE_2D); 
    //displayTex is my texture built out of the pixel data 
    glBindTexture(GL_TEXTURE_2D, m_pESSharedData->displayTex); 

    //Bottom 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); 
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); 

    glBegin(GL_QUADS); 
    glTexCoord2f(0.0f, 0.0f); 
    glVertex3f(-2.5f, -2.5f, 2.5f); 
    glTexCoord2f(1.0f, 0.0f); 
    glVertex3f(2.5f, -2.5f, 2.5f); 
    glTexCoord2f(1.0f, 1.0f); 
    glVertex3f(2.5f, -2.5f, -2.5f); 
    glTexCoord2f(0.0f, 1.0f); 
    glVertex3f(-2.5f, -2.5f, -2.5f); 

    glEnd(); 

Notez que le code ci-dessus C'est quelque chose que j'ai ramassé en cours de route, et je pense que c'est le contour de ce que je suis supposé faire. n'hésitez pas à me prendre de cette piste. :)

Je vous remercie de votre temps.

+0

Je vous guiderai si vous continuez à vérifier votre question. Je ne connais pas assez votre plate-forme pour vous aider, mais je peux vous aider avec OpenGL. Dans quelle mesure connaissez-vous les systèmes de coordonnées (comme la projection, le modelview, etc.)? – GManNickG

+0

Hey GMan et 10q pour vous répondre, J'ai lu quelques tutoriels et je suis tombé sur projection, modelview etc .. Donc, je connais les bases de celui-ci. Pouvez-vous aider avec les définitions de ce rect/lier une texture, sous OpenGL ES? – Ita

Répondre

1

Vous devez d'abord vous assurer que la version d'OpenGL-ES 5ème édition Series60 peut traiter les textures dont la hauteur et la largeur ne sont pas des puissances de 2.

Je conseillerais forum nokia pour ce genre de requête.

Shameless plug:

Quick Recipes On Symbian OS contient un chapitre expliquant les bases de OpenGL-ES sur Symbian OS. Les exemples de code 3D sont here.

+0

surfaces avec une puissance de 2 largeur/hauteur était le chaînon manquant. Merci. – Ita

Questions connexes