aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api
diff options
context:
space:
mode:
authorheavydemon21 <nielsstunnebrink1@gmail.com>2024-11-08 18:04:36 +0100
committerheavydemon21 <nielsstunnebrink1@gmail.com>2024-11-08 18:04:36 +0100
commitba713ba89127e3b4a24f204f67bccaa9c2972916 (patch)
tree1a1c501ac96ffa80d72f93596098b462a798600a /src/crepe/api
parent91a277c69fd5f8ba814adc1006a49c7415ff65be (diff)
Made it RAII
Diffstat (limited to 'src/crepe/api')
-rw-r--r--src/crepe/api/Texture.cpp6
-rw-r--r--src/crepe/api/Texture.h6
-rw-r--r--src/crepe/api/Transform.h2
3 files changed, 7 insertions, 7 deletions
diff --git a/src/crepe/api/Texture.cpp b/src/crepe/api/Texture.cpp
index e6c2e05..1eac655 100644
--- a/src/crepe/api/Texture.cpp
+++ b/src/crepe/api/Texture.cpp
@@ -21,14 +21,12 @@ Texture::Texture(const char * src) {
Texture::~Texture() {
dbg_trace();
- if (this->texture != nullptr) {
- SDL_DestroyTexture(this->texture);
- }
+ this->texture.reset();
}
void Texture::load(unique_ptr<Asset> res) {
SDLContext & ctx = SDLContext::get_instance();
- this->texture = ctx.texture_from_path(res->canonical());
+ this->texture.reset(ctx.texture_from_path(res->canonical()));
}
int Texture::get_width() const{
diff --git a/src/crepe/api/Texture.h b/src/crepe/api/Texture.h
index 828518d..0cacfe5 100644
--- a/src/crepe/api/Texture.h
+++ b/src/crepe/api/Texture.h
@@ -64,9 +64,11 @@ private:
void load(std::unique_ptr<Asset> res);
private:
- //TODO make RAII
+ struct TextureDeleter{
+ void operator()(SDL_Texture* texture) const { SDL_DestroyTexture(texture);}
+ };
//! The texture of the class from the library
- SDL_Texture * texture = nullptr;
+ std::unique_ptr<SDL_Texture, TextureDeleter> texture;
//! Grants SDLContext access to private members.
friend class SDLContext;
diff --git a/src/crepe/api/Transform.h b/src/crepe/api/Transform.h
index d7a5b8a..756e45b 100644
--- a/src/crepe/api/Transform.h
+++ b/src/crepe/api/Transform.h
@@ -32,7 +32,7 @@ public:
public:
//! Translation (shift)
Vector2 position;
- //! Rotation, in radians
+ //! Rotation, in degrees
double rotation;
//! Multiplication factor
double scale;