Move more to load_overlays

This commit is contained in:
twinaphex 2015-02-23 19:18:51 +01:00
parent bdd5df32a8
commit 3af7656d42
2 changed files with 27 additions and 30 deletions

View File

@ -364,37 +364,13 @@ static bool input_overlay_load_overlay(input_overlay_t *ol,
struct overlay *overlay, unsigned idx) struct overlay *overlay, unsigned idx)
{ {
size_t i; size_t i;
char conf_key[64], overlay_full_screen_key[64];
bool normalized = false;
float alpha_mod = 1.0f;
float range_mod = 1.0f;
config_file_t *conf = config_file_new(ol->overlay_path);
if (!conf)
return false;
snprintf(overlay_full_screen_key, sizeof(overlay_full_screen_key),
"overlay%u_full_screen", idx);
overlay->full_screen = false;
config_get_bool(conf, overlay_full_screen_key, &overlay->full_screen);
snprintf(conf_key, sizeof(conf_key),
"overlay%u_normalized", idx);
config_get_bool(conf, conf_key, &normalized);
snprintf(conf_key, sizeof(conf_key), "overlay%u_alpha_mod", idx);
config_get_float(conf, conf_key, &alpha_mod);
snprintf(conf_key, sizeof(conf_key), "overlay%u_range_mod", idx);
config_get_float(conf, conf_key, &range_mod);
for (i = 0; i < overlay->size; i++) for (i = 0; i < overlay->size; i++)
{ {
if (!input_overlay_load_desc(ol, &overlay->descs[i], idx, i, if (!input_overlay_load_desc(ol, &overlay->descs[i], idx, i,
overlay->image.width, overlay->image.height, overlay->image.width, overlay->image.height,
normalized, alpha_mod, range_mod)) overlay->config.normalized,
overlay->config.alpha_mod, overlay->config.range_mod))
{ {
RARCH_ERR("[Overlay]: Failed to load overlay descs for overlay #%u.\n", RARCH_ERR("[Overlay]: Failed to load overlay descs for overlay #%u.\n",
(unsigned)i); (unsigned)i);
@ -402,7 +378,6 @@ static bool input_overlay_load_overlay(input_overlay_t *ol,
} }
} }
if (overlay->image.pixels) if (overlay->image.pixels)
overlay->load_images[overlay->load_images_size++] = overlay->image; overlay->load_images[overlay->load_images_size++] = overlay->image;
@ -421,12 +396,9 @@ static bool input_overlay_load_overlay(input_overlay_t *ol,
overlay->center_x = overlay->x + 0.5f * overlay->w; overlay->center_x = overlay->x + 0.5f * overlay->w;
overlay->center_y = overlay->y + 0.5f * overlay->h; overlay->center_y = overlay->y + 0.5f * overlay->h;
config_file_free(conf);
return true; return true;
error: error:
config_file_free(conf);
return false; return false;
} }
@ -596,6 +568,8 @@ bool input_overlay_load_overlays(input_overlay_t *ol)
for (i = 0; i < ol->size; i++) for (i = 0; i < ol->size; i++)
{ {
char conf_key[64];
char overlay_full_screen_key[64];
struct overlay *overlay = &ol->overlays[i]; struct overlay *overlay = &ol->overlays[i];
if (!overlay) if (!overlay)
@ -622,6 +596,25 @@ bool input_overlay_load_overlays(input_overlay_t *ol)
overlay->size = overlay->config.descs.size; overlay->size = overlay->config.descs.size;
snprintf(overlay_full_screen_key, sizeof(overlay_full_screen_key),
"overlay%u_full_screen", i);
overlay->full_screen = false;
config_get_bool(conf, overlay_full_screen_key, &overlay->full_screen);
overlay->config.normalized = false;
overlay->config.alpha_mod = 1.0f;
overlay->config.range_mod = 1.0f;
snprintf(conf_key, sizeof(conf_key),
"overlay%u_normalized", i);
config_get_bool(conf, conf_key, &overlay->config.normalized);
snprintf(conf_key, sizeof(conf_key), "overlay%u_alpha_mod", i);
config_get_float(conf, conf_key, &overlay->config.alpha_mod);
snprintf(conf_key, sizeof(conf_key), "overlay%u_range_mod", i);
config_get_float(conf, conf_key, &overlay->config.range_mod);
/* Precache load image array for simplicity. */ /* Precache load image array for simplicity. */
overlay->load_images = (struct texture_image*) overlay->load_images = (struct texture_image*)
calloc(1 + overlay->size, sizeof(struct texture_image)); calloc(1 + overlay->size, sizeof(struct texture_image));

View File

@ -158,6 +158,10 @@ struct overlay
char key[64]; char key[64];
unsigned size; unsigned size;
} descs; } descs;
bool normalized;
float alpha_mod;
float range_mod;
} config; } config;
struct texture_image *load_images; struct texture_image *load_images;