1212 Commits

Author SHA1 Message Date
Cameron Cawley
ce9d324a72 SURFACESDL: Fix crash when saving screenshots in paletted screen modes 2023-02-07 23:42:42 +01:00
Le Philousophe
97c8746d2e BACKENDS: OPENGL: Use a floating point cursor size
When scaler shaders are used, cursor size is adapted to scale on the
game screen texture and not on the back buffer so the size is scaled
twice and is imprecise.
Using a float gives more precision without any performance impact as the
OpenGL code already expects floats.
2023-02-05 20:48:51 +01:00
Eugene Sandulenko
e0736936e9
BACKENDS: OPENGL: Use isCLUT8() 2023-02-02 19:33:20 +01:00
Vladimir Serbinenko
a1fdd9df20 MIYOO: Use 640x480 GUI
it looks nice and crisp on this handheld
2023-01-29 10:41:10 +01:00
Le Philousophe
0416279980 OPENGL: Fix glitch when shaking screen
Everything was converted to unsigned instead of the opposite.
2023-01-24 19:40:48 +01:00
Christophe Branchereau
7fa860166e OPENDINGUX: use 320x200 videomode for the RG99 instead of 320x240
This allows the software upscaler to kick in, which looks
much better than IPU upscaling on the RG99

Signed-off-by: Christophe Branchereau <cbranchereau@gmail.com>
2023-01-23 12:04:25 +01:00
Vladimir Serbinenko
42a5aac407 SURFACESDL: Fix overlay background when using hardware palette 2023-01-20 05:45:37 +03:00
Vladimir Serbinenko
576b2be0cb SDL: Workaround for broken SDL on Miyoo Mini 2023-01-18 00:51:38 +03:00
Vladimir Serbinenko
a0cb2fb05e SURFACESDL: Don't pass private flags to SDL_CreateRGBSurface
sdl_video.h names all of SDL_RLEACCEL, SDL_SRCCOLORKEY and SDL_SRCALPHA
as private and read-only. Documentation mentions them in
SDL_CreateRGBSurface but also says they are automatically set on
either SDL_SetColorKey or on non-zero Amask.

Previously passing them created no problem but miyoo mini SDL gets confused,
so let's never pass the private flags.
2023-01-18 00:51:38 +03:00
Vladimir Serbinenko
1bc4fe5279 SDL: Move RS90-specific code to opendingux directory 2023-01-17 13:48:50 +03:00
Vladimir Serbinenko
5bdabeed7e SURFACESDL: Make getDefaultResolution overideable by custom backends 2023-01-17 13:48:50 +03:00
Vladimir Serbinenko
81fdd308cf SURFACESDL: Extract initing of graphics surface into a separate method. 2023-01-17 13:48:50 +03:00
Vladimir Serbinenko
4a0d9c2665 SDL: Add missing init of _prevCursorNeedsRedraw 2023-01-17 13:48:20 +03:00
Cameron Cawley
40f797fdef SDL: Support VSync with OpenGL in SDL1 builds 2023-01-16 18:09:53 +01:00
Cameron Cawley
138a983d80 COMMON: Refactor VSync handling to match the other options 2023-01-16 18:09:53 +01:00
Christophe Branchereau
2994ab025d OPENDINGUX: force 320x240 for the RG99
The device has a 320x480 screen and aspect of gui is wrong if we use
the full resolution

Signed-off-by: Christophe Branchereau <cbranchereau@gmail.com>
2023-01-16 10:31:14 +01:00
Vladimir Serbinenko
4e4c652433 SDL: Properly restore gfx mode if several parameters have changed
Currently we have bunch of else-if and only one of them triggered. When
e.g. aspect ratio correction and resolution changes only aspect ratio is
covered by restoration. If this fails the code retries the same mode endlessly
2023-01-12 16:39:38 +03:00
Vladimir Serbinenko
74336c5411 SDL: Fix potential buffer overflow
This causes a segmentation error on Miyoo Mini but is not specific to it
2023-01-12 14:01:45 +01:00
Le Philousophe
4f626159a1 SDL: Delete mouse scaler to avoid memory leak 2023-01-12 08:44:38 +01:00
Vladimir Serbinenko
30d9976a1c SDL: Use hardware palette on RS90 and scale 1 2023-01-12 10:27:20 +03:00
Vladimir Serbinenko
70b174bca5 SDL: Disable fullscreen on RS90
Fullscreen flag causes an error in SetVideoMode.
2023-01-12 10:27:20 +03:00
Vladimir Serbinenko
3f6691dc6d RS90: Workaround for unusual SDL_PixelFormat
SDL_PixelFormat returns 0xff/0xff/0xff as pixel format for paletted HWSURFACE.
2023-01-12 10:27:20 +03:00
Vladimir Serbinenko
b91d873df6 SDL: Support auto-detection of GUI resolution. 2023-01-12 10:27:20 +03:00
Vladimir Serbinenko
47ab3fe4fc SDL: Support double-buffering on SDL1. 2023-01-12 10:27:20 +03:00
Vladimir Serbinenko
462be38081 SDL: Support rendering to 8-bit graphics 2023-01-12 10:27:20 +03:00
Cameron Cawley
cf70814cbd SURFACESDL: Initial support for 32-bit screen output 2023-01-11 12:57:53 +00:00
Eugene Sandulenko
aa14d59447
BACKENDS: OPENGL: Switch shaders to SearchSet 2023-01-08 01:15:51 +01:00
Eugene Sandulenko
ef65534250
BACKENDS: SHADERS: Make possibility to load shaders from SearchMan 2023-01-08 01:15:44 +01:00
Cameron Cawley
7f2d9fd0fd GRAPHICS: Split conversion.cpp into multiple files 2022-12-22 23:45:14 +01:00
elasota
3496e82abc BACKENDS: Add 1-pixel border to cursors to ensure linear interpolation of edge pixels doesn't get cut off half-way. 2022-11-29 00:48:00 +01:00
Le Philousophe
77fce6614e BACKENDS: OPENGL: Disable scissor test when overlay is for games
WIthout this, the game cannot draw outside its area for subtitles.
This is exhibited when scaling is set to center.
2022-11-20 17:18:38 +01:00
Le Philousophe
17498383ee BACKENDS: Fix typo in WindowedGraphicsManager
This was the opposite of what was needed.
2022-11-13 09:14:25 +01:00
Le Philousophe
970ea34905 ANDROID: Fix build 2022-11-12 20:49:20 +01:00
Le Philousophe
87bad2cc7d COMMON: Allow games to use overlay for something else than GUI
This can be used for subtitles without changing the mouse coordinates.
2022-11-12 19:12:05 +01:00
Le Philousophe
6fa7a6f30f BACKENDS: OPENGL: Check if libretro is here before loading shader 2022-11-11 13:24:55 +01:00
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