Commit Graph
68 Commits
Author SHA1 Message Date
Paweł Kołodziejski e70fbbee21 MYST3: Janitorial 2022-06-13 00:44:39 +02:00
Le Philousophe 1e4696f6d0 OPENGL: Rework renderer selection code
Add a class to group all renderer related (static) functions.
This allows to have getBestMatchingAvailableType inline in all engines.

The matching code is now shared between all engines but allows
customization for engines needing it (Grim, WME3D).

The new code takes runtime availability of features to select the
best renderer.
It avoid crashes when user choosed OpenGL but GLES2 is used.
2022-04-03 22:17:19 +02:00
Paweł Kołodziejski 20cb0ae228 ALL: Cleanup ResidualVM -> ScummVM 2021-12-26 21:19:38 +01:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Cameron Cawley d18d321092 MYST3: Split TinyGLTexture into two separate subclasses 2021-12-05 20:28:23 +01:00
Cameron Cawley 9bd82872bd MYST3: Replace the Renderer::freeTexture function 2021-12-05 20:28:23 +01:00
Paweł Kołodziejski 9e72366b5f ENGINES: Allow to build without TINYGL enabled 2021-12-05 00:08:53 +01:00
Cameron Cawley 4d206e5286 GRAPHICS: Clean up OpenGL defines (#3551) 2021-11-18 00:56:21 +01:00
Paweł Kołodziejski 862bd7d05f GRAPHICS: Move FrameLimiter from engines to common graphics code 2021-10-27 23:11:20 +02:00
Paweł Kołodziejski 749c3ec9e1 ENGINES: If backend is not capable support opengl in game do not try create opengl renderer 2020-10-19 06:52:31 +02:00
Paweł Kołodziejski a37173807f CONFIGURE: More work on opengl flags 2020-10-14 18:37:17 +02:00
Cameron Cawley 03e8f0ed2d ENGINES: Remove code for toggling fullscreen mode (#2523)
* GRIM: Remove code for toggling fullscreen mode

* MYST3: Remove code for toggling fullscreen mode

* STARK: Remove code for toggling fullscreen mode

* ENGINES: Remove the fullscreen argument from initGraphics3d()
2020-10-14 07:49:28 +02:00
Paweł Kołodziejski 42d55b2436 ENGINES: Drop accel3d param for initGraphics3d() 2020-10-13 22:49:07 +02:00
Cameron Cawley b19857bd8c ENGINES: Use ScummVM's 2D API for blitting the TinyGL framebuffer (#2516)
* GRIM: Use ScummVM's 2D API for blitting the TinyGL framebuffer

* MYST3: Use ScummVM's 2D API for blitting the TinyGL framebuffer

* ICB: Use ScummVM's 2D API for blitting the TinyGL framebuffer
2020-10-13 22:12:10 +02:00
Paweł Kołodziejski 264f6f037b ALL: Separate USE_OPENGL and USE_OPENG_GAME. Exclude WME3D for GLES2 for now. 2020-10-10 14:12:07 +02:00
SupSuper 9340135b03 MYST3: Remove obsolete Windows headers 2020-10-09 21:25:24 +01:00
Pawel Kolodziejski d8f2040dba ALL: Drop setupScreen API, use new initGraphics3d from engine API.
Enabled system API for begin/end gfx transactions, initSize, setGraphicsMode.
Function setGraphicsMode will use optional params to trigger 3d rendering
and switch to proper SDL Gfx manager.
2020-10-02 19:14:19 +02:00
Bastien Bouclet 056912f4b2 MYST3: Improve the node transition performance
On 4K displays, taking a screenshot and processing the pixels on the CPU
was taking a noticeable amount of time. Now the screenshot is copied
directly to a texture without going through the CPU.
2019-11-08 14:50:20 +01:00
Bastien Bouclet f5319ce6e6 MYST3: Allow the widescreen mod to work in windowed mode 2018-08-11 11:17:40 +02:00
Bastien Bouclet 125ccf3b4d MYST3: Implement fullscreen toggling 2017-09-01 09:26:57 +02:00
Bastien Bouclet b97e49c3ee MYST3: Change surface data to always be in the RGBA byte order
This eases uploading the textures to OpenGL, and will hopefully fix
endianness issues.
2017-08-20 09:36:31 +02:00
Bastien Bouclet ee1b28ffdf MYST3: Use the engine_speed setting to contigure the frame limiter 2017-05-26 06:42:49 +02:00
Bastien Bouclet f332f90e3a MYST3: Disable the frame limiter when V-Sync is enabled 2016-11-20 13:14:03 +01:00
Bastien Bouclet e7bf8d1948 MYST3: Remove support for disabling the aspect ratio correction
It's not working perfectly, and the widescreen mod provides a much better
experience for people wanting their screens filled with colorful pixels.
2016-10-29 08:06:01 +02:00
Bastien Bouclet 19a8b11d85 MYST3: Initial version of the widescreen mod 2016-10-16 09:35:40 +02:00
Bastien Bouclet 5bb96c937a MYST3: Start moving some of the frame viewport code the the Scene class 2016-10-16 09:28:08 +02:00
Bastien Bouclet 7174ccc81d MYST3: Remove the Renderer interface 2016-07-15 14:50:41 +02:00
Bastien Bouclet 6cb71cd52a MYST3: Add a frame limiter for better framerate control 2016-07-13 07:39:34 +02:00
Bastien Bouclet 5024daec23 MYST3: Check at runtime that shaders are available 2016-02-06 08:53:41 +01:00
Bastien Bouclet 8a4bada6b9 ENGINES: Also build the legacy OpenGL renderer when enabling shaders 2015-12-29 08:05:49 +01:00
Bastien Bouclet 8d5406720c ENGINES: Add a new 'renderer' option to replace 'soft_renderer'
'soft_renderer' was a bool and was not useful to select a renderer
in a list with more than two values.
2015-12-29 07:55:27 +01:00
Bastien Bouclet 5b242db8e9 MYST3: Implement the Xbox load and save menu specificities 2015-04-19 11:46:02 +02:00
Bastien Bouclet 90229683ae MYST3: Don't compute the water effects for currently invisible cube faces 2015-03-22 15:57:16 +01:00
Bastien Bouclet 6ad12e7ce6 MYST3: Use the same cube vertex data for all the renderers 2015-03-22 15:57:16 +01:00
Bastien Bouclet 253ed5d4b5 MYST3: Unify matrix handling for all the renderers 2015-03-22 15:57:15 +01:00
Bastien Bouclet 23da0ef0c3 MYST3: Fix the projection matrix initialization 2015-03-22 15:57:15 +01:00
Bastien Bouclet aabc7bc34f MYST3: Allow disabling aspect ratio correction 2014-12-04 19:38:04 +01:00
Bastien Bouclet 6b29c6f1f7 MYST3: Don't call a child class implementation from a destructor 2014-09-13 11:44:19 +02:00
Pawel Kolodziejski cfef964848 MYST3: fix compilation warnings 2014-09-13 11:11:17 +02:00
Bastien Bouclet 922d48f991 MYST3: Render the transitions on the GPU 2014-09-01 10:51:43 +02:00
Bastien Bouclet 7a33ec4a00 MYST3: Make the engine resolution-agnostic 2014-09-01 10:51:41 +02:00
Pawel Kolodziejski 728e4183fe MYST3: formatting code 2014-07-03 20:18:21 +02:00
Stefano Musumeci 43b3981b48 MYST3: Added tinyGL renderer. 2014-07-03 12:33:04 +02:00
Pawel Kolodziejski 8759900b6a ALL: synced with ScummVM 2014-04-05 18:18:42 +02:00
Dries Harnie ac913880be MYST3: Separate renderers into separate classes 2014-02-07 22:41:34 +01:00
Dries Harnie 522ef90830 MYST3: Introduce shader-based renderer 2014-02-06 18:56:11 +01:00
Pawel Kolodziejski 790db038c0 ALL: sync with scummvm 2013-10-13 11:30:34 +02:00
Bastien Bouclet 5fa7ddfaed MYST3: Enable texture filtering.
Also use GL_ARB_texture_non_power_of_two when it's available.
When GL_ARB_texture_non_power_of_two is not available the clamping
is incorrect due to the padded sides, resulting in white lines
on some edges of the cube.
2013-01-02 19:15:57 +01:00
Bastien Bouclet 80612ef6c9 MYST3: Use YUVToRGBMan to convert jpeg YUV planes
And assorted clean ups.
Yields an overall 10% gain when loading cube nodes
2012-12-03 14:27:56 +01:00
Paweł Kołodziejski 3c267ff982 OPENGL: fix compilation for cross compiled os x target 2012-04-08 15:03:37 +02:00