diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libjin/common/je_common.h | 1 | ||||
-rw-r--r-- | src/libjin/common/je_string.h | 15 | ||||
-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_graphic.cpp | 16 | ||||
-rw-r--r-- | src/libjin/graphics/je_render_target.cpp | 0 | ||||
-rw-r--r-- | src/libjin/graphics/je_render_target.h | 0 | ||||
-rw-r--r-- | src/libjin/graphics/je_shapes.cpp | 10 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.cpp | 11 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.h | 14 | ||||
-rw-r--r-- | src/libjin/math/je_matrix.h | 1 | ||||
-rw-r--r-- | src/lua/embed/embed.h | 7 |
12 files changed, 55 insertions, 28 deletions
diff --git a/src/libjin/common/je_common.h b/src/libjin/common/je_common.h index 31b67c6..a34268a 100644 --- a/src/libjin/common/je_common.h +++ b/src/libjin/common/je_common.h @@ -3,5 +3,6 @@ #include "je_exception.h" #include "je_array.hpp" +#include "je_string.h" #endif
\ No newline at end of file diff --git a/src/libjin/common/je_string.h b/src/libjin/common/je_string.h index db0cffb..4e46f17 100644 --- a/src/libjin/common/je_string.h +++ b/src/libjin/common/je_string.h @@ -24,6 +24,11 @@ namespace JinEngine { } + inline String(const char* str) + : std::string(str) + { + } + inline String& operator = (const String& str) { std::string::operator=(str); @@ -45,11 +50,6 @@ namespace JinEngine { } - inline String(const char* nts) - : std::string(nts) - { - } - inline String(const char* buf, size_type bufsize) : std::string(buf, bufsize) { @@ -60,6 +60,11 @@ namespace JinEngine { } + inline int length() const + { + return size(); + } + }; } diff --git a/src/libjin/graphics/fonts/je_texture_font.cpp b/src/libjin/graphics/fonts/je_texture_font.cpp index 4f2378b..4fd1af1 100644 --- a/src/libjin/graphics/fonts/je_texture_font.cpp +++ b/src/libjin/graphics/fonts/je_texture_font.cpp @@ -281,8 +281,8 @@ namespace JinEngine for (int i = 0; i < glyphinfolist.size(); ++i) { const GlyphArrayDrawInfo& info = glyphinfolist[i]; - shader->setVertexPointer(2, GL_INT, sizeof(GlyphVertex), &glyphvertices[info.start].x); - shader->setUVPointer(2, GL_FLOAT, sizeof(GlyphVertex), &glyphvertices[info.start].u); + shader->uploadVertices(2, GL_INT, sizeof(GlyphVertex), &glyphvertices[info.start].x); + shader->uploadUV(2, GL_FLOAT, sizeof(GlyphVertex), &glyphvertices[info.start].u); gl.bindTexture(info.texture); gl.drawArrays(GL_QUADS, 0, info.count); gl.bindTexture(0); diff --git a/src/libjin/graphics/fonts/je_ttf.cpp b/src/libjin/graphics/fonts/je_ttf.cpp index 40008d3..29bc834 100644 --- a/src/libjin/graphics/fonts/je_ttf.cpp +++ b/src/libjin/graphics/fonts/je_ttf.cpp @@ -300,8 +300,8 @@ namespace JinEngine for (int i = 0; i < glyphinfolist.size(); ++i) { const GlyphArrayDrawInfo& info = glyphinfolist[i]; - shader->setVertexPointer(2, GL_INT, sizeof(GlyphVertex), &glyphvertices[info.start].x); - shader->setUVPointer(2, GL_FLOAT, sizeof(GlyphVertex), &glyphvertices[info.start].u); + shader->uploadVertices(2, GL_INT, sizeof(GlyphVertex), &glyphvertices[info.start].x); + shader->uploadUV(2, GL_FLOAT, sizeof(GlyphVertex), &glyphvertices[info.start].u); gl.bindTexture(info.texture); gl.drawArrays(GL_QUADS, 0, info.count); gl.bindTexture(0); diff --git a/src/libjin/graphics/je_graphic.cpp b/src/libjin/graphics/je_graphic.cpp index ef56ef0..a0c2257 100644 --- a/src/libjin/graphics/je_graphic.cpp +++ b/src/libjin/graphics/je_graphic.cpp @@ -55,7 +55,7 @@ namespace JinEngine void Graphic::render(float x, float y, float sx, float sy, float r, float ox, float oy) const { - Math::Matrix modelMatrix = gl.getModelViewMatrix(x, y, sx, sy, r, ox, oy); + 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]; @@ -71,10 +71,10 @@ namespace JinEngine textureCoords[6] = 1; textureCoords[7] = 0; // Set shader. Shader* shader = gl.getShader(); - shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); + shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); - shader->setVertexPointer(2, GL_FLOAT, 0, vertexCoords); - shader->setUVPointer(2, GL_FLOAT, 0, textureCoords); + shader->uploadVertices(2, GL_FLOAT, 0, vertexCoords); + shader->uploadUV(2, GL_FLOAT, 0, textureCoords); gl.bindTexture(getGLTexture()); gl.drawArrays(GL_QUADS, 0, 4); @@ -101,13 +101,13 @@ namespace JinEngine textureCoords[4] = slx + slw; textureCoords[5] = sly + slh; textureCoords[6] = slx + slw; textureCoords[7] = sly; - Math::Matrix modelMatrix = gl.getModelViewMatrix(x, y, sx, sy, r, ax, ay); + Math::Matrix modelViewMatrix = gl.getModelViewMatrix(x, y, sx, sy, r, ax, ay); Shader* shader = gl.getShader(); - shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); + shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelViewMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); - shader->setVertexPointer(2, GL_FLOAT, 0, vertexCoords); - shader->setUVPointer(2, GL_FLOAT, 0, textureCoords); + shader->uploadVertices(2, GL_FLOAT, 0, vertexCoords); + shader->uploadUV(2, GL_FLOAT, 0, textureCoords); gl.bindTexture(getGLTexture()); gl.drawArrays(GL_QUADS, 0, 4); diff --git a/src/libjin/graphics/je_render_target.cpp b/src/libjin/graphics/je_render_target.cpp deleted file mode 100644 index e69de29..0000000 --- a/src/libjin/graphics/je_render_target.cpp +++ /dev/null diff --git a/src/libjin/graphics/je_render_target.h b/src/libjin/graphics/je_render_target.h deleted file mode 100644 index e69de29..0000000 --- a/src/libjin/graphics/je_render_target.h +++ /dev/null diff --git a/src/libjin/graphics/je_shapes.cpp b/src/libjin/graphics/je_shapes.cpp index 02c007d..96a4f76 100644 --- a/src/libjin/graphics/je_shapes.cpp +++ b/src/libjin/graphics/je_shapes.cpp @@ -23,7 +23,7 @@ namespace JinEngine float verts[] = { x + 0.5f , y + 0.5f }; Shader* shader = gl.getShader(); - shader->setVertexPointer(2, GL_FLOAT, 0, verts); + shader->uploadVertices(2, GL_FLOAT, 0, verts); Matrix modelMatrix = gl.getModelViewMatrix(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); @@ -34,7 +34,7 @@ namespace JinEngine void points(int n, GLshort* p) { Shader* shader = gl.getShader(); - shader->setVertexPointer(2, GL_SHORT, 0, p); + shader->uploadVertices(2, GL_SHORT, 0, p); Matrix modelMatrix = gl.getModelViewMatrix(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); @@ -50,7 +50,7 @@ namespace JinEngine }; Shader* shader = gl.getShader(); - shader->setVertexPointer(2, GL_FLOAT, 0, verts); + shader->uploadVertices(2, GL_FLOAT, 0, verts); Matrix modelMatrix = gl.getModelViewMatrix(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); @@ -101,7 +101,7 @@ namespace JinEngine Matrix modelMatrix = gl.getModelViewMatrix(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); - shader->setVertexPointer(2, GL_FLOAT, 0, p); + shader->uploadVertices(2, GL_FLOAT, 0, p); glDrawArrays(GL_LINE_LOOP, 0, count); } @@ -118,7 +118,7 @@ namespace JinEngine Matrix modelMatrix = gl.getModelViewMatrix(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); - shader->setVertexPointer(2, GL_FLOAT, 0, p); + shader->uploadVertices(2, GL_FLOAT, 0, p); glDrawArrays(GL_POLYGON, 0, count); } diff --git a/src/libjin/graphics/shaders/je_shader.cpp b/src/libjin/graphics/shaders/je_shader.cpp index b7a4bba..8fbb133 100644 --- a/src/libjin/graphics/shaders/je_shader.cpp +++ b/src/libjin/graphics/shaders/je_shader.cpp @@ -252,20 +252,27 @@ if (success == GL_FALSE) \ glUniformMatrix4fv(loc, 1, GL_FALSE, mat4->getElements()); } - void Shader::setVertexPointer(int n, GLenum type, GLsizei stride, const GLvoid * pointers) + void Shader::uploadVertices(int n, GLenum type, GLsizei stride, const GLvoid * pointers) { GLint loc = glGetAttribLocation(mPID, SHADER_VERTEX_COORDS); glEnableVertexAttribArray(0); glVertexAttribPointer(loc, n, type, GL_FALSE, stride, pointers); } - void Shader::setUVPointer(int n, GLenum type, GLsizei stride, const GLvoid * pointers) + void Shader::uploadUV(int n, GLenum type, GLsizei stride, const GLvoid * pointers) { GLint loc = glGetAttribLocation(mPID, SHADER_TEXTURE_COORDS); glEnableVertexAttribArray(1); glVertexAttribPointer(loc, n, type, GL_FALSE, stride, pointers); } + void Shader::uploadAttribute(const String& name, int n, GLenum type, GLsizei stride, const GLvoid * pointers) + { + GLint loc = glGetAttribLocation(mPID, name); + glEnableVertexAttribArray(1); + glVertexAttribPointer(loc, n, type, GL_FALSE, stride, pointers); + } + } // namespace Shaders } // namespace Graphics } // namespace JinEngine diff --git a/src/libjin/graphics/shaders/je_shader.h b/src/libjin/graphics/shaders/je_shader.h index a92e206..9056d51 100644 --- a/src/libjin/graphics/shaders/je_shader.h +++ b/src/libjin/graphics/shaders/je_shader.h @@ -9,6 +9,8 @@ #include "GLee/GLee.h" +#include "../../common/je_string.h" + #include "../je_color.h" #include "../je_texture.h" #include "../je_canvas.h" @@ -130,7 +132,7 @@ namespace JinEngine /// @param stride Byte offset between consecutive generic vertex attributes. /// @param pointers Pointer to the first component of the first generic vertex attribute in the array. /// - void setVertexPointer(int n, GLenum type, GLsizei stride, const GLvoid * pointers); + void uploadVertices(int n, GLenum type, GLsizei stride, const GLvoid * pointers); /// /// Set texture UV coordinates. @@ -140,8 +142,16 @@ namespace JinEngine /// @param stride Byte offset between consecutive generic vertex attributes. /// @param pointers Pointer to the first component of the first generic vertex attribute in the array. /// - void setUVPointer(int n, GLenum type, GLsizei stride, const GLvoid * pointers); + void uploadUV(int n, GLenum type, GLsizei stride, const GLvoid * pointers); + + /// + /// Set attribute. + /// + void uploadAttribute(const String& name, int n, GLenum type, GLsizei stride, const GLvoid * pointers); + /// + /// Program ID. + /// inline GLuint getGLProgramID() { return mPID; }; protected: diff --git a/src/libjin/math/je_matrix.h b/src/libjin/math/je_matrix.h index f35b88b..65f080b 100644 --- a/src/libjin/math/je_matrix.h +++ b/src/libjin/math/je_matrix.h @@ -12,6 +12,7 @@ namespace JinEngine float x, y; float s, t; }; + /// /// This class is the basis for all transformations in LOVE. Althought not /// really needed for 2D, it contains 4x4 elements to be compatible with diff --git a/src/lua/embed/embed.h b/src/lua/embed/embed.h index b5e1334..1928dd5 100644 --- a/src/lua/embed/embed.h +++ b/src/lua/embed/embed.h @@ -24,18 +24,21 @@ namespace JinEngine { "graphics.lua", graphics_lua }, { "keyboard.lua", keyboard_lua }, { "mouse.lua", mouse_lua }, - { "boot.lua", boot_lua }, { 0, 0 } }; + static const jin_Embed bootscript = { "boot.lua", boot_lua }; + static void run(lua_State* L) { for (int i = 0; modules[i].file; ++i) { const char* file = modules[i].file, *source = modules[i].source; if (luax_loadbuffer(L, source, strlen(source), file) == 0) - lua_call(L, 0, 0); + luax_call(L, 0, 0); } + if (luax_loadbuffer(L, bootscript.source, strlen(bootscript.source), bootscript.file) == 0) + luax_call(L, 0, 0); } } // namespace Embed |