aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/Texture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/api/Texture.cpp')
-rw-r--r--src/crepe/api/Texture.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/crepe/api/Texture.cpp b/src/crepe/api/Texture.cpp
index 264d7b1..2b56271 100644
--- a/src/crepe/api/Texture.cpp
+++ b/src/crepe/api/Texture.cpp
@@ -1,10 +1,9 @@
-#include <SDL2/SDL_render.h>
-
#include "../facade/SDLContext.h"
#include "../util/Log.h"
#include "Asset.h"
#include "Texture.h"
+#include "types.h"
using namespace crepe;
using namespace std;
@@ -19,16 +18,21 @@ Texture::~Texture() {
this->texture.reset();
}
+Texture::Texture(Texture && other) noexcept : texture(std::move(other.texture)) {}
+
+Texture & Texture::operator=(Texture && other) noexcept {
+ if (this != &other) {
+ texture = std::move(other.texture);
+ }
+ return *this;
+}
+
void Texture::load(const Asset & res) {
SDLContext & ctx = SDLContext::get_instance();
this->texture = ctx.texture_from_path(res.get_path());
}
-int Texture::get_width() const {
- if (this->texture == nullptr) return 0;
- return SDLContext::get_instance().get_width(*this);
-}
-int Texture::get_height() const {
- if (this->texture == nullptr) return 0;
- return SDLContext::get_instance().get_height(*this);
+ivec2 Texture::get_size() const {
+ if (this->texture == nullptr) return {};
+ return SDLContext::get_instance().get_size(*this);
}