Browse Source

love.graphics.newScreenshot now uses the size of the current canvas (if applicable), instead of adding transparency or clipping to match the screen size

Alex Szpakowski 12 years ago
parent
commit
1172d5b836

+ 9 - 2
src/modules/graphics/opengl/Graphics.cpp

@@ -243,6 +243,13 @@ int Graphics::getHeight() const
 	return currentWindow->getHeight();
 	return currentWindow->getHeight();
 }
 }
 
 
+int Graphics::getRenderWidth() const
+{
+	if (Canvas::current)
+		return Canvas::current->getWidth();
+	return getWidth();
+}
+
 int Graphics::getRenderHeight() const
 int Graphics::getRenderHeight() const
 {
 {
 	if (Canvas::current)
 	if (Canvas::current)
@@ -1072,8 +1079,8 @@ void Graphics::polygon(DrawMode mode, const float *coords, size_t count)
 
 
 love::image::ImageData *Graphics::newScreenshot(love::image::Image *image, bool copyAlpha)
 love::image::ImageData *Graphics::newScreenshot(love::image::Image *image, bool copyAlpha)
 {
 {
-	int w = getWidth();
-	int h = getHeight();
+	int w = getRenderWidth();
+	int h = getRenderHeight();
 
 
 	int row = 4*w;
 	int row = 4*w;
 
 

+ 2 - 0
src/modules/graphics/opengl/Graphics.h

@@ -483,7 +483,9 @@ private:
 	GLint matrixLimit;
 	GLint matrixLimit;
 	GLint userMatrices;
 	GLint userMatrices;
 
 
+	int getRenderWidth() const;
 	int getRenderHeight() const;
 	int getRenderHeight() const;
+
 }; // Graphics
 }; // Graphics
 
 
 } // opengl
 } // opengl