Différences et avantages de SurfaceView vs GLSurfaceView sur Android?

Je joue actuellement avec des graphiques 2D dans Android et j'ai utilisé une simple surfaceView pour dessiner Drawables et Bitmaps sur l'écran. Cela a bien fonctionné, mais il y a un petit bégaiement dans le mouvement des sprite, et je me demande la faisabilité de faire un jeu en temps réel (mais pas terriblement rapide) avec cela.

Je sais que GLSurfaceView existe qui utilise OpenGL, mais je suis curieux de savoir dans quelle mesure cela fait une différence. Est-ce qu'un hardware SurfaceView simple est accéléré ou dois-je utiliser OpenGL? Quel type de différence de vitesse j'attendrais de passer à OpenGL et quelle modification du code aurait-il besoin de changer (la logique du jeu est tout dans un objet séparé qui fournit un tableau ordonné de drawables à SurfaceView)?

  • Activation du support WebGL pour Android WebView
  • Chemins de dessin et accélération matérielle
  • Graphiques basés sur XML contre png drawables?
  • OpenGL (ES) - Quelle est la différence entre le frustum et l'ortho?
  • OpenGL ES dépose des ombres pour sprites 2D
  • Comment dessiner en utilisant framebuffer sur Android?
  • Utilisation de fichiers SVG avec libgdx
  • Construction d'un patch 9 pouvant être dessiné au moment de l'exécution
  • 3 Solutions collect form web for “Différences et avantages de SurfaceView vs GLSurfaceView sur Android?”

    Pour autant que je puisse le dire, vous devez utiliser OpenGL pour obtenir une accélération HW. Mais ne prenez pas pour acquis et attendez d'autres réponses ^^

    Si c'est vraiment le cas, l'accélération devrait être très importante. Toute application 2D devrait fonctionner à au moins 20 images par seconde (généralement moins de polygones que les applications 3D)

    Il faudrait une quantité importante de code, mais 1) en tant que première tentative, vous pouvez essayer avec seulement 1 VBO carré et changer la matrice à chaque fois et 2) votre rendu semble déjà assez encapsulé, donc il devrait simplifier beaucoup les choses.

    SurfaceView n'est pas accéléré par le matériel par défaut. Si vous souhaitez obtenir une accélération HW, utilisez GLSurfaceView, qui utilise Opengl et accélère le matériel.

    L'accélération matérielle est possible pour une SurfaceView régulière depuis 3,0.

    http://developer.android.com/guide/topics/graphics/hardware-accel.html

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.