aboutsummaryrefslogtreecommitdiff
path: root/src/crepe
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe')
-rw-r--r--src/crepe/api/Camera.h13
-rw-r--r--src/crepe/api/Vector2.h11
-rw-r--r--src/crepe/facade/SDLContext.cpp20
-rw-r--r--src/crepe/facade/SDLContext.h16
-rw-r--r--src/crepe/system/RenderSystem.h8
5 files changed, 29 insertions, 39 deletions
diff --git a/src/crepe/api/Camera.h b/src/crepe/api/Camera.h
index 137c8ed..eea1b28 100644
--- a/src/crepe/api/Camera.h
+++ b/src/crepe/api/Camera.h
@@ -2,7 +2,8 @@
#include "Color.h"
#include "Component.h"
-#include "api/Vector2.h"
+
+#include "types.h"
namespace crepe {
@@ -29,15 +30,15 @@ public:
Color bg_color;
//! pos The position of the camera in world units
- Vector2 pos = {0, 0};
+ vec2 pos = {0, 0};
//! screen the display size in pixels ( output resolution )
- //Vector2 screen = {720, 480};
- Vector2 screen = {1080, 720};
+ //vec2 screen = {720, 480};
+ vec2 screen = {1080, 720};
//! viewport is the area of the world visible through the camera (in world units)
- //Vector2 viewport = {720, 480};
- Vector2 viewport = {2000, 1000};
+ //vec2 viewport = {720, 480};
+ vec2 viewport = {2000, 1000};
//! scale scaling factor from world units to pixel coordinates
//! Zoom level of the camera view.
diff --git a/src/crepe/api/Vector2.h b/src/crepe/api/Vector2.h
index 019d849..0688fac 100644
--- a/src/crepe/api/Vector2.h
+++ b/src/crepe/api/Vector2.h
@@ -34,15 +34,11 @@ struct Vector2 {
//! Multiplies this vector by another vector element-wise and updates this vector.
Vector2 & operator*=(const Vector2<T> & other);
- //! Multiplies a scalar value to both components of this vector and updates this vector.
- Vector2 & operator*=(const Vector2<T> & other);
-
- //! Divides this vector by another vector element-wise and updates this vector.
- Vector2 operator/(const Vector2<T> & other) const;
-
//! Divides a scalar value to both components of this vector and updates this vector.
Vector2 operator/(const T & other) const;
+ Vector2 operator/(T other) const;
+
//! Adds another vector to this vector and updates this vector.
Vector2 & operator+=(const Vector2<T> & other);
@@ -55,9 +51,6 @@ struct Vector2 {
//! Subtracts a scalar value from both components of this vector and updates this vector.
Vector2 & operator-=(T other);
- //! Multiplies this vector by another vector element-wise and updates this vector.
- Vector2 & operator*=(const Vector2<T> & other);
-
//! Multiplies this vector by a scalar and updates this vector.
Vector2 & operator*=(T other);
diff --git a/src/crepe/facade/SDLContext.cpp b/src/crepe/facade/SDLContext.cpp
index de7d08f..fc59d84 100644
--- a/src/crepe/facade/SDLContext.cpp
+++ b/src/crepe/facade/SDLContext.cpp
@@ -8,7 +8,6 @@
#include <cmath>
#include <cstddef>
#include <functional>
-#include <iostream>
#include <memory>
#include <stdexcept>
@@ -16,10 +15,9 @@
#include "../api/Sprite.h"
#include "../api/Texture.h"
#include "../api/Transform.h"
-#include "../api/Vector2.h"
#include "../util/Log.h"
-#include "api/Vector2.h"
+#include "types.h"
#include "SDLContext.h"
using namespace crepe;
@@ -108,9 +106,9 @@ SDL_Rect SDLContext::get_src_rect(const Sprite & sprite) const {
.h = sprite.sprite_rect.h,
};
}
-SDL_Rect SDLContext::get_dst_rect(const Sprite & sprite, const Vector2 & pos,
- const Vector2 & cam_pos, const double & img_scale,
- const Vector2 & cam_scale) const {
+SDL_Rect SDLContext::get_dst_rect(const Sprite & sprite, const vec2 & pos,
+ const vec2 & cam_pos, const double & img_scale,
+ const vec2 & cam_scale) const {
int pixel_width, pixel_height;
@@ -136,9 +134,9 @@ SDL_Rect SDLContext::get_dst_rect(const Sprite & sprite, const Vector2 & pos,
};
}
-void SDLContext::draw_particle(const Sprite & sprite, const Vector2 & pos,
- const double & angle, const Vector2 & cam_pos,
- const double & img_scale, const Vector2 & cam_scale) {
+void SDLContext::draw_particle(const Sprite & sprite, const vec2 & pos,
+ const double & angle, const vec2 & cam_pos,
+ const double & img_scale, const vec2 & cam_scale) {
SDL_RendererFlip render_flip
= (SDL_RendererFlip) ((SDL_FLIP_HORIZONTAL * sprite.flip.flip_x)
@@ -152,7 +150,7 @@ void SDLContext::draw_particle(const Sprite & sprite, const Vector2 & pos,
}
void SDLContext::draw(const Sprite & sprite, const Transform & transform,
- const Vector2 & cam_pos, const Vector2 & cam_scale) {
+ const vec2 & cam_pos, const vec2 & cam_scale) {
SDL_RendererFlip render_flip
= (SDL_RendererFlip) ((SDL_FLIP_HORIZONTAL * sprite.flip.flip_x)
@@ -166,7 +164,7 @@ void SDLContext::draw(const Sprite & sprite, const Transform & transform,
&dstrect, transform.rotation, NULL, render_flip);
}
-void SDLContext::set_camera(const Camera & cam, Vector2 & scale) {
+void SDLContext::set_camera(const Camera & cam, vec2 & scale) {
// resize window
if (this->viewport.w != (int) cam.screen.x || this->viewport.h != (int) cam.screen.y) {
diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index aed5797..c9f3299 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -120,8 +120,8 @@ private:
* \param cam_pos position of the current camera in the scene
* \param cam_scale multiplier for the world to screen
*/
- void draw(const Sprite & sprite, const Transform & transform, const Vector2 & cam_pos,
- const Vector2 & cam_scale);
+ void draw(const Sprite & sprite, const Transform & transform, const vec2 & cam_pos,
+ const vec2 & cam_scale);
/**
* \brief Draws a particle to the screen using the specified parameters
@@ -133,9 +133,9 @@ private:
* \param img_scale scalar multiplier to increase image size
* \param cam_scale camera scalar for world to screen
*/
- void draw_particle(const Sprite & sprite, const Vector2 & pos, const double & angle,
- const Vector2 & cam_pos, const double & img_scale,
- const Vector2 & cam_scale);
+ void draw_particle(const Sprite & sprite, const vec2 & pos, const double & angle,
+ const vec2 & cam_pos, const double & img_scale,
+ const vec2 & cam_scale);
//! Clears the screen, preparing for a new frame.
void clear_screen();
@@ -147,7 +147,7 @@ private:
* \brief sets the background of the camera (will be adjusted in future PR)
* \param camera Reference to the Camera object.
*/
- void set_camera(const Camera & camera, Vector2 & scale);
+ void set_camera(const Camera & camera, vec2 & scale);
private:
/**
@@ -168,8 +168,8 @@ private:
* \param scale the multiplier for world to screen
* \return sdl rectangle to draw a dst image to draw on the screen
*/
- SDL_Rect get_dst_rect(const Sprite & sprite, const Vector2 & pos, const Vector2 & cam_pos,
- const double & img_scale, const Vector2 & scale) const;
+ SDL_Rect get_dst_rect(const Sprite & sprite, const vec2 & pos, const vec2 & cam_pos,
+ const double & img_scale, const vec2 & scale) const;
private:
//! sdl Window
diff --git a/src/crepe/system/RenderSystem.h b/src/crepe/system/RenderSystem.h
index f010a83..97222f3 100644
--- a/src/crepe/system/RenderSystem.h
+++ b/src/crepe/system/RenderSystem.h
@@ -1,13 +1,11 @@
#pragma once
-#include <functional>
-#include <vector>
+#include <cmath>
-#include "api/Vector2.h"
#include "facade/SDLContext.h"
#include "System.h"
-#include <cmath>
+#include "types.h"
namespace crepe {
@@ -82,7 +80,7 @@ private:
Camera * curr_cam_ref = nullptr;
// TODO: needs a better solution
- Vector2 scale;
+ vec2 scale;
SDLContext & context = SDLContext::get_instance();
};