diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/openglgraphics.cpp | 23 | ||||
-rw-r--r-- | src/openglgraphics.h | 9 |
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); |