aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/Texture.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/api/Texture.h')
-rw-r--r--src/crepe/api/Texture.h28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/crepe/api/Texture.h b/src/crepe/api/Texture.h
index 6965223..1817910 100644
--- a/src/crepe/api/Texture.h
+++ b/src/crepe/api/Texture.h
@@ -8,6 +8,7 @@
#include <memory>
#include "Asset.h"
+#include "types.h"
namespace crepe {
@@ -25,16 +26,10 @@ class Texture {
public:
/**
- * \brief Constructs a Texture from a file path.
- * \param src Path to the image file to be loaded as a texture.
- */
- Texture(const char * src);
-
- /**
* \brief Constructs a Texture from an Asset resource.
- * \param res Unique pointer to an Asset resource containing texture data.
+ * \param src Asset with texture data to load.
*/
- Texture(std::unique_ptr<Asset> res);
+ Texture(const Asset & src);
/**
* \brief Destroys the Texture instance, freeing associated resources.
@@ -42,24 +37,23 @@ public:
~Texture();
// FIXME: this constructor shouldn't be necessary because this class doesn't manage memory
- /**
- * \brief Gets the width of the texture.
- * \return Width of the texture in pixels.
- */
- int get_width() const;
+ Texture(Texture && other) noexcept;
+ Texture & operator=(Texture && other) noexcept;
+ Texture(const Texture &) = delete;
+ Texture & operator=(const Texture &) = delete;
/**
- * \brief Gets the height of the texture.
- * \return Height of the texture in pixels.
+ * \brief Gets the width and height of the texture.
+ * \return Width and height of the texture in pixels.
*/
- int get_height() const;
+ ivec2 get_size() const;
private:
/**
* \brief Loads the texture from an Asset resource.
* \param res Unique pointer to an Asset resource to load the texture from.
*/
- void load(std::unique_ptr<Asset> res);
+ void load(const Asset & res);
private:
//! The texture of the class from the library