void SystemStub_SDL::init(const char *title, int w, int h) { SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK); SDL_ShowCursor(SDL_DISABLE); SDL_WM_SetCaption(title, NULL); memset(&_pi, 0, sizeof(_pi)); _screenW = w; _screenH = h; // allocate some extra bytes for the scaling routines const int screenBufferSize = (w + 2) * (h + 2) * sizeof(uint16); _screenBuffer = (uint16 *)malloc(screenBufferSize); if (!_screenBuffer) { error("SystemStub_SDL::init() Unable to allocate offscreen buffer"); } memset(_screenBuffer, 0, screenBufferSize); _fadeScreenBuffer = 0; _fadeOnUpdateScreen = false; _fullscreen = false; _currentScaler = 2; memset(_pal, 0, sizeof(_pal)); prepareGfxMode(); _joystick = NULL; if (SDL_NumJoysticks() > 0) { _joystick = SDL_JoystickOpen(0); } }
void SystemStub_SDL::switchGfxMode(bool fullscreen, uint8 scaler) { SDL_FreeSurface(_screenSurface); _fullscreen = fullscreen; _currentScaler = scaler; prepareGfxMode(); forceGfxRedraw(); }
void SDLStub::init(const char *title) { putenv((char *)"SDL_VIDEO_WINDOW_POS"); putenv((char *)"SDL_VIDEO_CENTERED=1"); #ifdef _WIN32 SetConsoleTitleA(title); #endif SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER); SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); SDL_ShowCursor(SDL_DISABLE); SDL_WM_SetCaption(title, NULL); int x, y; SDL_GetMouseState( &x,&y ); SDL_ShowCursor( SDL_ENABLE ); SDL_WarpMouse( x, y ); memset(&input, 0, sizeof(input)); _offscreen = (uint8_t *)malloc(SCREEN_W * SCREEN_H * 2); if (!_offscreen) { error("Unable to allocate offscreen buffer"); } _fullscreen = false; _scaler = 1; prepareGfxMode(); }
void SDLStub::switchGfxMode(bool fullscreen, uint8 scaler) { SDL_Surface *prev_sclscreen = _sclscreen; SDL_FreeSurface(_screen); _fullscreen = fullscreen; _scaler = scaler; prepareGfxMode(); SDL_BlitSurface(prev_sclscreen, NULL, _sclscreen, NULL); SDL_FreeSurface(prev_sclscreen); }
void SDLStub::init(const char *title) { SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER); SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); SDL_ShowCursor(SDL_DISABLE); SDL_WM_SetCaption(title, NULL); memset(&_pi, 0, sizeof(_pi)); _offscreen = (uint8 *)malloc(SCREEN_W * SCREEN_H * 2); if (!_offscreen) { error("Unable to allocate offscreen buffer"); } _fullscreen = false; _scaler = 0; prepareGfxMode(); }
void SystemStub_SDL::init(const char *title, uint16 w, uint16 h) { SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK); SDL_ShowCursor(SDL_DISABLE); SDL_WM_SetCaption(title, NULL); memset(&_pi, 0, sizeof(_pi)); _screenW = w; _screenH = h; // allocate some extra bytes for the scaling routines int size_offscreen = (w + 2) * (h + 2) * 2; _offscreen = (uint8 *)malloc(size_offscreen); if (!_offscreen) { error("SystemStub_SDL::init() Unable to allocate offscreen buffer"); } memset(_offscreen, 0, size_offscreen); _fullscreen = false; _scaler = 2; memset(_pal, 0, sizeof(_pal)); prepareGfxMode(); _joystick = NULL; if (SDL_NumJoysticks() > 0) { _joystick = SDL_JoystickOpen(0); } }