From 6d8828b47e291c0e85645adb60c8969a3f8facf4 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 5 May 2012 23:08:18 +0300 Subject: Improve images drawing and remove some useless code. --- src/guichan/graphics.cpp | 5 +-- src/guichan/sdl/sdlgraphics.cpp | 90 ++++------------------------------------- 2 files changed, 10 insertions(+), 85 deletions(-) (limited to 'src/guichan') 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(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) -- cgit v1.2.3-70-g09d2