From 160e1299ef3d95f8e8c48706d7f61dd3dc6c6b60 Mon Sep 17 00:00:00 2001
From: chai <chaifix@163.com>
Date: Tue, 11 Feb 2020 11:29:07 +0800
Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9=20tab=E5=A4=A7=E5=B0=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/libjin/graphics/graphic.cpp | 252 ++++++++++++++++++++--------------------
 1 file changed, 126 insertions(+), 126 deletions(-)

(limited to 'src/libjin/graphics/graphic.cpp')

diff --git a/src/libjin/graphics/graphic.cpp b/src/libjin/graphics/graphic.cpp
index 7659e4e..67e416a 100644
--- a/src/libjin/graphics/graphic.cpp
+++ b/src/libjin/graphics/graphic.cpp
@@ -14,132 +14,132 @@ using namespace JinEngine::Graphics::Shaders;
 
 namespace JinEngine
 {
-    namespace Graphics
-    {
-
-        Graphic::Graphic(int w, int h)
-            : mTexture(0)
-            , mSize(w, h)
-        {
-            mTexture = gl.genTexture();
-        }
-
-        Graphic::Graphic(const Bitmap* bitmap)
-            : mTexture(0)
-        {
-            mSize.w() = bitmap->getWidth();
-            mSize.h() = bitmap->getHeight();
-
-            const Color* pixels = bitmap->getPixels();
-
-            mTexture = gl.genTexture();
-            gl.bindTexture2D(mTexture);
-            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-            gl.texImage(GL_RGBA8, mSize.w(), mSize.h(), GL_RGBA, GL_UNSIGNED_BYTE, pixels);
-        }
-
-        Graphic::~Graphic()
-        {
-            glDeleteTextures(1, &mTexture);
-        }
-
-        void Graphic::setFilter(GLint min_filter, GLint max_filter)
-        {
-            gl.bindTexture2D(mTexture);
-            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_filter);
-            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, max_filter);
-        }
-
-        void Graphic::render(float x, float y, float sx, float sy, float r, float ox, float oy) const
-        {
-            Math::Matrix modelViewMatrix = gl.getModelViewMatrix(x, y, sx, sy, r, ox, oy);
-            int w = getWidth(), h = getHeight();
-            static float vertexCoords[8];
-            static float textureCoords[8];
-            // Set vertex coordinates.
-            vertexCoords[0] = 0; vertexCoords[1] = 0;
-            vertexCoords[2] = 0; vertexCoords[3] = h;
-            vertexCoords[4] = w; vertexCoords[5] = h;
-            vertexCoords[6] = w; vertexCoords[7] = 0;
-            // Set texture coordinates.
-            textureCoords[0] = 0; textureCoords[1] = 0;
-            textureCoords[2] = 0; textureCoords[3] = 1;
-            textureCoords[4] = 1; textureCoords[5] = 1;
-            textureCoords[6] = 1; textureCoords[7] = 0;
-            // Set shader.
-            Shader* shader = gl.getShader();
-            shader->begin()
-                .sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix)
-                .sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix())
-                .uploadVertices(2, GL_FLOAT, 0, vertexCoords)
-                .uploadUV(2, GL_FLOAT, 0, textureCoords);
-
-            gl.bindTexture2D(mTexture);
-            gl.drawArrays(GL_QUADS, 0, 4);
-
-            shader->end();
-        }
-
-        void Graphic::render(const Math::Quad& slice, float x, float y, float sx, float sy, float r, float ax, float ay) const
-        {
-            static float vertexCoords[8];
-            static float textureCoords[8];
-
-            // Set vertex coordinates.
-            vertexCoords[0] = 0;       vertexCoords[1] = 0;
-            vertexCoords[2] = 0;       vertexCoords[3] = slice.h;
-            vertexCoords[4] = slice.w; vertexCoords[5] = slice.h;
-            vertexCoords[6] = slice.w; vertexCoords[7] = 0;
-            // Set texture coordinates.
-            float slx = slice.x / mSize.w();
-            float sly = slice.y / mSize.h();
-            float slw = slice.w / mSize.w();
-            float slh = slice.h / mSize.h();
-            textureCoords[0] = slx;       textureCoords[1] = sly;
-            textureCoords[2] = slx;       textureCoords[3] = sly + slh;
-            textureCoords[4] = slx + slw; textureCoords[5] = sly + slh;
-            textureCoords[6] = slx + slw; textureCoords[7] = sly;
-
-            Math::Matrix modelViewMatrix = gl.getModelViewMatrix(x, y, sx, sy, r, ax, ay);
-
-            Shader* shader = gl.getShader();
-            shader->begin()
-                .sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix)
-                .sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix())
-                .uploadVertices(2, GL_FLOAT, 0, vertexCoords)
-                .uploadUV(2, GL_FLOAT, 0, textureCoords);
-
-            gl.bindTexture2D(mTexture);
-            gl.drawArrays(GL_QUADS, 0, 4);
-
-            shader->end();
-        }
-
-        void Graphic::render(const Math::Transform& transform) const
-        {
-            Vector2<float> position = transform.getPosition();
-            Vector2<float> origin = transform.getOrigin();
-            Vector2<float> scale = transform.getScale();
-            float angle = transform.getRotation();
-            render(position.x(), position.y(), scale.x(), scale.y(), angle, origin.x(), origin.y());
-        }
-
-        void Graphic::render(const Math::Quad& slice, const Math::Transform& transform) const
-        {
-            Vector2<float> position = transform.getPosition();
-            Vector2<float> origin = transform.getOrigin();
-            Vector2<float> scale = transform.getScale();
-            float angle = transform.getRotation();
-            render(slice, position.x(), position.y(), scale.x(), scale.y(), angle, origin.x(), origin.y());
-        }
-
-        //void Graphic::setFilter(GLint min, GLint max)
-        //{
-        //    glTexParameteri(GL_)
-        //}
-
-    } // namespace Graphics
+	namespace Graphics
+	{
+
+		Graphic::Graphic(int w, int h)
+			: mTexture(0)
+			, mSize(w, h)
+		{
+			mTexture = gl.genTexture();
+		}
+
+		Graphic::Graphic(const Bitmap* bitmap)
+			: mTexture(0)
+		{
+			mSize.w() = bitmap->getWidth();
+			mSize.h() = bitmap->getHeight();
+
+			const Color* pixels = bitmap->getPixels();
+
+			mTexture = gl.genTexture();
+			gl.bindTexture2D(mTexture);
+			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+			gl.texImage(GL_RGBA8, mSize.w(), mSize.h(), GL_RGBA, GL_UNSIGNED_BYTE, pixels);
+		}
+
+		Graphic::~Graphic()
+		{
+			glDeleteTextures(1, &mTexture);
+		}
+
+		void Graphic::setFilter(GLint min_filter, GLint max_filter)
+		{
+			gl.bindTexture2D(mTexture);
+			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_filter);
+			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, max_filter);
+		}
+
+		void Graphic::render(float x, float y, float sx, float sy, float r, float ox, float oy) const
+		{
+			Math::Matrix modelViewMatrix = gl.getModelViewMatrix(x, y, sx, sy, r, ox, oy);
+			int w = getWidth(), h = getHeight();
+			static float vertexCoords[8];
+			static float textureCoords[8];
+			// Set vertex coordinates.
+			vertexCoords[0] = 0; vertexCoords[1] = 0;
+			vertexCoords[2] = 0; vertexCoords[3] = h;
+			vertexCoords[4] = w; vertexCoords[5] = h;
+			vertexCoords[6] = w; vertexCoords[7] = 0;
+			// Set texture coordinates.
+			textureCoords[0] = 0; textureCoords[1] = 0;
+			textureCoords[2] = 0; textureCoords[3] = 1;
+			textureCoords[4] = 1; textureCoords[5] = 1;
+			textureCoords[6] = 1; textureCoords[7] = 0;
+			// Set shader.
+			Shader* shader = gl.getShader();
+			shader->begin()
+				.sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix)
+				.sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix())
+				.uploadVertices(2, GL_FLOAT, 0, vertexCoords)
+				.uploadUV(2, GL_FLOAT, 0, textureCoords);
+
+			gl.bindTexture2D(mTexture);
+			gl.drawArrays(GL_QUADS, 0, 4);
+
+			shader->end();
+		}
+
+		void Graphic::render(const Math::Quad& slice, float x, float y, float sx, float sy, float r, float ax, float ay) const
+		{
+			static float vertexCoords[8];
+			static float textureCoords[8];
+
+			// Set vertex coordinates.
+			vertexCoords[0] = 0;	   vertexCoords[1] = 0;
+			vertexCoords[2] = 0;	   vertexCoords[3] = slice.h;
+			vertexCoords[4] = slice.w; vertexCoords[5] = slice.h;
+			vertexCoords[6] = slice.w; vertexCoords[7] = 0;
+			// Set texture coordinates.
+			float slx = slice.x / mSize.w();
+			float sly = slice.y / mSize.h();
+			float slw = slice.w / mSize.w();
+			float slh = slice.h / mSize.h();
+			textureCoords[0] = slx;	   textureCoords[1] = sly;
+			textureCoords[2] = slx;	   textureCoords[3] = sly + slh;
+			textureCoords[4] = slx + slw; textureCoords[5] = sly + slh;
+			textureCoords[6] = slx + slw; textureCoords[7] = sly;
+
+			Math::Matrix modelViewMatrix = gl.getModelViewMatrix(x, y, sx, sy, r, ax, ay);
+
+			Shader* shader = gl.getShader();
+			shader->begin()
+				.sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix)
+				.sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix())
+				.uploadVertices(2, GL_FLOAT, 0, vertexCoords)
+				.uploadUV(2, GL_FLOAT, 0, textureCoords);
+
+			gl.bindTexture2D(mTexture);
+			gl.drawArrays(GL_QUADS, 0, 4);
+
+			shader->end();
+		}
+
+		void Graphic::render(const Math::Transform& transform) const
+		{
+			Vector2<float> position = transform.getPosition();
+			Vector2<float> origin = transform.getOrigin();
+			Vector2<float> scale = transform.getScale();
+			float angle = transform.getRotation();
+			render(position.x(), position.y(), scale.x(), scale.y(), angle, origin.x(), origin.y());
+		}
+
+		void Graphic::render(const Math::Quad& slice, const Math::Transform& transform) const
+		{
+			Vector2<float> position = transform.getPosition();
+			Vector2<float> origin = transform.getOrigin();
+			Vector2<float> scale = transform.getScale();
+			float angle = transform.getRotation();
+			render(slice, position.x(), position.y(), scale.x(), scale.y(), angle, origin.x(), origin.y());
+		}
+
+		//void Graphic::setFilter(GLint min, GLint max)
+		//{
+		//	glTexParameteri(GL_)
+		//}
+
+	} // namespace Graphics
 } // namespace JinEngine
 
 #endif // defined(jin_graphics)
\ No newline at end of file
-- 
cgit v1.1-26-g67d0