Create video_driver_display_userdata_{set/get}

This commit is contained in:
twinaphex 2019-09-22 07:35:05 +02:00
parent 464df18ac2
commit c7fd375120
4 changed files with 19 additions and 1 deletions

View File

@ -992,6 +992,7 @@ bool win32_window_create(void *data, unsigned style,
video_driver_display_type_set(RARCH_DISPLAY_WIN32);
video_driver_display_set(0);
video_driver_display_userdata_set((uintptr_t)&main_window);
video_driver_window_set((uintptr_t)main_window.hwnd);
#if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0500 /* 2K */

View File

@ -221,6 +221,7 @@ static void sdl2_gfx_set_handles(sdl2_video_t *vid)
if (SDL_GetWindowWMInfo(vid->window, &info) != 1)
return;
video_driver_display_userdata_set((uintptr_t)vid->window);
#if defined(_WIN32)
video_driver_display_type_set(RARCH_DISPLAY_WIN32);
video_driver_display_set(0);
@ -522,7 +523,7 @@ static bool sdl2_gfx_frame(void *data, const void *frame, unsigned width,
video_driver_get_window_title(title, sizeof(title));
if (title[0])
SDL_SetWindowTitle(vid->window, title);
SDL_SetWindowTitle((SDL_Window*)video_driver_display_userdata_get(), title);
return true;
}

View File

@ -1436,6 +1436,7 @@ static gfx_api_gpu_map gpu_map[] = {
* Used by e.g. input drivers which bind to a window.
* Drivers are responsible for setting these if an input driver
* could potentially make use of this. */
static uintptr_t video_driver_display_userdata = 0;
static uintptr_t video_driver_display = 0;
static uintptr_t video_driver_window = 0;
@ -18034,6 +18035,7 @@ static bool video_driver_init_internal(bool *video_is_threaded)
video_driver_display_type_set(RARCH_DISPLAY_NONE);
video_driver_display_set(0);
video_driver_display_userdata_set(0);
video_driver_window_set(0);
if (!video_driver_pixel_converter_init(RARCH_SCALE_BASE * scale))
@ -19383,6 +19385,16 @@ uintptr_t video_driver_display_get(void)
return video_driver_display;
}
uintptr_t video_driver_display_userdata_get(void)
{
return video_driver_display_userdata;
}
void video_driver_display_userdata_set(uintptr_t idx)
{
video_driver_display_userdata = idx;
}
void video_driver_display_set(uintptr_t idx)
{
video_driver_display = idx;

View File

@ -1786,6 +1786,8 @@ bool video_driver_translate_coord_viewport(
int16_t *res_x, int16_t *res_y, int16_t *res_screen_x,
int16_t *res_screen_y);
uintptr_t video_driver_display_userdata_get(void);
uintptr_t video_driver_display_get(void);
enum rarch_display_type video_driver_display_type_get(void);
@ -1796,6 +1798,8 @@ void video_driver_display_type_set(enum rarch_display_type type);
void video_driver_display_set(uintptr_t idx);
void video_driver_display_userdata_set(uintptr_t idx);
void video_driver_window_set(uintptr_t idx);
uintptr_t video_driver_window_get(void);