Bonjour, j'aimerais pouvoir créer manuellement (et non pas en charger) des textures avec la SDL2, alors j'ai écrit cette fonction :
Je ne donne pas tout l'algorithme du programme complet car il est assez long, et parce que je pense que l'essentiel du soucis est ici. J'ai aussi un soucis avec le second paramètre de SDL_CreateTexture(), je ne sais pas vraiment qu'elle constante utiliser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SDL_Texture *SDL_Texture_create(SDL_Renderer *renderer, const unsigned width, const unsigned height, const Uint8 Rmask, const Uint8 Gmask, const Uint8 Bmask) { SDL_Texture *texture = NULL; if((texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_STATIC, width, height)) == 0) error_sdl(); if((SDL_SetTextureColorMod(texture, Rmask, Gmask, Bmask)) < 0) error_sdl(); return texture; }
La texture est bien créee, seulement il y a un gros soucis au niveau des couleurs :
Elle ne sont pas du tout respectés, et affichent nimporte quoi ! Petite parenthèse j'ai ce même soucis lorsque je souhaite charger des images de 64x64.
Bon ici plusieurs textures ont étés créees avec toutes une taille, un angle de rotation, une position et des couleurs différentes.
J'aimerais donc savoir ici : Pourquoi les couleurs ne sont pas du tout respectées ? En espérant qu'il y ait aussi une solution à ce problème. Merci.
Sinon juste pour préciser au niveau de l'OS je suis sous la dernière version d'Ubuntu.
Partager