mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
(GDI) Put gdi_menu_frame into struct
This commit is contained in:
parent
efe72dea94
commit
d63daacdf9
@ -49,6 +49,7 @@ typedef struct gdi
|
||||
int win_minor;
|
||||
bool lte_win98;
|
||||
unsigned short *temp_buf;
|
||||
unsigned char *menu_frame;
|
||||
} gdi_t;
|
||||
|
||||
typedef struct gdi_texture
|
||||
|
@ -1149,7 +1149,7 @@ LRESULT CALLBACK WndProcGDI(HWND hwnd, UINT message,
|
||||
gdi->bmp_old = (HBITMAP)SelectObject(gdi->memDC, gdi->bmp);
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
if (menu_driver_is_alive() && !gdi_has_menu_frame())
|
||||
if (menu_driver_is_alive() && !gdi_has_menu_frame(gdi))
|
||||
{
|
||||
/* draw menu contents behind a gradient background */
|
||||
if (gdi && gdi->memDC)
|
||||
|
@ -62,7 +62,7 @@ void create_graphics_context(HWND hwnd, bool *quit);
|
||||
|
||||
void create_gdi_context(HWND hwnd, bool *quit);
|
||||
|
||||
bool gdi_has_menu_frame(void);
|
||||
bool gdi_has_menu_frame(void *data);
|
||||
|
||||
bool win32_get_video_output(DEVMODE *dm, int mode, size_t len);
|
||||
|
||||
|
@ -39,8 +39,6 @@
|
||||
#include "../common/win32_common.h"
|
||||
#endif
|
||||
|
||||
static unsigned char *gdi_menu_frame = NULL;
|
||||
|
||||
static void gdi_gfx_create(gdi_t *gdi)
|
||||
{
|
||||
char os[64] = {0};
|
||||
@ -215,9 +213,9 @@ static bool gdi_gfx_frame(void *data, const void *frame,
|
||||
}
|
||||
}
|
||||
|
||||
if (gdi_menu_frame && video_info->menu_is_alive)
|
||||
if (gdi->menu_frame && video_info->menu_is_alive)
|
||||
{
|
||||
frame_to_copy = gdi_menu_frame;
|
||||
frame_to_copy = gdi->menu_frame;
|
||||
width = gdi->menu_width;
|
||||
height = gdi->menu_height;
|
||||
pitch = gdi->menu_pitch;
|
||||
@ -319,7 +317,7 @@ static bool gdi_gfx_frame(void *data, const void *frame,
|
||||
info->bmiHeader.biCompression = BI_BITFIELDS;
|
||||
|
||||
/* default 16-bit format on Windows is XRGB1555 */
|
||||
if (frame_to_copy == gdi_menu_frame)
|
||||
if (frame_to_copy == gdi->menu_frame)
|
||||
{
|
||||
/* map RGB444 color bits for RGUI */
|
||||
masks[0] = 0xF000;
|
||||
@ -411,9 +409,9 @@ static void gdi_gfx_free(void *data)
|
||||
if (!gdi)
|
||||
return;
|
||||
|
||||
if (gdi_menu_frame)
|
||||
free(gdi_menu_frame);
|
||||
gdi_menu_frame = NULL;
|
||||
if (gdi->menu_frame)
|
||||
free(gdi->menu_frame);
|
||||
gdi->menu_frame = NULL;
|
||||
|
||||
if (gdi->temp_buf)
|
||||
free(gdi->temp_buf);
|
||||
@ -464,11 +462,11 @@ static void gdi_set_texture_frame(void *data,
|
||||
if (rgb32)
|
||||
pitch = width * 4;
|
||||
|
||||
if (gdi_menu_frame)
|
||||
free(gdi_menu_frame);
|
||||
gdi_menu_frame = NULL;
|
||||
if (gdi->menu_frame)
|
||||
free(gdi->menu_frame);
|
||||
gdi->menu_frame = NULL;
|
||||
|
||||
if ( !gdi_menu_frame ||
|
||||
if ( !gdi->menu_frame ||
|
||||
gdi->menu_width != width ||
|
||||
gdi->menu_height != height ||
|
||||
gdi->menu_pitch != pitch)
|
||||
@ -478,13 +476,13 @@ static void gdi_set_texture_frame(void *data,
|
||||
unsigned char *tmp = (unsigned char*)malloc(pitch * height);
|
||||
|
||||
if (tmp)
|
||||
gdi_menu_frame = tmp;
|
||||
gdi->menu_frame = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
if (gdi_menu_frame && frame && pitch && height)
|
||||
if (gdi->menu_frame && frame && pitch && height)
|
||||
{
|
||||
memcpy(gdi_menu_frame, frame, pitch * height);
|
||||
memcpy(gdi->menu_frame, frame, pitch * height);
|
||||
gdi->menu_width = width;
|
||||
gdi->menu_height = height;
|
||||
gdi->menu_pitch = pitch;
|
||||
@ -620,9 +618,10 @@ static void gdi_gfx_set_viewport(void *data, unsigned viewport_width,
|
||||
{
|
||||
}
|
||||
|
||||
bool gdi_has_menu_frame(void)
|
||||
bool gdi_has_menu_frame(void *data)
|
||||
{
|
||||
return (gdi_menu_frame != NULL);
|
||||
gdi_t *gdi = (gdi_t*)data;
|
||||
return (gdi->menu_frame != NULL);
|
||||
}
|
||||
|
||||
video_driver_t video_gdi = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user