[Scummvm-git-logs] scummvm master -> 51c2f471c31c8a896d47afaa3ba86f9e7108cc6a
lephilousophe
noreply at scummvm.org
Sun Oct 9 08:00:50 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
51c2f471c3 BACKENDS: OPENGL: Accept different scale types with same scale
Commit: 51c2f471c31c8a896d47afaa3ba86f9e7108cc6a
https://github.com/scummvm/scummvm/commit/51c2f471c31c8a896d47afaa3ba86f9e7108cc6a
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2022-10-09T10:00:21+02:00
Commit Message:
BACKENDS: OPENGL: Accept different scale types with same scale
This is allowed by libretro
Changed paths:
backends/graphics/opengl/pipelines/libretro/parser.cpp
diff --git a/backends/graphics/opengl/pipelines/libretro/parser.cpp b/backends/graphics/opengl/pipelines/libretro/parser.cpp
index 0f40b990cf7..321c67d6a09 100644
--- a/backends/graphics/opengl/pipelines/libretro/parser.cpp
+++ b/backends/graphics/opengl/pipelines/libretro/parser.cpp
@@ -425,35 +425,30 @@ bool PresetParser::parsePassScale(const uint id, ShaderPass *pass) {
// Parse actual scale value for the pass.
//
// Like for the scale type, 'scale' overrides 'scale_x'/'scale_y'.
- // However, in case the scale types for x/y are different the usage of
- // 'scale' leads to undefined behavior. In our case we simply reject
- // the shader preset.
-
- if (!lookUpValueScale(passKey("scale_x"), &pass->scaleXFloat, &pass->scaleXUint, pass->scaleTypeX)) {
- return false;
- }
+ if (_entries.contains(passKey("scale"))) {
+ if (!lookUpValueScale(passKey("scale"), &pass->scaleXFloat, &pass->scaleXUint, pass->scaleTypeX)) {
+ return false;
+ }
- if (!lookUpValueScale(passKey("scale_y"), &pass->scaleYFloat, &pass->scaleYUint, pass->scaleTypeY)) {
- return false;
- }
+ if (!lookUpValueScale(passKey("scale"), &pass->scaleYFloat, &pass->scaleYUint, pass->scaleTypeY)) {
+ return false;
+ }
- if (!_entries.contains(passKey("scale"))) {
return true;
}
- if (pass->scaleTypeX != pass->scaleTypeY) {
- _errorDesc = Common::String::format("Pass %u: Scale types for x/y differ but 'scale%u' defined", id, id);
- return false;
+ if (_entries.contains(passKey("scale_x"))) {
+ if (!lookUpValueScale(passKey("scale_x"), &pass->scaleXFloat, &pass->scaleXUint, pass->scaleTypeX)) {
+ return false;
+ }
}
- pass->scaleXFloat = 0;
- pass->scaleXUint = 0;
- if (!lookUpValueScale(passKey("scale"), &pass->scaleXFloat, &pass->scaleXUint, pass->scaleTypeX)) {
- return false;
+ if (_entries.contains(passKey("scale_y"))) {
+ if (!lookUpValueScale(passKey("scale_y"), &pass->scaleYFloat, &pass->scaleYUint, pass->scaleTypeY)) {
+ return false;
+ }
}
- pass->scaleYFloat = pass->scaleXFloat;
- pass->scaleYUint = pass->scaleXUint;
return true;
}
#undef passKey
More information about the Scummvm-git-logs
mailing list