Take variables out of video_state

This commit is contained in:
twinaphex 2016-10-01 04:21:33 +02:00
parent f5a38977d8
commit ae607a29b7
1 changed files with 25 additions and 28 deletions

View File

@ -66,17 +66,6 @@
typedef struct video_driver_state typedef struct video_driver_state
{ {
struct
{
retro_time_t samples[MEASURE_FRAME_TIME_SAMPLES_COUNT];
uint64_t count;
} frame_time;
enum retro_pixel_format pix_fmt;
unsigned video_width;
unsigned video_height;
float aspect_ratio;
struct struct
{ {
@ -112,9 +101,17 @@ static uintptr_t video_driver_window;
static video_driver_state_t video_driver_state; static video_driver_state_t video_driver_state;
static enum retro_pixel_format video_driver_pix_fmt;
static float video_driver_aspect_ratio;
static unsigned video_driver_width = 0;
static unsigned video_driver_height = 0;
static enum rarch_display_type video_driver_display_type = RARCH_DISPLAY_NONE; static enum rarch_display_type video_driver_display_type = RARCH_DISPLAY_NONE;
static char video_driver_title_buf[64] = {0}; static char video_driver_title_buf[64] = {0};
static retro_time_t video_driver_frame_time_samples[MEASURE_FRAME_TIME_SAMPLES_COUNT];
static uint64_t video_driver_frame_time_count = 0;
static uint64_t video_driver_frame_count = 0; static uint64_t video_driver_frame_count = 0;
static void *video_driver_data = NULL; static void *video_driver_data = NULL;
@ -479,7 +476,7 @@ static void video_monitor_compute_fps_statistics(void)
return; return;
} }
if (video_driver_state.frame_time.count < if (video_driver_frame_time_count <
(2 * MEASURE_FRAME_TIME_SAMPLES_COUNT)) (2 * MEASURE_FRAME_TIME_SAMPLES_COUNT))
{ {
RARCH_LOG( RARCH_LOG(
@ -611,7 +608,7 @@ static bool init_video(void)
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system); runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
init_video_filter(video_driver_state.pix_fmt); init_video_filter(video_driver_pix_fmt);
command_event(CMD_EVENT_SHADER_DIR_INIT, NULL); command_event(CMD_EVENT_SHADER_DIR_INIT, NULL);
if (av_info) if (av_info)
@ -696,7 +693,7 @@ static bool init_video(void)
video.input_scale = scale; video.input_scale = scale;
video.rgb32 = video_driver_state.filter.filter ? video.rgb32 = video_driver_state.filter.filter ?
video_driver_state.filter.out_rgb32 : video_driver_state.filter.out_rgb32 :
(video_driver_state.pix_fmt == RETRO_PIXEL_FORMAT_XRGB8888); (video_driver_pix_fmt == RETRO_PIXEL_FORMAT_XRGB8888);
/* Reset video frame count */ /* Reset video frame count */
video_driver_frame_count = 0; video_driver_frame_count = 0;
@ -890,17 +887,17 @@ void video_driver_cached_frame_get(const void **data, unsigned *width,
void video_driver_get_size(unsigned *width, unsigned *height) void video_driver_get_size(unsigned *width, unsigned *height)
{ {
if (width) if (width)
*width = video_driver_state.video_width; *width = video_driver_width;
if (height) if (height)
*height = video_driver_state.video_height; *height = video_driver_height;
} }
void video_driver_set_size(unsigned *width, unsigned *height) void video_driver_set_size(unsigned *width, unsigned *height)
{ {
if (width) if (width)
video_driver_state.video_width = *width; video_driver_width = *width;
if (height) if (height)
video_driver_state.video_height = *height; video_driver_height = *height;
} }
/** /**
@ -944,14 +941,14 @@ bool video_monitor_fps_statistics(double *refresh_rate,
retro_time_t accum = 0, avg, accum_var = 0; retro_time_t accum = 0, avg, accum_var = 0;
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
unsigned samples = MIN(MEASURE_FRAME_TIME_SAMPLES_COUNT, unsigned samples = MIN(MEASURE_FRAME_TIME_SAMPLES_COUNT,
video_driver_state.frame_time.count); video_driver_frame_time_count);
if (settings->video.threaded || (samples < 2)) if (settings->video.threaded || (samples < 2))
return false; return false;
/* Measure statistics on frame time (microsecs), *not* FPS. */ /* Measure statistics on frame time (microsecs), *not* FPS. */
for (i = 0; i < samples; i++) for (i = 0; i < samples; i++)
accum += video_driver_state.frame_time.samples[i]; accum += video_driver_frame_time_samples[i];
#if 0 #if 0
for (i = 0; i < samples; i++) for (i = 0; i < samples; i++)
@ -964,7 +961,7 @@ bool video_monitor_fps_statistics(double *refresh_rate,
/* Drop first measurement. It is likely to be bad. */ /* Drop first measurement. It is likely to be bad. */
for (i = 0; i < samples; i++) for (i = 0; i < samples; i++)
{ {
retro_time_t diff = video_driver_state.frame_time.samples[i] - avg; retro_time_t diff = video_driver_frame_time_samples[i] - avg;
accum_var += diff * diff; accum_var += diff * diff;
} }
@ -1003,10 +1000,10 @@ bool video_monitor_get_fps(char *buf, size_t size,
static float last_fps; static float last_fps;
bool ret = false; bool ret = false;
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
unsigned write_index = video_driver_state.frame_time.count++ & unsigned write_index = video_driver_frame_time_count++ &
(MEASURE_FRAME_TIME_SAMPLES_COUNT - 1); (MEASURE_FRAME_TIME_SAMPLES_COUNT - 1);
video_driver_state.frame_time.samples[write_index] = new_time - fps_time; video_driver_frame_time_samples[write_index] = new_time - fps_time;
fps_time = new_time; fps_time = new_time;
if ((video_driver_frame_count % FPS_UPDATE_INTERVAL) == 0) if ((video_driver_frame_count % FPS_UPDATE_INTERVAL) == 0)
@ -1056,12 +1053,12 @@ bool video_monitor_get_fps(char *buf, size_t size,
float video_driver_get_aspect_ratio(void) float video_driver_get_aspect_ratio(void)
{ {
return video_driver_state.aspect_ratio; return video_driver_aspect_ratio;
} }
void video_driver_set_aspect_ratio_value(float value) void video_driver_set_aspect_ratio_value(float value)
{ {
video_driver_state.aspect_ratio = value; video_driver_aspect_ratio = value;
} }
static bool video_driver_frame_filter(const void *data, static bool video_driver_frame_filter(const void *data,
@ -1103,12 +1100,12 @@ rarch_softfilter_t *video_driver_frame_filter_get_ptr(void)
enum retro_pixel_format video_driver_get_pixel_format(void) enum retro_pixel_format video_driver_get_pixel_format(void)
{ {
return video_driver_state.pix_fmt; return video_driver_pix_fmt;
} }
void video_driver_set_pixel_format(enum retro_pixel_format fmt) void video_driver_set_pixel_format(enum retro_pixel_format fmt)
{ {
video_driver_state.pix_fmt = fmt; video_driver_pix_fmt = fmt;
} }
/** /**
@ -1575,7 +1572,7 @@ void video_driver_deinit(void)
void video_driver_monitor_reset(void) void video_driver_monitor_reset(void)
{ {
video_driver_state.frame_time.count = 0; video_driver_frame_time_count = 0;
} }
void video_driver_set_aspect_ratio(void) void video_driver_set_aspect_ratio(void)