diff options
author | chai <chaifix@163.com> | 2019-04-09 09:02:22 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-04-09 09:02:22 +0800 |
commit | 200f710983fd54b23437cb78d5a03c90b5a47523 (patch) | |
tree | bd4c4e3fc7fc631ca58b50deadf34cb39e8704cf /source/modules/asura-core/graphics/shader.cpp | |
parent | 4ea4bbfcb03091cb987dc151d41980ec16f3d18d (diff) |
*misc
Diffstat (limited to 'source/modules/asura-core/graphics/shader.cpp')
-rw-r--r-- | source/modules/asura-core/graphics/shader.cpp | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/source/modules/asura-core/graphics/shader.cpp b/source/modules/asura-core/graphics/shader.cpp index 662ce5e..0d92c60 100644 --- a/source/modules/asura-core/graphics/shader.cpp +++ b/source/modules/asura-core/graphics/shader.cpp @@ -15,10 +15,20 @@ namespace AsuraEngine /// static int _texture_unit = 0; - const char* Shader::ASLSemantics[] = { - "asura_model_matrix", // BUILTIN_UNIFORM_MODEL_MATRIX - "asura_view_matrix", // BUILTIN_UNIFORM_VIEW_MATRIX - "asura_projection_matrix", // BUILTIN_UNIFORM_PROJECTION_MATRIX + const char* Shader::SemanticsName[] = { + // uniforms + "asura_model_matrix", + "asura_view_matrix", + "asura_projection_matrix", + // attributes + "asura_position", + "asura_tangent", + "asura_normal", + "asura_texcoord0", + "asura_texcoord1", + "asura_texcoord2", + "asura_texcoord3", + "asura_color" }; Shader::Shader() @@ -98,9 +108,18 @@ namespace AsuraEngine } // mvplocation - mMVP[MATRIX_MODE_MODEL] = glGetUniformLocation(mProgram, ASLSemantics[BUILTIN_UNIFORM_MODEL_MATRIX]); - mMVP[MATRIX_MODE_VIEW] = glGetUniformLocation(mProgram, ASLSemantics[BUILTIN_UNIFORM_VIEW_MATRIX]); - mMVP[MATRIX_MODE_PROJECTION] = glGetUniformLocation(mProgram, ASLSemantics[BUILTIN_UNIFORM_PROJECTION_MATRIX]); + mMVP[MATRIX_MODE_MODEL] = glGetUniformLocation(mProgram, SemanticsName[SEMANTICS_UNIFORM_MODEL_MATRIX]); + mMVP[MATRIX_MODE_VIEW] = glGetUniformLocation(mProgram, SemanticsName[SEMANTICS_UNIFORM_VIEW_MATRIX]); + mMVP[MATRIX_MODE_PROJECTION] = glGetUniformLocation(mProgram, SemanticsName[SEMANTICS_UNIFORM_PROJECTION_MATRIX]); + + mPosition = glGetAttribLocation(mProgram, SemanticsName[SEMANTICS_ATTRIBUTE_POSITION]); + mTangent = glGetAttribLocation(mProgram, SemanticsName[SEMANTICS_ATTRIBUTE_TANGENT]); + mNormal = glGetAttribLocation(mProgram, SemanticsName[SEMANTICS_ATTRIBUTE_NORMAL]); + mTexcoord0 = glGetAttribLocation(mProgram, SemanticsName[SEMANTICS_ATTRIBUTE_TEXCOORD0]); + mTexcoord1 = glGetAttribLocation(mProgram, SemanticsName[SEMANTICS_ATTRIBUTE_TEXCOORD1]); + mTexcoord2 = glGetAttribLocation(mProgram, SemanticsName[SEMANTICS_ATTRIBUTE_TEXCOORD2]); + mTexcoord3 = glGetAttribLocation(mProgram, SemanticsName[SEMANTICS_ATTRIBUTE_TEXCOORD3]); + mColor = glGetAttribLocation(mProgram, SemanticsName[SEMANTICS_ATTRIBUTE_COLOR]); return true; } @@ -115,13 +134,13 @@ namespace AsuraEngine { _texture_unit = 0; } - +/* int Shader::GetAttributeLocation(const std::string& name) { GLint loc = glGetAttribLocation(mProgram, name.c_str()); return loc; } - +*/ uint Shader::GetUniformLocation(const std::string& uniform) { GLint loc = glGetUniformLocation(mProgram, uniform.c_str()); |