mirror of
https://github.com/libretro/RetroArch
synced 2025-03-30 16:20:27 +00:00
(Overlay) Don't expose input overlay handle to outside
This commit is contained in:
parent
2dbc3c4b56
commit
c9814c9b12
@ -1273,7 +1273,7 @@ bool event_command(enum event_command cmd)
|
||||
break;
|
||||
case EVENT_CMD_OVERLAY_NEXT:
|
||||
#ifdef HAVE_OVERLAY
|
||||
input_overlay_next(input_overlay_get_ptr(), settings->input.overlay_opacity);
|
||||
input_overlay_next(settings->input.overlay_opacity);
|
||||
#endif
|
||||
break;
|
||||
case EVENT_CMD_DSP_FILTER_DEINIT:
|
||||
@ -1373,14 +1373,12 @@ bool event_command(enum event_command cmd)
|
||||
break;
|
||||
case EVENT_CMD_OVERLAY_SET_SCALE_FACTOR:
|
||||
#ifdef HAVE_OVERLAY
|
||||
input_overlay_set_scale_factor(input_overlay_get_ptr(),
|
||||
settings->input.overlay_scale);
|
||||
input_overlay_set_scale_factor(settings->input.overlay_scale);
|
||||
#endif
|
||||
break;
|
||||
case EVENT_CMD_OVERLAY_SET_ALPHA_MOD:
|
||||
#ifdef HAVE_OVERLAY
|
||||
input_overlay_set_alpha_mod(input_overlay_get_ptr(),
|
||||
settings->input.overlay_opacity);
|
||||
input_overlay_set_alpha_mod(settings->input.overlay_opacity);
|
||||
#endif
|
||||
break;
|
||||
case EVENT_CMD_DRIVERS_DEINIT:
|
||||
|
@ -861,15 +861,11 @@ static int16_t android_input_state(void *data,
|
||||
static bool android_input_key_pressed(void *data, int key)
|
||||
{
|
||||
android_input_t *android = (android_input_t*)data;
|
||||
input_overlay_state_t *ol_state = input_overlay_get_state_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!android)
|
||||
return false;
|
||||
|
||||
return (ol_state && (ol_state->buttons
|
||||
& (1ULL << key))) || input_joypad_pressed(android->joypad,
|
||||
0, settings->input.binds[0], key);
|
||||
return (input_overlay_key_pressed(key)) ||
|
||||
input_joypad_pressed(android->joypad,
|
||||
0, settings->input.binds[0], key);
|
||||
}
|
||||
|
||||
static void android_input_free_input(void *data)
|
||||
|
@ -160,12 +160,12 @@ struct input_overlay
|
||||
static input_overlay_t *overlay_ptr;
|
||||
static input_overlay_state_t overlay_st_ptr;
|
||||
|
||||
input_overlay_t *input_overlay_get_ptr(void)
|
||||
static input_overlay_t *input_overlay_get_ptr(void)
|
||||
{
|
||||
return overlay_ptr;
|
||||
}
|
||||
|
||||
input_overlay_state_t *input_overlay_get_state_ptr(void)
|
||||
static input_overlay_state_t *input_overlay_get_state_ptr(void)
|
||||
{
|
||||
return &overlay_st_ptr;
|
||||
}
|
||||
@ -229,9 +229,10 @@ static void input_overlay_scale(struct overlay *ol, float scale)
|
||||
}
|
||||
}
|
||||
|
||||
static void input_overlay_set_vertex_geom(input_overlay_t *ol)
|
||||
static void input_overlay_set_vertex_geom(void)
|
||||
{
|
||||
size_t i;
|
||||
input_overlay_t *ol = input_overlay_get_ptr();
|
||||
|
||||
if (!ol)
|
||||
return;
|
||||
@ -263,9 +264,10 @@ static void input_overlay_set_vertex_geom(input_overlay_t *ol)
|
||||
*
|
||||
* Scales the overlay by a factor of scale.
|
||||
**/
|
||||
void input_overlay_set_scale_factor(input_overlay_t *ol, float scale)
|
||||
void input_overlay_set_scale_factor(float scale)
|
||||
{
|
||||
size_t i;
|
||||
input_overlay_t *ol = input_overlay_get_ptr();
|
||||
|
||||
if (!ol)
|
||||
return;
|
||||
@ -273,7 +275,7 @@ void input_overlay_set_scale_factor(input_overlay_t *ol, float scale)
|
||||
for (i = 0; i < ol->size; i++)
|
||||
input_overlay_scale(&ol->overlays[i], scale);
|
||||
|
||||
input_overlay_set_vertex_geom(ol);
|
||||
input_overlay_set_vertex_geom();
|
||||
}
|
||||
|
||||
static void input_overlay_free_overlay(struct overlay *overlay)
|
||||
@ -323,16 +325,17 @@ static bool input_overlay_load_texture_image(struct overlay *overlay,
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool input_overlay_load_desc_image(input_overlay_t *ol,
|
||||
static bool input_overlay_load_desc_image(
|
||||
struct overlay_desc *desc,
|
||||
struct overlay *input_overlay,
|
||||
unsigned ol_idx, unsigned desc_idx)
|
||||
{
|
||||
char overlay_desc_image_key[64] = {0};
|
||||
char image_path[PATH_MAX_LENGTH] = {0};
|
||||
config_file_t *conf = config_file_new(ol->overlay_path);
|
||||
input_overlay_t *ol = input_overlay_get_ptr();
|
||||
config_file_t *conf = ol ? config_file_new(ol->overlay_path) : NULL;
|
||||
|
||||
if (!conf)
|
||||
if (!ol || !conf)
|
||||
return false;
|
||||
|
||||
snprintf(overlay_desc_image_key, sizeof(overlay_desc_image_key),
|
||||
@ -356,7 +359,7 @@ static bool input_overlay_load_desc_image(input_overlay_t *ol,
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool input_overlay_load_desc(input_overlay_t *ol,
|
||||
static bool input_overlay_load_desc(
|
||||
struct overlay_desc *desc,
|
||||
struct overlay *input_overlay,
|
||||
unsigned ol_idx, unsigned desc_idx,
|
||||
@ -377,9 +380,10 @@ static bool input_overlay_load_desc(input_overlay_t *ol,
|
||||
const char *x = NULL;
|
||||
const char *y = NULL;
|
||||
const char *box = NULL;
|
||||
config_file_t *conf = config_file_new(ol->overlay_path);
|
||||
input_overlay_t *ol = input_overlay_get_ptr();
|
||||
config_file_t *conf = ol ? config_file_new(ol->overlay_path) : NULL;
|
||||
|
||||
if (!conf)
|
||||
if (!ol || !conf)
|
||||
return false;
|
||||
|
||||
snprintf(overlay_desc_key, sizeof(overlay_desc_key),
|
||||
@ -615,9 +619,9 @@ static bool input_overlay_resolve_targets(struct overlay *ol,
|
||||
return true;
|
||||
}
|
||||
|
||||
static void input_overlay_load_active(input_overlay_t *ol,
|
||||
float opacity)
|
||||
static void input_overlay_load_active(float opacity)
|
||||
{
|
||||
input_overlay_t *ol = input_overlay_get_ptr();
|
||||
if (!ol)
|
||||
return;
|
||||
|
||||
@ -625,8 +629,8 @@ static void input_overlay_load_active(input_overlay_t *ol,
|
||||
ol->iface->load(ol->iface_data, ol->active->load_images,
|
||||
ol->active->load_images_size);
|
||||
|
||||
input_overlay_set_alpha_mod(ol, opacity);
|
||||
input_overlay_set_vertex_geom(ol);
|
||||
input_overlay_set_alpha_mod(opacity);
|
||||
input_overlay_set_vertex_geom();
|
||||
|
||||
if (ol->iface && ol->iface->full_screen)
|
||||
ol->iface->full_screen(ol->iface_data, ol->active->full_screen);
|
||||
@ -658,7 +662,7 @@ bool input_overlay_load_overlays_resolve_iterate(void)
|
||||
{
|
||||
ol->active = &ol->overlays[0];
|
||||
|
||||
input_overlay_load_active(ol, ol->deferred.opacity);
|
||||
input_overlay_load_active(ol->deferred.opacity);
|
||||
input_overlay_enable(ol, ol->deferred.enable);
|
||||
}
|
||||
|
||||
@ -722,7 +726,7 @@ bool input_overlay_load_overlays_iterate(void)
|
||||
{
|
||||
if (overlay->pos < overlay->size)
|
||||
{
|
||||
input_overlay_load_desc_image(ol,
|
||||
input_overlay_load_desc_image(
|
||||
&overlay->descs[overlay->pos], overlay,
|
||||
ol->pos, overlay->pos);
|
||||
}
|
||||
@ -740,7 +744,7 @@ bool input_overlay_load_overlays_iterate(void)
|
||||
{
|
||||
if (overlay->pos < overlay->size)
|
||||
{
|
||||
if (!input_overlay_load_desc(ol, &overlay->descs[overlay->pos], overlay,
|
||||
if (!input_overlay_load_desc(&overlay->descs[overlay->pos], overlay,
|
||||
ol->pos, overlay->pos,
|
||||
overlay->image.width, overlay->image.height,
|
||||
overlay->config.normalized,
|
||||
@ -942,12 +946,12 @@ bool input_overlay_new_done(void)
|
||||
if (!ol)
|
||||
return false;
|
||||
|
||||
input_overlay_set_alpha_mod(ol, ol->deferred.opacity);
|
||||
input_overlay_set_scale_factor(ol, ol->deferred.scale_factor);
|
||||
ol->next_index = (ol->index + 1) % ol->size;
|
||||
input_overlay_set_alpha_mod(ol->deferred.opacity);
|
||||
input_overlay_set_scale_factor(ol->deferred.scale_factor);
|
||||
|
||||
ol->state = OVERLAY_STATUS_NONE;
|
||||
ol->alive = true;
|
||||
ol->next_index = (ol->index + 1) % ol->size;
|
||||
ol->state = OVERLAY_STATUS_NONE;
|
||||
ol->alive = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -1230,7 +1234,7 @@ void input_overlay_post_poll(input_overlay_t *ol, float opacity)
|
||||
if (!ol)
|
||||
return;
|
||||
|
||||
input_overlay_set_alpha_mod(ol, opacity);
|
||||
input_overlay_set_alpha_mod(opacity);
|
||||
|
||||
for (i = 0; i < ol->active->size; i++)
|
||||
{
|
||||
@ -1277,7 +1281,7 @@ void input_overlay_poll_clear(input_overlay_t *ol, float opacity)
|
||||
|
||||
ol->blocked = false;
|
||||
|
||||
input_overlay_set_alpha_mod(ol, opacity);
|
||||
input_overlay_set_alpha_mod(opacity);
|
||||
|
||||
for (i = 0; i < ol->active->size; i++)
|
||||
{
|
||||
@ -1303,17 +1307,18 @@ void input_overlay_poll_clear(input_overlay_t *ol, float opacity)
|
||||
* Switch to the next available overlay
|
||||
* screen.
|
||||
**/
|
||||
void input_overlay_next(input_overlay_t *ol, float opacity)
|
||||
void input_overlay_next(float opacity)
|
||||
{
|
||||
input_overlay_t *ol = input_overlay_get_ptr();
|
||||
if (!ol)
|
||||
return;
|
||||
|
||||
ol->index = ol->next_index;
|
||||
ol->active = &ol->overlays[ol->index];
|
||||
ol->index = ol->next_index;
|
||||
ol->active = &ol->overlays[ol->index];
|
||||
|
||||
input_overlay_load_active(ol, opacity);
|
||||
input_overlay_load_active(opacity);
|
||||
|
||||
ol->blocked = true;
|
||||
ol->blocked = true;
|
||||
ol->next_index = (ol->index + 1) % ol->size;
|
||||
}
|
||||
|
||||
@ -1401,9 +1406,10 @@ int input_overlay_new_ptr(void)
|
||||
* Sets a modulating factor for alpha channel. Default is 1.0.
|
||||
* The alpha factor is applied for all overlays.
|
||||
**/
|
||||
void input_overlay_set_alpha_mod(input_overlay_t *ol, float mod)
|
||||
void input_overlay_set_alpha_mod(float mod)
|
||||
{
|
||||
unsigned i;
|
||||
input_overlay_t *ol = input_overlay_get_ptr();
|
||||
|
||||
if (!ol)
|
||||
return;
|
||||
|
@ -191,35 +191,28 @@ void input_overlay_poll_clear(input_overlay_t *ol, float opacity);
|
||||
|
||||
/**
|
||||
* input_overlay_set_alpha_mod:
|
||||
* @ol : Overlay handle.
|
||||
* @mod : New modulating factor to apply.
|
||||
*
|
||||
* Sets a modulating factor for alpha channel. Default is 1.0.
|
||||
* The alpha factor is applied for all overlays.
|
||||
**/
|
||||
void input_overlay_set_alpha_mod(input_overlay_t *ol, float mod);
|
||||
void input_overlay_set_alpha_mod(float mod);
|
||||
|
||||
/**
|
||||
* input_overlay_set_scale_factor:
|
||||
* @ol : Overlay handle.
|
||||
* @scale : Factor of scale to apply.
|
||||
*
|
||||
* Scales the overlay by a factor of scale.
|
||||
**/
|
||||
void input_overlay_set_scale_factor(input_overlay_t *ol, float scale);
|
||||
void input_overlay_set_scale_factor(float scale);
|
||||
|
||||
/**
|
||||
* input_overlay_next:
|
||||
* @ol : Overlay handle.
|
||||
*
|
||||
* Switch to the next available overlay
|
||||
* screen.
|
||||
**/
|
||||
void input_overlay_next(input_overlay_t *ol, float opacity);
|
||||
|
||||
input_overlay_t *input_overlay_get_ptr(void);
|
||||
|
||||
input_overlay_state_t *input_overlay_get_state_ptr(void);
|
||||
void input_overlay_next(float opacity);
|
||||
|
||||
bool input_overlay_data_is_active(void);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user