Commit graph

472 commits

Author SHA1 Message Date
Le Philousophe
e5c1a4249a BACKENDS: OPENGL: When no shader is selected, close 2022-11-06 20:02:59 +01:00
Le Philousophe
52903aff8a BACKENDS: OPENGL: Close old preset before opening a new one 2022-11-06 20:02:59 +01:00
Le Philousophe
a6dd037079 BACKENDS: OPENGL: Add support for previous frames in LibRetro 2022-11-06 20:02:59 +01:00
Le Philousophe
9d1910854b BACKENDS: OPENGL: Match vertex coordinates with RetroArch
This makes work shaders which ignore them.
A flip is done when rendering to output pipeline because RetroArch
renders directly on the back buffer
2022-11-06 20:02:59 +01:00
Le Philousophe
5484ebffae BACKENDS: OPENGL: Rework LibRetro pipeline
This makes LibRetro behave almost like other pipelines and make the code
in OpenGLGraphicsManager somewhat simpler.
2022-11-06 20:02:59 +01:00
Le Philousophe
f9005454bd BACKENDS: OPENGL: Allow to copy render settings between framebuffers 2022-11-06 20:02:59 +01:00
Le Philousophe
70cf4e9e3e BACKENDS: OPENGL: Move framebuffer out of common activate code
This allows more control over activation process.
2022-11-06 20:02:59 +01:00
Le Philousophe
6632e909da BACKENDS: OPENGL: Hide active pipeline and activate it as needed
This removes the idea of global pipeline.
The activePipeline is kept for pipeline lifecycle management only.
2022-11-06 20:02:59 +01:00
Le Philousophe
239c115249 BACKENDS: OPENGL: Rename drawTexture override
This prevents name hiding when using directly a subclass of Pipeline
2022-11-06 20:02:59 +01:00
Le Philousophe
769fe03a4b BACKENDS: OPENGL: Use override keyword 2022-11-06 20:02:59 +01:00
Le Philousophe
9b951944bc BACKENDS: OPENGL: Activate framebuffer with a specific pipeline 2022-11-06 20:02:59 +01:00
Le Philousophe
29c25ed566 BACKENDS: OPENGL: Store projection matrix as a Matrix4
This avoids extraneous copies when dealing with Shader class.
2022-11-06 20:02:59 +01:00
Le Philousophe
2d910e353b BACKENDS: OPENGL: When closing reset _isAnimated to keep performace 2022-11-06 20:02:59 +01:00
Le Philousophe
b329308b7a BACKENDS: OPENGL: Don't load a preset with no pass 2022-11-06 20:02:59 +01:00
Le Philousophe
479ef6a851 BACKENDS: OPENGL: Simplify size logic 2022-11-06 20:02:59 +01:00
Le Philousophe
96fd0b8418 BACKENDS: OPENGL: Fix missing default case 2022-11-06 20:02:59 +01:00
Le Philousophe
1859cf455d OPENGL: Use texture size of cursor instead of computing it
Computation was not correct and resulted in corrupted cursor
2022-10-29 18:08:39 +02:00
Le Philousophe
3f08b71d85 BACKENDS: OPENGL: With animated LibRetro shaders, always update screen 2022-10-22 16:51:08 +02:00
Le Philousophe
86ea6f581c BACKENDS: OPENGL: Fix cursor scaling with LibRetro 2022-10-22 16:51:08 +02:00
Le Philousophe
c756415388 BACKENDS: OPENGL: Don't fail if parameter is not present in preset
RetroArch doesn't use this parameters value and looks up directly for
entries so it would never fail on this.
2022-10-17 22:19:26 +02:00
Le Philousophe
ef9eb436a0 BACKENDS: OPENGL: Apply parameters globally and load the preset ones 2022-10-17 22:09:35 +02:00
Le Philousophe
396d5fb425 BACKENDS: OPENGL: ALlow the use of software scalers with LibRetro 2022-10-17 22:09:35 +02:00
Le Philousophe
d398034fe5 BACKENDS: OPENGL: Enable filtering when using scaling shaders 2022-10-16 20:42:54 +02:00
Le Philousophe
c257251e8f BACKENDS: OPENGL: Implement FrameCount uniform 2022-10-16 19:43:05 +02:00
Le Philousophe
8047aef666 BACKENDS: OPENGL: Add support for wrap mode in libretro 2022-10-16 19:43:05 +02:00
Le Philousophe
73f48341c0 BACKENDS: OPENGL: Allow to set texture wrapping mode 2022-10-16 19:43:05 +02:00
Le Philousophe
e532e33127 BACKENDS: OPENGL: Add aliases support to libretro 2022-10-16 14:06:44 +02:00
Le Philousophe
353239a158 BACKENDS: OPENGL: Reuse existing samplers if possible
This avoids allocating samplers when one with the same texture already
exists.
2022-10-16 14:04:57 +02:00
Le Philousophe
3a31992403 BACKENDS: OPENGL: Really fix Pass# and PassPrev# uniforms 2022-10-16 14:04:39 +02:00
Le Philousophe
dc3f4b4f6d BACKENDS: OPENGL: Fix Pass# and PassPrev# uniforms 2022-10-16 11:20:54 +02:00
Le Philousophe
c1311ff2b2 BACKENDS: OPENGL: Add support for PassPrev# uniforms
They are not documented but used by some shaders.
They point at previous passes inputs.
2022-10-15 20:48:52 +02:00
Le Philousophe
c5d64589b4 BACKENDS: OPENGL: Fix OutputSize uniforms value
The OutputSize value is the size of the FBO target and not the screen
size
2022-10-15 19:09:53 +02:00
Le Philousophe
a4f8491c55 BACKENDS: OPENGL: Try to recover from shader error at startup time
Let's just retry without the shader.
2022-10-15 16:45:24 +02:00
Le Philousophe
8e88170c0d BACKENDS: OPENGL: Fix output size computation 2022-10-15 16:02:15 +02:00
Le Philousophe
27971587a5 BACKENDS: OPENGL: Proper unsigned int parsing 2022-10-15 12:31:12 +02:00
Le Philousophe
3c8b58af95 BACKENDS: OPENGL: Don't use glGetTexLevelParameteriv
This function doesn't work in GLES2
2022-10-09 17:25:35 +02:00
Le Philousophe
3a7f2aa1ee BACKENDS: OPENGL: Allow callers to check for texture setSize result 2022-10-09 17:25:35 +02:00
Le Philousophe
518b731726 BACKENDS: OPENGL: Add support for loading JPEG textures 2022-10-09 15:59:37 +02:00
Le Philousophe
939570b25a BACKENDS: OPENGL: More tolerant integer parsing 2022-10-09 11:05:13 +02:00
Le Philousophe
1b0942cda2 BACKENDS: OPENGL: Correctly compute default scales 2022-10-09 11:05:13 +02:00
Le Philousophe
51c2f471c3 BACKENDS: OPENGL: Accept different scale types with same scale
This is allowed by libretro
2022-10-09 10:00:21 +02:00
Le Philousophe
0f7fa00c9b BACKENDS: OPENGL: Fix parsing of scale_type
When scale_type was not specified, its default value was used for X and
Y instead of doing nothing
2022-10-09 09:45:03 +02:00
Le Philousophe
d379af1fc0 BACKENDS: OPENGL: Properly remove comments
Before that comments at the end of a line were not stripped
2022-10-09 01:32:54 +02:00
Le Philousophe
131acc39ea BACKENDS: OPENGL: Add compatibility shims when needed 2022-10-09 01:32:54 +02:00
Le Philousophe
f96b71100c OPENGL: Implement parameters as uniforms
This avoids bugs in some shaders where parameter names are reused in the
shader code.
2022-10-08 23:40:27 +02:00
Le Philousophe
af680aeecc OPENGL: Check that textures can be set up at load time 2022-10-08 23:39:18 +02:00
Le Philousophe
04d8265e9c OPENGL: load shaders more like original libretro 2022-10-08 23:39:18 +02:00
Eugene Sandulenko
e7df36a30c OPENGL: Remove obsolete comment 2022-10-08 23:39:18 +02:00
Cameron Cawley
ebc79b24bb OPENGL: Added missing USE_FORCED_GLES check 2022-10-08 23:39:18 +02:00
Cameron Cawley
aa21e7226a OPENGL: Refactored filtering support 2022-10-08 23:39:18 +02:00