diff options
Diffstat (limited to 'src/libjin/graphics/shaders/je_shader.cpp')
-rw-r--r-- | src/libjin/graphics/shaders/je_shader.cpp | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/src/libjin/graphics/shaders/je_shader.cpp b/src/libjin/graphics/shaders/je_shader.cpp index 0137978..5668168 100644 --- a/src/libjin/graphics/shaders/je_shader.cpp +++ b/src/libjin/graphics/shaders/je_shader.cpp @@ -3,6 +3,7 @@ #include <iostream> +#include "../../time/je_timer.h" #include "../../filesystem/je_buffer.h" #include "../../utils/je_macros.h" @@ -13,6 +14,7 @@ using namespace std; using namespace JinEngine::Filesystem; +using namespace JinEngine::Time; namespace JinEngine { @@ -71,9 +73,14 @@ namespace JinEngine glDeleteShader(mPID); } - void Shader::setDefaultUniform() + Shader& Shader::prepare() { + // Send uniforms. sendInt(SHADER_MAIN_TEXTURE, DEFAULT_TEXTURE_UNIT); + sendVec2(SHADER_TIME, Time::getSecond(), Time::getDeltaTime()); + // Reset attribute index. + mAttributeIndex = 0; + return *this; } bool Shader::compile(const string& program) @@ -86,7 +93,7 @@ namespace JinEngine return false; } - #define glsl(SHADER_MODE, SHADER, SRC) \ + #define glsl(SHADER_MODE, SHADER, SRC) \ do{ \ const GLchar* src = SRC.c_str(); \ glShaderSource(SHADER, 1, &src, NULL); \ @@ -103,6 +110,7 @@ namespace JinEngine // Compile fragment shader. GLuint fid = glCreateShader(GL_FRAGMENT_SHADER); glsl(GL_FRAGMENT_SHADER, fid, fragment_shader); + #undef glsl // Create OpenGL shader program. mPID = glCreateProgram(); @@ -269,18 +277,6 @@ namespace JinEngine return *this; } - Shader& Shader::beginUploadAttributes() - { - mAttributeIndex = 0; - return *this; - } - - Shader& Shader::endUploadAttributes() - { - mAttributeIndex = 0; - return *this; - } - Shader& Shader::uploadAttribute(const String& name, int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized) { GLint loc = glGetAttribLocation(mPID, name); |