aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/graphics/shaders/je_shader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/graphics/shaders/je_shader.cpp')
-rw-r--r--src/libjin/graphics/shaders/je_shader.cpp24
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);