Salut les gens,
Quelques problèmes rencontrés au cours de mon dernier week end "Je m'emmerde, tiens si je codais ?" avec la SDL sur GP2X :
- le rendu des images affichés ( BMP pour le moment en 16 bits ) est extrémement saturé , comment faire pour avoir une image à peu près identique à ce que l'on a sur un écran de PC ? on peut trafiquer les images sous photoshop mais c'est du pifomètre, j'ai tenté d'utiliser le SetGamma de la SDL sans succès ( ça marche sous windows seulement ). Peut être qu'il n'y a pas de solution autre que de trafiquer les images mais par exemple les jeux tournant sous émulateurs me paraissent avoir des couleurs très proches des jeux d'origine, pas spécialement ultra saturés. Certain softs permettent de simuler l'affichage de certains types d'écrans TFT et d'apporter une correction sur l'image d'origine, mais ce sont souvent des outils Pro ( Optpix sur nintendo DS et son simulateur d'écran TFT ).
- Ensuite en jouant avec SDL_BlitSurface, j'ai trouvé que c'était particulièrement lent sur GP, j'ai fait un test de fade in fade out d'écran en jouant sur l'alpha de la surface source. Je me suis dit qu'on pouvait peut être activer le double buffering pour améliorer un peu mais visiblement ma GP bloque dès que j'essaie d'initialiser ce mode ( je me rends compte qu'un OGG tourne en même temps avec SDL_mixer, possible que ça plombe autant le framerate ?).
Du coup j'en viens à me demander quelle librairie utiliser pour faire quelque chose de fluide ( j'entends par là 60 fps pour des jeux 2D ), en fait il n'existe pas tant de solutions que ça, j'ai trouvé quelques exemples en C++ qui semblent utiliser la lib OpenGL en plus de la SDL, mais j'ai pas testé, j'avoue avoir pleins de problèmes de compilation et surtout de linkage quand il s'agit de tester ces diverses solutions ( GMath3D par exemple, pas moyen de compiler/linker ) sous DevC++.
Parfois j'arrive à compiler un projet SDL, je dupplique le projet dans un autre répertoire, j'inclue les mêmes fichiers et plus rien ne marche. Puis en rajoutant un -lSDL dans les options de linker d'un seul coup ça marche ( alors que le premier projet fonctionnait sans... ). Ou alors je tombe sur un "link error WinMain@16", il parait qye ça vient de l'ordre des options de linker, mais dans ce cas pourquoi ça arrive à certains moments et pas à d'autres ? J'ai l'impression que tout ça se joue au niveau du makefile généré pour chaque projet et pas forcément mis à jour d'une compile à l'autre. Quelqu'un pourrait-il m'expliquer comment marche un peu tout ça ? merci !!
En tout cas, je suis encore loin de réaliser un plateformer ^^;