From 84a663cb70b057a5ce0c9ff1910bc2eb9c0ba653 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 21 Dec 2018 19:02:22 +0800 Subject: +2d mesh --- src/libjin/graphics/shaders/je_shader.cpp | 33 ++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'src/libjin/graphics/shaders/je_shader.cpp') 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 -- cgit v1.1-26-g67d0