Skip to content

Commit 2ad46d1

Browse files
committed
fix remembering video settings
1 parent 5dc3aab commit 2ad46d1

File tree

3 files changed

+20
-11
lines changed

3 files changed

+20
-11
lines changed

bin/Cores/cores.json

+1
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
},
133133
"dolphin_libretro":{
134134
"name": "Dolphin",
135+
"extensions": "iso|m3u",
135136
"systems": [16,19],
136137
"platforms": "none"
137138
},

src/components/Video.cpp

+17-11
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,8 @@ along with RALibretro. If not, see <http://www.gnu.org/licenses/>.
3030

3131
#define TAG "[VID] "
3232

33-
bool Video::init(libretro::LoggerComponent* logger, libretro::VideoContextComponent *ctx, Config* config)
33+
Video::Video()
3434
{
35-
_logger = logger;
36-
_ctx = ctx;
37-
_config = config;
38-
3935
_enabled = true;
4036

4137
_pixelFormat = RETRO_PIXEL_FORMAT_UNKNOWN;
@@ -51,11 +47,21 @@ bool Video::init(libretro::LoggerComponent* logger, libretro::VideoContextCompon
5147
_preserveAspect = false;
5248
_linearFilter = false;
5349

54-
_program = createProgram(&_posAttribute, &_uvAttribute, &_texUniform);
55-
5650
_hw.enabled = false;
5751
_hw.frameBuffer = _hw.renderBuffer = 0;
5852
_hw.callback = nullptr;
53+
}
54+
55+
bool Video::init(libretro::LoggerComponent* logger, libretro::VideoContextComponent *ctx, Config* config)
56+
{
57+
_logger = logger;
58+
_ctx = ctx;
59+
_config = config;
60+
61+
// NOTE: Video::init is called after Video::deserializeSettings. Make sure not to overwrite anyting
62+
// stored in the .cfg file.
63+
64+
_program = createProgram(&_posAttribute, &_uvAttribute, &_texUniform);
5965

6066
if (!Gl::ok())
6167
{
@@ -414,11 +420,11 @@ std::string Video::serializeSettings()
414420
{
415421
std::string json("{");
416422

417-
json.append("\"_preserveAspect\":");
423+
json.append("\"preserveAspect\":");
418424
json.append(_preserveAspect ? "true" : "false");
419425
json.append(",");
420426

421-
json.append("\"_linearFilter\":");
427+
json.append("\"linearFilter\":");
422428
json.append(_linearFilter ? "true" : "false");
423429

424430
json.append("}");
@@ -446,11 +452,11 @@ bool Video::deserializeSettings(const char* json)
446452
}
447453
else if (event == JSONSAX_BOOLEAN)
448454
{
449-
if (ud->key == "_preserveAspect")
455+
if (ud->key == "preserveAspect" || ud->key == "_preserveAspect")
450456
{
451457
ud->self->_preserveAspect = num != 0;
452458
}
453-
if (ud->key == "_linearFilter")
459+
if (ud->key == "linearFilter" || ud->key == "_linearFilter")
454460
{
455461
ud->self->_linearFilter = num != 0;
456462
}

src/components/Video.h

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ along with RALibretro. If not, see <http://www.gnu.org/licenses/>.
2828
class Video: public libretro::VideoComponent
2929
{
3030
public:
31+
Video();
32+
3133
bool init(libretro::LoggerComponent* logger, libretro::VideoContextComponent* ctx, Config* config);
3234
void destroy();
3335

0 commit comments

Comments
 (0)