aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/graphics/shaders/je_shader.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-12-21 19:02:22 +0800
committerchai <chaifix@163.com>2018-12-21 19:02:22 +0800
commit84a663cb70b057a5ce0c9ff1910bc2eb9c0ba653 (patch)
tree625d2a7804c6f29aac367098972f96a47fcb7ae3 /src/libjin/graphics/shaders/je_shader.cpp
parent90cd4ff40e647e4150638e69f80ac587ceff1631 (diff)
+2d mesh
Diffstat (limited to 'src/libjin/graphics/shaders/je_shader.cpp')
-rw-r--r--src/libjin/graphics/shaders/je_shader.cpp33
1 files changed, 22 insertions, 11 deletions
diff --git a/src/libjin/graphics/shaders/je_shader.cpp b/src/libjin/graphics/shaders/je_shader.cpp
index f752e99..16627d5 100644
--- a/src/libjin/graphics/shaders/je_shader.cpp
+++ b/src/libjin/graphics/shaders/je_shader.cpp
@@ -240,25 +240,36 @@ namespace JinEngine
glUniformMatrix4fv(loc, 1, GL_FALSE, mat4->getElements());
}
- void Shader::uploadVertices(int n, GLenum type, GLsizei stride, const GLvoid * pointers)
+ void Shader::uploadVertices(int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized)
{
- GLint loc = glGetAttribLocation(mPID, SHADER_VERTEX_COORDS);
- glEnableVertexAttribArray(0);
- glVertexAttribPointer(loc, n, type, GL_FALSE, stride, pointers);
+ uploadAttribute(SHADER_VERTEX_COORDS, n, type, stride, pointers, normalized);
}
- void Shader::uploadUV(int n, GLenum type, GLsizei stride, const GLvoid * pointers)
+ void Shader::uploadUV(int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized)
{
- GLint loc = glGetAttribLocation(mPID, SHADER_TEXTURE_COORDS);
- glEnableVertexAttribArray(1);
- glVertexAttribPointer(loc, n, type, GL_FALSE, stride, pointers);
+ uploadAttribute(SHADER_TEXTURE_COORDS, n, type, stride, pointers, normalized);
}
- void Shader::uploadAttribute(const String& name, int n, GLenum type, GLsizei stride, const GLvoid * pointers)
+ void Shader::uploadColor(int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized)
+ {
+ uploadAttribute(SHADER_VERTEX_COLOR, n, type, stride, pointers, normalized);
+ }
+
+ void Shader::beginUploadAttributes()
+ {
+ mAttributeIndex = 0;
+ }
+
+ void Shader::endUploadAttributes()
+ {
+ mAttributeIndex = 0;
+ }
+
+ void Shader::uploadAttribute(const String& name, int n, GLenum type, GLsizei stride, const GLvoid * pointers, GLboolean normalized)
{
GLint loc = glGetAttribLocation(mPID, name);
- glEnableVertexAttribArray(1);
- glVertexAttribPointer(loc, n, type, GL_FALSE, stride, pointers);
+ glEnableVertexAttribArray(mAttributeIndex++);
+ glVertexAttribPointer(loc, n, type, normalized, stride, pointers);
}
} // namespace Shaders