En utilisant OpenGL pour remplacer Toile - Android
Je suis d'essayer de remplacer la Toile à base de système de rendu que j'ai déjà avec la plus rapide opengl-es de la surface, cependant, je n'arrive pas à obtenir un rendu openGL pour se conformer d'une manière telle qu'il agit comme 2d champ, plutôt que d'une vue en perspective.
Mon code actuel pour le convertisseur se présente comme suit:
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(0.0f, width, 0.0f, height, 0.0f, 1.0f);
gl.glShadeModel(GL10.GL_FLAT);
gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
gl.glColor4x(0x10000, 0x10000, 0x10000, 0x10000);
gl.glEnable(GL10.GL_TEXTURE_2D);
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
gl.glClearColor(0.5f, 0.5f, 0.5f, 1);
gl.glShadeModel(GL10.GL_FLAT);
gl.glDisable(GL10.GL_DEPTH_TEST);
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glDisable(GL10.GL_DITHER);
gl.glDisable(GL10.GL_LIGHTING);
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
}
Comment puis-je configurer le convertisseur de sorte que la traduction de transformation correspondre avec les pixels sur l'écran? (si la traduction de 5 à le droit de le déplacer de 5 pixels)
Pourquoi ne pas utiliser de passer un GL instance de la Toile constructeur. developer.android.com/reference/android/graphics/Canvas.html
Serait-ce à conserver openGL de vitesse, plus d'avantages que le Canevas de base dans l'élaboration des Bitmaps?
Ne pas utiliser de la Toile. Il ne fonctionne pas, même si son documenté. Aussi, selon les pourparlers en IRC, Le développeur de la Toile a déjà été retirée de l'API pour les futures versions.
Sont-ils vraiment se déprécier? Ce serait certainement mettre mon application de la course. :/
Serait-ce à conserver openGL de vitesse, plus d'avantages que le Canevas de base dans l'élaboration des Bitmaps?
Ne pas utiliser de la Toile. Il ne fonctionne pas, même si son documenté. Aussi, selon les pourparlers en IRC, Le développeur de la Toile a déjà été retirée de l'API pour les futures versions.
Sont-ils vraiment se déprécier? Ce serait certainement mettre mon application de la course. :/
OriginalL'auteur Kleptine | 2010-08-30
Vous devez vous connecter pour publier un commentaire.
Veuillez noter que dans openGL qui coordonnée est inversé. Sinon tout est la même.
Comme pour les indicateurs corrects, je vous recommande de vérifier l'open source android jeu réplique de l'île: http://code.google.com/p/replicaisland/
Voici ce que j'utilise dans mon code:
Où
mViewWidth
&mViewHeight
sont de la taille de l'écran.J'ai eu un problème similaire et n'avait aucun problème à trouver la partie où l'auteur de la réplique îles de l'installation de la gl toile. C'est dans le fichier appelé GameRenderer.java. J'ai édité ma réponse initiale à inclure le programme d'installation de code que j'utilise.
Très bien, merci. Si c'est toujours pas assez de travail dans les conditions de la transition de l'ensemble de mon code de la structure. Est-il possible de stocker des textures non-base-2 tailles? Si il n'y en a pas c'est pas vraiment la peine de l'utilisation d'openGL de toute façon (je repousse les limites de la mémoire d'Android déjà).
Pas sûr au sujet de la non-base-2. Ne pas utiliser ceux de moi, mais je
OriginalL'auteur Miguel Morales