diff options
Diffstat (limited to 'src/libjin/Graphics/je_sprite.cpp')
-rw-r--r-- | src/libjin/Graphics/je_sprite.cpp | 61 |
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); } |