Ticket #8115: sdl_gl.2.diff

File sdl_gl.2.diff, 2.2 KB (added by SF/luke_br, 22 years ago)

GFX mode switching

Line 
134d33
2< int _screenStart = 20;
338c37
4< OSystem_SDL_Normal() : sdl_tmpscreen(0), sdl_hwscreen(0), _overlay_visible(false) {}
5---
6> OSystem_SDL_Normal() : sdl_tmpscreen(0), sdl_hwscreen(0), _overlay_visible(false) { _glScreenStart = 0; }
757a57,58
8> int gl_flags;
9> int _glScreenStart;
1059a61
11>
12225d226
13< // TMP_SCREEN_WIDTH = (_screenWidth);
14239,240c240,244
15< int gl_flags = FB2GL_320 | FB2GL_RGBA | FB2GL_16BIT;
16< if (_full_screen) gl_flags |= (FB2GL_FS);
17---
18> gl_flags = FB2GL_320 | FB2GL_RGBA | FB2GL_16BIT;
19> if (_full_screen) {
20> gl_flags |= (FB2GL_FS);
21> _glScreenStart = 0;
22> }
23242c246
24< fb2gl.init(640,480,0,_screenStart? 15: 70,gl_flags);
25---
26> fb2gl.init(640,480,0,_glScreenStart? 15: 70,gl_flags);
27264c268
28< 256-_screenHeight-_screenStart,
29---
30> 256-_screenHeight-_glScreenStart,
31274c278
32< tmpBlackRect.h = 256-_screenHeight-_screenStart;
33---
34> tmpBlackRect.h = 256-_screenHeight-_glScreenStart;
35293,297d296
36< if (sdl_hwscreen) {
37< SDL_FreeSurface(sdl_hwscreen);
38< sdl_hwscreen = NULL;
39< }
40<
41309c308
42< SDL_Rect blackrect = {0, _screenStart, _screenWidth, _newShakePos+_screenStart};
43---
44> SDL_Rect blackrect = {0, _glScreenStart, _screenWidth, _newShakePos+_glScreenStart};
45364c363
46< _currentShakePos+_screenStart);
47---
48> _currentShakePos+_glScreenStart);
49368c367
50< fb2gl.blit16(tmpSurface,1,&tmpBlackRect,0,_screenHeight+_screenStart);
51---
52> fb2gl.blit16(tmpSurface,1,&tmpBlackRect,0,_screenHeight+_glScreenStart);
53403d401
54< // assert(sdl_hwscreen != 0);
55405,410c403
56<
57< // if (!SDL_WM_ToggleFullScreen(sdl_hwscreen)) {
58< // if ToggleFullScreen fails, achieve the same effect with hotswap gfx mode
59< // hotswap_gfx_mode();
60<
61< // }
62---
63>
64416a410,426
65> else if (param == PROP_SET_GFX_MODE) {
66> if (value->gfx_mode==0) {
67> fb2gl.init(0,0,0,15,gl_flags);
68> _glScreenStart = 20;
69> SDL_FillRect(tmpSurface,&tmpBlackRect,0);
70> fb2gl.blit16(tmpSurface,1,&tmpBlackRect,0,0);
71> }
72> else {
73> fb2gl.init(0,0,0,70,gl_flags);
74> _glScreenStart = 0;
75> }
76> SDL_Rect full = {0,0,_screenWidth,_screenHeight};
77> fb2gl.blit16(sdl_tmpscreen,1,&full,0,_glScreenStart);
78> fb2gl.display();
79> return 1;
80> }
81>