70 lines
1.6 KiB
C++
70 lines
1.6 KiB
C++
#ifndef DEF_XMANAGER_H
|
|
|
|
#define DEF_XMANAGER_H
|
|
class xManager{
|
|
|
|
public:
|
|
xManager(const char *t, int w, int h);
|
|
~xManager();
|
|
SDL_Window *window();
|
|
SDL_Renderer *renderer();
|
|
bool status();
|
|
bool setBackground(Uint8 r=0xff, Uint8 g=0xff, Uint8 b=0xff, Uint8 a=0xff);
|
|
bool setImage(const char *url);
|
|
|
|
bool hit(string current, int movex=0, int movey=0); // Gestion des collisions
|
|
bool hit(SDL_Texture *current, int movex=0, int movey=0); // Gestion des collisions
|
|
|
|
SDL_Texture *getTexture(string index);
|
|
SDL_Rect *getSrc(string index);
|
|
SDL_Rect *getDst(string index);
|
|
|
|
void push(string index, SDL_Texture *t, SDL_Rect *origin, SDL_Rect *dest);
|
|
void pull(string index);
|
|
void pull(SDL_Texture *t);
|
|
|
|
void update();
|
|
|
|
void manageFps(const int fps=0);
|
|
|
|
|
|
// Gestion des evenements
|
|
void attachEvent(SDL_EventType t, void(*handler)(SDL_Event*) );
|
|
void manageEvents(SDL_Event* event);
|
|
|
|
|
|
private:
|
|
// gestion FPS
|
|
Uint32 _lasttick;
|
|
Uint32 _fpstime;
|
|
|
|
// Gestion evenements
|
|
vector<SDL_EventType> _events;
|
|
vector<void(*)(SDL_Event*)> _handlers;
|
|
|
|
// status de l'initialisation
|
|
bool _status;
|
|
|
|
// Elements utiles
|
|
SDL_Window *_window;
|
|
SDL_Rect _winrect;
|
|
|
|
SDL_Renderer *_renderer;
|
|
SDL_Texture *_texture;
|
|
|
|
// Gestion des textures
|
|
vector<string> _indexes;
|
|
vector<SDL_Texture*> _sprites;
|
|
vector<SDL_Rect*> _src;
|
|
vector<SDL_Rect*> _dst;
|
|
|
|
// Protection thread-safe
|
|
mutex _mutex_push;
|
|
mutex _mutex_pull;
|
|
mutex _mutex_update;
|
|
mutex _mutex_hit;
|
|
|
|
|
|
};
|
|
|
|
#endif |