/* # ______ ____ ___ # | \/ ____| |___| # | | | \ | | #----------------------------------------------------------------------- # Copyright 2020, tyra - https://github.com/h4570/tyra # Licenced under Apache License 2.0 # Sandro Sobczyński */ #ifndef _TYRA_SPRITE_ #define _TYRA_SPRITE_ #include #include #include enum SpriteMode { MODE_STRETCH, MODE_REPEAT }; /** * Class which have contain 2D image data. */ class Sprite { public: Sprite(); ~Sprite(); Point position, size; float scale; color_t color; clutbuffer_t clut; // ---- // Getters // ---- /** Auto generated unique Id. */ inline const u32 &getId() const { return id; }; /** Get sprite drawing mode. */ inline const SpriteMode &getMode() const { return mode; }; // ---- // Setters // ---- /** Set sprite drawing mode. */ void setMode(const SpriteMode &t_val) { mode = t_val; } // ---- // Other // ---- /** Flip texture horizontally. */ inline void flipHorizontally(const u8 &t_set) { _flipH = t_set; }; /** Flip texture vertically. */ inline void flipVertically(const u8 &t_set) { _flipV = t_set; }; /** Check if texture is vertically flipped. */ inline const u8 &isFlippedVertically() const { return _flipV; }; /** Check if texture is horizontally flipped. */ inline const u8 &isFlippedHorizontally() const { return _flipH; }; private: u32 id; SpriteMode mode; u8 _isSizeSet, _flipH, _flipV; void setDefaultColor(); void setDefaultLODAndClut(); }; #endif