Le dessin d'un rectangle vide se fait avec la fonction SDL_RenderDrawRect().
int SDL_RenderDrawRect(SDL_Renderer * pRendu, const SDL_Rect * rect);
Les arguments transmis à cette fonction sont dans l'ordre :
Le pointeur sur le rendu, et un objet de type "rectangle" (noté ici "rect")
que nous allons détailler.
Un objet rectangle appartient à une structure SDL_Rect comprenant quatre variables
membres de type "integer" (entier).
Ces variables sont x et y qui définissent la position du coin supérieur gauche du rectangle,
auxquelles s'ajoutent deux autres w (width) et h (height) désignant respectivement la largeur
et la hauteur de ce rectangle.
L'exemple ci dessous, à inclure dans un programme complet, dessine un rectangle vide de couleur verte,
de 100 pixel de large, 60 pixel de haut, et dont le coin supérieur gauche est positionné en
(50, 40).
SDL_Rect monRectangle;
monRectangle.x
= 50;
monRectangle.y
= 40;
monRectangle.w
= 100;
monRectangle.h
= 60;
SDL_SetRenderDrawColor(pRendu,
0,
255,
0,
255);
SDL_RenderDrawRect(pRendu,
&monRectangle);
Le rectangle plein se différencie du précédent par un remplissage interne,
d'une couleur identique à son contour.
La syntaxe de cette fonction s'écrit :
int SDL_RenderFillRect(SDL_Renderer * pRendu, const SDL_Rect * rect);
Je ne vais pas revenir sur les arguments de cette fonction qui sont identiques à ceux de la fonction SDL_RenderFillRect(). Si on reprend l'objet "monRectangle" initialisé plus haut (cette fois avec x = 200), alors le dessin du rectangle plein se fera en écrivant :
SDL_RenderFillRect(pRendu, &monRectangle);
Voici ce qu'on obtient avec une couleur dans les tons orangés :
On pourrait trouver celà étonnant, mais il n'existe pas de fonction SDL clé en main pour dessiner un cercle !