summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-07-15 17:08:57 +0200
committerkdx <kikoodx@paranoici.org>2023-07-15 17:08:57 +0200
commit2c9805b22860e32628cb7a0fe0b8a9ed854187aa (patch)
treea5ebecbd6a5aa9c20ec5319460ca514521b06f11
parent859465d61e214fce4a84021c91635e297e187a0a (diff)
downloadfld-2c9805b22860e32628cb7a0fe0b8a9ed854187aa.tar.gz
viewport
-rw-r--r--src/FLD.hpp1
-rw-r--r--src/drawLine.cpp4
-rw-r--r--src/drawPoint.cpp2
-rw-r--r--src/drawRectangle.cpp4
4 files changed, 7 insertions, 4 deletions
diff --git a/src/FLD.hpp b/src/FLD.hpp
index 391e18a..4e1b8bd 100644
--- a/src/FLD.hpp
+++ b/src/FLD.hpp
@@ -46,6 +46,7 @@ public:
static constexpr Color PURPLE {1.0f, 0.0f, 1.0f, -1.0f};
static constexpr Color CYAN {0.0f, 1.0f, 1.0f, -1.0f};
static constexpr Color WHITE {1.0f, 1.0f, 1.0f, -1.0f};
+ Point viewport = {0, 0};
const Config config;
READONLY(SDL_Window *, window, nullptr);
diff --git a/src/drawLine.cpp b/src/drawLine.cpp
index eb03f90..f99817a 100644
--- a/src/drawLine.cpp
+++ b/src/drawLine.cpp
@@ -3,7 +3,9 @@
FLD::Error
FLD::drawLine(const Point& p0, const Point& p1) const
{
- if (SDL_RenderDrawLine(_renderer, p0.x, p0.y, p1.x, p1.y) < 0)
+ if (SDL_RenderDrawLine(_renderer,
+ p0.x + viewport.x, p0.y + viewport.y,
+ p1.x + viewport.x, p1.y + viewport.y) < 0)
return sdlError();
return 0;
}
diff --git a/src/drawPoint.cpp b/src/drawPoint.cpp
index f2e3cee..5a78f86 100644
--- a/src/drawPoint.cpp
+++ b/src/drawPoint.cpp
@@ -3,7 +3,7 @@
FLD::Error
FLD::drawPoint(const Point& p) const
{
- if (SDL_RenderDrawPoint(_renderer, p.x, p.y) < 0)
+ if (SDL_RenderDrawPoint(_renderer, p.x + viewport.x, p.y + viewport.y))
return sdlError();
return 0;
}
diff --git a/src/drawRectangle.cpp b/src/drawRectangle.cpp
index fad2ccf..d5f1cf4 100644
--- a/src/drawRectangle.cpp
+++ b/src/drawRectangle.cpp
@@ -6,8 +6,8 @@ FLD::drawRectangle(const Rectangle &rect, unsigned flags) const
const bool fill = flags & FILL;
const bool center = flags & CENTER;
const SDL_Rect srect {
- .x = rect.x - center * (rect.w / 2),
- .y = rect.y - center * (rect.h / 2),
+ .x = rect.x - center * (rect.w / 2) + viewport.x,
+ .y = rect.y - center * (rect.h / 2) + viewport.y,
.w = rect.w,
.h = rect.h
};