GL4Dummies
0.1.7
|
Primitives de dessin 2D et de manipulation de couleurs. Plus de détails...
#include "gl4du.h"
Aller au code source de ce fichier.
Macros | |
#define | R_SHIFT 24 |
décalage pour la composante rouge Plus de détails... | |
#define | G_SHIFT 16 |
décalage pour la composante verte Plus de détails... | |
#define | B_SHIFT 8 |
décalage pour la composante bleue Plus de détails... | |
#define | A_SHIFT 0 |
décalage pour la composante alpha Plus de détails... | |
#define | R_MASK 0xff000000 |
masque pour la composante rouge Plus de détails... | |
#define | G_MASK 0x00ff0000 |
masque pour la composante verte Plus de détails... | |
#define | B_MASK 0x0000ff00 |
masque pour la composante bleue Plus de détails... | |
#define | A_MASK 0x000000ff |
masque pour la composante alpha Plus de détails... | |
#define | RGBA(r, g, b, a) |
macro qui convertie un r, un g, un b et un a en couleur Uint32 rgba Plus de détails... | |
#define | RGB(r, g, b) RGBA(r, g, b, 255) |
macro qui convertie un r, un g et un b en couleur Uint32 rgba dont l'alpha est à 255 Plus de détails... | |
#define | EXTRACT_COMP(coul, shift) ((((Uint32)(coul)) >> (shift)) & 0xFF) |
macro permettant d'extraire une composante en utilisant l'argument shift Plus de détails... | |
#define | RED(coul) EXTRACT_COMP(coul, R_SHIFT) |
macro permettant d'extraire une composante rouge de l'Uint32 coul Plus de détails... | |
#define | GREEN(coul) EXTRACT_COMP(coul, G_SHIFT) |
macro permettant d'extraire une composante verte de l'Uint32 coul Plus de détails... | |
#define | BLUE(coul) EXTRACT_COMP(coul, B_SHIFT) |
macro permettant d'extraire une composante bleue de l'Uint32 coul Plus de détails... | |
#define | ALPHA(coul) EXTRACT_COMP(coul, A_SHIFT) |
macro permettant d'extraire une composante alpha de l'Uint32 coul Plus de détails... | |
#define | IN_SCREEN(x, y) ((x) >= 0 && (x) < (int)gl4dpGetWidth() && (y) >= 0 && (y) < (int)gl4dpGetHeight()) |
macro pour tester si x et y sont dans limites de l'ecran Plus de détails... | |
Fonctions | |
GL4DAPI Uint32 GL4DAPIENTRY | gl4dpGetColor (void) |
revoie la _cur_color. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpSetColor (Uint32 color) |
met dans _cur_color la couleur passee en argument. Plus de détails... | |
GL4DAPI GLuint GL4DAPIENTRY | gl4dpInitScreenWithDimensions (GLuint w, GLuint h) |
initialise (ou réinitialise) l'écran aux dimensions w et h, le lie à l'identifiant (OpenGL) de texture retourné. Plus de détails... | |
GL4DAPI GLuint GL4DAPIENTRY | gl4dpInitScreen (void) |
initialise (ou réinitialise) l'écran aux dimensions du viewport OpenGL, le lie à l'identifiant (OpenGL) de texture retourné. Plus de détails... | |
GL4DAPI int GL4DAPIENTRY | gl4dpSetScreen (GLuint id) |
active comme écran courant l'écran dont l'id est passé en argument. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpDeleteScreen (void) |
supprime l'écran et se repositionne sur le premier Plus de détails... | |
GL4DAPI GLuint GL4DAPIENTRY | gl4dpGetTextureId (void) |
retourne l'identifiant (OpenGL) de la texture liée à l'écran en cours. Plus de détails... | |
GL4DAPI GLuint GL4DAPIENTRY | gl4dpGetWidth (void) |
retourne la largeur de l'écran. Plus de détails... | |
GL4DAPI GLuint GL4DAPIENTRY | gl4dpGetHeight (void) |
retourne la hauteur de l'écran. Plus de détails... | |
GL4DAPI GLuint *GL4DAPIENTRY | gl4dpGetPixels (void) |
retourne le pointeur vers les pixels de l'écran courant. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpClearScreen (void) |
Efface l'écran en mettant 0. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpClearScreenWith (Uint32 color) |
Efface l'écran en y mettant la valeur color. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpScreenHasChanged (void) |
indique que le screen a été modifié côté mémoire centrale (CPU), qu'il sera donc nécessaire de mettre à jour la mémoire graphique (GPU) lors de l'appel à la fonction gl4dpUpdateScreen. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpUpdateScreen (GLint *rect) |
met à jour l'écran en envoyant la sous texture de dimensions rect à GL. Si rect vaut NULL, met à jour toute la texture. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpRect (GLint *rect) |
dessine un rectangle rect en utilisant la couleur en cours. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpLine (int x0, int y0, int x1, int y1) |
dessine un segment (x0, y0) -> (x1, y1) de couleur _cur_color en utilisant l'algorithme de Bresenham'65. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpCircle (int x0, int y0, int r) |
dessine un cercle centré en (x0, y0) de rayon r en utilisant l'algorithme de Bresenham'77. Plus de détails... | |
GL4DAPI Uint32 GL4DAPIENTRY | gl4dpGetPixel (int x, int y) |
renvoie la couleur à la coordonnée (x, y) Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpPutPixel (int x, int y) |
met la couleur en cours à la coordonnée (x, y) Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpHLine (int x0, int x1, int y) |
dessine un segment horizontal (x0, y) -> (x1, y). Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpFilledCircle (int x0, int y0, int r) |
dessine un cercle plein centré en (x0, y0) de rayon r en utilisant l'algorithme de Bresenham'77. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpCopyFromSDLSurfaceWithTransforms (SDL_Surface *s, const GLfloat scale[2], const GLfloat translate[2]) |
copie la surface SDL vers l'écran en cours ; peut zoomer/dézoomer/inverser et translater en utilisant scale et translate. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpCopyFromSDLSurface (SDL_Surface *s) |
copie la surface SDL vers l'écran en cours en prenant 100% de l'écran. Plus de détails... | |
GL4DAPI GLfloat *GL4DAPIENTRY | gl4dpSDLSurfaceToLuminanceMap (SDL_Surface *s) |
convertie une surface SDL en un tableau de luminances comprises entre 0 et 1 (L = 0.299 * R + 0.587 * G + 0.114 * B). Le repère des y est remis vers le haut pour un usage GL. Plus de détails... | |
GL4DAPI void GL4DAPIENTRY | gl4dpMap (GLuint dstSId, GLuint srcSId, const GLfloat pRect[4], const GLfloat tRect[4], GLfloat rotation) |
plaque un écran sur un autre écran. Plus de détails... | |
Primitives de dessin 2D et de manipulation de couleurs.
A été étendue pour s'intégrer à la bibliothèque demoHelper.
Définition dans le fichier gl4dp.h.
#define A_MASK 0x000000ff |
masque pour la composante alpha
#define A_SHIFT 0 |
décalage pour la composante alpha
#define ALPHA | ( | coul | ) | EXTRACT_COMP(coul, A_SHIFT) |
macro permettant d'extraire une composante alpha de l'Uint32 coul
#define B_MASK 0x0000ff00 |
masque pour la composante bleue
#define B_SHIFT 8 |
décalage pour la composante bleue
#define BLUE | ( | coul | ) | EXTRACT_COMP(coul, B_SHIFT) |
macro permettant d'extraire une composante bleue de l'Uint32 coul
#define EXTRACT_COMP | ( | coul, | |
shift | |||
) | ((((Uint32)(coul)) >> (shift)) & 0xFF) |
macro permettant d'extraire une composante en utilisant l'argument shift
#define G_MASK 0x00ff0000 |
masque pour la composante verte
#define G_SHIFT 16 |
décalage pour la composante verte
#define GREEN | ( | coul | ) | EXTRACT_COMP(coul, G_SHIFT) |
macro permettant d'extraire une composante verte de l'Uint32 coul
#define IN_SCREEN | ( | x, | |
y | |||
) | ((x) >= 0 && (x) < (int)gl4dpGetWidth() && (y) >= 0 && (y) < (int)gl4dpGetHeight()) |
macro pour tester si x et y sont dans limites de l'ecran
#define R_MASK 0xff000000 |
masque pour la composante rouge
#define R_SHIFT 24 |
décalage pour la composante rouge
#define RED | ( | coul | ) | EXTRACT_COMP(coul, R_SHIFT) |
macro permettant d'extraire une composante rouge de l'Uint32 coul
#define RGB | ( | r, | |
g, | |||
b | |||
) | RGBA(r, g, b, 255) |
macro qui convertie un r, un g et un b en couleur Uint32 rgba dont l'alpha est à 255
#define RGBA | ( | r, | |
g, | |||
b, | |||
a | |||
) |
GL4DAPI void GL4DAPIENTRY gl4dpCircle | ( | int | x0, |
int | y0, | ||
int | r | ||
) |
dessine un cercle centré en (x0, y0) de rayon r en utilisant l'algorithme de Bresenham'77.
Références gl4dpPutPixel(), IN_SCREEN, et updateScreenFromGPU().
GL4DAPI void GL4DAPIENTRY gl4dpClearScreen | ( | void | ) |
Efface l'écran en mettant 0.
Références updateScreenFromGPU().
GL4DAPI void GL4DAPIENTRY gl4dpClearScreenWith | ( | Uint32 | color | ) |
GL4DAPI void GL4DAPIENTRY gl4dpCopyFromSDLSurface | ( | SDL_Surface * | s | ) |
copie la surface SDL vers l'écran en cours en prenant 100% de l'écran.
Références gl4dpCopyFromSDLSurfaceWithTransforms().
GL4DAPI void GL4DAPIENTRY gl4dpCopyFromSDLSurfaceWithTransforms | ( | SDL_Surface * | s, |
const GLfloat | scale[2], | ||
const GLfloat | translate[2] | ||
) |
copie la surface SDL vers l'écran en cours ; peut zoomer/dézoomer/inverser et translater en utilisant scale et translate.
Références A_MASK, B_MASK, drawTex(), G_MASK, R_MASK, et t0.
Référencé par gl4dpCopyFromSDLSurface().
GL4DAPI void GL4DAPIENTRY gl4dpDeleteScreen | ( | void | ) |
supprime l'écran et se repositionne sur le premier
Références _cur_screen, _screen_list, et screen_node_t::next.
GL4DAPI void GL4DAPIENTRY gl4dpFilledCircle | ( | int | x0, |
int | y0, | ||
int | r | ||
) |
dessine un cercle plein centré en (x0, y0) de rayon r en utilisant l'algorithme de Bresenham'77.
Références gl4dpHLine(), et updateScreenFromGPU().
GL4DAPI Uint32 GL4DAPIENTRY gl4dpGetColor | ( | void | ) |
GL4DAPI GLuint GL4DAPIENTRY gl4dpGetHeight | ( | void | ) |
retourne la hauteur de l'écran.
Référencé par gl4dpHLine().
GL4DAPI Uint32 GL4DAPIENTRY gl4dpGetPixel | ( | int | x, |
int | y | ||
) |
GL4DAPI GLuint* GL4DAPIENTRY gl4dpGetPixels | ( | void | ) |
GL4DAPI GLuint GL4DAPIENTRY gl4dpGetTextureId | ( | void | ) |
GL4DAPI GLuint GL4DAPIENTRY gl4dpGetWidth | ( | void | ) |
retourne la largeur de l'écran.
Référencé par gl4dpHLine().
GL4DAPI void GL4DAPIENTRY gl4dpHLine | ( | int | x0, |
int | x1, | ||
int | y | ||
) |
dessine un segment horizontal (x0, y) -> (x1, y).
Références gl4dpGetHeight(), gl4dpGetWidth(), gl4dpPutPixel(), MAX, MIN, et updateScreenFromGPU().
Référencé par gl4dpFilledCircle().
GL4DAPI GLuint GL4DAPIENTRY gl4dpInitScreen | ( | void | ) |
initialise (ou réinitialise) l'écran aux dimensions du viewport OpenGL, le lie à l'identifiant (OpenGL) de texture retourné.
Utilise gl4dpInitScreenWithDimensions.
Références gl4dpInitScreenWithDimensions().
GL4DAPI GLuint GL4DAPIENTRY gl4dpInitScreenWithDimensions | ( | GLuint | w, |
GLuint | h | ||
) |
initialise (ou réinitialise) l'écran aux dimensions w et h, le lie à l'identifiant (OpenGL) de texture retourné.
w | la largeur de la fenêtre/texture GL. |
h | la hauteur de la fenêtre/texture GL. |
Références _pId, _quadId, addScreen(), gl4dgGenQuadf(), gl4duCreateProgram(), screen_node_t::h, et screen_node_t::w.
Référencé par gl4dpInitScreen().
GL4DAPI void GL4DAPIENTRY gl4dpLine | ( | int | x0, |
int | y0, | ||
int | x1, | ||
int | y1 | ||
) |
dessine un segment (x0, y0) -> (x1, y1) de couleur _cur_color en utilisant l'algorithme de Bresenham'65.
Références gl4dpPutPixel(), IN_SCREEN, et updateScreenFromGPU().
GL4DAPI void GL4DAPIENTRY gl4dpMap | ( | GLuint | dstSId, |
GLuint | srcSId, | ||
const GLfloat | pRect[4], | ||
const GLfloat | tRect[4], | ||
GLfloat | rotation | ||
) |
plaque un écran sur un autre écran.
dstSId | identifiant de l'écran destination (sur lequel on plaque). |
srcSId | identifiant de l'écran source (qui sera plaqué). |
pRect | rectangle représentant la position (dans dstSId) à laquelle nous allons plaquer la source srcSId. |
tRect | reclangle représentant la quantité de surface copiée depuis srcSId - c'est les coordonnées de textures. |
rotation | angle de rotation en radians appliqué lors du placage. Le rectangle pRect tourne autour de son centre. |
Références _pId, gl4dpSetScreen(), et gl4dpUpdateScreen().
GL4DAPI void GL4DAPIENTRY gl4dpPutPixel | ( | int | x, |
int | y | ||
) |
met la couleur en cours à la coordonnée (x, y)
Références _cur_color, et updateScreenFromGPU().
Référencé par gl4dpCircle(), gl4dpHLine(), et gl4dpLine().
GL4DAPI void GL4DAPIENTRY gl4dpRect | ( | GLint * | rect | ) |
dessine un rectangle rect en utilisant la couleur en cours.
rect | le pointeur vers les quatre entiers positifs x,y (coin haut gauche du rectangle) et w,h (les dimensions du rectangle). |
Références _cur_color, et updateScreenFromGPU().
GL4DAPI void GL4DAPIENTRY gl4dpScreenHasChanged | ( | void | ) |
indique que le screen a été modifié côté mémoire centrale (CPU), qu'il sera donc nécessaire de mettre à jour la mémoire graphique (GPU) lors de l'appel à la fonction gl4dpUpdateScreen.
GL4DAPI GLfloat* GL4DAPIENTRY gl4dpSDLSurfaceToLuminanceMap | ( | SDL_Surface * | s | ) |
convertie une surface SDL en un tableau de luminances comprises entre 0 et 1 (L = 0.299 * R + 0.587 * G + 0.114 * B). Le repère des y est remis vers le haut pour un usage GL.
s | La surface SDL à convertir |
GL4DAPI void GL4DAPIENTRY gl4dpSetColor | ( | Uint32 | color | ) |
met dans _cur_color la couleur passee en argument.
Références _cur_color.
GL4DAPI int GL4DAPIENTRY gl4dpSetScreen | ( | GLuint | id | ) |
active comme écran courant l'écran dont l'id est passé en argument.
id | identifiant de l'écran. |
Références _cur_screen, _screen_list, et screen_node_t::tId.
Référencé par gl4dpMap().
GL4DAPI void GL4DAPIENTRY gl4dpUpdateScreen | ( | GLint * | rect | ) |
met à jour l'écran en envoyant la sous texture de dimensions rect à GL. Si rect vaut NULL, met à jour toute la texture.
rect | le pointeur vers les quatre entiers positifs x,y (coin haut gauche du rectangle) et w,h (les dimensions du rectangle). |
Références drawTex(), et updateScreenFromGPU().
Référencé par gl4dpMap().