Aller au contenu

Afficher une texture en openGL ES ou autre - NativeActivity


Recommended Posts

Bon d'abord je vous préviens, mon niveau par rapport à ce que je veux faire est mauvais ^^

Le problème se porte sur xbmc, c'est une application entièrement native en c++. (NativeActivity).

Le code complet est consultable sur le git => https://github.com/xbmc/xbmc

Mon petit projet de modification sur le soft est l'utilisation de la sortie hdmi en écran principal et du lcd en télécommande.

Pour faire ça j'utilise l'api hdmi de motorola disponible pour mon atrix.

Voila l'ambiance est mise :)

Donc au niveau de l'intégration de l'hdmi pas de soucis, j'ai modifié l'initialisation de la vue d'origine de façon à ce qu'elle se fasse sur l'hdmi.

Ce qui me donne donc l'affichage du soft sur l'hdmi et le lcd ne sert plus que pour le contrôle touch avec un écran noir.

J'arrive à initialiser la vue du lcd en openGL ES 2 (Je sais pas si en 1 c'est plus simple, je pense pas quand on connait pas ^^), mais je n'arrive pas y plaquer une texture et sur le net je n'ai pas trouvé de tuto bien clair pour le faire dans le même contexte que je suis.

Mon premier but est seulement de plaquer sur un rectangle prenant tout l'écran, une image de télécommande.

Donc voila sur quoi je bloque, si quelqu'un pourrait m'aiguiller sur une façon simple de faire ça en code natif je suis preneur.

Je m'en fous d'avoir de l'openGL ES 2, 1, ... je veux juste afficher mon image sur l'écran lcd dans ma NativeActivity.

Ca me dérange pas du tout de devoir intégrer du java et des jni, je l'ai déjà fait pour y mettre un binder sur le service hdmi.

J'espère que quelqu'un pourra m'aider merci d'avance :)

Modifié par djeman
Lien vers le commentaire
Partager sur d’autres sites

Euh non, "openGL" et "openGL ES" c'est pas pareil ... j'ai modifié le message pour l'écrire "plus proprement" mais bon quelqu'un qui s'y connait n'aurait pas trop vu la différence je pense.

Modifié par djeman
Lien vers le commentaire
Partager sur d’autres sites

Bon ben les réponses ne se sont pas bousculé :)

J'ai trouvé mon bonheur avec ce tuto : http://androgeek.info/?p=167

Mais il y a une erreur dans la fonction renderFrame, je dois être poisseux ^^

	// Load the vertex position
	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, stride, vVertices);
       checkGlError("gvPositionHandle");
	glVertexAttribPointer(1,3, GL_FLOAT, GL_FALSE, stride, vVertices+3);
	checkGlError("gvNormalHandle");
	// Load the texture coordinate
	glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, stride, vVertices+6);
       checkGlError("gvTexCoordHandle");

Au lieu de 0,1 et 2 en premier paramètre, il faut lui passer les index des shaders :

	// Load the vertex position
	glVertexAttribPointer(gvPositionHandle, 3, GL_FLOAT, GL_FALSE, stride, vVertices);
       checkGlError("gvPositionHandle");
	glVertexAttribPointer(gvNormalHandle,3, GL_FLOAT, GL_FALSE, stride, vVertices+3);
	checkGlError("gvNormalHandle");
	// Load the texture coordinate
	glVertexAttribPointer(gvTexCoordHandle, 2, GL_FLOAT, GL_FALSE, stride, vVertices+6);
    checkGlError("gvTexCoordHandle");

Sans passer les index ça ne fait rien du tout ^^

Modifié par djeman
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...