3 #include <SDL_opengl.h>
5 #define SCREEN_WIDTH 20.0
6 #define SCREEN_HEIGHT 15.0
9 int RegenerateSprites();
10 //called internally when there is a need for sprites after InvalidateSprites or externally
11 //returns 0 on success
13 void InvalidateSprites();
14 //call it if you want to queue reload of sprites, for example after screen resize
18 //returns 0 on success
21 //Clear Screen -- may does nothing, check code
22 //returns 0 on success
25 //please call this procedure before anything else from this module
26 //returns 0 on success
29 //please call this when you wanna to kill graphics
30 //also on exit, because not all platforms frees all resources when process ends
35 double width
; //width of a sprite (in game units)
36 double height
; //height of a sprite (in game units)
37 double twidth
; //height of the texture in pixels
38 double theight
; //width of the texture in pixels
40 char *fname
; //file name of original SVG
41 int rotation
; //rotation ( *PI/2.0)
42 unsigned int SID
; //surface ID
45 // Because of lazy implementations of OpenGL on some hw, we are using textures with dimensions of power of two
46 // if you run out of texture memory, try to lower resolution or config.texture_lod
47 Sprite
* LoadSpriteSVG(char *fname
, double width
, double height
);
48 //returns 0 when failed
50 void DestroySprite(Sprite
*sprite
);
51 Sprite
* CopySprite(Sprite
*sprite
);
53 void RotateClockwise(Sprite
*sprite
); //rotate clockwise by PI/2.0
54 //currently unimplemented
56 void QueueDrawSprite(Sprite
*sprite
, double x
, double y
, int z
);
57 //queue target sprite to be drawn at [x,y] at level z 0-deepest