mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
81 lines
No EOL
1.6 KiB
C++
81 lines
No EOL
1.6 KiB
C++
#include "Local.h"
|
|
|
|
#ifdef GUI_SDL20GL
|
|
|
|
NAMESPACE_UPP
|
|
|
|
#define LLOG(x) //LOG(x)
|
|
|
|
dword SDLsettings;
|
|
|
|
void USDLSetup(dword flags)
|
|
{
|
|
SDLsettings = flags;
|
|
}
|
|
|
|
Size screen_size;
|
|
SDLWindow screen;
|
|
|
|
SDL_TimerID waketimer_id = 0;
|
|
Uint32 WakeCb(Uint32 interval, void *param)
|
|
{
|
|
//wake up message que, FIXME maybe it can be done better?
|
|
SDL_Event event;
|
|
event.type=SDL_USEREVENT;
|
|
SDL_PushEvent(&event);
|
|
return 0;
|
|
}
|
|
|
|
void WakeUpGuiThread()
|
|
{
|
|
waketimer_id = SDL_AddTimer(20, WakeCb, NULL);
|
|
}
|
|
|
|
void FBInit()
|
|
{
|
|
GuiLock __;
|
|
|
|
SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER);
|
|
|
|
Ctrl::InitFB();
|
|
|
|
#if 0
|
|
if(SDL_Init(SDL_INIT_VIDEO/* | SDL_INIT_TIMER*/) < 0) //timer not needed, we post to queue directly
|
|
{
|
|
Cout() << Format("Couldn't initialize SDL: %s\n", SDL_GetError());
|
|
return;
|
|
}
|
|
|
|
// TODO
|
|
// SDL_EnableUNICODE(1); //for unicode keycode availability
|
|
// SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL/2);
|
|
// SDL_ShowCursor(0);
|
|
|
|
const SDL_VideoInfo* vi = SDL_GetVideoInfo();
|
|
//ASSERT(vi->hw_available);
|
|
|
|
width = vi->current_w;
|
|
height = vi->current_h;
|
|
bpp = vi->vfmt->BitsPerPixel;
|
|
ASSERT(bpp == 32);
|
|
|
|
//FIXME adjustable
|
|
videoflags = SDL_HWSURFACE | SDL_HWACCEL | SDL_DOUBLEBUF | SDL_RESIZABLE;// | SDL_NOFRAME | SDL_FULLSCREEN;
|
|
#endif
|
|
screen_size = Size(1500, 900);
|
|
screen.Create(Rect(Point(20, 20), screen_size), "First test");
|
|
|
|
Ctrl::SetDesktopSize(screen_size);
|
|
}
|
|
|
|
void FBDeInit()
|
|
{
|
|
SDL_RemoveTimer(waketimer_id);
|
|
Ctrl::ExitFB();
|
|
screen.Destroy();
|
|
SDL_Quit();
|
|
}
|
|
|
|
END_UPP_NAMESPACE
|
|
|
|
#endif |