aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics/je_sprite.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Graphics/je_sprite.cpp')
-rw-r--r--src/libjin/Graphics/je_sprite.cpp61
1 files changed, 19 insertions, 42 deletions
diff --git a/src/libjin/Graphics/je_sprite.cpp b/src/libjin/Graphics/je_sprite.cpp
index 810cb0e..b92a2c2 100644
--- a/src/libjin/Graphics/je_sprite.cpp
+++ b/src/libjin/Graphics/je_sprite.cpp
@@ -11,9 +11,7 @@ namespace JinEngine
{
Sprite::Sprite()
- : mShader(nullptr)
- , mGraphic(nullptr)
- , mScale(1, 1)
+ : mGraphic(nullptr)
, mColor(255, 255, 255, 255)
, mIsOriginEnum(false)
{
@@ -35,7 +33,7 @@ namespace JinEngine
void Sprite::setRotation(float r)
{
- mRotation = r;
+ mTransform.setRotation(r);
}
void Sprite::setOrigin(Origin origin)
@@ -49,58 +47,49 @@ namespace JinEngine
switch (origin)
{
case TopLeft:
- mOrigin.x = l;
- mOrigin.y = t;
+ mTransform.setOrigin(1, t);
break;
case TopCenter:
- mOrigin.x = r/2.f;
- mOrigin.y = t;
+ mTransform.setOrigin(r / 2.f, t);
break;
case TopRight:
- mOrigin.x = r;
- mOrigin.y = t;
+ mTransform.setOrigin(r, t);
break;
case MiddleLeft:
- mOrigin.x = l;
- mOrigin.y = b/2.f;
+ mTransform.setOrigin(1, b / 2.f);
break;
case MiddleCenter:
- mOrigin.x = r/2.f;
- mOrigin.y = b/2.f;
+ mTransform.setOrigin(r / 2.f, b / 2.f);
break;
case MiddleRight:
- mOrigin.x = r;
- mOrigin.y = b/2.f;
+ mTransform.setOrigin(r, b / 2.f);
break;
case BottomLeft:
- mOrigin.x = l;
- mOrigin.y = b;
+ mTransform.setOrigin(l, b);
break;
case BottomCenter:
- mOrigin.x = r/2.f;
- mOrigin.y = b;
+ mTransform.setOrigin(r / 2.f, b);
break;
case BottomRight:
- mOrigin.x = r;
- mOrigin.y = b;
+ mTransform.setOrigin(r, b);
break;
}
}
void Sprite::setOrigin(int x, int y)
{
- mOrigin.set(x, y);
+ mTransform.setOrigin(x, y);
mIsOriginEnum = false;
}
void Sprite::setPosition(float x, float y)
{
- mPosition.set(x, y);
+ mTransform.setPosition(x, y);
}
void Sprite::setScale(float x, float y)
{
- mScale.set(x, y);
+ mTransform.setScale(x, y);
}
void Sprite::setColor(Color color)
@@ -108,11 +97,6 @@ namespace JinEngine
mColor = color;
}
- void Sprite::setShader(Shader* shader)
- {
- mShader = shader;
- }
-
void Sprite::setGraphic(const Graphic* graphic)
{
mGraphic = graphic;
@@ -121,34 +105,27 @@ namespace JinEngine
setQuad(0, 0, w, h);
}
-
void Sprite::move(float x, float y)
{
- mPosition.x += x;
- mPosition.y += y;
+ mTransform.move(x, y);
}
void Sprite::rotate(float r)
{
- mRotation += r;
+ mTransform.rotate(r);
}
void Sprite::scale(float sx, float sy)
{
- mScale.x += sx;
- mScale.y += sy;
+ mTransform.scale(sx, sy);
}
void Sprite::render()
{
- Shader* shader = Shader::getCurrentShader();
Color c = gl.getColor();
gl.setColor(mColor);
- if(mShader != nullptr)
- mShader->use();
- if(mGraphic != nullptr)
- mGraphic->render(mQuad, mPosition.x, mPosition.y, mScale.x, mScale.y, mRotation, mOrigin.x, mOrigin.y);
- shader->use();
+ if (mGraphic != nullptr)
+ mGraphic->render(mQuad, mTransform);
gl.setColor(c);
}