Chaque fois que je lance mon application, les couleurs changent, l'affichage est comme ci-dessouscouleur BPP change SDL
Display = SDL_SetVideoMode(WIDTH, HEIGHT, 16, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_ASYNCBLIT)
puis-je faire
SDL_FillRect(Display, &Woutput, colors[1]);
couleurs info var:
Uint32 colors[3];
colors[1] = SDL_MapRGB(Surf_Display->format, 32, 32, 255);
Si je change SDL_FillRect(Display, &Woutput, colors[1]);
en SDL_FillRect(Display, &Woutput, SDL_MapRGB(Surf_Display->format, 32, 32, 255));
cela fonctionne correctement ce qui me fait croire qu'il a tellement rien à faire avec l'Uint32, mais je ne sais pas quoi changer.
Si 'w' est tout sauf zéro, alors vous indexez au-delà des limites de votre tableau de couleurs de longueur un. Qu'est-ce que 'w' (ou capital' W'?) Supposé être? – HostileFork
@HostileFork vous avez raison, je suis sorti des limites du tableau mais seulement pour l'exemple, j'aurais dû vérifier mon exemple voir les changements – Elgoog
Selon la documentation, SDL_MapRGB renvoie un 'Uint32'. Cela ne devrait pas faire de différence si vous utilisez un élément de tableau comme intermédiaire ou si vous le transmettez directement. Donc, si c'est tout le code que vous avez - et que votre appel FillRect passe réellement 'colors [1]' * après * l'initialisation du tableau, il n'y aura pas de problème. Pouvez-vous fournir un peu plus de code dans la commande de ligne précise pour rechercher d'autres problèmes possibles? – HostileFork