Procházet zdrojové kódy

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 před 6 roky
rodič
revize
fe20c35be8
1 změnil soubory, kde provedl 7 přidání a 3 odebrání
  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);