X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fgdi%2Fsdl.h;h=6d016cf9725cdd5f0366495e9326a2c306ad0793;hb=59f9f67261d0e6018293871d00cbd12572fbb4c7;hp=20ff04fa827ecc6853f3ee3bd32dde3fd56ce832;hpb=ab5aa90e1e05a89845c6e802ef1b2366d203aa45;p=vuplus_dvbapp diff --git a/lib/gdi/sdl.h b/lib/gdi/sdl.h index 20ff04f..6d016cf 100644 --- a/lib/gdi/sdl.h +++ b/lib/gdi/sdl.h @@ -1,27 +1,39 @@ #ifndef __lib_gdi_sdl_h #define __lib_gdi_sdl_h -#include "fb.h" -#include "gpixmap.h" -#include "grc.h" +#include +#include #include -class gSDLDC: public gDC +class gSDLDC: public gMainDC, public eThread, public Object { +private: SDL_Surface *m_screen; - static gSDLDC *m_instance; - void exec(gOpcode *opcode); + void exec(const gOpcode *opcode); - void setPalette(); gSurface m_surface; + + eFixedMessagePump m_pump; + void keyEvent(const SDL_Event &event); + void pumpEvent(const SDL_Event &event); + virtual void thread(); + + enum event { + EV_SET_VIDEO_MODE, + EV_FLIP, + EV_QUIT, + }; + + void pushEvent(enum event code, void *data1 = 0, void *data2 = 0); + void evSetVideoMode(unsigned long xres, unsigned long yres); + void evFlip(); + public: - + void setResolution(int xres, int yres); gSDLDC(); virtual ~gSDLDC(); - static int getInstance(ePtr &ptr) { if (!m_instance) return -1; ptr = m_instance; return 0; } int islocked() { return 0; } }; - #endif