« Programmation avec la SDL/Les textures » : différence entre les versions

Contenu supprimé Contenu ajouté
Ajout du paragraphe Dessiner sur une texture
Ajout d'un paragraphe : Affichage basique
Ligne 40 :
SDL_Texture *texture_modifiee = SDL_GetRenderTarget(renderer);
</source>
 
==Afficher une texture==
Maintenant que nous savons dessiner sur une texture, il serait utile de pouvoir l'afficher sur le renderer. Ce paragraphe est divisé en deux partie afin que les débutants préférant aller plus vite vers du codage plus concret puissent sauter la partie technique de l'affichage. Cependant, il est fortement recommandé d'y revenir par la suite.
 
===Affichage basique===
Ici, nous verrons uniquement comment afficher une texture dans son entier sur le renderer. Pour cela, nous aurons besoin des dimensions de la texture que nous voulons afficher ainsi que la position à laquelle nous voulons l'afficher. Le mieux est donc d'utiliser un ''SDL_Rect'' qui contient la position (x,y) de la texture dans le renderer et les dimensions (w,h) de celle-ci. Pour récupérer les dimensions, nous utiliserons la fonction '''SDL_QueryTexture''' qui permet de récupérer plusieurs informations sur la texture, dont la largeur et la hauteur. Le rectangle que nous obtiendrons correspondra au rectangle du renderer qui devra accueillir la texture, ce qui correspond exactement aux arguments de la fonction '''SDL_RenderCopy''' qui permet d'afficher une texture sur le renderer.
 
Voici le code qui permet d'afficher une texture dans son ensemble en position (100,200) (on suppose que la texture ainsi que le renderer on déjà été créés) :
<source lang="c">
SDL_Rect position;
position.x = 100;
position.y = 200;
SDL_QueryTexture(texture, NULL, NULL, &position.w, &position.h);
SDL_RenderCopy(renderer,texture,NULL,&position);
SDL_RenderPresent(renderer);
</source>
 
Normalement, cette brève introduction permet aux débutants d'afficher des textures comme ils le souhaitent. Pour plus de détail sur les fonctions précédentes, voir le paragraphe suivant.