diff options
author | chai <chaifix@163.com> | 2018-12-05 12:34:26 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-12-05 12:34:26 +0800 |
commit | c78bd640228c0b6b9f7c294793c4f2f58b637c67 (patch) | |
tree | 2fbd941f8b88b2d9230e04a8b644e25d48f62476 /src | |
parent | adbc170d850a23b219f1718c2cf3e40fadd66ce0 (diff) |
*格式化代码
Diffstat (limited to 'src')
-rw-r--r-- | src/libjin/graphics/fonts/je_texture_font.cpp | 2 | ||||
-rw-r--r-- | src/libjin/graphics/fonts/je_ttf.cpp | 2 | ||||
-rw-r--r-- | src/libjin/graphics/je_gl.cpp | 59 | ||||
-rw-r--r-- | src/libjin/graphics/je_gl.h | 29 | ||||
-rw-r--r-- | src/libjin/graphics/je_graphic.cpp | 4 | ||||
-rw-r--r-- | src/libjin/graphics/je_shapes.cpp | 10 | ||||
-rw-r--r-- | src/libjin/graphics/particles/je_particle_system.h | 2 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.cpp | 10 | ||||
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.h | 12 | ||||
-rw-r--r-- | src/lua/common/je_lua_object.h | 11 | ||||
-rw-r--r-- | src/lua/modules/graphics/je_lua_animator.cpp | 4 | ||||
-rw-r--r-- | src/lua/modules/graphics/je_lua_graphics.cpp | 25 |
12 files changed, 117 insertions, 53 deletions
diff --git a/src/libjin/graphics/fonts/je_texture_font.cpp b/src/libjin/graphics/fonts/je_texture_font.cpp index 3599c58..8facc34 100644 --- a/src/libjin/graphics/fonts/je_texture_font.cpp +++ b/src/libjin/graphics/fonts/je_texture_font.cpp @@ -217,7 +217,7 @@ namespace JinEngine void TextureFont::render(const Page* page, int x, int y) { - Shader* shader = Shader::getCurrentShader(); + Shader* shader = gl.getShader(); const vector<GlyphArrayDrawInfo>& glyphinfolist = page->glyphinfolist; const vector<GlyphVertex>& glyphvertices = page->glyphvertices; Matrix modelMatrix = gl.getModelViewMatrix(x, y, 1, 1, 0, 0, 0); diff --git a/src/libjin/graphics/fonts/je_ttf.cpp b/src/libjin/graphics/fonts/je_ttf.cpp index d62798b..3f664fa 100644 --- a/src/libjin/graphics/fonts/je_ttf.cpp +++ b/src/libjin/graphics/fonts/je_ttf.cpp @@ -305,7 +305,7 @@ namespace JinEngine void TTF::render(const Page* page, int x, int y) { - Shader* shader = Shader::getCurrentShader(); + Shader* shader = gl.getShader(); const vector<GlyphArrayDrawInfo>& glyphinfolist = page->glyphinfolist; const vector<GlyphVertex>& glyphvertices = page->glyphvertices; Matrix modelMatrix = gl.getModelViewMatrix(x, y, 1, 1, 0, 0, 0); diff --git a/src/libjin/graphics/je_gl.cpp b/src/libjin/graphics/je_gl.cpp index c45a50e..72ebb45 100644 --- a/src/libjin/graphics/je_gl.cpp +++ b/src/libjin/graphics/je_gl.cpp @@ -288,5 +288,64 @@ namespace JinEngine glBlendFuncSeparate(srcRGB, dstRGB, srcA, dstA); } + void OpenGL::useShader(Shaders::Shader* shader) + { + if (shader) + { + shader->use(); + mShader = shader; + } + } + + void OpenGL::unuseShader() + { + if (mShader) + { + mShader->unuse(); + mShader = nullptr; + } + } + + Shaders::Shader* OpenGL::getShader() + { + return mShader; + } + + void OpenGL::bindCanvas(Canvas* canvas) + { + if (canvas) + { + Canvas::bind(canvas); + mCanvas = canvas; + } + } + + void OpenGL::unbindCanvas() + { + if (mCanvas) + { + mCanvas->unbind(); + mCanvas = nullptr; + } + } + + void OpenGL::setFont(Fonts::Font* font) + { + if (font) + { + mFont = font; + } + } + + void OpenGL::unsetFont() + { + mFont = nullptr; + } + + Fonts::Font* OpenGL::getFont() + { + return mFont; + } + } // namespace Graphics } // 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 ee0194e..d4f1ced 100644 --- a/src/libjin/graphics/je_gl.h +++ b/src/libjin/graphics/je_gl.h @@ -133,22 +133,39 @@ namespace JinEngine /// /// /// - void useShader(const Shaders::Shader* shader); + void useShader(Shaders::Shader* shader); + + /// + /// + /// + void unuseShader(); + + Shaders::Shader* getShader(); /// /// /// - void useFont(const Fonts::Font* font); + void setFont(Fonts::Font* font); + + /// + /// + /// + void unsetFont(); + + /// + /// + /// + Fonts::Font* getFont(); /// /// /// - void useCanvas(const Canvas* canvas); + void bindCanvas(Canvas* canvas); /// /// /// - void unuseShader(); + void unbindCanvas(); /// /// @@ -180,12 +197,12 @@ namespace JinEngine /// /// /// - Color mColor; + BlendMode mBlendMode; /// /// /// - BlendMode mBlendMode; + Color mColor; //struct { GLubyte r, g, b, a; } mColor; // current draw color //struct { GLubyte r, g, b, a; } mBackColor; // previous draw color diff --git a/src/libjin/graphics/je_graphic.cpp b/src/libjin/graphics/je_graphic.cpp index 6cd05a1..d326823 100644 --- a/src/libjin/graphics/je_graphic.cpp +++ b/src/libjin/graphics/je_graphic.cpp @@ -70,7 +70,7 @@ namespace JinEngine textureCoords[4] = 1; textureCoords[5] = 1; textureCoords[6] = 1; textureCoords[7] = 0; // Set shader. - Shader* shader = Shader::getCurrentShader(); + Shader* shader = gl.getShader(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); shader->setVertexPointer(2, GL_FLOAT, 0, vertexCoords); @@ -103,7 +103,7 @@ namespace JinEngine Math::Matrix modelMatrix = gl.getModelViewMatrix(x, y, sx, sy, r, ax, ay); - Shader* shader = Shader::getCurrentShader(); + Shader* shader = gl.getShader(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); shader->setVertexPointer(2, GL_FLOAT, 0, vertexCoords); diff --git a/src/libjin/graphics/je_shapes.cpp b/src/libjin/graphics/je_shapes.cpp index 0b239e7..ee5e9e5 100644 --- a/src/libjin/graphics/je_shapes.cpp +++ b/src/libjin/graphics/je_shapes.cpp @@ -22,7 +22,7 @@ namespace JinEngine { float verts[] = { x + 0.5f , y + 0.5f }; - Shader* shader = Shader::getCurrentShader(); + Shader* shader = gl.getShader(); shader->setVertexPointer(2, GL_FLOAT, 0, verts); Matrix modelMatrix = gl.getModelViewMatrix(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); @@ -33,7 +33,7 @@ namespace JinEngine void points(int n, GLshort* p) { - Shader* shader = Shader::getCurrentShader(); + Shader* shader = gl.getShader(); shader->setVertexPointer(2, GL_SHORT, 0, p); Matrix modelMatrix = gl.getModelViewMatrix(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); @@ -49,7 +49,7 @@ namespace JinEngine x2 + 0.5f, y2 + 0.5f }; - Shader* shader = Shader::getCurrentShader(); + Shader* shader = gl.getShader(); shader->setVertexPointer(2, GL_FLOAT, 0, verts); Matrix modelMatrix = gl.getModelViewMatrix(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); @@ -97,7 +97,7 @@ namespace JinEngine void polygon_line(float* p, int count) { - Shader* shader = Shader::getCurrentShader(); + Shader* shader = gl.getShader(); Matrix modelMatrix = gl.getModelViewMatrix(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); @@ -114,7 +114,7 @@ namespace JinEngine } else if (mode == FILL) { - Shader* shader = Shader::getCurrentShader(); + Shader* shader = gl.getShader(); Matrix modelMatrix = gl.getModelViewMatrix(); shader->sendMatrix4(SHADER_MODELVIEW_MATRIX, &modelMatrix); shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.getProjectionMatrix()); diff --git a/src/libjin/graphics/particles/je_particle_system.h b/src/libjin/graphics/particles/je_particle_system.h index b3640d4..56043a5 100644 --- a/src/libjin/graphics/particles/je_particle_system.h +++ b/src/libjin/graphics/particles/je_particle_system.h @@ -115,7 +115,7 @@ namespace JinEngine void setEmitPosition(const Math::Vector2<float>& position); ////////////////////////////////////////////////////////////////////////////////////////////////// - // Particle Emitter modification. + // Particle modification. ////////////////////////////////////////////////////////////////////////////////////////////////// void setParticleLife(float floor, float ceil); diff --git a/src/libjin/graphics/shaders/je_shader.cpp b/src/libjin/graphics/shaders/je_shader.cpp index 3748de6..b78c71c 100644 --- a/src/libjin/graphics/shaders/je_shader.cpp +++ b/src/libjin/graphics/shaders/je_shader.cpp @@ -6,6 +6,8 @@ #include "../../filesystem/je_buffer.h" #include "../../utils/je_macros.h" +#include "../je_gl.h" + #include "je_jsl_compiler.h" #include "je_shader.h" @@ -52,8 +54,6 @@ namespace JinEngine // const int DEFAULT_TEXTURE_UNIT = 0; - Shader* Shader::CurrentShader = nullptr; - Shader* Shader::createShader(const string& program) { Shader* shader = nullptr; @@ -77,7 +77,7 @@ namespace JinEngine Shader::~Shader() { - if (CurrentShader == this) + if (gl.getShader() == this) unuse(); // delete shader program glDeleteShader(mPID); @@ -130,14 +130,12 @@ if (success == GL_FALSE) \ void Shader::use() { glUseProgram(mPID); - CurrentShader = this; sendInt(SHADER_MAIN_TEXTURE, DEFAULT_TEXTURE_UNIT); } void Shader::unuse() { glUseProgram(0); - CurrentShader = nullptr; } GLint Shader::claimTextureUnit(const std::string& name) @@ -153,7 +151,7 @@ if (success == GL_FALSE) \ } #define checkJSL() \ - if (CurrentShader != this) \ + if (gl.getShader() != this) \ return void Shader::sendInt(const char* name, int value) diff --git a/src/libjin/graphics/shaders/je_shader.h b/src/libjin/graphics/shaders/je_shader.h index 36f3a40..bb7bee0 100644 --- a/src/libjin/graphics/shaders/je_shader.h +++ b/src/libjin/graphics/shaders/je_shader.h @@ -40,13 +40,6 @@ namespace JinEngine static Shader* createShader(const std::string& source); /// - /// Get current shader. - /// - /// @return Current used shader program. - /// - static inline Shader* getCurrentShader() { return CurrentShader; } - - /// /// Unuse current shader. /// static void unuse(); @@ -163,11 +156,6 @@ namespace JinEngine protected: /// - /// Reference of current used shader. - /// - static Shader* CurrentShader; - - /// /// Get texture unit of the uniform texture. If not, assign one. /// /// @param name Name of the texture uniform variable. diff --git a/src/lua/common/je_lua_object.h b/src/lua/common/je_lua_object.h index c2f0195..15fa6e4 100644 --- a/src/lua/common/je_lua_object.h +++ b/src/lua/common/je_lua_object.h @@ -57,14 +57,17 @@ namespace JinEngine int getDependenciesCount(); + ////////////////////////////////////////////////////////////////////////////////////////////////////// + // Lua state object. + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + using DepsMap = std::map<uint, SharedBase*>; + lua_State* state; SharedBase* object; - std::map<uint, SharedBase*>* dependencies; - - private: - using DepsMap = std::map<uint, SharedBase*>; + DepsMap* dependencies; }; diff --git a/src/lua/modules/graphics/je_lua_animator.cpp b/src/lua/modules/graphics/je_lua_animator.cpp index c8dd420..360a276 100644 --- a/src/lua/modules/graphics/je_lua_animator.cpp +++ b/src/lua/modules/graphics/je_lua_animator.cpp @@ -30,8 +30,8 @@ namespace JinEngine LUA_IMPLEMENT int l_gc(lua_State* L) { - LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation); - p->release(); + LuaObject* obj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation); + obj->release(); return 0; } diff --git a/src/lua/modules/graphics/je_lua_graphics.cpp b/src/lua/modules/graphics/je_lua_graphics.cpp index 867547d..7175309 100644 --- a/src/lua/modules/graphics/je_lua_graphics.cpp +++ b/src/lua/modules/graphics/je_lua_graphics.cpp @@ -40,7 +40,6 @@ namespace JinEngine { Color curRenderColor; Color curClearColor; - Font* curFont = nullptr; Font* defaultFont = nullptr; bool initialized = false; } context; @@ -74,8 +73,8 @@ namespace JinEngine TextureFont* tf = TextureFont::createTextureFont(bitmap, Text(Encode::UTF8, default_charset), default_font_split, bitmap->getHeight()); delete bitmap; context.defaultFont = tf; - context.curFont = tf; - + gl.setFont(tf); + luax_pushboolean(L, context.initialized); return 1; } @@ -462,7 +461,7 @@ namespace JinEngine /* need set font */ LUA_IMPLEMENT int l_print(lua_State* L) { - Font* font = context.curFont; + Font* font = gl.getFont(); if (font == nullptr) return 0; unsigned length; @@ -509,18 +508,18 @@ namespace JinEngine if (luax_gettop(L) == 0) { // bind to default canvas - Canvas::unbind(); + gl.unbindCanvas(); return 0; } LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas); Shared<Canvas>& shared = luaObj->getShared<Canvas>(); - Canvas::bind(shared.getObject()); + gl.bindCanvas(shared.getObject()); return 0; } LUA_IMPLEMENT int l_unbindCanvas(lua_State* L) { - Canvas::unbind(); + gl.unbindCanvas(); return 0; } @@ -528,14 +527,14 @@ namespace JinEngine { if (luax_gettop(L) == 0) { - Shader::unuse(); + gl.unuseShader(); return 0; } if (luax_istype(L, 1, Jin_Lua_Shader)) { LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Shader); - Shared<Shader>& jsl = luaObj->getShared<Shader>(); - jsl->use(); + Shared<Shader>& shader = luaObj->getShared<Shader>(); + gl.useShader(shader.getObject()); } else { @@ -909,20 +908,20 @@ namespace JinEngine { LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TTF); TTF* ttf = p->getObject<TTF>(); - context.curFont = ttf; + gl.setFont(ttf); } else if (luax_istype(L, 1, Jin_Lua_TextureFont)) { LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TextureFont); TextureFont* tf = p->getObject<TextureFont>(); - context.curFont = tf; + gl.setFont(tf); } return 0; } LUA_IMPLEMENT int l_unsetFont(lua_State* L) { - context.curFont = context.defaultFont; + gl.setFont(context.defaultFont); return 0; } |