Reduce amount of calls to video_driver_get_size

This commit is contained in:
twinaphex 2017-01-18 23:07:05 +01:00
parent c5445d2980
commit 55b8b8c244

View File

@ -332,14 +332,16 @@ static void d3d_viewport_info(void *data, struct video_viewport *vp)
d3d->renderchain_driver->viewport_info(d3d, vp); d3d->renderchain_driver->viewport_info(d3d, vp);
} }
static void d3d_overlay_render(d3d_video_t *d3d, overlay_t *overlay) static void d3d_overlay_render(d3d_video_t *d3d, video_frame_info_t *video_info,
overlay_t *overlay)
{ {
struct video_viewport vp; struct video_viewport vp;
unsigned width, height;
void *verts; void *verts;
unsigned i; unsigned i;
float vert[4][9]; float vert[4][9];
float overlay_width, overlay_height; float overlay_width, overlay_height;
unsigned width = video_info->width;
unsigned height = video_info->height;
if (!d3d || !overlay || !overlay->tex) if (!d3d || !overlay || !overlay->tex)
return; return;
@ -429,8 +431,6 @@ static void d3d_overlay_render(d3d_video_t *d3d, overlay_t *overlay)
{ {
D3DVIEWPORT vp_full; D3DVIEWPORT vp_full;
video_driver_get_size(&width, &height);
vp_full.X = 0; vp_full.X = 0;
vp_full.Y = 0; vp_full.Y = 0;
vp_full.Width = width; vp_full.Width = width;
@ -1370,19 +1370,19 @@ static bool d3d_frame(void *data, const void *frame,
uint64_t frame_count, unsigned pitch, uint64_t frame_count, unsigned pitch,
const char *msg, video_frame_info_t *video_info) const char *msg, video_frame_info_t *video_info)
{ {
unsigned width, height; static struct
static struct retro_perf_counter d3d_frame = {0}; retro_perf_counter d3d_frame = {0};
unsigned i = 0; unsigned i = 0;
d3d_video_t *d3d = (d3d_video_t*)data; d3d_video_t *d3d = (d3d_video_t*)data;
HWND window = win32_get_window(); HWND window = win32_get_window();
unsigned width = video_info->width;
unsigned height = video_info->height;
(void)i; (void)i;
if (!frame) if (!frame)
return true; return true;
video_driver_get_size(&width, &height);
performance_counter_init(&d3d_frame, "d3d_frame"); performance_counter_init(&d3d_frame, "d3d_frame");
performance_counter_start(&d3d_frame); performance_counter_start(&d3d_frame);
@ -1448,7 +1448,7 @@ static bool d3d_frame(void *data, const void *frame,
#ifdef HAVE_MENU #ifdef HAVE_MENU
if (d3d->menu && d3d->menu->enabled) if (d3d->menu && d3d->menu->enabled)
{ {
d3d_overlay_render(d3d, d3d->menu); d3d_overlay_render(d3d, video_info, d3d->menu);
menu_driver_frame(video_info); menu_driver_frame(video_info);
} }
#endif #endif
@ -1457,7 +1457,7 @@ static bool d3d_frame(void *data, const void *frame,
if (d3d->overlays_enabled) if (d3d->overlays_enabled)
{ {
for (i = 0; i < d3d->overlays.size(); i++) for (i = 0; i < d3d->overlays.size(); i++)
d3d_overlay_render(d3d, &d3d->overlays[i]); d3d_overlay_render(d3d, video_info, &d3d->overlays[i]);
} }
#endif #endif