aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-10-09 07:53:47 +0800
committerchai <chaifix@163.com>2018-10-09 07:53:47 +0800
commit4620c40753ad540042a53a35f8d3725dbd6af5c6 (patch)
treec9d7e5faf9cbd2002ff63f980be5bc7107ae874c /src
parent96719112134c5afc41f5fe6aeceb71183afcad43 (diff)
*修改base shader
Diffstat (limited to 'src')
-rw-r--r--src/libjin/Graphics/Shader.cpp9
-rw-r--r--src/libjin/Graphics/Shader.h7
-rw-r--r--src/libjin/Graphics/Shaders/base.shader.h10
-rw-r--r--src/libjin/Graphics/Shapes.cpp20
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);