From da056982e50bdd9cb9f944691cc88ca98b053b77 Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 6 Jan 2019 23:33:08 +0800 Subject: *misc --- src/libjin/graphics/shaders/je_shader.cpp | 22 ++++++++++++++-------- src/libjin/graphics/shaders/je_shader.h | 9 +++++++-- 2 files changed, 21 insertions(+), 10 deletions(-) (limited to 'src/libjin/graphics/shaders') diff --git a/src/libjin/graphics/shaders/je_shader.cpp b/src/libjin/graphics/shaders/je_shader.cpp index 059c411..0803e65 100644 --- a/src/libjin/graphics/shaders/je_shader.cpp +++ b/src/libjin/graphics/shaders/je_shader.cpp @@ -58,7 +58,8 @@ namespace JinEngine // const int DEFAULT_TEXTURE_UNIT = 0; - GLint Shader::mTextureUnit = DEFAULT_TEXTURE_UNIT; + static GLint textureUnit = 0; + GLint Shader::mAttributeIndex = 0; Shader::Shader(const string& program) @@ -79,8 +80,11 @@ namespace JinEngine glDeleteShader(mPID); } - Shader& Shader::prepare() + Shader& Shader::begin() { + + textureUnit = DEFAULT_TEXTURE_UNIT; + // Send uniforms. sendInt(SHADER_MAIN_TEXTURE, DEFAULT_TEXTURE_UNIT); sendVec2(SHADER_TIME, Time::getSecond(), Time::getDeltaTime()); @@ -93,15 +97,17 @@ namespace JinEngine { sendVec2(SHADER_RENDERTARGET_SIZE, rt->getWidth(), rt->getHeight()); } - // Reset attribute index. - for(; mAttributeIndex > 0; --mAttributeIndex) - glDisableVertexAttribArray(mAttributeIndex); - - mTextureUnit = DEFAULT_TEXTURE_UNIT; return *this; } + void Shader::end() + { + // Reset attribute index. + for (; mAttributeIndex > 0; --mAttributeIndex) + glDisableVertexAttribArray(mAttributeIndex); + } + bool Shader::compile(const string& program) { string vertex_shader, fragment_shader; @@ -159,7 +165,7 @@ namespace JinEngine // return 0; //mTextureUnits[name] = mCurrentTextureUnit; //return mCurrentTextureUnit; - return mTextureUnit++; + return textureUnit++; } GLint Shader::getUniformLocation(const char* uniform) diff --git a/src/libjin/graphics/shaders/je_shader.h b/src/libjin/graphics/shaders/je_shader.h index c3ca721..402805a 100644 --- a/src/libjin/graphics/shaders/je_shader.h +++ b/src/libjin/graphics/shaders/je_shader.h @@ -47,7 +47,12 @@ namespace JinEngine /// /// Prepare shader and set default uniforms. /// - Shader& prepare(); + Shader& begin(); + + /// + /// End use shader. + /// + void end(); /// /// Send float value to shader. @@ -181,7 +186,7 @@ namespace JinEngine /// bool compile(const std::string& program); - static GLint mTextureUnit; + //static GLint mTextureUnit; static GLint mAttributeIndex; GLuint mPID; -- cgit v1.1-26-g67d0