Simplify video_driver.c code - turn some functions into macros

This commit is contained in:
twinaphex 2016-11-21 13:17:28 +01:00
parent f85632b8e8
commit 05d6735720
2 changed files with 30 additions and 51 deletions

View File

@ -101,8 +101,8 @@ static retro_time_t video_driver_frame_time_samples[MEASURE_FRAME_TIME_SAMPLES_C
static uint64_t video_driver_frame_time_count = 0;
static uint64_t video_driver_frame_count = 0;
static void *video_driver_data = NULL;
static video_driver_t *current_video = NULL;
void *video_driver_data = NULL;
video_driver_t *current_video = NULL;
/* Interface for "poking". */
static const video_poke_interface_t *video_driver_poke = NULL;
@ -1668,40 +1668,11 @@ void video_driver_apply_state_changes(void)
bool video_driver_read_viewport(uint8_t *buffer)
{
if (!current_video->read_viewport)
return false;
if (!current_video->read_viewport(video_driver_data, buffer))
return false;
if ( current_video->read_viewport
&& current_video->read_viewport(video_driver_data, buffer))
return true;
return true;
}
bool video_driver_cached_frame_has_valid_framebuffer(void)
{
if (!frame_cache_data)
return false;
return frame_cache_data == RETRO_HW_FRAME_BUFFER_VALID;
}
bool video_driver_is_alive(void)
{
if (current_video)
return current_video->alive(video_driver_data);
return true;
}
bool video_driver_is_focused(void)
{
return current_video->focus(video_driver_data);
}
bool video_driver_has_windowed(void)
{
#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE)
return false;
#else
return current_video->has_windowed(video_driver_data);
#endif
}
uint64_t *video_driver_get_frame_count_ptr(void)
@ -1902,29 +1873,26 @@ void video_driver_gpu_record_deinit(void)
bool video_driver_get_current_software_framebuffer(struct retro_framebuffer *fb)
{
if (
!video_driver_poke ||
!video_driver_poke->get_current_software_framebuffer)
return false;
if (!video_driver_poke->get_current_software_framebuffer(
video_driver_poke
&& video_driver_poke->get_current_software_framebuffer
&& video_driver_poke->get_current_software_framebuffer(
video_driver_data, fb))
return false;
return true;
return true;
return false;
}
bool video_driver_get_hw_render_interface(
const struct retro_hw_render_interface **iface)
{
if (
!video_driver_poke ||
!video_driver_poke->get_hw_render_interface)
return false;
if (!video_driver_poke->get_hw_render_interface(
video_driver_poke
&& video_driver_poke->get_hw_render_interface
&& video_driver_poke->get_hw_render_interface(
video_driver_data, iface))
return false;
return true;
return true;
return false;
}
bool video_driver_get_viewport_info(struct video_viewport *viewport)

View File

@ -213,6 +213,18 @@ struct aspect_ratio_elem
extern struct aspect_ratio_elem aspectratio_lut[ASPECT_RATIO_END];
#define video_driver_is_alive() ((current_video) ? current_video->alive(video_driver_data) : true)
#define video_driver_is_focused() (current_video->focus(video_driver_data))
#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE)
#define video_driver_has_windowed() (false)
#else
#define video_driver_has_windowed() (current_video->has_windowed(video_driver_data))
#endif
#define video_driver_cached_frame_has_valid_framebuffer() (frame_cache_data ? (frame_cache_data == RETRO_HW_FRAME_BUFFER_VALID) : false)
void video_driver_destroy(void);
void video_driver_set_cached_frame_ptr(const void *data);
void video_driver_set_stub_frame(void);
@ -240,11 +252,7 @@ void video_driver_set_nonblock_state(bool toggle);
bool video_driver_find_driver(void);
void video_driver_apply_state_changes(void);
bool video_driver_read_viewport(uint8_t *buffer);
bool video_driver_cached_frame_has_valid_framebuffer(void);
bool video_driver_cached_frame(void);
bool video_driver_is_alive(void);
bool video_driver_is_focused(void);
bool video_driver_has_windowed(void);
uint64_t *video_driver_get_frame_count_ptr(void);
bool video_driver_frame_filter_alive(void);
bool video_driver_frame_filter_is_32bit(void);
@ -506,6 +514,9 @@ extern video_driver_t video_drm;
extern video_driver_t video_xshm;
extern video_driver_t video_null;
extern void *video_driver_data;
extern video_driver_t *current_video;
RETRO_END_DECLS
#endif