Une question générale sur une fenêtre avec un menu étendu qui est souvent mis à jour, mais seulement environ 10% de l'écran actuel est mis à jour. Beaucoup si le texte reste inchangé.SDL: rendu matériel vs rendu logiciel
SDL2 utilise le rendu et les textures pour utiliser l'accélération matérielle, mais permet également le rendu logiciel.
Ma question est:
- Est-il plus rapide de redessiner tout l'écran/menu à chaque fois en rendant directement au matériel à l'aide SDL_CreateRender()/matériel rendu où le menu entier est établi chaque fois que 10% du menu change réellement? Ou:
- Est-il plus rapide d'écrire le menu entier une seule fois dans la RAM en utilisant SDL_CreateSoftwareRenderer()/software-render et de mettre à jour uniquement les 10% qui changent réellement?
** Profil à savoir à coup sûr. ** (Mais je dirais que cela n'a pas vraiment d'importance à moins qu'il ne commence à lag.) En outre, il y a une troisième voie qui devrait être la plus pratique: Le matériel pourrait rendre une partie statique du menu dans une texture, puis rendre le matériel à chaque image. (De plus, si vous créez un jeu, le rendu logiciel n'est probablement pas une option, puisque tout sauf le menu est souvent mis à jour souvent.) – HolyBlackCat
Je suppose que cela dépendrait beaucoup du PC sur lequel il tourne, mais du matériel accéléré peut être plus rapide, même avec un redessin complet. Cependant, il semble que ce n'est pas une application lourde de ressources, alors peut-être que ce qui est le plus facile à écrire et à maintenir serait le mieux. – Alden
Merci les gars. C'est agréable de pouvoir avoir d'autres opinions avant de passer beaucoup de temps sur une question. L'itinéraire le plus simple consistait à utiliser le rendu matériel et à redessiner la totalité de la fenêtre chaque fois qu'elle était suffisamment rapide. – Brian