pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] [pingus] push by address@hidden - Use SDL_GetRendererOutput


From: pingus
Subject: [Pingus-CVS] [pingus] push by address@hidden - Use SDL_GetRendererOutputSize() instead of window size for screenshots on 2014-07-27 16:36 GMT
Date: Sun, 27 Jul 2014 16:36:52 +0000

Revision: 9f6bff042de5
Author:   Ingo Ruhnke <address@hidden>
Date:     Sun Jul 27 16:36:35 2014 UTC
Log: Use SDL_GetRendererOutputSize() instead of window size for screenshots

http://code.google.com/p/pingus/source/detail?r=9f6bff042de5

Modified:
 /src/engine/display/sdl_framebuffer.cpp

=======================================
--- /src/engine/display/sdl_framebuffer.cpp     Sun Jul 27 16:32:00 2014 UTC
+++ /src/engine/display/sdl_framebuffer.cpp     Sun Jul 27 16:36:35 2014 UTC
@@ -61,18 +61,26 @@
 Surface
 SDLFramebuffer::make_screenshot() const
 {
-  Size size = get_size();
-  Surface screenshot(size.width, size.height);
-  int ret = SDL_RenderReadPixels(m_renderer, nullptr,
-                                 SDL_PIXELFORMAT_RGBX8888,
-                                 screenshot.get_data(),
-                                 screenshot.get_pitch());
-  if (ret != 0)
+  Size size;
+ if (SDL_GetRendererOutputSize(m_renderer, &size.width, &size.height) != 0)
   {
-    log_error("%1%", SDL_GetError());
+    log_error("SDL_GetRenderOutputSize failed: %1%", SDL_GetError());
+    return Surface();
   }
+  else
+  {
+    Surface screenshot(size.width, size.height);
+    int ret = SDL_RenderReadPixels(m_renderer, nullptr,
+                                   SDL_PIXELFORMAT_RGBX8888,
+                                   screenshot.get_data(),
+                                   screenshot.get_pitch());
+    if (ret != 0)
+    {
+      log_error("%1%", SDL_GetError());
+    }

-  return screenshot;
+    return screenshot;
+  }
 }

 void



reply via email to

[Prev in Thread] Current Thread [Next in Thread]