gfxEngine_documentation
bfg_GfxEngine_PC.c File Reference
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <stdio.h>
#include "bfg_GfxEngine_PC.h"

Functions

int nx (int mx, int my, float c, float s, int i, int j)
 
int ny (int mx, int my, float c, float s, int i, int j)
 
void destroyGfxEngine ()
 
void initGfxEngine ()
 Initialise le gfxEngine en 640*480. More...
 
void initGfxEngine320 ()
 Initialise le gfxEngine en 320*240. More...
 
int getResX (void)
 Retourne la valeur de la resolution x en pixel. More...
 
int getResY (void)
 Retourne la valeur de la resolution y en pixel. More...
 
void prepareEcritureVideoGlobale ()
 Signale au PVR qu'il va recevoir des donnees (Dreamcast only) More...
 
void prepareEcritureVideoTra ()
 Signale au PVR qu'il va recevoir des polygones avec transparence (Dreamcast only) More...
 
void termineEcritureVideoTra ()
 Signale au PVR qu'on a termine l'envoie des polygones transparent (Dreamcast only) More...
 
void Resize ()
 
void termineEcritureVideoGlobale ()
 Signale au PVR qu'on a termine d'ecrire des donnees et affiche a l'ecran.(Dreamcast) Ou affiche le buffer video PC a l'ecran. (PC) More...
 
SDL_Surface * loadSurface (char *filename)
 
SDL_Texture * loadTexture (char *filename)
 
int loadImageTra (char *filename, int noImage, int hauteur, int largeur)
 Charge une image PNG 32bits. More...
 
int loadMask (char *filename, int noImage)
 Charge un masque de collision de sprite en memoire. More...
 
void freeMask (int noImage)
 Libere la memoire utilisee par le masque lie a une image. More...
 
int getPixelMask (int noImage, int x, int y)
 
int loadCompressMask (char *filename, int noImage)
 Charge un masque de collision compresse de sprite en memoire. More...
 
int getPixelCompressMask (int noImage, int x, int y)
 Libere la memoire utilisee par le masque compresse lie a une image. More...
 
void freeCompressMask (int noImage)
 
void blitImageTra (int ino, int dx, int dy)
 Affiche une image. More...
 
int getFreeImageBankTra ()
 Retourne le premier numero d'imageBank non utilise. More...
 
void getImageBankTra (int ibno, int is, int sx, int sy, int sh, int sl)
 Cree en memoire une portion d'image (= ImageBank) a partir d'une image complete. More...
 
void blitImageBankTra (int ibno, int dx, int dy)
 Affiche une imageBank. More...
 
void blitImageBankTraRot (int ibno, int dx, int dy, float myrot, float zx, float zy, int center)
 Affiche une imageBank avec zoom et rotation. More...
 
void getImageTile (int ibno, int is, int sx, int sy, int sh, int sl)
 Cree en memoire une tuile (= Tile) a partir d'une image complete. (Servira pour tileMapEngine ou scrollMapEngine) More...
 
void getImageAlpha (int ibno, int is, int sx, int sy, int sh, int sl)
 Cree en memoire un caractere graphique (= Alpha) a partir d'une image complete. (Servira pour writeEngine) More...
 
void blitImageTile (int ibno, int dx, int dy)
 Affiche une tuile. More...
 
void blitImageAlpha (int ibno, int dx, int dy)
 Affiche un Alpha. More...
 
void freeImageTra (int noImage)
 Detruit l'image et libere la memoire. More...
 
void freeAllImageTra (void)
 Detruit toutes les images et libere la memoire. More...
 
void freeAllImage (void)
 Detruit toutes les images et libere la memoire (Doublon freeAllImageTra) More...
 
int checkController ()
 Lit la manette (Dreamcast) ou le clavier (PC), et charge en memoire les donnees recueillis. More...
 
int getKeyA (void)
 Retourne 1 si le bouton A de la manette a ete presse (Dreamcast), ou touche "C" (PC) More...
 
int getKeyB (void)
 Retourne 1 si le bouton B de la manette a ete presse (Dreamcast), ou touche "V" (PC) More...
 
int getKeyX (void)
 Retourne 1 si le bouton X de la manette a ete presse (Dreamcast), ou touche "B" (PC) More...
 
int getKeyY (void)
 Retourne 1 si le bouton Y de la manette a ete presse (Dreamcast), ou touche "N" (PC) More...
 
int getKeyUp (void)
 Retourne 1 si le bouton HAUT de la manette a ete presse (Dreamcast), ou touche "haut" (PC) More...
 
int getKeyDown (void)
 Retourne 1 si le bouton BAS de la manette a ete presse (Dreamcast), ou touche "bas" (PC) More...
 
int getKeyLeft (void)
 Retourne 1 si le bouton GAUCHE de la manette a ete presse (Dreamcast), ou touche "gauche" (PC) More...
 
int getKeyRight (void)
 Retourne 1 si le bouton DROITE de la manette a ete presse (Dreamcast), ou touche "droite" (PC) More...
 
int getKeyStart (void)
 Retourne 1 si le bouton START de la manette a ete presse (Dreamcast), ou touche "P" (PC) More...
 
int getNoDirection (void)
 Retourne 1 si il n'y a aucune direction de selectionne. More...
 
int anyActionKeyPress (void)
 Retourne 1 si une touche "action" (A,B,X,Y sur DC) (C,V,B,N sur PC) a ete enfonce. More...
 

Variables

simage imagesTra [MAX_IMAGE_TRA]
 
unsigned char * mask [MAX_IMAGE_TRA]
 
unsigned char * maskCompress [MAX_IMAGE_TRA]
 
sibank imageBankTra [MAX_IMAGEBANK_TRA]
 
stiles imageTile [MAX_IMGTILE]
 
salpha imageAlpha [MAX_ALPHA]
 
int fullscreen =0
 
SDL_Window * gWindow = NULL
 
SDL_Renderer * gRenderer = NULL
 
SDL_Texture * gBackBuffer = NULL
 
SDL_Surface * gScreenSurface = NULL
 
SDL_Rect nativeSize
 
SDL_Rect newWindowSize
 
char resize
 
float scaleRatioW =1.0f
 
float scaleRatioH =1.0f
 
int keyRight = 0
 
int keyLeft = 0
 
int keyUp = 0
 
int keyDown = 0
 
int keyQuit = 0
 
int keyActionA = 0
 
int keyActionB = 0
 
int keyActionX = 0
 
int keyActionY = 0
 
int keyActionStart =0
 
int ZPos = 0
 
int resX
 
int resY
 
int show_resX
 
int show_resY
 

Function Documentation

int anyActionKeyPress ( void  )

Retourne 1 si une touche "action" (A,B,X,Y sur DC) (C,V,B,N sur PC) a ete enfonce.

Returns
0 ou 1
void blitImageAlpha ( int  ibno,
int  dx,
int  dy 
)

Affiche un Alpha.

Parameters
ibno: Numero de l'alpha a afficher
dx: Position x en pixel
dy: Position y en pixel
Returns
void blitImageBankTra ( int  ibno,
int  dx,
int  dy 
)

Affiche une imageBank.

Parameters
ibno: Numero de l'imageBank a afficher
dx: Position x en pixel
dy: Position y en pixel
Returns
void blitImageBankTraRot ( int  ibno,
int  dx,
int  dy,
float  myrot,
float  zx,
float  zy,
int  center 
)

Affiche une imageBank avec zoom et rotation.

Parameters
ibno: Numero de l'imageBank a afficher
dx: Position x en pixel
dy: Position y en pixel
myrot: Angle de rotation
zx: Facteur de zoom x
zy: Facteur de zoom y
dy: La rotation se fait-elle du centre ou du coin superieur gauche ? (0 - coin / 1 - centre)
Returns
void blitImageTile ( int  ibno,
int  dx,
int  dy 
)

Affiche une tuile.

Parameters
ibno: Numero de la tile a afficher
dx: Position x en pixel
dy: Position y en pixel
Returns
void blitImageTra ( int  ino,
int  dx,
int  dy 
)

Affiche une image.

Parameters
ino: Numero de l'image a afficher
dx: Position x en pixel
dy: Position y en pixel
Returns
int checkController ( )

Lit la manette (Dreamcast) ou le clavier (PC), et charge en memoire les donnees recueillis.

Returns
0
void destroyGfxEngine ( )
void freeAllImage ( void  )

Detruit toutes les images et libere la memoire (Doublon freeAllImageTra)

Parameters
noImage: Numero de l'image
Returns
void freeAllImageTra ( void  )

Detruit toutes les images et libere la memoire.

Parameters
noImage: Numero de l'image
Returns
void freeCompressMask ( int  noImage)
void freeImageTra ( int  noImage)

Detruit l'image et libere la memoire.

Parameters
noImage: Numero de l'image
Returns
void freeMask ( int  noImage)

Libere la memoire utilisee par le masque lie a une image.

Parameters
noImage: Numero de l'image que reference le masque
Returns
int getFreeImageBankTra ( )

Retourne le premier numero d'imageBank non utilise.

Returns
numero d'imageBank libre
void getImageAlpha ( int  ibno,
int  is,
int  sx,
int  sy,
int  sh,
int  sl 
)

Cree en memoire un caractere graphique (= Alpha) a partir d'une image complete. (Servira pour writeEngine)

Parameters
ibno: Numero de l'alpha que l'on veut cree
is: Numero de l'image source
sx: Position x de depart dans l'image source
sy: Position y de depart dans l'image source
sh: Hauteur de l'alpha
sl: Largeur de l'alpha
Returns
void getImageBankTra ( int  ibno,
int  is,
int  sx,
int  sy,
int  sh,
int  sl 
)

Cree en memoire une portion d'image (= ImageBank) a partir d'une image complete.

Parameters
ibno: Numero de l'imageBank que l'on veut cree
is: Numero de l'image source
sx: Position x de depart dans l'image source
sy: Position y de depart dans l'image source
sh: Hauteur de l'imageBank
sl: Largeur de l'imageBank
Returns
void getImageTile ( int  ibno,
int  is,
int  sx,
int  sy,
int  sh,
int  sl 
)

Cree en memoire une tuile (= Tile) a partir d'une image complete. (Servira pour tileMapEngine ou scrollMapEngine)

Parameters
ibno: Numero de la tuile que l'on veut cree
is: Numero de l'image source
sx: Position x de depart dans l'image source
sy: Position y de depart dans l'image source
sh: Hauteur de la tuile
sl: Largeur de la tuile
Returns
int getKeyA ( void  )

Retourne 1 si le bouton A de la manette a ete presse (Dreamcast), ou touche "C" (PC)

Returns
0 ou 1
int getKeyB ( void  )

Retourne 1 si le bouton B de la manette a ete presse (Dreamcast), ou touche "V" (PC)

Returns
0 ou 1
int getKeyDown ( void  )

Retourne 1 si le bouton BAS de la manette a ete presse (Dreamcast), ou touche "bas" (PC)

Returns
0 ou 1
int getKeyLeft ( void  )

Retourne 1 si le bouton GAUCHE de la manette a ete presse (Dreamcast), ou touche "gauche" (PC)

Returns
0 ou 1
int getKeyRight ( void  )

Retourne 1 si le bouton DROITE de la manette a ete presse (Dreamcast), ou touche "droite" (PC)

Returns
0 ou 1
int getKeyStart ( void  )

Retourne 1 si le bouton START de la manette a ete presse (Dreamcast), ou touche "P" (PC)

Returns
0 ou 1
int getKeyUp ( void  )

Retourne 1 si le bouton HAUT de la manette a ete presse (Dreamcast), ou touche "haut" (PC)

Returns
0 ou 1
int getKeyX ( void  )

Retourne 1 si le bouton X de la manette a ete presse (Dreamcast), ou touche "B" (PC)

Returns
0 ou 1
int getKeyY ( void  )

Retourne 1 si le bouton Y de la manette a ete presse (Dreamcast), ou touche "N" (PC)

Returns
0 ou 1
int getNoDirection ( void  )

Retourne 1 si il n'y a aucune direction de selectionne.

Returns
0 ou 1
int getPixelCompressMask ( int  noImage,
int  x,
int  y 
)

Libere la memoire utilisee par le masque compresse lie a une image.

Pour creer un masque de collision utiliser les outils livre avec la librairie

Parameters
noImage: Numero de l'image que reference le masque
Returns
int getPixelMask ( int  noImage,
int  x,
int  y 
)
int getResX ( void  )

Retourne la valeur de la resolution x en pixel.

Parameters
int getResY ( void  )

Retourne la valeur de la resolution y en pixel.

Parameters
void initGfxEngine ( )

Initialise le gfxEngine en 640*480.

Parameters
void initGfxEngine320 ( )

Initialise le gfxEngine en 320*240.

Parameters
int loadCompressMask ( char *  filename,
int  noImage 
)

Charge un masque de collision compresse de sprite en memoire.

Parameters
*filename: Chemin + nom du fichier masque
noImage: Numero de l'image que reference le masque
Returns
int loadImageTra ( char *  filename,
int  noImage,
int  hauteur,
int  largeur 
)

Charge une image PNG 32bits.

Attention : Pour garder la compatibilite Dreamcast l'image doit être un carre multiple de 2. (Ex: 128x128,512x512, ...).

Parameters
*filename: Chemin + nom du fichier image
noImage: Numero de l'image a charger
hauteur: Hauteur du fichier .PNG en pixel
largeur: Largeur du fichier .PNG en pixel
Returns
int loadMask ( char *  filename,
int  noImage 
)

Charge un masque de collision de sprite en memoire.

Pour creer un masque de collision utiliser les outils livre avec la librairie

Parameters
*filename: Chemin + nom du fichier masque
noImage: Numero de l'image que reference le masque
Returns
SDL_Surface* loadSurface ( char *  filename)
SDL_Texture* loadTexture ( char *  filename)
int nx ( int  mx,
int  my,
float  c,
float  s,
int  i,
int  j 
)
int ny ( int  mx,
int  my,
float  c,
float  s,
int  i,
int  j 
)
void prepareEcritureVideoGlobale ( )

Signale au PVR qu'il va recevoir des donnees (Dreamcast only)

La version PC est presente pour compatibilite mais ne fait rien

Parameters
void prepareEcritureVideoTra ( )

Signale au PVR qu'il va recevoir des polygones avec transparence (Dreamcast only)

La version PC est presente pour compatibilite mais ne fait rien
Snippet :
prepareEcritureVideoGlobale();
prepareEcritureVideoTra();
AFFICHER DECOR, SPRITES, ETC ...
termineEcritureVideoTra();
termineEcritureVideoGlobale();

Parameters
void Resize ( )
void termineEcritureVideoGlobale ( )

Signale au PVR qu'on a termine d'ecrire des donnees et affiche a l'ecran.(Dreamcast) Ou affiche le buffer video PC a l'ecran. (PC)

Parameters
void termineEcritureVideoTra ( )

Signale au PVR qu'on a termine l'envoie des polygones transparent (Dreamcast only)

La version PC est presente pour compatibilite mais ne fait rien

Parameters

Variable Documentation

int fullscreen =0
SDL_Texture* gBackBuffer = NULL
SDL_Renderer* gRenderer = NULL
SDL_Surface* gScreenSurface = NULL
SDL_Window* gWindow = NULL
salpha imageAlpha[MAX_ALPHA]
sibank imageBankTra[MAX_IMAGEBANK_TRA]
simage imagesTra[MAX_IMAGE_TRA]
stiles imageTile[MAX_IMGTILE]
int keyActionA = 0
int keyActionB = 0
int keyActionStart =0
int keyActionX = 0
int keyActionY = 0
int keyDown = 0
int keyLeft = 0
int keyQuit = 0
int keyRight = 0
int keyUp = 0
unsigned char* mask[MAX_IMAGE_TRA]
unsigned char* maskCompress[MAX_IMAGE_TRA]
SDL_Rect nativeSize
SDL_Rect newWindowSize
char resize
int resX
int resY
float scaleRatioH =1.0f
float scaleRatioW =1.0f
int show_resX
int show_resY
int ZPos = 0