summaryrefslogtreecommitdiff
path: root/src/guichan
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-05-05 23:08:18 +0300
committerAndrei Karas <akaras@inbox.ru>2012-05-05 23:08:18 +0300
commit6d8828b47e291c0e85645adb60c8969a3f8facf4 (patch)
tree511891a798232bf886c93b9f5395fb7cbb933bbf /src/guichan
parent38f2d53aa706e8931c740b0d2ecd15f693b8922c (diff)
downloadplus-6d8828b47e291c0e85645adb60c8969a3f8facf4.tar.gz
plus-6d8828b47e291c0e85645adb60c8969a3f8facf4.tar.bz2
plus-6d8828b47e291c0e85645adb60c8969a3f8facf4.tar.xz
plus-6d8828b47e291c0e85645adb60c8969a3f8facf4.zip
Improve images drawing and remove some useless code.
Diffstat (limited to 'src/guichan')
-rw-r--r--src/guichan/graphics.cpp5
-rw-r--r--src/guichan/sdl/sdlgraphics.cpp90
2 files changed, 10 insertions, 85 deletions
diff --git a/src/guichan/graphics.cpp b/src/guichan/graphics.cpp
index 0e414827c..1c99d899e 100644
--- a/src/guichan/graphics.cpp
+++ b/src/guichan/graphics.cpp
@@ -142,10 +142,9 @@ namespace gcn
return mClipStack.top();
}
- void Graphics::drawImage(const Image* image, int dstX, int dstY)
+ void Graphics::drawImage(const Image* image A_UNUSED,
+ int dstX A_UNUSED, int dstY A_UNUSED)
{
- drawImage(image, 0, 0, dstX, dstY,
- image->getWidth(), image->getHeight());
}
void Graphics::setFont(Font* font)
diff --git a/src/guichan/sdl/sdlgraphics.cpp b/src/guichan/sdl/sdlgraphics.cpp
index ae61a0432..63ed8bbc2 100644
--- a/src/guichan/sdl/sdlgraphics.cpp
+++ b/src/guichan/sdl/sdlgraphics.cpp
@@ -129,92 +129,18 @@ namespace gcn
return mTarget;
}
- void SDLGraphics::drawImage(const Image* image,
- int srcX,
- int srcY,
- int dstX,
- int dstY,
- int width,
- int height)
+ void SDLGraphics::drawImage(const Image* image A_UNUSED,
+ int srcX A_UNUSED,
+ int srcY A_UNUSED,
+ int dstX A_UNUSED,
+ int dstY A_UNUSED,
+ int width A_UNUSED,
+ int height A_UNUSED)
{
- if (mClipStack.empty())
- {
- throw GCN_EXCEPTION("Clip stack is empty, perhaps you called a "
- "draw funtion outside of _beginDraw() and _endDraw()?");
- }
-
- const ClipRectangle& top = mClipStack.top();
-
- SDL_Rect src;
- SDL_Rect dst;
- src.x = srcX;
- src.y = srcY;
- src.w = width;
- src.h = height;
- dst.x = dstX + top.xOffset;
- dst.y = dstY + top.yOffset;
-
- const SDLImage* srcImage = dynamic_cast<const SDLImage*>(image);
-
- if (!srcImage)
- {
- throw GCN_EXCEPTION("Trying to draw an image of unknown format,"
- " must be an SDLImage.");
- }
-
- SDL_BlitSurface(srcImage->getSurface(), &src, mTarget, &dst);
}
- void SDLGraphics::fillRectangle(const Rectangle& rectangle)
+ void SDLGraphics::fillRectangle(const Rectangle& rectangle A_UNUSED)
{
- if (mClipStack.empty())
- {
- throw GCN_EXCEPTION("Clip stack is empty, perhaps you called a "
- "draw funtion outside of _beginDraw() and _endDraw()?");
- }
-
- const ClipRectangle& top = mClipStack.top();
-
- Rectangle area = rectangle;
- area.x += top.xOffset;
- area.y += top.yOffset;
-
- if (!area.isIntersecting(top))
- return;
-
- if (mAlpha)
- {
- int x1 = area.x > top.x ? area.x : top.x;
- int y1 = area.y > top.y ? area.y : top.y;
- int x2 = area.x + area.width < top.x + top.width ?
- area.x + area.width : top.x + top.width;
- int y2 = area.y + area.height < top.y + top.height ?
- area.y + area.height : top.y + top.height;
- int x, y;
-
- SDL_LockSurface(mTarget);
- for (y = y1; y < y2; y++)
- {
- for (x = x1; x < x2; x++)
- SDLputPixelAlpha(mTarget, x, y, mColor);
- }
- SDL_UnlockSurface(mTarget);
- }
- else
- {
- SDL_Rect rect;
- rect.x = area.x;
- rect.y = area.y;
- rect.w = area.width;
- rect.h = area.height;
-
- Uint32 color = SDL_MapRGBA(mTarget->format,
- mColor.r,
- mColor.g,
- mColor.b,
- mColor.a);
- SDL_FillRect(mTarget, &rect, color);
- }
}
void SDLGraphics::drawPoint(int x, int y)