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
{\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
{\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
\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
#include "GL\glew.h"
#include "../../GLM.h"
+#include "../Shader.h"
Plane::Plane()
void Plane::drawModel() const
{
+ useModel(mat4(1.f));
+
+ Shader::setUniformLocation("uPlain", 1);
+
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glBindVertexArray(0);
}
\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
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;
#include <fstream>
#include <unordered_map>
+#include "../GLM.h"
using std::string;
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();
{
/* 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
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){
#version 330 core
in vec3 aPosition;
-in vec2 aUVs;
+in vec2 aUV;
uniform mat4 uProjection;
uniform mat4 uModel = mat4(1.f);
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;
+++ /dev/null
-//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
+++ /dev/null
-//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