87 Commits

Author SHA1 Message Date
Johannes Schickel
9954eb5a99 OPENGL: Get rid of adjustMouseEvent.
Rather than that I introduced a function which converts hardware screen
coordinates to overlay / game screen coordinates.

The logic which converts mouse movement events with hardware screen
coordinates to overlay / game screen coordinates is now inside notifyEvent.

This is still broken design, since one should not abuse an observer for that.
2011-02-19 20:46:47 +01:00
Johannes Schickel
3aba54b8b0 OPENGL: Fix documentation of OpenGLGraphicsManager::MousePos. 2011-02-19 20:46:47 +01:00
Max Horn
ab039812e7 COMMON: OSystem now has a PaletteManager
svn-id: r55806
2011-02-07 17:52:38 +00:00
Johannes Schickel
d184686189 OPENGL: Fix OSD support by only updating the OSD texture in internUpdateScreen.
This actually still has the drawback that if one calls OSystem::updateScreen
from the sound thread that it might crash. Hopefully no code does this though...

svn-id: r54830
2010-12-08 01:53:20 +00:00
Jordi Vilalta Prat
f1d961a35e OPENGL: Some slight formatting fixes.
svn-id: r54755
2010-12-03 19:16:23 +00:00
Alejandro Marzini
9136724110 SDL/OPENGL: Fix backend initialization when building with ENABLE_VKEYBD.
svn-id: r52503
2010-09-03 04:23:01 +00:00
Alejandro Marzini
30cbd35e74 OPENGL: Fix enable aspect ratio feature.
svn-id: r52502
2010-09-03 03:47:05 +00:00
Alejandro Marzini
19bf2b9eb6 OPENGL: Improve scaling, aspect ratio correction and display(GFX) modes.
Now the previous aspect ratio modes are handled as GFX modes. The previous
GFX modes were for scaling, but are removed now. A new 4/3 display mode
added. Added Ctrl-Shift-A for backward switching through display modes, and
Ctrl-Alt-<number key> for switching to a specific GFX mode.
Window resizing now is available for all display modes, and will
automatically change the scale factor as well as maintain the aspect ratio
when needed.

svn-id: r52501
2010-09-03 03:23:46 +00:00
Alejandro Marzini
a3711160ef OPENGL: Remove unnecessary aspect ratio corrections, and add "Original Size" correction. Rename _transactionDetails.needHotswap to _transactionDetails.needRefresh.
svn-id: r52054
2010-08-13 04:48:58 +00:00
Alejandro Marzini
7b898648bc OPENGL: Add 5/3 and 5/4 aspect ratio corrections.
svn-id: r51806
2010-08-06 21:39:54 +00:00
Alejandro Marzini
f97809a9a6 OPENGL: Improve aspect ratio correction mode selection.
svn-id: r51752
2010-08-05 06:20:44 +00:00
Alejandro Marzini
498c17655d OPENGL: Refresh OpenGL textures on all loadGFX() calls.
OpenGL context may be destroyed after calling SDL_SetVideoMode, so it is better to always recreate the textures.

svn-id: r51675
2010-08-03 02:30:36 +00:00
Alejandro Marzini
41204282ec OPENGL: By default only enable None, Conserve and 4/3 aspect ratio corrections.
svn-id: r51599
2010-08-01 22:53:18 +00:00
Alejandro Marzini
7f8e7fc29d OPENGL: Remove use of floats for aspect ratio correction. Improved fullscreen toggling default mode selection.
Floats can lead to calculation errors because, now uints are used and aspect ratio values are handled with a x 10000 scale.
When entering fullscreen, it will be looked for the fullscreen mode with the smallest metric that mantains the game screen aspect ratio.

svn-id: r51563
2010-08-01 02:26:20 +00:00
Alejandro Marzini
7dbe257da8 OPENGL: Add support for BGR and rgb(a) reversed formats (Not available for GLES). General cleanup and commenting.
svn-id: r51559
2010-07-31 22:54:10 +00:00
Alejandro Marzini
7b070bbef8 SDL/OPENGL: Add ability to switch between SDL and OpenGL graphics managers.
OSystem_SDL will create a merged list of all graphics modes from SDL and OpenGL. When the user changes the graphics mode in options and restarts ScummVM should switch to that graphics mode in the corresponding graphics manager.

svn-id: r51493
2010-07-30 03:31:05 +00:00
Alejandro Marzini
9daa1c7f93 OSYSTEM: Add resetGraphicsScale() method.
This fixes a hack for resetting the graphics scale to x1 when starting games that have a large screen size. The SDL graphics manager should now scale back to x1 without changing the current scaler in use, as well as the OpenGL graphics manager.

svn-id: r51492
2010-07-30 03:06:57 +00:00
Alejandro Marzini
2636ac4f36 OPENGL: Implement aspect ratio support and toggling. Improve fullscreen switching. Fix cursor scaling bug.
Now the hotkey Ctrl-Alt-Enter will switch between all available fullscreen modes. Alt-Enter will only switch to the best mode available, and exit fullscreen mode if already on it.
The different aspect ratios can be switched with Ctrl-Alt-A. The normal mode will stretch the contents to the screen, while other modes will stretch only one dimension to the screen size, and maintain the aspect ratio for the other dimension.

svn-id: r51346
2010-07-27 07:30:56 +00:00
Alejandro Marzini
591b371f2b OPENGL: Add shake effect.
svn-id: r51344
2010-07-27 03:16:10 +00:00
Alejandro Marzini
141e101841 Formatted spaces.
svn-id: r51300
2010-07-26 06:58:33 +00:00
Alejandro Marzini
738a9e78d8 OPENGL: Implement saveScreenshot().
svn-id: r51299
2010-07-26 06:52:58 +00:00
Alejandro Marzini
856c6a18af OPENGL: Add OSD message.
svn-id: r51295
2010-07-26 06:03:55 +00:00
Alejandro Marzini
19ce960868 OPENGL: Add cursor scaling.
svn-id: r51291
2010-07-26 04:17:37 +00:00
Alejandro Marzini
b89412d7e4 OPENGL: Redesign blitting system. Add basics for aspect correction.
Removed the extra surface in GLTexture. Now there are copies of the texture data in their original format (so engine can get the original data when lockScreen or grabOverlay is called). This copies will be updated when the engine calls a function that modifies the game screen/overlay, and the textures will be marked as dirty. When updating screen, the textures will be updated from the copies data if they are dirty.

svn-id: r51234
2010-07-24 05:54:51 +00:00
Alejandro Marzini
ef880dd5da OPENGL: Add antialiasing, hotkey: ctrl+alt+f. Fixed minor bugs.
svn-id: r51146
2010-07-22 15:36:50 +00:00
Alejandro Marzini
302400a701 OPENGL: Implement fullscreen mode.
svn-id: r51049
2010-07-20 04:32:31 +00:00
Alejandro Marzini
6f70a303bc OPENGL: Add basic scaler handle.
svn-id: r51016
2010-07-19 05:36:10 +00:00
Alejandro Marzini
492569a7a2 Improved cursor drawing.
svn-id: r50976
2010-07-18 03:25:58 +00:00
Alejandro Marzini
0e748c5a97 Added basic cursor drawing.
svn-id: r50954
2010-07-16 23:50:46 +00:00
Alejandro Marzini
9ef2fc4744 Fixed doing OpenGL calls before a graphical context was created.
svn-id: r50905
2010-07-15 04:01:41 +00:00
Alejandro Marzini
84ceae9328 Check if USE_OPENGL is defined for compiling OpenGL code.
svn-id: r50842
2010-07-13 05:38:10 +00:00
Alejandro Marzini
609e08d5db Merged from trunk, from Rev 49499 to HEAD
svn-id: r50840
2010-07-13 04:31:15 +00:00
Alejandro Marzini
8b6a670391 OpenGL manager: Implemented PixelFormat functions. Implemented GFX methods. Changed how GLTexture determines its format.
svn-id: r50811
2010-07-12 06:00:19 +00:00
Matthew Hoops
a1161feed2 Fix compile on Mac OS X.
svn-id: r50801
2010-07-11 16:11:28 +00:00
Alejandro Marzini
4dca7c7e02 Moved getGraphicsManager() from OSystem_SDL to ModularBackend. Moved public SDL graphics manager functions to graphics manager (Allowing OpenGLSdlGraphicsMaanger to be used with other SDL managers easily). Removed BaseSdlGraphicsManager. Implemented in the opengl manager basic screen functions.
svn-id: r50796
2010-07-11 04:32:24 +00:00
Alejandro Marzini
85034dc730 Added BaseSdlGraphicsManager. Added GLTexture.
svn-id: r50795
2010-07-10 22:47:29 +00:00
Alejandro Marzini
30136589f0 Base class for OpenGL graphics manager.
svn-id: r50668
2010-07-05 03:21:48 +00:00