Commit graph

38 commits

Author SHA1 Message Date
Colin Snover
6e157429b7 BACKENDS: Fix window sizing of games that switch between multiple resolutions 2017-10-07 12:30:29 -05:00
Johannes Schickel
af727afe0c OPENGL: Simplify context type setting. 2016-03-16 20:29:25 +01:00
Johannes Schickel
da062ad1ea OPENGLSDL: Try to use GL(ES) context SDL2 defaults to. 2016-03-16 20:29:25 +01:00
Johannes Schickel
8f3783da09 OPENGL: Add functionality to query OpenGL functions on runtime.
This can and will be used for future extension usage support.

Tizen changes have been untested.
2016-03-16 20:29:24 +01:00
Johannes Schickel
fe2ee9ecf5 OPENGL: Refactor screen refresh handling.
Subclasses of OpenGLGraphicsManager are now supposed to supply a refreshScreen
function which handles actual screen updating (for example, buffer swapping).
2015-12-12 22:31:35 +01:00
Johannes Schickel
627d766325 SDL: Add basic abstraction class for the SDL window. 2015-02-16 01:03:29 +01:00
Johannes Schickel
8530997fff SDL: Add experimental support for SDL2.
This is based upon skristiansson's change set to make ScummVM work with SDL2.
2015-01-25 20:23:25 +01:00
Johannes Schickel
6e46e9dfaf SDL: Clean up graphics manager switching slighty.
Sadly this also requires us to extend GraphicsManager for this SDL specific
feature. However, since that's only used in the SDL backend and Tizen it
should be fine for now...
2013-10-23 22:58:34 +02:00
Johannes Schickel
5ce830b976 SDL: Add a OpenGL SDL backend and hook it into the SDL backend.
The hooking code is nearly exactly the old hooking code. Only the OpenGL SDL
creation has been adapted since it uses a different constructor now.
2013-10-19 22:14:24 +02:00
Johannes Schickel
8a6e57cba1 BACKENDS: Remove OpenGL and OpenGL SDL backend.
This breaks our Tizen port.
2013-10-05 00:20:02 +02:00
Johannes Schickel
04ab0e58b4 SDL: Take advantage of SdlGraphicsManager.
This gets rid of the hacks, where SdlEventSource added events with custom type
numbers to pass SDL_VIDEOEXPOSE and SDL_VIDEORESIZE to the graphics manager.

Furthermore it get rids of the uninituitive and hard to trace way of assigning
the proper mouse coordinates to mouse related events. Formerly it passed the
real screen coordinates through the even dispatching api to the graphics
manager (at least hopefully ;-) and let that handle creating a new event with
the proper coordinates. Now instead SdlEventSource handles the proper
coordinate setup itself.

Since this is a behavior change and I can not test all the SDL based small
devices ports this commit might break compilation for them and more serve it
might also break mouse position behavior. If any of that occurs I am sorry
about it.
2011-08-09 00:03:11 +02:00
Johannes Schickel
0630a88a04 SDL: Let SDL based graphics managers inherit from SdlGraphicsManager.
This also adapts port I can not test (not even the compilation). So if this
breaks anything I am sorry about it.
2011-08-09 00:03:11 +02:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Johannes Schickel
83b199e921 OPENGL: Move setFullscreenMode to OpenGLGraphicsManager. 2011-03-17 21:20:20 +01:00
Johannes Schickel
8d87a460b0 OPENGLSDL: Handle active fullscreen mode OPENGLSDL internal. 2011-03-17 21:20:20 +01:00
Johannes Schickel
e08683d939 OPENGL: Refactor warpMouse.
Now subclasses will not need to worry about the scaling logic themselves, but
just need to implement setInternalMousePosition, which should handles setting
the system's mouse coordinates.
2011-03-17 17:37:42 +01:00
Jordi Vilalta Prat
5884f5a7ac OPENGLES: Fix the projection matrix and the includes.
svn-id: r54756
2010-12-03 19:43:27 +00:00
Max Horn
4e0e406181 SDL: Move #include <SDL.h> into a special wrapper file
svn-id: r54572
2010-11-29 16:16:50 +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
27beca0e8c OPENGL: Add Ctrl-Shift-Enter hotkey for backward switching fullscreen modes.
svn-id: r52310
2010-08-23 20:28:04 +00:00
Alejandro Marzini
942e104e33 OPENGL: Fix issue with resize events generated after going out of fullscreen mode.
svn-id: r52248
2010-08-20 22:56:13 +00:00
Alejandro Marzini
610f041930 OPENGL: Remove unnecessary best fullscreen mode detection code.
svn-id: r52056
2010-08-13 05:16:42 +00:00
Alejandro Marzini
5439b173b3 OPENGL: Prioritize desktop resolution as default fullscreen mode.
svn-id: r51674
2010-08-03 02:10:55 +00:00
Alejandro Marzini
4d8f8195b8 OPENGL: Improve fullscreen mode selection. Add warpMouse adjusting.
svn-id: r51603
2010-08-02 03:03:28 +00:00
Alejandro Marzini
dd7bcc051f OPENGL: Switch to native resolution fullscreen as default.
svn-id: r51560
2010-07-31 23:50:54 +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
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
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
302400a701 OPENGL: Implement fullscreen mode.
svn-id: r51049
2010-07-20 04:32:31 +00:00
Alejandro Marzini
014d7b791c OPENGL: Fix SDL OpenGL context not resizing well on Linux.
svn-id: r51047
2010-07-20 00:21:17 +00:00
Alejandro Marzini
6f70a303bc OPENGL: Add basic scaler handle.
svn-id: r51016
2010-07-19 05:36:10 +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
f53028d4a2 Replaced the extra SDL functions added to GraphicsManager with an EventObserver in SdlGraphicsManager.
svn-id: r50900
2010-07-15 01:21:20 +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
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
386785e2b8 Added OpenGLSDLGraphicsManager.
svn-id: r50768
2010-07-09 19:45:56 +00:00