Преглед изворни кода

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 година
родитељ
комит
fe20c35be8
1 измењених фајлова са 7 додато и 3 уклоњено
  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;
         GetWindowViewportValues(renderer, &logical_w, &logical_h, &viewport, &scale);
         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.y *= (h - 1);