Add RETRO_CTL_RETRO_SET_ENVIRONMENT

This commit is contained in:
twinaphex 2016-01-27 05:19:15 +01:00
parent cb78c1c610
commit 6958a23b96
3 changed files with 19 additions and 2 deletions

View File

@ -564,6 +564,7 @@ static bool event_init_content(void)
static bool event_init_core(void)
{
retro_ctx_environ_info_t info;
global_t *global = global_get_ptr();
settings_t *settings = config_get_ptr();
@ -579,7 +580,8 @@ static bool event_init_core(void)
/* reset video format to libretro's default */
video_driver_set_pixel_format(RETRO_PIXEL_FORMAT_0RGB1555);
core.retro_set_environment(rarch_environment_cb);
info.env = rarch_environment_cb;
core_ctl(CORE_CTL_RETRO_SET_ENVIRONMENT, &info);
/* auto-remap: apply remap files */
if(settings->auto_remaps_enable)

View File

@ -187,6 +187,14 @@ bool core_ctl(enum core_ctl_state state, void *data)
return false;
retro_ctx.poll_cb();
break;
case CORE_CTL_RETRO_SET_ENVIRONMENT:
{
retro_ctx_environ_info_t *info = (retro_ctx_environ_info_t*)data;
if (!info)
return false;
core.retro_set_environment(info->env);
}
break;
case CORE_CTL_RETRO_GET_SYSTEM_AV_INFO:
{
struct retro_system_av_info *av_info = (struct retro_system_av_info*)data;

View File

@ -64,9 +64,16 @@ enum core_ctl_state
CORE_CTL_RETRO_CTX_FRAME_CB,
CORE_CTL_RETRO_CTX_POLL_CB
CORE_CTL_RETRO_CTX_POLL_CB,
CORE_CTL_RETRO_SET_ENVIRONMENT
};
typedef struct retro_ctx_environ_info
{
retro_environment_t env;
} retro_ctx_environ_info_t;
typedef struct retro_ctx_frame_info
{
const void *data;