2011-09-01 5 views
4

Je fais un jeu et réfléchi à l'utilisation de formes vectorielles pour l'interface utilisateur. Je veux savoir quel est le meilleur moteur de rendu pour cela. Je pense que Agg est plus rapide que Cairo, mais Cairo peut utiliser l'accélération matérielle si elle est disponible. Et que diriez-vous d'opengl? Est-ce une bonne idée que j'utilise des textures gl pour les images et les lignes pour faire des rectangles, des rectagles arrondis et des cercles? Ou est-ce mieux que je rends les surfaces de cairo en opengl? D'autres alternatives que j'ai trouvées sont Google Skia et SFML. Que penses-tu de Skia? Le SFML dessine également des polygones. Je peux faire des formes arrondies en utilisant des polygones. Je pense même à utiliser SDL ou SFML pour contrôler les événements. Dans les deux cas, je peux créer un contexte OpenGL et je me suis habitué à leurs rôles dans le contrôle des événements, qui sont des plateformes croisées. Je veux une solution multi-plateforme. Cela devrait fonctionner sous linux, mac et windows.2d dessin des primitives et des images: OpenGL, Cairo ou Agg

Répondre

5

Si vous utilisez déjà OpenGL pour rendre votre partie, la seule chose que vous devez faire est d'utiliser un moteur de rendu logiciel pour dessiner l'interface utilisateur du jeu. not Donc soit utilisez le backend OpenGL de Cairo (ce que je comprends n'est pas particulièrement bon) ou faites le rendu vous-même en OpenGL. Sinon, vous allez tuer votre performance avec tous les transferts de pixels de la mémoire CPU vers le GPU.

+2

+1. Et s'il vous plaît dites que les développeurs de Wayland/GNOME3. Leur architecture est "Rendez tout le côté client, utilisez OpenGL pour le compositing de fenêtres". Inefficace comme l'enfer et les polices ressemblent à de la merde. – datenwolf

+1

Et si vous transférez tout ce que vous avez rendu à une texture, une fois par image? – Bojan