mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-10-17 07:16:00 +00:00
Displays are now referenced by instance ID instead of index
This commit is contained in:
@@ -194,7 +194,7 @@ static void WIN_AdjustWindowRectWithStyle(SDL_Window *window, DWORD style, BOOL
|
||||
|
||||
static void WIN_AdjustWindowRect(SDL_Window *window, int *x, int *y, int *width, int *height, SDL_bool use_current)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
DWORD style;
|
||||
BOOL menu;
|
||||
@@ -210,7 +210,7 @@ static void WIN_AdjustWindowRect(SDL_Window *window, int *x, int *y, int *width,
|
||||
|
||||
static void WIN_SetWindowPositionInternal(_THIS, SDL_Window *window, UINT flags)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
HWND top;
|
||||
int x, y;
|
||||
@@ -278,7 +278,7 @@ static int WIN_GetScalingDPIForHWND(const SDL_VideoData *videodata, HWND hwnd)
|
||||
|
||||
static int SetupWindowData(_THIS, SDL_Window *window, HWND hwnd, HWND parent, SDL_bool created)
|
||||
{
|
||||
SDL_VideoData *videodata = (SDL_VideoData *)_this->driverdata;
|
||||
SDL_VideoData *videodata = _this->driverdata;
|
||||
SDL_WindowData *data;
|
||||
|
||||
/* Allocate the window data */
|
||||
@@ -438,7 +438,7 @@ static int SetupWindowData(_THIS, SDL_Window *window, HWND hwnd, HWND parent, SD
|
||||
|
||||
static void CleanupWindowData(_THIS, SDL_Window *window)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
|
||||
if (data) {
|
||||
SDL_DelHintCallback(SDL_HINT_MOUSE_RELATIVE_MODE_CENTER, WIN_MouseRelativeModeCenterChanged, data);
|
||||
@@ -613,7 +613,7 @@ int WIN_CreateWindowFrom(_THIS, SDL_Window *window, const void *data)
|
||||
void WIN_SetWindowTitle(_THIS, SDL_Window *window)
|
||||
{
|
||||
#if !defined(__XBOXONE__) && !defined(__XBOXSERIES__)
|
||||
HWND hwnd = ((SDL_WindowData *)window->driverdata)->hwnd;
|
||||
HWND hwnd = window->driverdata->hwnd;
|
||||
LPTSTR title = WIN_UTF8ToString(window->title);
|
||||
SetWindowText(hwnd, title);
|
||||
SDL_free(title);
|
||||
@@ -623,7 +623,7 @@ void WIN_SetWindowTitle(_THIS, SDL_Window *window)
|
||||
void WIN_SetWindowIcon(_THIS, SDL_Window *window, SDL_Surface *icon)
|
||||
{
|
||||
#if !defined(__XBOXONE__) && !defined(__XBOXSERIES__)
|
||||
HWND hwnd = ((SDL_WindowData *)window->driverdata)->hwnd;
|
||||
HWND hwnd = window->driverdata->hwnd;
|
||||
HICON hicon = NULL;
|
||||
BYTE *icon_bmp;
|
||||
int icon_len, mask_len, row_len, y;
|
||||
@@ -693,7 +693,7 @@ void WIN_SetWindowSize(_THIS, SDL_Window *window)
|
||||
int WIN_GetWindowBordersSize(_THIS, SDL_Window *window, int *top, int *left, int *bottom, int *right)
|
||||
{
|
||||
#if defined(__XBOXONE__) || defined(__XBOXSERIES__)
|
||||
HWND hwnd = ((SDL_WindowData *)window->driverdata)->hwnd;
|
||||
HWND hwnd = window->driverdata->hwnd;
|
||||
RECT rcClient;
|
||||
|
||||
/* rcClient stores the size of the inner window, while rcWindow stores the outer size relative to the top-left
|
||||
@@ -707,7 +707,7 @@ int WIN_GetWindowBordersSize(_THIS, SDL_Window *window, int *top, int *left, int
|
||||
|
||||
return 0;
|
||||
#else /*!defined(__XBOXONE__) && !defined(__XBOXSERIES__)*/
|
||||
HWND hwnd = ((SDL_WindowData *)window->driverdata)->hwnd;
|
||||
HWND hwnd = window->driverdata->hwnd;
|
||||
RECT rcClient, rcWindow;
|
||||
POINT ptDiff;
|
||||
|
||||
@@ -759,7 +759,7 @@ int WIN_GetWindowBordersSize(_THIS, SDL_Window *window, int *top, int *left, int
|
||||
|
||||
void WIN_GetWindowSizeInPixels(_THIS, SDL_Window *window, int *w, int *h)
|
||||
{
|
||||
const SDL_WindowData *data = ((SDL_WindowData *)window->driverdata);
|
||||
const SDL_WindowData *data = window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
RECT rect;
|
||||
|
||||
@@ -778,7 +778,7 @@ void WIN_ShowWindow(_THIS, SDL_Window *window)
|
||||
HWND hwnd;
|
||||
int nCmdShow;
|
||||
|
||||
hwnd = ((SDL_WindowData *)window->driverdata)->hwnd;
|
||||
hwnd = window->driverdata->hwnd;
|
||||
nCmdShow = SDL_GetHintBoolean(SDL_HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN, SDL_FALSE) ? SW_SHOWNA : SW_SHOW;
|
||||
style = GetWindowLong(hwnd, GWL_EXSTYLE);
|
||||
if (style & WS_EX_NOACTIVATE) {
|
||||
@@ -789,7 +789,7 @@ void WIN_ShowWindow(_THIS, SDL_Window *window)
|
||||
|
||||
void WIN_HideWindow(_THIS, SDL_Window *window)
|
||||
{
|
||||
HWND hwnd = ((SDL_WindowData *)window->driverdata)->hwnd;
|
||||
HWND hwnd = window->driverdata->hwnd;
|
||||
ShowWindow(hwnd, SW_HIDE);
|
||||
}
|
||||
|
||||
@@ -810,7 +810,7 @@ void WIN_RaiseWindow(_THIS, SDL_Window *window)
|
||||
DWORD dwMyID = 0u;
|
||||
DWORD dwCurID = 0u;
|
||||
|
||||
HWND hwnd = ((SDL_WindowData *)window->driverdata)->hwnd;
|
||||
HWND hwnd = window->driverdata->hwnd;
|
||||
if (bForce) {
|
||||
hCurWnd = GetForegroundWindow();
|
||||
dwMyID = GetCurrentThreadId();
|
||||
@@ -831,7 +831,7 @@ void WIN_RaiseWindow(_THIS, SDL_Window *window)
|
||||
|
||||
void WIN_MaximizeWindow(_THIS, SDL_Window *window)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
data->expected_resize = SDL_TRUE;
|
||||
ShowWindow(hwnd, SW_MAXIMIZE);
|
||||
@@ -840,13 +840,13 @@ void WIN_MaximizeWindow(_THIS, SDL_Window *window)
|
||||
|
||||
void WIN_MinimizeWindow(_THIS, SDL_Window *window)
|
||||
{
|
||||
HWND hwnd = ((SDL_WindowData *)window->driverdata)->hwnd;
|
||||
HWND hwnd = window->driverdata->hwnd;
|
||||
ShowWindow(hwnd, SW_MINIMIZE);
|
||||
}
|
||||
|
||||
void WIN_SetWindowBordered(_THIS, SDL_Window *window, SDL_bool bordered)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
DWORD style;
|
||||
|
||||
@@ -862,7 +862,7 @@ void WIN_SetWindowBordered(_THIS, SDL_Window *window, SDL_bool bordered)
|
||||
|
||||
void WIN_SetWindowResizable(_THIS, SDL_Window *window, SDL_bool resizable)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
DWORD style;
|
||||
|
||||
@@ -875,7 +875,7 @@ void WIN_SetWindowResizable(_THIS, SDL_Window *window, SDL_bool resizable)
|
||||
|
||||
void WIN_SetWindowAlwaysOnTop(_THIS, SDL_Window *window, SDL_bool on_top)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
if (on_top) {
|
||||
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
|
||||
@@ -886,7 +886,7 @@ void WIN_SetWindowAlwaysOnTop(_THIS, SDL_Window *window, SDL_bool on_top)
|
||||
|
||||
void WIN_RestoreWindow(_THIS, SDL_Window *window)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
data->expected_resize = SDL_TRUE;
|
||||
ShowWindow(hwnd, SW_RESTORE);
|
||||
@@ -899,8 +899,8 @@ void WIN_RestoreWindow(_THIS, SDL_Window *window)
|
||||
void WIN_SetWindowFullscreen(_THIS, SDL_Window *window, SDL_VideoDisplay *display, SDL_bool fullscreen)
|
||||
{
|
||||
#if !defined(__XBOXONE__) && !defined(__XBOXSERIES__)
|
||||
SDL_DisplayData *displaydata = (SDL_DisplayData *)display->driverdata;
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_DisplayData *displaydata = display->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
MONITORINFO minfo;
|
||||
DWORD style;
|
||||
@@ -983,9 +983,8 @@ void WIN_SetWindowFullscreen(_THIS, SDL_Window *window, SDL_VideoDisplay *displa
|
||||
#if !defined(__XBOXONE__) && !defined(__XBOXSERIES__)
|
||||
void WIN_UpdateWindowICCProfile(SDL_Window *window, SDL_bool send_event)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
|
||||
SDL_DisplayData *displaydata = display ? (SDL_DisplayData *)display->driverdata : NULL;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
SDL_DisplayData *displaydata = SDL_GetDisplayDriverDataForWindow(window);
|
||||
|
||||
if (displaydata) {
|
||||
HDC hdc = CreateDCW(displaydata->DeviceName, NULL, NULL, NULL);
|
||||
@@ -1013,7 +1012,7 @@ void WIN_UpdateWindowICCProfile(SDL_Window *window, SDL_bool send_event)
|
||||
void *
|
||||
WIN_GetWindowICCProfile(_THIS, SDL_Window *window, size_t *size)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
char *filename_utf8;
|
||||
void *iccProfileData = NULL;
|
||||
|
||||
@@ -1032,7 +1031,7 @@ WIN_GetWindowICCProfile(_THIS, SDL_Window *window, size_t *size)
|
||||
|
||||
static void WIN_GrabKeyboard(SDL_Window *window)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
HMODULE module;
|
||||
|
||||
if (data->keyboard_hook) {
|
||||
@@ -1066,7 +1065,7 @@ static void WIN_GrabKeyboard(SDL_Window *window)
|
||||
|
||||
void WIN_UngrabKeyboard(SDL_Window *window)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
|
||||
if (data->keyboard_hook) {
|
||||
UnhookWindowsHookEx(data->keyboard_hook);
|
||||
@@ -1192,7 +1191,7 @@ void SDL_HelperWindowDestroy(void)
|
||||
#if !defined(__XBOXONE__) && !defined(__XBOXSERIES__)
|
||||
void WIN_OnWindowEnter(_THIS, SDL_Window *window)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
|
||||
if (data == NULL || !data->hwnd) {
|
||||
/* The window wasn't fully initialized */
|
||||
@@ -1206,7 +1205,7 @@ void WIN_OnWindowEnter(_THIS, SDL_Window *window)
|
||||
|
||||
void WIN_UpdateClipCursor(SDL_Window *window)
|
||||
{
|
||||
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
SDL_WindowData *data = window->driverdata;
|
||||
SDL_Mouse *mouse = SDL_GetMouse();
|
||||
RECT rect, clipped_rect;
|
||||
|
||||
@@ -1307,7 +1306,7 @@ int WIN_SetWindowOpacity(_THIS, SDL_Window *window, float opacity)
|
||||
#if defined(__XBOXONE__) || defined(__XBOXSERIES__)
|
||||
return -1;
|
||||
#else
|
||||
const SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
const SDL_WindowData *data = window->driverdata;
|
||||
HWND hwnd = data->hwnd;
|
||||
const LONG style = GetWindowLong(hwnd, GWL_EXSTYLE);
|
||||
|
||||
@@ -1345,7 +1344,7 @@ int WIN_SetWindowOpacity(_THIS, SDL_Window *window, float opacity)
|
||||
*/
|
||||
void WIN_ClientPointToSDL(const SDL_Window *window, int *x, int *y)
|
||||
{
|
||||
const SDL_WindowData *data = ((SDL_WindowData *)window->driverdata);
|
||||
const SDL_WindowData *data = window->driverdata;
|
||||
const SDL_VideoData *videodata = data->videodata;
|
||||
|
||||
if (!videodata->dpi_scaling_enabled) {
|
||||
@@ -1358,7 +1357,7 @@ void WIN_ClientPointToSDL(const SDL_Window *window, int *x, int *y)
|
||||
|
||||
void WIN_ClientPointToSDLFloat(const SDL_Window *window, LONG x, LONG y, float *xOut, float *yOut)
|
||||
{
|
||||
const SDL_WindowData *data = ((SDL_WindowData *)window->driverdata);
|
||||
const SDL_WindowData *data = window->driverdata;
|
||||
const SDL_VideoData *videodata = data->videodata;
|
||||
|
||||
if (videodata->dpi_scaling_enabled) {
|
||||
@@ -1377,7 +1376,7 @@ void WIN_ClientPointToSDLFloat(const SDL_Window *window, LONG x, LONG y, float *
|
||||
*/
|
||||
void WIN_ClientPointFromSDL(const SDL_Window *window, int *x, int *y)
|
||||
{
|
||||
const SDL_WindowData *data = ((SDL_WindowData *)window->driverdata);
|
||||
const SDL_WindowData *data = window->driverdata;
|
||||
const SDL_VideoData *videodata = data->videodata;
|
||||
|
||||
if (!videodata->dpi_scaling_enabled) {
|
||||
@@ -1390,7 +1389,7 @@ void WIN_ClientPointFromSDL(const SDL_Window *window, int *x, int *y)
|
||||
|
||||
void WIN_ClientPointFromSDLFloat(const SDL_Window *window, float x, float y, LONG *xOut, LONG *yOut)
|
||||
{
|
||||
const SDL_WindowData *data = ((SDL_WindowData *)window->driverdata);
|
||||
const SDL_WindowData *data = window->driverdata;
|
||||
const SDL_VideoData *videodata = data->videodata;
|
||||
|
||||
if (videodata->dpi_scaling_enabled) {
|
||||
@@ -1405,7 +1404,7 @@ void WIN_ClientPointFromSDLFloat(const SDL_Window *window, float x, float y, LON
|
||||
#if !defined(__XBOXONE__) && !defined(__XBOXSERIES__)
|
||||
void WIN_AcceptDragAndDrop(SDL_Window *window, SDL_bool accept)
|
||||
{
|
||||
const SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
|
||||
const SDL_WindowData *data = window->driverdata;
|
||||
DragAcceptFiles(data->hwnd, accept ? TRUE : FALSE);
|
||||
}
|
||||
|
||||
@@ -1415,7 +1414,7 @@ int WIN_FlashWindow(_THIS, SDL_Window *window, SDL_FlashOperation operation)
|
||||
|
||||
SDL_zero(desc);
|
||||
desc.cbSize = sizeof(desc);
|
||||
desc.hwnd = ((SDL_WindowData *)window->driverdata)->hwnd;
|
||||
desc.hwnd = window->driverdata->hwnd;
|
||||
switch (operation) {
|
||||
case SDL_FLASH_CANCEL:
|
||||
desc.dwFlags = FLASHW_STOP;
|
||||
|
Reference in New Issue
Block a user