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