diff options
author | chai <chaifix@163.com> | 2019-01-06 23:33:08 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-01-06 23:33:08 +0800 |
commit | da056982e50bdd9cb9f944691cc88ca98b053b77 (patch) | |
tree | 490842e50d98f48affd38ff23f5bb7fda1937a7f /src/libjin/graphics/shaders/je_shader.cpp | |
parent | c446e8186afa31c8d346383c0db8b8070fa563cd (diff) |
*misc
Diffstat (limited to 'src/libjin/graphics/shaders/je_shader.cpp')
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
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) |