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_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; void *video_driver_data = NULL;
static video_driver_t *current_video = NULL; video_driver_t *current_video = NULL;
/* Interface for "poking". */ /* Interface for "poking". */
static const video_poke_interface_t *video_driver_poke = NULL; 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) bool video_driver_read_viewport(uint8_t *buffer)
{ {
if (!current_video->read_viewport) if ( current_video->read_viewport
return false; && current_video->read_viewport(video_driver_data, buffer))
if (!current_video->read_viewport(video_driver_data, buffer)) return true;
return false;
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; return false;
#else
return current_video->has_windowed(video_driver_data);
#endif
} }
uint64_t *video_driver_get_frame_count_ptr(void) 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) bool video_driver_get_current_software_framebuffer(struct retro_framebuffer *fb)
{ {
if ( if (
!video_driver_poke || video_driver_poke
!video_driver_poke->get_current_software_framebuffer) && video_driver_poke->get_current_software_framebuffer
return false; && video_driver_poke->get_current_software_framebuffer(
if (!video_driver_poke->get_current_software_framebuffer(
video_driver_data, fb)) video_driver_data, fb))
return false; return true;
return true; return false;
} }
bool video_driver_get_hw_render_interface( bool video_driver_get_hw_render_interface(
const struct retro_hw_render_interface **iface) const struct retro_hw_render_interface **iface)
{ {
if ( if (
!video_driver_poke || video_driver_poke
!video_driver_poke->get_hw_render_interface) && video_driver_poke->get_hw_render_interface
return false; && video_driver_poke->get_hw_render_interface(
if (!video_driver_poke->get_hw_render_interface(
video_driver_data, iface)) video_driver_data, iface))
return false; return true;
return true; return false;
} }
bool video_driver_get_viewport_info(struct video_viewport *viewport) 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]; 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_destroy(void);
void video_driver_set_cached_frame_ptr(const void *data); void video_driver_set_cached_frame_ptr(const void *data);
void video_driver_set_stub_frame(void); 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); bool video_driver_find_driver(void);
void video_driver_apply_state_changes(void); void video_driver_apply_state_changes(void);
bool video_driver_read_viewport(uint8_t *buffer); 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_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); uint64_t *video_driver_get_frame_count_ptr(void);
bool video_driver_frame_filter_alive(void); bool video_driver_frame_filter_alive(void);
bool video_driver_frame_filter_is_32bit(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_xshm;
extern video_driver_t video_null; extern video_driver_t video_null;
extern void *video_driver_data;
extern video_driver_t *current_video;
RETRO_END_DECLS RETRO_END_DECLS
#endif #endif