ref: cf2c76a70b5f74ad82051447dc1d90250dd4f528
parent: 2aa5ce2fb094339ddd5aae6ebb1dc10be7043419
author: SpaceyKasey <87594618+SpaceyKasey@users.noreply.github.com>
date: Sun Mar 20 11:59:11 EDT 2022
Add config option
--- a/config.c
+++ b/config.c
@@ -10,6 +10,7 @@
c.filename = "config.ini"; // default config file to load
c.init_fullscreen = 0; // default fullscreen state at load
+ c.init_software = 0;
c.key_up = SDL_SCANCODE_UP;
c.key_left = SDL_SCANCODE_LEFT;
@@ -62,6 +63,8 @@
sprintf(ini_values[0], "[graphics]\n");
sprintf(ini_values[1], "fullscreen=%s\n",
conf->init_fullscreen ? "true" : "false");
+ sprintf(ini_values[1], "software=%s\n",
+ conf->init_fullscreen ? "true" : "false");
sprintf(ini_values[2], "[keyboard]\n");
sprintf(ini_values[3], "key_up=%d\n", conf->key_up);
sprintf(ini_values[4], "key_left=%d\n", conf->key_left);
@@ -150,6 +153,13 @@
conf->init_fullscreen = 1;
} else
conf->init_fullscreen = 0;
+
+ param = ini_get(ini, "graphics", "software");
+
+ if (strcmp(param, "true") == 0) {+ conf->init_software = 1;
+ } else
+ conf->init_software = 0;
}
void read_key_config(ini_t *ini, config_params_s *conf) {--- a/config.h
+++ b/config.h
@@ -9,6 +9,7 @@
typedef struct config_params_s {char *filename;
int init_fullscreen;
+ int init_software;
int key_up;
int key_left;
--- a/main.c
+++ b/main.c
@@ -61,7 +61,7 @@
if (enable_and_reset_display(port) == -1)
run = 0;
- if (initialize_sdl(conf.init_fullscreen) == -1)
+ if (initialize_sdl(conf.init_fullscreen, conf.init_software) == -1)
run = 0;
uint8_t prev_input = 0;
--- a/render.c
+++ b/render.c
@@ -20,7 +20,7 @@
uint8_t fullscreen = 0;
// Initializes SDL and creates a renderer and required surfaces
-int initialize_sdl(int init_fullscreen) {+int initialize_sdl(int init_fullscreen, int init_software) {ticks = SDL_GetTicks();
@@ -37,7 +37,7 @@
SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL |
SDL_WINDOW_RESIZABLE | init_fullscreen);
- rend = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED);
+ rend = SDL_CreateRenderer(win, -1, init_software ? SDL_RENDERER_SOFTWARE : SDL_RENDERER_ACCELERATED);
SDL_RenderSetLogicalSize(rend, 320, 240);
--- a/render.h
+++ b/render.h
@@ -6,7 +6,7 @@
#include "command.h"
-int initialize_sdl();
+int initialize_sdl(int init_fullscreen, int init_software);
void close_renderer();
int process_queues(struct command_queues *queues);
--
⑨