]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
static setUniformLocation
authorPeter Schaefer <schaeferpm@gmail.com>
Wed, 13 Apr 2016 16:01:42 +0000 (18:01 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Wed, 13 Apr 2016 16:01:42 +0000 (18:01 +0200)
removed plane&skybox VS

12 files changed:
CGUE2015_Weave.sln
Weave/Graphix/Model/IMesh.cpp
Weave/Graphix/Model/Model.cpp
Weave/Graphix/Model/Plane.cpp
Weave/Graphix/Model/SkyBox.cpp
Weave/Graphix/Shader.cpp
Weave/Graphix/Shader.h
Weave/Graphix/Texture.cpp
Weave/Graphix/ViewPort.cpp
shader/basic_VS.hlsl
shader/plane_VS.hlsl [deleted file]
shader/skybox_VS.hlsl [deleted file]

index 04a457220a402cbdbdbca9aaea2e63657b817dad..014bd360d6e4fe72b107f7d5243f04d5f22d9f7f 100644 (file)
@@ -14,8 +14,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "shader", "shader", "{75179E
                shader\blur_FS.hlsl = shader\blur_FS.hlsl
                shader\lightingTexture_FS.hlsl = shader\lightingTexture_FS.hlsl
                shader\perspective_VS.hlsl = shader\perspective_VS.hlsl
-               shader\plane_VS.hlsl = shader\plane_VS.hlsl
-               shader\skybox_VS.hlsl = shader\skybox_VS.hlsl
                shader\skyplane_color_FS.hlsl = shader\skyplane_color_FS.hlsl
                shader\skyplane_FS.hlsl = shader\skyplane_FS.hlsl
                shader\skyplane_VS.hlsl = shader\skyplane_VS.hlsl
index 81c0cec7467a6ee69690b395c5201d706667cc1b..a0f1138a05c8c7af4dfe2d7e1973c2dc5e025864 100644 (file)
@@ -50,22 +50,6 @@ IMesh::~IMesh()
 {\r
 }\r
 \r
-//void IMesh::useModelMat(const mat4& _model, Shader* _shader) const\r
-//{\r
-//     //      Model::useModelMat(_model, _shader);\r
-//     //      Model::useModelMat(_model * modelMat, _shader);\r
-//     int tmp = _shader->getUniformLocation("uModel");\r
-//     if (tmp >= 0)\r
-//             glUniformMatrix4fv(tmp, 1, GL_FALSE, value_ptr(_model* modelMat));\r
-//}\r
-\r
-\r
-//void IMesh::drawBBox(const mat4& _modelMat, const vec4& _color) const\r
-//{\r
-//     Model::drawBBox(_modelMat, _color);\r
-//}\r
-\r
-\r
 string IMesh::type2str() const\r
 {\r
        return "IMesh";\r
index 7afe8de880316715d340f36bcf3385a5edfae6aa..a7bce9771047aac586d5363fbb73bc11271e2f1d 100644 (file)
@@ -156,9 +156,9 @@ void Model::drawBBox(const mat4& _modelMat, const vec4& _color) const
 {\r
        Graphix::getGlError();\r
        Shader::gBasic()->useShader();\r
-       int tmp = Shader::gBasic()->getUniformLocation("uFragmentColor");\r
-       if (tmp >= 0)\r
-               glUniform4fv(tmp, 1, value_ptr(_color));\r
+\r
+       Shader::setUniformLocation("uFragmentColor", _color);\r
+\r
        Graphix::getGlError();\r
 \r
        btVector3 minB, maxB;\r
@@ -243,9 +243,7 @@ void Model::useModel(const mat4& _modelMat) const
 \r
 \r
        /* use ModelMAT*/\r
-       int tmp = Shader::gActive()->getUniformLocation("uModel");\r
-       if (tmp >= 0)\r
-               glUniformMatrix4fv(tmp, 1, GL_FALSE, value_ptr(_modelMat));\r
+       Shader::setUniformLocation("uModel", _modelMat);\r
 \r
 }\r
 \r
index 454a48d8cec8d7937d9da5b35c6128e82c9c2d91..597cde003cc673e53632f63083d0928a4d704757 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "GL\glew.h"
 #include "../../GLM.h"
+#include "../Shader.h"
 
 
 Plane::Plane()
@@ -28,6 +29,10 @@ Plane::~Plane()
 
 void Plane::drawModel() const
 {
+       useModel(mat4(1.f));
+
+       Shader::setUniformLocation("uPlain", 1);
+
        glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
        glBindVertexArray(0);
 }
index 4ee0f1c7e14e1f19254a69bd5a8918cb02ed8517..fb963af3ed896bf5406948da61ccb2731e35f0a6 100644 (file)
@@ -38,10 +38,7 @@ void SkyBox::drawModel(const mat4& _modelMat) const
 \r
        useModel(_modelMat);\r
 \r
-       GLboolean far = true;\r
-       int tmp = Shader::gBasicTexture()->getUniformLocation("uFar");\r
-       if (tmp >= 0)\r
-               glUniform1i(tmp, far);\r
+       Shader::setUniformLocation("uFar", 1);\r
 \r
        Model::drawModel();\r
        //glEnable(GL_DEPTH_TEST);\r
index 0ba0ffa817e8b51663d3956c07bdd6df50101763..285eac6a557c6076b0646272d7f7471f9f492840 100644 (file)
@@ -49,6 +49,33 @@ int Shader::getUniformLocation(const string& name) const
        return ind;
 }
 
+int Shader::setUniformLocation(const string& _name, const mat4& _mat)
+{
+       int tmp = glGetUniformLocation(*shActive, _name.c_str());
+       if (tmp >= 0)
+               glUniformMatrix4fv(tmp, 1, GL_FALSE, value_ptr(_mat));
+       return tmp;
+}
+
+int Shader::setUniformLocation(const string& _name, const vec4& _vec)
+{
+       int tmp = glGetUniformLocation(*shActive, _name.c_str());
+       if (tmp >= 0)
+               glUniform4fv(tmp, 1, value_ptr(_vec));
+       return tmp;
+}
+
+int Shader::setUniformLocation(const string& _name, const int& _i)
+{
+       int tmp = glGetUniformLocation(*shActive, _name.c_str());
+       if (tmp >= 0)
+               glUniform1i(tmp, _i);
+       return tmp;
+}
+
+
+
+
 GLuint Shader::getHandle() const
 {
        return handle;
index 2128e12b8b95517a6a63af4186aa973e632234d8..1473e558b70a451a39b8a7a72389af45450986ff 100644 (file)
@@ -2,6 +2,7 @@
 
 #include <fstream>
 #include <unordered_map>
+#include "../GLM.h"
 
 using std::string;
 
@@ -20,6 +21,11 @@ public:
        uint getHandle() const;
        operator uint() const;
 
+       //static int setAttribLocation(const string& name) const;
+       static int setUniformLocation(const string& name, const mat4& mat);
+       static int setUniformLocation(const string& name, const vec4& vec);
+       static int setUniformLocation(const string& name, const int& i);
+
        static const Shader * gActive();
        static const Shader * gBasic();
        static const Shader * gBasicTexture();
index 0acf7298b2cfad8629f3a2ccd739231fa70d9e1b..98529c58d66dac367a808f466548b404b0b24491 100644 (file)
@@ -141,21 +141,14 @@ void Texture::useTexture() const
 {
 
        /* bind Texture*/
-       auto tmp = Shader::gActive()->getUniformLocation("uColorTexture");
-       if (tmp < 0) {
-               return;
-       }
-
        int unit = 0;
        glActiveTexture(GL_TEXTURE0 + unit);
        glBindTexture(TEXTURE_TYPE, handle);
-       glUniform1i(tmp, unit);
+
+       Shader::setUniformLocation("uColorTexture", unit);
 
        /* bind Material*/
-       int tmp2 = Shader::gActive()->getUniformLocation("material");
-       if (tmp2 >= 0)
-               glUniform4fv(tmp2, 1, value_ptr(material));
-       
+       Shader::setUniformLocation("material", material);
 }
 
 Texture::operator string() const
index 8ef047e9b1df7b8c2f4bdb90ba872894bbe4fc8a..058ca3162337af46ed074d1ec88e2aada0242d20 100644 (file)
@@ -38,36 +38,19 @@ void ViewPort::useViewPort() const
 
 void ViewPort::bindView(const Shader* shader) const{
        shader->useShader();
-       int tmp = -1;
 
-       tmp = shader->getUniformLocation("uProjection");
-       if (tmp >= 0)
-               glUniformMatrix4fv(tmp, 1, false, value_ptr(projection));
+       Shader::setUniformLocation("uProjection", projection);
+       Shader::setUniformLocation("uInvProjection", glm::inverse(projection));
+       Shader::setUniformLocation("uView", view);
 
-       tmp = shader->getUniformLocation("uInvProjection");
-       if (tmp >= 0)
-               glUniformMatrix4fv(tmp, 1, false, value_ptr(glm::inverse(projection)));
-
-       tmp = shader->getUniformLocation("uView");
-       if (tmp >= 0)
-               glUniformMatrix4fv(tmp, 1, false, value_ptr(view));
 }
 
 void ViewPort::bindView(const Shader* shader, vec3 pos) const{
        shader->useShader();
-       int tmp = -1;
-
-       tmp = shader->getUniformLocation("uProjection");
-       if (tmp>=0)
-               glUniformMatrix4fv(tmp, 1, false, value_ptr(projection));
-
-       tmp = shader->getUniformLocation("uInvProjection");
-       if (tmp >= 0)
-               glUniformMatrix4fv(tmp, 1, false, value_ptr(glm::inverse(projection)));
 
-       tmp = shader->getUniformLocation("uView");
-       if (tmp >= 0)
-               glUniformMatrix4fv(tmp, 1, false, value_ptr(translate(view,-pos)));
+       Shader::setUniformLocation("uProjection", projection);
+       Shader::setUniformLocation("uInvProjection", glm::inverse(projection));
+       Shader::setUniformLocation("uView", translate(view, -pos));
 }
 
 void ViewPort::rotateView(float angle_x, float angle_y){
index 56a8a28441b7f605cdbf0fa23576264d727d198d..4b0bf86b79f1dbb32d0e0982ee569f2dd96ef3da 100644 (file)
@@ -2,7 +2,7 @@
 #version 330 core
 
 in vec3 aPosition;
-in vec2 aUVs;
+in vec2 aUV;
 
 uniform mat4 uProjection;
 uniform mat4 uModel = mat4(1.f);
@@ -16,14 +16,14 @@ out vec2 fUVs;
 void main()
 {
        vec4 position;
-       fUVs = aUVs;
+       fUVs = aUV;
 
        if(uPlain)
                position = vec4(aPosition, 1.f);
        else
                position = uProjection * uView * uModel * vec4(aPosition, 1.f);
 
-       if (uFar)
+       if(uFar)
                gl_Position = position.xyww;
        else
                gl_Position = position;
diff --git a/shader/plane_VS.hlsl b/shader/plane_VS.hlsl
deleted file mode 100644 (file)
index 845903c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-//Vertex Shader
-#version 330 core
-in vec3 aPosition;
-in vec2 aUVs;
-
-out vec2 fUVs;
-
-void main()
-{
-       fUVs = aUVs;
-       gl_Position = vec4(aPosition, 1.0f);
-}
\ No newline at end of file
diff --git a/shader/skybox_VS.hlsl b/shader/skybox_VS.hlsl
deleted file mode 100644 (file)
index 5afc37f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-//Vertex Shader
-#version 330
-
-in vec3 aNormal, aPosition;
-in vec2 aUV;
-
-out vec2 fUVs;
-
-uniform mat4 uProjection, uView, uModel=mat4(1.f);
-
-void main()
-{
-       fUVs = aUV;
-       gl_Position = (uProjection * uView * uModel * vec4(aPosition, 1.f)).xyww;
-}
\ No newline at end of file