From c446e8186afa31c8d346383c0db8b8070fa563cd Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 4 Jan 2019 22:54:59 +0800 Subject: =?UTF-8?q?*=E7=BC=96=E8=AF=91jsl=20shader=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=B6=E4=BD=BF=E7=94=A8error=20shader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/graphics/shaders/je_shader.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (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 0eb3631..059c411 100644 --- a/src/libjin/graphics/shaders/je_shader.cpp +++ b/src/libjin/graphics/shaders/je_shader.cpp @@ -5,6 +5,7 @@ #include "../../time/je_timer.h" #include "../../filesystem/je_buffer.h" +#include "../../utils/je_log.h" #include "../../utils/je_macros.h" #include "../je_gl.h" @@ -65,7 +66,8 @@ namespace JinEngine { if (!compile(program)) { - throw 0; + jin_log_error("Compile jsl shader failed."); + throw Exception("Compile jsl shader failed"); } } -- cgit v1.1-26-g67d0 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