aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/graphics/je_sprite.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/graphics/je_sprite.h')
-rw-r--r--src/libjin/graphics/je_sprite.h56
1 files changed, 21 insertions, 35 deletions
diff --git a/src/libjin/graphics/je_sprite.h b/src/libjin/graphics/je_sprite.h
index faf16df..4050ed8 100644
--- a/src/libjin/graphics/je_sprite.h
+++ b/src/libjin/graphics/je_sprite.h
@@ -4,8 +4,8 @@
#include "../common/je_types.h"
#include "../math/je_vector2.hpp"
-#include "shaders/je_shader.h"
#include "je_color.h"
+#include "je_graphic.h"
namespace JinEngine
{
@@ -18,8 +18,6 @@ namespace JinEngine
class Sprite
{
public:
- Sprite();
- virtual ~Sprite();
enum Origin
{
@@ -34,42 +32,30 @@ namespace JinEngine
BottomRight
};
- void setQuad(int x, int y, int w, int h);
- void setRotation(float r);
- void setOrigin(Origin origin);
- void setOrigin(int x, int y);
- void setPosition(float x, float y);
- void setScale(float sx, float sy);
- void setColor(Color color);
- void setGraphic(const Graphic* graphic);
-
- void move(float x, float y);
- void rotate(float r);
- void scale(float sx, float sy);
-
- float getRotation() { return mTransform.getRotation(); }
- Math::Vector2<int> getSize() { return Math::Vector2<int>(mQuad.w, mQuad.h); }
- const Math::Quad& getQuad() { return mQuad; }
- const Math::Vector2<float>& getPosition() { return mTransform.getPosition(); }
- const Math::Vector2<float>& getOrigin() { return mTransform.getOrigin(); }
- const Math::Vector2<float>& getScale() { return mTransform.getScale(); }
- const Color& getColor() { return mColor; }
- const Graphic* getGraphic() { return mGraphic; }
-
- void render();
+ Sprite(const Graphic* graphic, const Math::Quad& quad, Origin origin);
+
+ Sprite(const Graphic* graphic, const Math::Quad& quad, float ox, float oy);
+
+ Sprite(const Graphic* graphic, Origin origin);
+
+ Sprite(const Graphic* graphic, float ox, float oy);
+
+ virtual ~Sprite();
+
+ Math::Vector2<int> getSize();
+
+ void render(float x, float y, float sx, float sy, float r) const;
private:
- ///
- /// Origin must be 0~1 float value.
- ///
- Math::Transform mTransform;
-
- Color mColor;
- Math::Quad mQuad;
+ void setOrigin(Origin origin);
- bool mIsOriginEnum;
- Origin mOriginEnum;
+ const Math::Vector2<float> mOrigin;
+
+ ///
+ /// Quad of graphic.
+ ///
+ const Math::Quad mQuad;
const Graphic* mGraphic;