aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/buildvm/buildvm.exebin121856 -> 123392 bytes
-rw-r--r--src/3rdparty/minilua/minilua.exebin209920 -> 219136 bytes
-rw-r--r--src/libjin/Graphics/fonts/je_texture_font.cpp4
-rw-r--r--src/libjin/Graphics/fonts/je_ttf.cpp4
-rw-r--r--src/libjin/Graphics/je_gl.cpp20
-rw-r--r--src/libjin/Graphics/je_gl.h13
-rw-r--r--src/libjin/Graphics/je_graphic.cpp8
-rw-r--r--src/libjin/Graphics/je_shapes.cpp20
8 files changed, 42 insertions, 27 deletions
diff --git a/src/3rdparty/buildvm/buildvm.exe b/src/3rdparty/buildvm/buildvm.exe
index a41ba10..b77cd0a 100644
--- a/src/3rdparty/buildvm/buildvm.exe
+++ b/src/3rdparty/buildvm/buildvm.exe
Binary files differ
diff --git a/src/3rdparty/minilua/minilua.exe b/src/3rdparty/minilua/minilua.exe
index 5369029..6115080 100644
--- a/src/3rdparty/minilua/minilua.exe
+++ b/src/3rdparty/minilua/minilua.exe
Binary files differ
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);