diff options
-rw-r--r-- | bin/Jin.exe | bin | 2263040 -> 2499584 bytes | |||
-rw-r--r-- | bin/SDL2.dll | bin | 1242112 -> 1279488 bytes | |||
-rw-r--r-- | bin/jin.exe | bin | 2263040 -> 2499584 bytes | |||
-rw-r--r-- | build/vc++/jin/jin.vcxproj | 2 | ||||
-rw-r--r-- | src/3rdparty/buildvm/buildvm.exe | bin | 121856 -> 123392 bytes | |||
-rw-r--r-- | src/3rdparty/minilua/minilua.exe | bin | 209920 -> 219136 bytes | |||
-rw-r--r-- | src/libjin/Graphics/fonts/je_texture_font.cpp | 4 | ||||
-rw-r--r-- | src/libjin/Graphics/fonts/je_ttf.cpp | 4 | ||||
-rw-r--r-- | src/libjin/Graphics/je_gl.cpp | 20 | ||||
-rw-r--r-- | src/libjin/Graphics/je_gl.h | 13 | ||||
-rw-r--r-- | src/libjin/Graphics/je_graphic.cpp | 8 | ||||
-rw-r--r-- | src/libjin/Graphics/je_shapes.cpp | 20 |
12 files changed, 43 insertions, 28 deletions
diff --git a/bin/Jin.exe b/bin/Jin.exe Binary files differindex 8251ee4..0645634 100644 --- a/bin/Jin.exe +++ b/bin/Jin.exe diff --git a/bin/SDL2.dll b/bin/SDL2.dll Binary files differindex 3aaf046..dfc7d55 100644 --- a/bin/SDL2.dll +++ b/bin/SDL2.dll diff --git a/bin/jin.exe b/bin/jin.exe Binary files differindex 8251ee4..0645634 100644 --- a/bin/jin.exe +++ b/bin/jin.exe diff --git a/build/vc++/jin/jin.vcxproj b/build/vc++/jin/jin.vcxproj index 7d6707d..ac3cec8 100644 --- a/build/vc++/jin/jin.vcxproj +++ b/build/vc++/jin/jin.vcxproj @@ -106,7 +106,7 @@ <AdditionalIncludeDirectories>$(SolutionDir)..\..\src\;$(SolutionDir)..\..\src\3rdparty\SDL2\include;$(SolutionDir)..\..\src\3rdparty\LuaJIT-2.0.5\include;$(SolutionDir)..\..\src\3rdparty\</AdditionalIncludeDirectories> </ClCompile> <Link> - <SubSystem>Console</SubSystem> + <SubSystem>Windows</SubSystem> <AdditionalLibraryDirectories> </AdditionalLibraryDirectories> <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies> diff --git a/src/3rdparty/buildvm/buildvm.exe b/src/3rdparty/buildvm/buildvm.exe Binary files differindex a41ba10..b77cd0a 100644 --- a/src/3rdparty/buildvm/buildvm.exe +++ b/src/3rdparty/buildvm/buildvm.exe diff --git a/src/3rdparty/minilua/minilua.exe b/src/3rdparty/minilua/minilua.exe Binary files differindex 5369029..6115080 100644 --- a/src/3rdparty/minilua/minilua.exe +++ b/src/3rdparty/minilua/minilua.exe diff --git a/src/libjin/Graphics/fonts/je_texture_font.cpp b/src/libjin/Graphics/fonts/je_texture_font.cpp index 0d9b882..6875e30 100644 --- a/src/libjin/Graphics/fonts/je_texture_font.cpp +++ b/src/libjin/Graphics/fonts/je_texture_font.cpp @@ -220,8 +220,8 @@ namespace JinEngine Shader* shader = Shader::getCurrentShader(); const vector<GlyphArrayDrawInfo>& glyphinfolist = page->glyphinfolist; const vector<GlyphVertex>& glyphvertices = page->glyphvertices; - gl.ModelMatrix.setTransformation(x, y, 0, 1, 1, 0, 0); - shader->sendMatrix4(SHADER_MODEL_MATRIX, &(gl.getMatrix() * gl.ModelMatrix)); + static Matrix modelMatrix = gl.getModelMatrix(x, y, 0, 1, 1, 0, 0); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); for (int i = 0; i < glyphinfolist.size(); ++i) { diff --git a/src/libjin/Graphics/fonts/je_ttf.cpp b/src/libjin/Graphics/fonts/je_ttf.cpp index 9994666..1083281 100644 --- a/src/libjin/Graphics/fonts/je_ttf.cpp +++ b/src/libjin/Graphics/fonts/je_ttf.cpp @@ -308,8 +308,8 @@ namespace JinEngine Shader* shader = Shader::getCurrentShader(); const vector<GlyphArrayDrawInfo>& glyphinfolist = page->glyphinfolist; const vector<GlyphVertex>& glyphvertices = page->glyphvertices; - gl.ModelMatrix.setTransformation(x, y, 0, 1, 1, 0, 0); - shader->sendMatrix4(SHADER_MODEL_MATRIX, &(gl.getMatrix() * gl.ModelMatrix)); + static Matrix modelMatrix = gl.getModelMatrix(x, y, 0, 1, 1, 0, 0); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); for (int i = 0; i < glyphinfolist.size(); ++i) { diff --git a/src/libjin/Graphics/je_gl.cpp b/src/libjin/Graphics/je_gl.cpp index 3f19d36..a559c07 100644 --- a/src/libjin/Graphics/je_gl.cpp +++ b/src/libjin/Graphics/je_gl.cpp @@ -15,7 +15,7 @@ namespace JinEngine : ogl2d::OpenGL() { mMatrices.push_back(Matrix()); - calcMatrix(); + solve(); } void OpenGL::setColor(Channel r, Channel g, Channel b, Channel a) @@ -51,10 +51,10 @@ namespace JinEngine if (mMatrices.size() == 1) return; mMatrices.pop_back(); - calcMatrix(); + solve(); } - void OpenGL::calcMatrix() + void OpenGL::solve() { mMatrix.setIdentity(); for (Matrix& m : mMatrices) @@ -88,5 +88,17 @@ namespace JinEngine mMatrix.rotate(r); } + Matrix OpenGL::getModelMatrix(float x, float y, float sx, float sy, float r, float ox, float oy) + { + Matrix m; + m.setTransformation(x, y, sx, sy, r, ox, oy); + return mMatrix*m; + } + + Math::Matrix OpenGL::getModelMatrix() + { + return mMatrix; + } + } // namespace Graphics -} // namespace JinEngine +} // namespace JinEngine
\ No newline at end of file diff --git a/src/libjin/Graphics/je_gl.h b/src/libjin/Graphics/je_gl.h index 1dddab3..03bd26a 100644 --- a/src/libjin/Graphics/je_gl.h +++ b/src/libjin/Graphics/je_gl.h @@ -14,19 +14,20 @@ namespace JinEngine namespace Graphics { - class OpenGL : public ogl2d::OpenGL + class OpenGL + : public ogl2d::OpenGL { public: /// /// /// Math::Matrix ProjectionMatrix; - +/* /// /// /// Math::Matrix ModelMatrix; - +*/ /// /// /// @@ -50,11 +51,13 @@ namespace JinEngine void rotate(float r); - const Math::Matrix& getMatrix() { return mMatrix; }; + Math::Matrix getModelMatrix(float x, float y, float sx, float sy, float r, float ox, float oy); + + Math::Matrix getModelMatrix(); private: - void calcMatrix(); + void solve(); Color mCurrentColor; std::vector<Math::Matrix> mMatrices; diff --git a/src/libjin/Graphics/je_graphic.cpp b/src/libjin/Graphics/je_graphic.cpp index 6f3ff58..f439b0b 100644 --- a/src/libjin/Graphics/je_graphic.cpp +++ b/src/libjin/Graphics/je_graphic.cpp @@ -45,7 +45,7 @@ namespace JinEngine void Graphic::render(int x, int y, float sx, float sy, float r, float ox, float oy) const { - gl.ModelMatrix.setTransformation(x, y, r, sx, sy, ox, oy); + static Math::Matrix modelMatrix = gl.getModelMatrix(x, y, r, sx, sy, ox, oy); int w = getWidth(), h = getHeight(); static float vertexCoords[8]; static float textureCoords[8]; @@ -61,7 +61,7 @@ namespace JinEngine textureCoords[6] = 1; textureCoords[7] = 0; // Set shader. Shader* shader = Shader::getCurrentShader(); - shader->sendMatrix4(SHADER_MODEL_MATRIX, &(gl.getMatrix() * gl.ModelMatrix)); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); shader->setVertexPointer(2, GL_FLOAT, 0, vertexCoords); shader->setUVPointer(2, GL_FLOAT, 0, textureCoords); @@ -91,10 +91,10 @@ namespace JinEngine textureCoords[4] = slx + slw; textureCoords[5] = sly + slh; textureCoords[6] = slx + slw; textureCoords[7] = sly; - gl.ModelMatrix.setTransformation(x, y, r, sx, sy, ax, ay); + static Math::Matrix modelMatrix = gl.getModelMatrix(x, y, r, sx, sy, ax, ay); Shader* shader = Shader::getCurrentShader(); - shader->sendMatrix4(SHADER_MODEL_MATRIX, &(gl.getMatrix() * gl.ModelMatrix)); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); shader->setVertexPointer(2, GL_FLOAT, 0, vertexCoords); shader->setUVPointer(2, GL_FLOAT, 0, textureCoords); diff --git a/src/libjin/Graphics/je_shapes.cpp b/src/libjin/Graphics/je_shapes.cpp index 486c506..2a9fd25 100644 --- a/src/libjin/Graphics/je_shapes.cpp +++ b/src/libjin/Graphics/je_shapes.cpp @@ -24,8 +24,8 @@ namespace JinEngine Shader* shader = Shader::getCurrentShader(); shader->setVertexPointer(2, GL_FLOAT, 0, verts); - gl.ModelMatrix.setIdentity(); - shader->sendMatrix4(SHADER_MODEL_MATRIX, &(gl.getMatrix() * gl.ModelMatrix)); + static Matrix modelMatrix = gl.getModelMatrix(); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); glDrawArrays(GL_POINTS, 0, 1); @@ -35,8 +35,8 @@ namespace JinEngine { Shader* shader = Shader::getCurrentShader(); shader->setVertexPointer(2, GL_SHORT, 0, p); - gl.ModelMatrix.setIdentity(); - shader->sendMatrix4(SHADER_MODEL_MATRIX, &(gl.getMatrix() * gl.ModelMatrix)); + static Matrix modelMatrix = gl.getModelMatrix(); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); glDrawArrays(GL_POINTS, 0, n); @@ -51,8 +51,8 @@ namespace JinEngine Shader* shader = Shader::getCurrentShader(); shader->setVertexPointer(2, GL_FLOAT, 0, verts); - gl.ModelMatrix.setIdentity(); - shader->sendMatrix4(SHADER_MODEL_MATRIX, &(gl.getMatrix() * gl.ModelMatrix)); + static Matrix modelMatrix = gl.getModelMatrix(); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); glDrawArrays(GL_LINES, 0, 2); @@ -98,8 +98,8 @@ namespace JinEngine void polygon_line(float* p, int count) { Shader* shader = Shader::getCurrentShader(); - gl.ModelMatrix.setIdentity(); - shader->sendMatrix4(SHADER_MODEL_MATRIX, &(gl.getMatrix() * gl.ModelMatrix)); + static Matrix modelMatrix = gl.getModelMatrix(); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); shader->setVertexPointer(2, GL_FLOAT, 0, p); @@ -115,8 +115,8 @@ namespace JinEngine else if (mode == FILL) { Shader* shader = Shader::getCurrentShader(); - gl.ModelMatrix.setIdentity(); - shader->sendMatrix4(SHADER_MODEL_MATRIX, &(gl.getMatrix() * gl.ModelMatrix)); + static Matrix modelMatrix = gl.getModelMatrix(); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); shader->setVertexPointer(2, GL_FLOAT, 0, p); |