Get rid of more driver_funcs macros

This commit is contained in:
twinaphex 2014-08-15 20:51:59 +02:00
parent b21a757b5e
commit 823be1ce41
12 changed files with 41 additions and 39 deletions

View File

@ -234,7 +234,7 @@ static bool cmd_set_shader(const char *arg)
msg_queue_push(g_extern.msg_queue, msg, 1, 120);
RARCH_LOG("Applying shader \"%s\".\n", arg);
return video_set_shader_func(type, arg);
return driver.video->set_shader(driver.video_data, type, arg);
}
static const struct cmd_action_map action_map[] = {

View File

@ -821,7 +821,7 @@ static void adjust_system_rates(void)
if (driver.video_data)
{
if (g_extern.system.force_nonblock)
video_set_nonblock_state_func(true);
driver.video->set_nonblock_state(driver.video_data, true);
else
driver_set_nonblock_state(driver.nonblock_state);
}
@ -850,7 +850,7 @@ void driver_set_nonblock_state(bool nonblock)
bool video_nb = nonblock;
if (!g_settings.video.vsync || g_extern.system.force_nonblock)
video_nb = true;
video_set_nonblock_state_func(video_nb);
driver.video->set_nonblock_state(driver.video_data, video_nb);
}
if (g_extern.audio_active && driver.audio_data)
@ -1525,7 +1525,7 @@ void init_video_input(void)
}
if (driver.video->set_rotation)
video_set_rotation_func((g_settings.video.rotation + g_extern.system.rotation) % 4);
driver.video->set_rotation(driver.video_data, (g_settings.video.rotation + g_extern.system.rotation) % 4);
#ifdef HAVE_X11
if (driver.display_type == RARCH_DISPLAY_X11)

View File

@ -18,16 +18,6 @@
#ifndef _RARCH_DRIVER_FUNCS_H
#define _RARCH_DRIVER_FUNCS_H
#define video_set_nonblock_state_func(state) driver.video->set_nonblock_state(driver.video_data, state)
#define video_alive_func() driver.video->alive(driver.video_data)
#define video_focus_func() driver.video->focus(driver.video_data)
#define video_set_shader_func(type, path) driver.video->set_shader(driver.video_data, type, path)
#define video_set_rotation_func(rotate) driver.video->set_rotation(driver.video_data, rotate)
#define video_set_aspect_ratio_func(aspect_idx) driver.video->set_aspect_ratio(driver.video_data, aspect_idx)
#define video_viewport_info_func(info) driver.video->viewport_info(driver.video_data, info)
#define video_read_viewport_func(buffer) driver.video->read_viewport(driver.video_data, buffer)
#define video_overlay_interface_func(iface) driver.video->overlay_interface(driver.video_data, iface)
static inline bool input_key_pressed_func(int key)
{
bool ret = false;

View File

@ -554,7 +554,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
if (driver.video && driver.video->set_rotation)
{
if (driver.video_data)
video_set_rotation_func(rotation);
driver.video->set_rotation(driver.video_data, rotation);
}
else
return false;

View File

@ -132,7 +132,8 @@ static int main_entry_iterate_menu_preinit(args_type() args)
return 1;
// Menu should always run with vsync on.
video_set_nonblock_state_func(false);
driver.video->set_nonblock_state(driver.video_data, false);
// Stop all rumbling when entering the menu.
for (i = 0; i < MAX_PLAYERS; i++)
{
@ -174,7 +175,7 @@ static int main_entry_iterate_menu(args_type() args)
g_extern.lifecycle_state |= (1ULL << MODE_CLEAR_INPUT);
// If QUIT state came from command interface, we'll only see it once due to MODE_CLEAR_INPUT.
if (input_key_pressed_func(RARCH_QUIT_KEY) || !video_alive_func())
if (input_key_pressed_func(RARCH_QUIT_KEY) || !driver.video->alive(driver.video_data))
return 1;
}

View File

@ -2725,7 +2725,7 @@ static void menu_common_shader_manager_set_preset(struct gfx_shader *shader, uns
#ifdef HAVE_SHADER_MANAGER
RARCH_LOG("Setting Menu shader: %s.\n", cgp_path ? cgp_path : "N/A (stock)");
if (driver.video->set_shader && video_set_shader_func((enum rarch_shader_type)type, cgp_path))
if (driver.video->set_shader && driver.video->set_shader(driver.video_data, (enum rarch_shader_type)type, cgp_path))
{
// Makes sure that we use Menu CGP shader on driver reinit.
// Only do this when the cgp actually works to avoid potential errors.
@ -3946,8 +3946,9 @@ static int menu_common_setting_set(unsigned id, unsigned action, rarch_setting_t
if (driver_monitor_fps_statistics(&refresh_rate, &deviation, &sample_points))
{
driver_set_monitor_refresh_rate(refresh_rate);
// Incase refresh rate update forced non-block video.
video_set_nonblock_state_func(false);
driver.video->set_nonblock_state(driver.video_data, false);
}
break;
}

View File

@ -390,7 +390,7 @@ bool menu_iterate(void)
#endif
rarch_check_fullscreen();
if (input_key_pressed_func(RARCH_QUIT_KEY) || !video_alive_func())
if (input_key_pressed_func(RARCH_QUIT_KEY) || !driver.video->alive(driver.video_data))
{
g_extern.lifecycle_state |= (1ULL << MODE_GAME);
return false;

View File

@ -254,8 +254,8 @@ bool input_translate_coord_viewport(int mouse_x, int mouse_y,
int16_t *res_x, int16_t *res_y, int16_t *res_screen_x, int16_t *res_screen_y)
{
struct rarch_viewport vp = {0};
if (driver.video->viewport_info)
video_viewport_info_func(&vp);
if (driver.video && driver.video->viewport_info)
driver.video->viewport_info(driver.video_data, &vp);
else
return false;

View File

@ -592,7 +592,8 @@ input_overlay_t *input_overlay_new(const char *overlay)
goto error;
}
video_overlay_interface_func(&ol->iface);
if (driver.video && driver.video->overlay_interface)
driver.video->overlay_interface(driver.video_data, &ol->iface);
ol->iface_data = driver.video_data;
if (!ol->iface)

View File

@ -255,10 +255,12 @@ static void x_input_poll_mouse(x11_input_t *x11)
x11->mouse_wd = mask & Button5Mask;
// Somewhat hacky, but seem to do the job.
if (x11->grab_mouse && video_focus_func())
if (x11->grab_mouse && driver.video->focus(driver.video_data))
{
struct rarch_viewport vp = {0};
video_viewport_info_func(&vp);
if (driver.video && driver.video->viewport_info)
driver.video->viewport_info(driver.video_data, &vp);
int mid_w = vp.full_width >> 1;
int mid_h = vp.full_height >> 1;
@ -277,7 +279,7 @@ static void x_input_poll(void *data)
{
x11_input_t *x11 = (x11_input_t*)data;
if (video_focus_func())
if (driver.video->focus(driver.video_data))
XQueryKeymap(x11->display, x11->state);
else
memset(x11->state, 0, sizeof(x11->state));

View File

@ -86,7 +86,8 @@ static bool take_screenshot_viewport(void)
bool retval = false;
struct rarch_viewport vp = {0};
video_viewport_info_func(&vp);
if (driver.video && driver.video->viewport_info)
driver.video->viewport_info(driver.video_data, &vp);
if (!vp.width || !vp.height)
return false;
@ -94,8 +95,9 @@ static bool take_screenshot_viewport(void)
if (!(buffer = (uint8_t*)malloc(vp.width * vp.height * 3)))
return false;
if (!video_read_viewport_func(buffer))
goto done;
if (driver.video && driver.video->read_viewport)
if (!driver.video->read_viewport(driver.video_data, buffer))
goto done;
screenshot_dir = g_settings.screenshot_directory;
@ -253,7 +255,8 @@ static void init_recording(void)
if (g_settings.video.gpu_record && driver.video->read_viewport)
{
struct rarch_viewport vp = {0};
video_viewport_info_func(&vp);
if (driver.video && driver.video->viewport_info)
driver.video->viewport_info(driver.video_data, &vp);
if (!vp.width || !vp.height)
{
@ -357,7 +360,8 @@ static void recording_dump_frame(const void *data, unsigned width, unsigned heig
{
struct rarch_viewport vp = {0};
video_viewport_info_func(&vp);
if (driver.video && driver.video->viewport_info)
driver.video->viewport_info(driver.video_data, &vp);
if (!vp.width || !vp.height)
{
@ -384,8 +388,9 @@ static void recording_dump_frame(const void *data, unsigned width, unsigned heig
// Big bottleneck.
// Since we might need to do read-backs asynchronously, it might take 3-4 times
// before this returns true ...
if (!video_read_viewport_func(g_extern.record_gpu_buffer))
return;
if (driver.video && driver.video->read_viewport)
if (!driver.video->read_viewport(driver.video_data, g_extern.record_gpu_buffer))
return;
ffemu_data.pitch = g_extern.record_gpu_width * 3;
ffemu_data.width = g_extern.record_gpu_width;
@ -2267,7 +2272,7 @@ static void check_pause(void)
new_state |= !g_extern.is_paused && input_key_pressed_func(RARCH_FRAMEADVANCE);
if (g_settings.pause_nonactive)
focus = video_focus_func();
focus = driver.video->focus(driver.video_data);
if (focus && new_state && !old_state)
{
@ -2408,7 +2413,7 @@ static void check_shader_dir(void)
msg_queue_push(g_extern.msg_queue, msg, 1, 120);
RARCH_LOG("Applying shader \"%s\".\n", shader);
if (!video_set_shader_func(type, shader))
if (!driver.video->set_shader(driver.video_data, type, shader))
RARCH_WARN("Failed to apply shader.\n");
}
@ -3231,7 +3236,7 @@ bool rarch_main_iterate(void)
return false;
// Time to drop?
if (input_key_pressed_func(RARCH_QUIT_KEY) || !video_alive_func())
if (input_key_pressed_func(RARCH_QUIT_KEY) || !driver.video->alive(driver.video_data))
return false;
if (check_enter_menu())

View File

@ -1090,7 +1090,8 @@ static void general_write_handler(const void *data)
else if (!strcmp(setting->name, "video_rotation"))
{
g_settings.video.rotation = *setting->value.unsigned_integer;
video_set_rotation_func((g_settings.video.rotation + g_extern.system.rotation) % 4);
if (driver.video && driver.video->set_rotation)
driver.video->set_rotation(driver.video_data, (g_settings.video.rotation + g_extern.system.rotation) % 4);
}
else if (!strcmp(setting->name, "video_threaded"))
{
@ -1101,7 +1102,7 @@ static void general_write_handler(const void *data)
{
g_settings.video.swap_interval = *setting->value.unsigned_integer;
if (driver.video && driver.video_data)
video_set_nonblock_state_func(false);
driver.video->set_nonblock_state(driver.video_data, false);
}
else if (!strcmp(setting->name, "video_crop_overscan"))
g_settings.video.crop_overscan = *setting->value.boolean;
@ -1227,8 +1228,9 @@ static void general_write_handler(const void *data)
if (driver.video && driver.video_data)
{
driver_set_monitor_refresh_rate(*setting->value.fraction);
/* In case refresh rate update forced non-block video. */
video_set_nonblock_state_func(false);
driver.video->set_nonblock_state(driver.video_data, false);
}
}
else if (!strcmp(setting->name, "video_aspect_ratio"))