summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/openglgraphics.cpp23
-rw-r--r--src/openglgraphics.h9
2 files changed, 32 insertions, 0 deletions
diff --git a/src/openglgraphics.cpp b/src/openglgraphics.cpp
index 4d66a919..50b46f11 100644
--- a/src/openglgraphics.cpp
+++ b/src/openglgraphics.cpp
@@ -210,6 +210,19 @@ bool OpenGLGraphics::drawRescaledImage(Image *image, int srcX, int srcY,
int desiredWidth, int desiredHeight,
bool useColor)
{
+ return drawRescaledImage(image, srcX, srcY,
+ dstX, dstY,
+ width, height,
+ desiredWidth, desiredHeight,
+ useColor, true);
+}
+
+bool OpenGLGraphics::drawRescaledImage(Image *image, int srcX, int srcY,
+ int dstX, int dstY,
+ int width, int height,
+ int desiredWidth, int desiredHeight,
+ bool useColor, bool smooth)
+{
if (!image)
return false;
@@ -227,6 +240,16 @@ bool OpenGLGraphics::drawRescaledImage(Image *image, int srcX, int srcY,
glBegin(GL_QUADS);
drawRescaledQuad(image, srcX, srcY, dstX, dstY, width, height,
desiredWidth, desiredHeight);
+
+ if (smooth) // A basic smooth effect...
+ {
+ glColor4f(1.0f, 1.0f, 1.0f, 0.2f);
+ drawRescaledQuad(image, srcX, srcY, dstX - 1, dstY - 1, width, height,
+ desiredWidth + 1, desiredHeight + 1);
+ drawRescaledQuad(image, srcX, srcY, dstX + 1, dstY + 1, width, height,
+ desiredWidth - 1, desiredHeight - 1);
+ }
+
glEnd();
if (!useColor)
diff --git a/src/openglgraphics.h b/src/openglgraphics.h
index 0bee48b4..65f58934 100644
--- a/src/openglgraphics.h
+++ b/src/openglgraphics.h
@@ -55,6 +55,15 @@ class OpenGLGraphics : public Graphics
int desiredWidth, int desiredHeight,
bool useColor);
+ /**
+ * Used to get the smooth rescale option over the standard function.
+ */
+ bool drawRescaledImage(Image *image, int srcX, int srcY,
+ int dstX, int dstY,
+ int width, int height,
+ int desiredWidth, int desiredHeight,
+ bool useColor, bool smooth);
+
void drawImagePattern(Image *image,
int x, int y,
int w, int h);