From 6ffdbe66ede3c88eed7e2d819f8c0aaedc2d59bb Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Mon, 28 Jan 2019 19:30:39 +0100 Subject: [PATCH] Fix DrawMouse on scaled view and enabled resizing --- Stub/sdlrender.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Stub/sdlrender.cpp b/Stub/sdlrender.cpp index 783a63d5b..abaecbdf4 100644 --- a/Stub/sdlrender.cpp +++ b/Stub/sdlrender.cpp @@ -728,7 +728,7 @@ void SdlDiabloMainWindow() { SDL_Init(SDL_INIT_EVERYTHING); - window = SDL_CreateWindow("Diablo", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, 0); + window = SDL_CreateWindow("Diablo", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_RESIZABLE); renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC); printf("Window And Renderer Created!\n"); @@ -1015,6 +1015,16 @@ void DrawMouse() { SDL_GetMouseState(&MouseX, &MouseY); + float scaleX; + SDL_RenderGetScale(renderer, &scaleX, NULL); + MouseX /= scaleX; + MouseY /= scaleX; + + SDL_Rect view; + SDL_RenderGetViewport(renderer, &view); + MouseX -= view.x; + MouseY -= view.y; + DrawArtWithMask(MouseX, MouseY, gdwCursorWidth, gdwCursorHeight, 0, 0, pPcxCursorImage); }