Ticket #8159: alt-aspect-ratio2.diff
File alt-aspect-ratio2.diff, 21.9 KB (added by , 21 years ago) |
---|
-
scummvm/README
diff -ur ScummVM-cvs20030618/scummvm/README ScummVM-cvs20030618+hack/scummvm/README
old new 339 339 340 340 scummvm [OPTIONS] [GAME] 341 341 342 [GAME] - Short name of game to load. For example, 'monkey' for 343 Monkey Island. 342 [GAME] - Short name of game to load. For example, 'monkey' for 343 Monkey Island. 344 345 -p<path> - Path to where the game is installed. Default is Cwd. 346 -x[<num>] - Save game slot to load (default: autosave) 347 -f - Full-screen mode. 348 -g<mode> - Select graphics scaler. See below. 349 -e<mode> - Select sound engine. See below. 350 -a - Enable amiga pal conversion, for playing Amiga 351 versions 352 -q<lang> - Select language. See below. 353 -c<num> - Drive to play cd audio from. E.g., 0 is first drive. 354 -m<num> - Set the music volume, 0-255. Default is '192' 355 -o<num> - Set the master volume, 0-255. Default is '192' 356 -s<num> - Set the sfx volume, 0-255. Default is '192' 357 -t<num> - Set music tempo. 50-200. Default is '100' (percent) 358 -n - Disable subtitles. Use with games that have voice. 359 -y - Set talk speed ('yak option'). Default is '60' 360 -l<file> - Load alternate configuration file 361 -w[<file>] - Write configuration file 362 -v - Show version information and exit 363 -z - Display list of games 364 -b<num> - Start in room <num>. 365 -d[<num>] - Set debug verbosity to <num> 366 -u - Dump scripts if a directory called 'dumps' exists in 367 current directory 368 --multi-midi - enable combination Adlib and native MIDI 369 --native-mt32 - true Roland MT-32 (disable GM emulation) 370 --aspect-ratio - enable aspect ratio correction 344 371 345 -p<path> - Path to where the game is installed. Default is Cwd.346 -x[<num>] - Save game slot to load (default: autosave)347 -f - Full-screen mode.348 -g<mode> - Select graphics scaler. See below.349 -e<mode> - Select sound engine. See below.350 -a - Enable amiga pal conversion, for playing Amiga versions351 -q<lang> - Select language. See below.352 -c<num> - Drive to play cd audio from. E.g., 0 is first drive.353 -m<num> - Set the music volume, 0-255. Default is '192'354 -o<num> - Set the master volume, 0-255. Default is '192'355 -s<num> - Set the sfx volume, 0-255. Default is '192'356 -t<num> - Set music tempo. 50-200. Default is '100' (percent)357 -n - Disable subtitles. Use with games that have voice.358 -y - Set talk speed ('yak option'). Default is '60'359 -l<file> - Load alternate configuration file360 -w[<file>] - Write configuration file361 -v - Show version information and exit362 -z - Display list of games363 -b<num> - Start in room <num>.364 -d[<num>] - Set debug verbosity to <num>365 -u - Dump scripts if a directory called 'dumps' exists in366 current directory367 --multi-midi - enable combination Adlib and native MIDI368 --native-mt32 - true Roland MT-32 (disable GM emulation)369 372 370 373 371 374 Hot Keys: … … 380 383 Ctrl-Alt 0-9 - Switch between graphics filters 381 384 Ctrl-Alt b - Switch beetwen bilinear and non-linear 382 385 filtering [OpenGL backend] 383 Ctrl-Alt a - Switch between: [OpenGL backend] 384 - Fit the game in the whole screen (No black borders) 385 - Don't fit the game in the whole screen (Black borders) 386 Ctrl-Alt a - Toggle aspect-ratio correction on/off. 387 Most of the games use a 320x200 pixel 388 resolution, which may look squashed on 389 modern monitors. Aspect-ratio correction 390 stretches the image to use 320x240 pixels 391 instead, or a multiple thereof. 392 386 393 Scumm: 387 394 Ctrl 0-9 and Alt 0-9 - load and save game state 388 395 Ctrl-g - runs in really REALLY fast mode. -
scummvm/backends/sdl/sdl-common.cpp
diff -ur ScummVM-cvs20030618/scummvm/backends/sdl/sdl-common.cpp ScummVM-cvs20030618+hack/scummvm/backends/sdl/sdl-common.cpp
old new 41 41 #define JOY_BUT_SPACE 4 42 42 #define JOY_BUT_F5 5 43 43 44 OSystem *OSystem_SDL_create(int gfx_mode, bool full_screen ) {45 return OSystem_SDL_Common::create(gfx_mode, full_screen );44 OSystem *OSystem_SDL_create(int gfx_mode, bool full_screen, bool aspect_ratio) { 45 return OSystem_SDL_Common::create(gfx_mode, full_screen, aspect_ratio); 46 46 } 47 47 48 OSystem *OSystem_SDL_Common::create(int gfx_mode, bool full_screen ) {48 OSystem *OSystem_SDL_Common::create(int gfx_mode, bool full_screen, bool aspect_ratio) { 49 49 OSystem_SDL_Common *syst = OSystem_SDL_Common::create_intern(); 50 50 51 syst->init_intern(gfx_mode, full_screen );51 syst->init_intern(gfx_mode, full_screen, aspect_ratio); 52 52 53 53 return syst; 54 54 } 55 55 56 void OSystem_SDL_Common::init_intern(int gfx_mode, bool full_screen ) {56 void OSystem_SDL_Common::init_intern(int gfx_mode, bool full_screen, bool aspect_ratio) { 57 57 58 58 _mode = gfx_mode; 59 59 _full_screen = full_screen; 60 _aspect_ratio = aspect_ratio; 60 61 61 62 if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER | SDL_INIT_JOYSTICK) ==-1) { 62 63 error("Could not initialize SDL: %s.\n", SDL_GetError()); … … 129 130 130 131 _screenWidth = w; 131 132 _screenHeight = h; 133 134 if (h != 200) 135 _aspect_ratio = false; 136 132 137 CKSUM_NUM = (_screenWidth * _screenHeight / (8 * 8)); 133 138 if (_dirty_checksums) 134 139 free(_dirty_checksums); … … 576 581 } 577 582 } 578 583 579 // Ctr-Alt-a will change aspect ratio in OpenGL backend584 // Ctr-Alt-a will change aspect ratio 580 585 if (b == (KBD_CTRL|KBD_ALT) && ev.key.keysym.sym=='a') { 581 Property prop; 582 prop.gfx_mode = 11; 583 property(PROP_SET_GFX_MODE, &prop); 584 break; 586 property(PROP_TOGGLE_ASPECT_RATIO, NULL); 587 break; 585 588 } 586 589 587 590 // Ctr-Alt-b will change bilinear filtering in OpenGL backend 588 591 if (b == (KBD_CTRL|KBD_ALT) && ev.key.keysym.sym=='b') { 589 590 591 592 592 Property prop; 593 prop.gfx_mode = 12; 594 property(PROP_SET_GFX_MODE, &prop); 595 break; 593 596 } 594 597 595 598 #ifdef QTOPIA … … 698 701 event->mouse.x /= _scaleFactor; 699 702 event->mouse.y /= _scaleFactor; 700 703 704 if (_aspect_ratio) 705 event->mouse.y = UnAspect(event->mouse.y); 701 706 return true; 702 707 703 708 case SDL_MOUSEBUTTONDOWN: … … 718 723 event->mouse.x /= _scaleFactor; 719 724 event->mouse.y /= _scaleFactor; 720 725 726 if (_aspect_ratio) 727 event->mouse.y = UnAspect(event->mouse.y); 728 721 729 return true; 722 730 723 731 case SDL_MOUSEBUTTONUP: … … 731 739 event->mouse.y = ev.button.y; 732 740 event->mouse.x /= _scaleFactor; 733 741 event->mouse.y /= _scaleFactor; 742 743 if (_aspect_ratio) 744 event->mouse.y = UnAspect(event->mouse.y); 745 734 746 return true; 735 747 736 748 case SDL_JOYBUTTONDOWN: … … 835 847 event->mouse.y = km.y; 836 848 event->mouse.x /= _scaleFactor; 837 849 event->mouse.y /= _scaleFactor; 850 851 if (_aspect_ratio) 852 event->mouse.y = UnAspect(event->mouse.y); 853 838 854 return true; 839 855 840 856 case SDL_VIDEOEXPOSE: -
scummvm/backends/sdl/sdl-common.h
diff -ur ScummVM-cvs20030618/scummvm/backends/sdl/sdl-common.h ScummVM-cvs20030618+hack/scummvm/backends/sdl/sdl-common.h
old new 123 123 virtual int16 RGBToColor(uint8 r, uint8 g, uint8 b); 124 124 virtual void colorToRGB(int16 color, uint8 &r, uint8 &g, uint8 &b); 125 125 126 static OSystem *create(int gfx_mode, bool full_screen );126 static OSystem *create(int gfx_mode, bool full_screenm, bool aspect_ratio); 127 127 128 128 protected: 129 129 OSystem_SDL_Common(); … … 131 131 132 132 static OSystem_SDL_Common *create_intern(); 133 133 134 void init_intern(int gfx_mode, bool full_screen );134 void init_intern(int gfx_mode, bool full_screen, bool aspect_ratio); 135 135 136 136 // unseen game screen 137 137 SDL_Surface *_screen; … … 142 142 int _tmpScreenWidth; 143 143 bool _overlayVisible; 144 144 145 bool _aspect_ratio; 146 145 147 // CD Audio 146 148 SDL_CD *_cdrom; 147 149 int cd_track, cd_num_loops, cd_start_frame, cd_end_frame; -
scummvm/backends/sdl/sdl.cpp
diff -ur ScummVM-cvs20030618/scummvm/backends/sdl/sdl.cpp ScummVM-cvs20030618+hack/scummvm/backends/sdl/sdl.cpp
old new 42 42 SDL_Surface *_hwscreen; // hardware screen 43 43 44 44 ScalerProc *_scaler_proc; 45 uint16 *_render_buffer; 45 46 46 47 virtual void load_gfx_mode(); 47 48 virtual void unload_gfx_mode(); … … 53 54 } 54 55 55 56 OSystem_SDL::OSystem_SDL() 56 : _hwscreen(0), _scaler_proc(0) 57 : _hwscreen(0), _scaler_proc(0), _render_buffer(0) 57 58 { 58 59 } 59 60 … … 147 148 // 148 149 // Create the surface that contains the scaled graphics in 16 bit mode 149 150 // 150 _hwscreen = SDL_SetVideoMode(_screenWidth * _scaleFactor, _screenHeight * _scaleFactor, 16, 151 152 _hwscreen = SDL_SetVideoMode(_screenWidth * _scaleFactor, (_aspect_ratio ? 240 : _screenHeight) * _scaleFactor, 16, 151 153 _full_screen ? (SDL_FULLSCREEN|SDL_SWSURFACE) : SDL_SWSURFACE 152 154 ); 153 155 if (_hwscreen == NULL) 154 156 error("_hwscreen failed"); 157 158 // 159 // Intermediate rendering buffer for aspect ratio correction. 160 // 161 if (_aspect_ratio) 162 _render_buffer = (uint16 *) calloc(sizeof(uint16), _screenWidth * _scaleFactor * 240 * _scaleFactor); 155 163 156 164 // 157 165 // Create the surface used for the graphics in 16 bit before scaling, and also the overlay … … 192 200 SDL_FreeSurface(_hwscreen); 193 201 _hwscreen = NULL; 194 202 } 203 204 if (_render_buffer) { 205 free(_render_buffer); 206 _render_buffer = NULL; 207 } 195 208 196 209 if (_tmpscreen) { 197 210 free(_tmpscreen->pixels); … … 214 227 // Release the HW screen surface 215 228 SDL_FreeSurface(_hwscreen); 216 229 230 if (_render_buffer) { 231 free(_render_buffer); 232 _render_buffer = NULL; 233 } 234 217 235 // Setup the new GFX mode 218 236 load_gfx_mode(); 219 237 … … 281 299 uint32 srcPitch, dstPitch; 282 300 SDL_Rect *last_rect = _dirty_rect_list + _num_dirty_rects; 283 301 284 if (_scaler_proc == Normal1x ) {302 if (_scaler_proc == Normal1x && !_aspect_ratio) { 285 303 SDL_Surface *target = _overlayVisible ? _tmpscreen : _screen; 286 304 for(r = _dirty_rect_list; r != last_rect; ++r) { 287 305 dst = *r; … … 308 326 SDL_LockSurface(_tmpscreen); 309 327 SDL_LockSurface(_hwscreen); 310 328 329 byte *dstPtr = (byte *) (_aspect_ratio ? _render_buffer : _hwscreen->pixels); 330 311 331 srcPitch = _tmpscreen->pitch; 312 332 dstPitch = _hwscreen->pitch; 313 333 … … 319 339 if (dst_h > _screenHeight - dst_y) 320 340 dst_h = _screenHeight - dst_y; 321 341 322 342 dst_y *= _scaleFactor; 323 343 324 325 (byte *)_hwscreen->pixels+ r->x * 2 * _scaleFactor + dst_y * dstPitch, dstPitch, r->w, dst_h);344 _scaler_proc((byte *)_tmpscreen->pixels + (r->x * 2 + 2) + (r->y + 1) * srcPitch, srcPitch, 345 dstPtr + r->x * 2 * _scaleFactor + dst_y * dstPitch, dstPitch, r->w, dst_h); 326 346 } 327 347 328 348 r->x *= _scaleFactor; 329 349 r->y = dst_y; 330 350 r->w *= _scaleFactor; 331 351 r->h = dst_h * _scaleFactor; 332 }333 352 353 if (_aspect_ratio) { 354 r->h = Stretch240((uint8 *) _render_buffer, dstPitch, (uint8 *) _hwscreen->pixels, dstPitch, r->w, r->h, r->x, r->y); 355 r->y = Aspect(r->y); 356 } 357 } 334 358 SDL_UnlockSurface(_tmpscreen); 335 359 SDL_UnlockSurface(_hwscreen); 336 360 } … … 339 363 // This is necessary if shaking is active. 340 364 if (_forceFull) { 341 365 _dirty_rect_list[0].y = 0; 342 _dirty_rect_list[0].h = _screenHeight* _scaleFactor;366 _dirty_rect_list[0].h = (_aspect_ratio ? 240 : _screenHeight) * _scaleFactor; 343 367 } 344 368 345 369 // Finally, blit all our changes to the screen … … 374 398 hotswap_gfx_mode(); 375 399 376 400 return 1; 401 } else if (param == PROP_TOGGLE_ASPECT_RATIO) { 402 if (_screenHeight == 200) { 403 assert(_hwscreen != 0); 404 _aspect_ratio ^= true; 405 hotswap_gfx_mode(); 406 } 377 407 } 378 408 379 409 return OSystem_SDL_Common::property(param, value); -
scummvm/backends/sdl/sdl_gl.cpp
diff -ur ScummVM-cvs20030618/scummvm/backends/sdl/sdl_gl.cpp ScummVM-cvs20030618+hack/scummvm/backends/sdl/sdl_gl.cpp
old new 107 107 108 108 void OSystem_SDL_OpenGL::load_gfx_mode() { 109 109 uint32 Rmask, Gmask, Bmask, Amask; 110 111 // HACK: The OpenGL backend has its own handling of aspect ratio 112 _aspect_ratio = false; 113 110 114 // I have to force 16 bit color depth with 565 ordering 111 115 // SDL_SetVideoMode sometimes doesn't accept your color depth definition 112 116 Rmask = 0xF800; // 5 … … 520 524 */ 521 525 522 526 uint32 OSystem_SDL_OpenGL::property(int param, Property *value) { 527 Property prop; 523 528 int i; 524 529 530 if (param == PROP_TOGGLE_ASPECT_RATIO) { 531 param = PROP_SET_GFX_MODE; 532 prop.gfx_mode = 12; 533 value = ∝ 534 } 535 525 536 if (param == PROP_TOGGLE_FULLSCREEN) { 526 537 if (!_usingOpenGL) 527 538 assert(_hwscreen != 0); -
scummvm/common/gameDetector.cpp
diff -ur ScummVM-cvs20030618/scummvm/common/gameDetector.cpp ScummVM-cvs20030618+hack/scummvm/common/gameDetector.cpp
old new 50 50 "Syntax:\n" 51 51 "\tscummvm [-v] [-d[<num>]] [-n] [-b<num>] [-t<num>] [-s<num>] [-p<path>] [-m<num>] [-f] game\n" 52 52 "Flags:\n" 53 "\t-p<path> - look for game in <path>\n"54 "\t-x[<num>] - load this savegame (default: 0 - autosave)\n"55 "\t-f - fullscreen mode\n"56 "\t-g<mode> - graphics mode (normal,2x,3x,2xsai,super2xsai,supereagle,advmame2x,advmame3x,tv2x,dotmatrix)\n"57 "\t-e<mode> - set music engine (see README for details)\n"58 "\t-a - specify game is amiga version\n"59 "\t-q<lang> - specify language (en,de,fr,it,pt,es,jp,zh,kr,hb)\n"53 "\t-p<path> - look for game in <path>\n" 54 "\t-x[<num>] - load this savegame (default: 0 - autosave)\n" 55 "\t-f - fullscreen mode\n" 56 "\t-g<mode> - graphics mode (normal,2x,3x,2xsai,super2xsai,supereagle,advmame2x,advmame3x,tv2x,dotmatrix)\n" 57 "\t-e<mode> - set music engine (see README for details)\n" 58 "\t-a - specify game is amiga version\n" 59 "\t-q<lang> - specify language (en,de,fr,it,pt,es,jp,zh,kr,hb)\n" 60 60 "\n" 61 "\t-c<num> - use cdrom <num> for cd audio\n"62 "\t-m<num> - set music volume to <num> (0-255)\n"63 "\t-o<num> - set master volume to <num> (0-255)\n"64 "\t-s<num> - set sfx volume to <num> (0-255)\n"65 "\t-t<num> - set music tempo (50-200, default 100%%)\n"61 "\t-c<num> - use cdrom <num> for cd audio\n" 62 "\t-m<num> - set music volume to <num> (0-255)\n" 63 "\t-o<num> - set master volume to <num> (0-255)\n" 64 "\t-s<num> - set sfx volume to <num> (0-255)\n" 65 "\t-t<num> - set music tempo (50-200, default 100%%)\n" 66 66 "\n" 67 "\t-n - no subtitles for speech\n"68 "\t-y - set text speed (default: 60)\n"67 "\t-n - no subtitles for speech\n" 68 "\t-y - set text speed (default: 60)\n" 69 69 "\n" 70 "\t-l<file> - load config file instead of default\n"70 "\t-l<file> - load config file instead of default\n" 71 71 #if defined(UNIX) 72 "\t-w[<file>] - write to config file [~/.scummvmrc]\n"72 "\t-w[<file>] - write to config file [~/.scummvmrc]\n" 73 73 #else 74 "\t-w[<file>] - write to config file [scummvm.ini]\n"74 "\t-w[<file>] - write to config file [scummvm.ini]\n" 75 75 #endif 76 "\t-v - show version info and exit\n"77 "\t-z - display list of games\n"76 "\t-v - show version info and exit\n" 77 "\t-z - display list of games\n" 78 78 "\n" 79 "\t-b<num> - start in room <num>\n"80 "\t-d[<num>] - enable debug output (debug level [1])\n"81 "\t-u - dump scripts\n"79 "\t-b<num> - start in room <num>\n" 80 "\t-d[<num>] - enable debug output (debug level [1])\n" 81 "\t-u - dump scripts\n" 82 82 "\n" 83 "\t--multi-midi - enable combination Adlib and native MIDI\n" 84 "\t--native-mt32 - true Roland MT-32 (disable GM emulation)\n" 83 "\t--multi-midi - enable combination Adlib and native MIDI\n" 84 "\t--native-mt32 - true Roland MT-32 (disable GM emulation)\n" 85 "\t--aspect-ratio - enable aspect ratio correction\n" 85 86 ; 86 87 #endif 87 88 // This contains a pointer to a list of all supported games. … … 148 149 149 150 GameDetector::GameDetector() { 150 151 _fullScreen = false; 152 _aspectRatio = false; 151 153 152 154 _use_adlib = false; 153 155 … … 245 247 } 246 248 247 249 _fullScreen = g_config->getBool("fullscreen", _fullScreen); 250 _aspectRatio = g_config->getBool("aspect_ratio", _aspectRatio); 248 251 249 252 if ((val = g_config->get("gfx_mode"))) 250 253 if ((_gfx_mode = parseGraphicsMode(val)) == -1) { … … 453 456 } else if (!strcmp (s, "native-mt32")) { 454 457 _native_mt32 = true; 455 458 g_config->setBool ("native_mt32", true); 459 } else if (!strcmp (s, "aspect-ratio")) { 460 _aspectRatio = true; 461 g_config->setBool ("aspect_ratio", true); 456 462 } else { 457 463 goto ShowHelpAndExit; 458 464 } … … 673 679 return OSystem_PALMOS_create(_gfx_mode); 674 680 #else 675 681 /* SDL is the default driver for now */ 676 return OSystem_SDL_create(_gfx_mode, _fullScreen );682 return OSystem_SDL_create(_gfx_mode, _fullScreen, _aspectRatio); 677 683 #endif 678 684 } 679 685 -
scummvm/common/gameDetector.h
diff -ur ScummVM-cvs20030618/scummvm/common/gameDetector.h ScummVM-cvs20030618+hack/scummvm/common/gameDetector.h
old new 110 110 const String& getGameName(void); 111 111 112 112 bool _fullScreen; 113 bool _aspectRatio; 113 114 114 115 bool _use_adlib; 115 116 -
scummvm/common/scaler.cpp
diff -ur ScummVM-cvs20030618/scummvm/common/scaler.cpp ScummVM-cvs20030618+hack/scummvm/common/scaler.cpp
old new 632 632 q += nextlineDst << 1; 633 633 } 634 634 } 635 636 // FIXME: Implement bilinear filtering instead of stupid pixel doubling. 637 // 638 // The theory of bilinear filtering: 639 // 640 // For each destination pixel, calculate its exact scaled position in the 641 // source image. It is unlikely that it will correspond to any one picture 642 // so its colour is interpolated from the four surrounding pixels, like so: 643 // 644 // c0| fx |c1 645 // --+-----+---+-- 646 // | | | 647 // fy| | | 648 // +-----X | 649 // | | 650 // --+---------+-- 651 // c2| |c3 652 // 653 // The colour c at X is 654 // 655 // c = c0 * (1-fx) * (1-fy) 656 // + c1 * fx * (1-fy) 657 // + c2 * (1-fx) * fy 658 // + c3 * fx * fy 659 // 660 // We only stretch the height so fx is always 0, which leads to the following, 661 // simplified formula: 662 // 663 // c = c0 * (1-fy) 664 // + c2 * fy 665 // 666 // And we always stretch by the same proportions, so we should be able to 667 // pre-calculate fy. 668 669 int Stretch240(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, 670 uint32 dstPitch, int width, int height, int srcX, int srcY) { 671 int new_height = 0; 672 int y; 673 674 srcPtr = srcPtr + srcX * 2 + srcY * dstPitch; 675 dstPtr = dstPtr + srcX * 2 + Aspect(srcY) * dstPitch; 676 677 for (y = srcY; y < srcY + height; y++) { 678 memcpy(dstPtr, srcPtr, width * 2); 679 new_height++; 680 681 // This is chosen specifically so that the destination Y 682 // coordinate will always equal Aspect(y) above. 683 684 if ((y % 5) == 3) { 685 dstPtr += dstPitch; 686 new_height++; 687 memcpy(dstPtr, srcPtr, width * 2); 688 } 689 690 srcPtr += srcPitch; 691 dstPtr += dstPitch; 692 } 693 694 return new_height; 695 } -
scummvm/common/scaler.h
diff -ur ScummVM-cvs20030618/scummvm/common/scaler.h ScummVM-cvs20030618+hack/scummvm/common/scaler.h
old new 41 41 DECLARE_SCALER(TV2x); 42 42 DECLARE_SCALER(DotMatrix); 43 43 44 FORCEINLINE int Aspect(int y) { 45 return y + (y + 1) / 5; 46 } 47 48 FORCEINLINE int UnAspect(int y) { 49 return (y * 5 + 3) / 6; 50 } 51 52 extern int Stretch240(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, 53 uint32 dstPitch, int width, int height, int srcX, 54 int srcY); 44 55 45 56 enum { 46 57 GFX_NORMAL = 0, -
scummvm/common/system.h
diff -ur ScummVM-cvs20030618/scummvm/common/system.h ScummVM-cvs20030618+hack/scummvm/common/system.h
old new 94 94 PROP_GET_SAMPLE_RATE = 6, 95 95 PROP_GET_FULLSCREEN = 7, 96 96 PROP_GET_FMOPL_ENV_BITS = 8, 97 PROP_GET_FMOPL_EG_ENT = 9 97 PROP_GET_FMOPL_EG_ENT = 9, 98 PROP_TOGGLE_ASPECT_RATIO = 10 98 99 }; 99 100 union Property { 100 101 const char *caption; … … 363 364 /* Factory functions. This means we don't have to include the headers for 364 365 * all backends. 365 366 */ 366 extern OSystem *OSystem_SDL_create(int gfx_driver, bool full_screen );367 extern OSystem *OSystem_SDL_create(int gfx_driver, bool full_screen, bool aspect_ratio); 367 368 extern OSystem *OSystem_NULL_create(); 368 369 extern OSystem *OSystem_MorphOS_create(int game_id, int gfx_driver, bool full_screen); 369 370 extern OSystem *OSystem_Dreamcast_create();