diff options
author | chai <chaifix@163.com> | 2018-10-09 07:53:47 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-10-09 07:53:47 +0800 |
commit | 4620c40753ad540042a53a35f8d3725dbd6af5c6 (patch) | |
tree | c9d7e5faf9cbd2002ff63f980be5bc7107ae874c /src | |
parent | 96719112134c5afc41f5fe6aeceb71183afcad43 (diff) |
*修改base shader
Diffstat (limited to 'src')
-rw-r--r-- | src/libjin/Graphics/Shader.cpp | 9 | ||||
-rw-r--r-- | src/libjin/Graphics/Shader.h | 7 | ||||
-rw-r--r-- | src/libjin/Graphics/Shaders/base.shader.h | 10 | ||||
-rw-r--r-- | src/libjin/Graphics/Shapes.cpp | 20 |
4 files changed, 22 insertions, 24 deletions
diff --git a/src/libjin/Graphics/Shader.cpp b/src/libjin/Graphics/Shader.cpp index a45fcf0..688fa51 100644 --- a/src/libjin/Graphics/Shader.cpp +++ b/src/libjin/Graphics/Shader.cpp @@ -21,15 +21,8 @@ namespace graphics * SHADER_FORMAT_SIZE * formatShader */ - #include "Shaders/base.shader.h" #include "Shaders/default.shader.h" - const char* Shader::SHADER_PROJECTION_MATRIX = "jin_ProjectionMatrix"; - const char* Shader::SHADER_MODEL_MATRIX = "jin_ModelMatrix"; - const char* Shader::SHADER_MAIN_TEXTURE = "jin_MainTexture"; - const char* Shader::SHADER_VERTEX_COORDS = "jin_VertexCoords"; - const char* Shader::SHADER_TEXTURE_COORDS = "jin_TextureCoords"; - /** * https://stackoverflow.com/questions/27941496/use-sampler-without-passing-through-value * The default value of a sampler variable is 0. From the GLSL 3.30 spec, @@ -140,7 +133,7 @@ namespace graphics { glUseProgram(pid); currentShader = this; - sendInt(Shader::SHADER_MAIN_TEXTURE, DEFAULT_TEXTURE_UNIT); + sendInt(SHADER_MAIN_TEXTURE, DEFAULT_TEXTURE_UNIT); } /*static*/ void Shader::unuse() diff --git a/src/libjin/Graphics/Shader.h b/src/libjin/Graphics/Shader.h index d27d538..dcd0b62 100644 --- a/src/libjin/Graphics/Shader.h +++ b/src/libjin/Graphics/Shader.h @@ -9,6 +9,7 @@ #include "texture.h" #include "canvas.h" #include "../3rdparty/GLee/GLee.h" +#include "Shaders/base.shader.h" namespace jin { @@ -22,12 +23,6 @@ namespace graphics static inline Shader* getCurrentShader() { return currentShader; } static void unuse(); - static const char* SHADER_PROJECTION_MATRIX; - static const char* SHADER_MODEL_MATRIX; - static const char* SHADER_MAIN_TEXTURE; - static const char* SHADER_VERTEX_COORDS; - static const char* SHADER_TEXTURE_COORDS; - virtual ~Shader(); void use(); diff --git a/src/libjin/Graphics/Shaders/base.shader.h b/src/libjin/Graphics/Shaders/base.shader.h index b449008..bf41c4f 100644 --- a/src/libjin/Graphics/Shaders/base.shader.h +++ b/src/libjin/Graphics/Shaders/base.shader.h @@ -1,3 +1,5 @@ +#ifndef LIBJIN_BASE_SHADER_H +#define LIBJIN_BASE_SHADER_H /* * https://stackoverflow.com/questions/10868958/what-does-sampler2d-store * The sampler2D is bound to a texture unit. The glUniform call binds it to texture @@ -102,3 +104,11 @@ void main() static const int BASE_FRAGMENT_SHADER_SIZE = strlen(base_fragment) + BASE_SHARED_SIZE; #define formatFragmentShader(buf, program) sprintf(buf, base_fragment, base_shared, program) + +static const char* SHADER_PROJECTION_MATRIX = "jin_ProjectionMatrix"; +static const char* SHADER_MODEL_MATRIX = "jin_ModelMatrix"; +static const char* SHADER_MAIN_TEXTURE = "jin_MainTexture"; +static const char* SHADER_VERTEX_COORDS = "jin_VertexCoords"; +static const char* SHADER_TEXTURE_COORDS = "jin_TextureCoords"; + +#endif
\ No newline at end of file diff --git a/src/libjin/Graphics/Shapes.cpp b/src/libjin/Graphics/Shapes.cpp index 1befd11..f5aedd4 100644 --- a/src/libjin/Graphics/Shapes.cpp +++ b/src/libjin/Graphics/Shapes.cpp @@ -21,8 +21,8 @@ namespace graphics Shader* shader = Shader::getCurrentShader(); shader->bindVertexPointer(2, GL_FLOAT, 0, verts); gl.ModelMatrix.setIdentity(); - shader->sendMatrix4(Shader::SHADER_MODEL_MATRIX, &gl.ModelMatrix); - shader->sendMatrix4(Shader::SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &gl.ModelMatrix); + shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); glDrawArrays(GL_POINTS, 0, 1); } @@ -32,8 +32,8 @@ namespace graphics Shader* shader = Shader::getCurrentShader(); shader->bindVertexPointer(2, GL_SHORT, 0, p); gl.ModelMatrix.setIdentity(); - shader->sendMatrix4(Shader::SHADER_MODEL_MATRIX, &gl.ModelMatrix); - shader->sendMatrix4(Shader::SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &gl.ModelMatrix); + shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); glDrawArrays(GL_POINTS, 0, n); } @@ -48,8 +48,8 @@ namespace graphics Shader* shader = Shader::getCurrentShader(); shader->bindVertexPointer(2, GL_FLOAT, 0, verts); gl.ModelMatrix.setIdentity(); - shader->sendMatrix4(Shader::SHADER_MODEL_MATRIX, &gl.ModelMatrix); - shader->sendMatrix4(Shader::SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &gl.ModelMatrix); + shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); glDrawArrays(GL_LINES, 0, 2); } @@ -95,8 +95,8 @@ namespace graphics { Shader* shader = Shader::getCurrentShader(); gl.ModelMatrix.setIdentity(); - shader->sendMatrix4(Shader::SHADER_MODEL_MATRIX, &gl.ModelMatrix); - shader->sendMatrix4(Shader::SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &gl.ModelMatrix); + shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); shader->bindVertexPointer(2, GL_FLOAT, 0, p); glDrawArrays(GL_LINE_LOOP, 0, count); @@ -112,8 +112,8 @@ namespace graphics { Shader* shader = Shader::getCurrentShader(); gl.ModelMatrix.setIdentity(); - shader->sendMatrix4(Shader::SHADER_MODEL_MATRIX, &gl.ModelMatrix); - shader->sendMatrix4(Shader::SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); + shader->sendMatrix4(SHADER_MODEL_MATRIX, &gl.ModelMatrix); + shader->sendMatrix4(SHADER_PROJECTION_MATRIX, &gl.ProjectionMatrix); shader->bindVertexPointer(2, GL_FLOAT, 0, p); glDrawArrays(GL_POLYGON, 0, count); |