Browse Source

Fixed race condition when scaling Touch events, and changing the renderer
target.
Always read the output size of the main renderer.
(similar to bug 2107)

Sylvain Becker 5 years ago
parent
commit
fe20c35be8
1 changed files with 7 additions and 3 deletions
  1. 7 3
      src/render/SDL_render.c

+ 7 - 3
src/render/SDL_render.c

@@ -689,9 +689,13 @@ SDL_RendererEventWatch(void *userdata, SDL_Event *event)
         SDL_FPoint scale;
         SDL_FPoint scale;
         GetWindowViewportValues(renderer, &logical_w, &logical_h, &viewport, &scale);
         GetWindowViewportValues(renderer, &logical_w, &logical_h, &viewport, &scale);
         if (logical_w) {
         if (logical_w) {
-            int w = 1;
-            int h = 1;
-            SDL_GetRendererOutputSize(renderer, &w, &h);
+            int w, h;
+
+            if (renderer->GetOutputSize) {
+                renderer->GetOutputSize(renderer, &w, &h);
+            } else {
+                SDL_GetWindowSize(renderer->window, &w, &h);
+            }
 
 
             event->tfinger.x *= (w - 1);
             event->tfinger.x *= (w - 1);
             event->tfinger.y *= (h - 1);
             event->tfinger.y *= (h - 1);