From b62738465c117c79ac6a08b046dfcc7e3cff25ad Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 29 Nov 2015 21:38:47 +0100 Subject: [PATCH] Move video_active to gfx/video_driver.c --- driver.c | 3 +-- driver.h | 1 - gfx/video_driver.c | 15 ++++++++++++--- gfx/video_driver.h | 5 ++++- retroarch.c | 6 +----- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/driver.c b/driver.c index 015ee92c14..d6415ebcd0 100644 --- a/driver.c +++ b/driver.c @@ -273,11 +273,10 @@ void driver_set_nonblock_state(void) { settings_t *settings = config_get_ptr(); rarch_system_info_t *system = rarch_system_info_get_ptr(); - driver_t *driver = driver_get_ptr(); bool enable = input_driver_ctl(RARCH_INPUT_CTL_IS_NONBLOCK_STATE, NULL); /* Only apply non-block-state for video if we're using vsync. */ - if (driver->video_active && video_driver_get_ptr(false)) + if (video_driver_ctl(RARCH_DISPLAY_CTL_IS_ACTIVE, NULL) && video_driver_get_ptr(false)) { bool video_nonblock = enable; diff --git a/driver.h b/driver.h index 22c3a4ac65..4e1e1df9cc 100644 --- a/driver.h +++ b/driver.h @@ -216,7 +216,6 @@ typedef struct driver void *netplay_data; void *ui_companion_data; - bool video_active; bool camera_active; bool location_active; bool osk_enable; diff --git a/gfx/video_driver.c b/gfx/video_driver.c index a0a01f3287..876cdfa746 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -75,6 +75,8 @@ typedef struct video_pixel_scaler void *scaler_out; } video_pixel_scaler_t; +static bool video_active; + /* Last message given to the video driver */ static char current_msg[PATH_MAX_LENGTH]; @@ -1653,6 +1655,14 @@ bool video_driver_ctl(enum rarch_display_ctl_state state, void *data) break; case RARCH_DISPLAY_CTL_IS_VIDEO_CACHE_CONTEXT_ACK: return video_cache_context_ack; + case RARCH_DISPLAY_CTL_SET_ACTIVE: + video_active = true; + break; + case RARCH_DISPLAY_CTL_UNSET_ACTIVE: + video_active = false; + break; + case RARCH_DISPLAY_CTL_IS_ACTIVE: + return video_active; case RARCH_DISPLAY_CTL_NONE: default: break; @@ -1813,11 +1823,10 @@ void video_frame(const void *data, unsigned width, unsigned output_height = 0; unsigned output_pitch = 0; const char *msg = NULL; - driver_t *driver = driver_get_ptr(); global_t *global = global_get_ptr(); settings_t *settings = config_get_ptr(); - if (!driver->video_active) + if (!video_active) return; if (video_pixel_frame_scale(data, width, height, pitch)) @@ -1861,7 +1870,7 @@ void video_frame(const void *data, unsigned width, if (!current_video->frame( video_data, data, width, height, *frame_count, pitch, current_msg)) - driver->video_active = false; + video_active = false; *frame_count = *frame_count + 1; } diff --git a/gfx/video_driver.h b/gfx/video_driver.h index 51219337c8..135510c08d 100644 --- a/gfx/video_driver.h +++ b/gfx/video_driver.h @@ -322,7 +322,10 @@ enum rarch_display_ctl_state RARCH_DISPLAY_CTL_IS_VIDEO_CACHE_CONTEXT, RARCH_DISPLAY_CTL_SET_VIDEO_CACHE_CONTEXT_ACK, RARCH_DISPLAY_CTL_UNSET_VIDEO_CACHE_CONTEXT_ACK, - RARCH_DISPLAY_CTL_IS_VIDEO_CACHE_CONTEXT_ACK + RARCH_DISPLAY_CTL_IS_VIDEO_CACHE_CONTEXT_ACK, + RARCH_DISPLAY_CTL_SET_ACTIVE, + RARCH_DISPLAY_CTL_UNSET_ACTIVE, + RARCH_DISPLAY_CTL_IS_ACTIVE }; bool video_driver_ctl(enum rarch_display_ctl_state state, void *data); diff --git a/retroarch.c b/retroarch.c index ea9d003824..5e1315b4dc 100644 --- a/retroarch.c +++ b/retroarch.c @@ -1025,11 +1025,7 @@ static void rarch_init_savefile_paths(void) static bool init_state(void) { - driver_t *driver = driver_get_ptr(); - if (!driver) - return false; - - driver->video_active = true; + video_driver_ctl(RARCH_DISPLAY_CTL_SET_ACTIVE, NULL); audio_driver_ctl(RARCH_AUDIO_CTL_SET_ACTIVE, NULL); return true;