]> git.localhorst.tv Git - l2e.git/blobdiff - src/sdl/utility.cpp
fixed sdl::OutlineRect for rects with x or y < 0
[l2e.git] / src / sdl / utility.cpp
index 94eb6252465e8238953c76966c08662edc19b116..061d64c048a0c591eb1f6f3614d86dd2169519cd 100644 (file)
@@ -2,7 +2,7 @@
 
 #include <cmath>
 
-using geometry::Vector;
+using math::Vector;
 
 namespace sdl {
 
@@ -15,7 +15,7 @@ void HorizontalLine(SDL_Surface *dst, const Vector<int> &position, unsigned int
        SDL_FillRect(dst, &destRect, color);
 }
 
-void VerticalLine(SDL_Surface *dst, const geometry::Vector<int> &position, unsigned int length, Uint32 color) {
+void VerticalLine(SDL_Surface *dst, const math::Vector<int> &position, unsigned int length, Uint32 color) {
        SDL_Rect destRect;
        destRect.x = position.X();
        destRect.y = position.Y();
@@ -41,13 +41,20 @@ void OutlineRect(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color) {
        destRect.w = dstrect->w;
        destRect.h = 1;
        SDL_FillRect(dst, &destRect, color);
-       destRect.y += dstrect->h - 1;
+       destRect.x = dstrect->x;
+       destRect.y = dstrect->y + dstrect->h - 1;
+       destRect.w = dstrect->w;
+       destRect.h = 1;
        SDL_FillRect(dst, &destRect, color);
+       destRect.x = dstrect->x;
        destRect.y = dstrect->y;
        destRect.w = 1;
        destRect.h = dstrect->h;
        SDL_FillRect(dst, &destRect, color);
-       destRect.x += dstrect->w - 1;
+       destRect.x = dstrect->x + dstrect->w - 1;
+       destRect.y = dstrect->y;
+       destRect.w = 1;
+       destRect.h = dstrect->h;
        SDL_FillRect(dst, &destRect, color);
 }