Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Szepe <HG1_public@gmx.net>2015-07-03 18:07:31 +0300
committerThomas Szepe <HG1_public@gmx.net>2015-07-03 18:07:31 +0300
commit97b431e42dd2a87eed08423afc42a0ceb7448bff (patch)
tree38eda791d21e7c97dff4c6902e44d7ad9d7697a6 /source/gameengine
parent1ace3272aa4fbde703c975ddec4e1ccf31066da5 (diff)
BGE: Add integer uniforms for 2D Filter
Actually it is only possible to pass float properties to a 2D filter (GLSL fragment shader). This patch allows also to use integer properties for the 2D filter. Reviewers: sybren, agoose77, kupoman, moguri, lordloki, panzergame Reviewed By: lordloki, panzergame Projects: #game_engine Differential Revision: https://developer.blender.org/D1370
Diffstat (limited to 'source/gameengine')
-rw-r--r--source/gameengine/Rasterizer/RAS_2DFilterManager.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
index 908c5979249..4133f2b1461 100644
--- a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
@@ -257,10 +257,24 @@ void RAS_2DFilterManager::StartShaderProgram(int passindex)
for (i=0; i<objProperties; i++)
{
uniformLoc = glGetUniformLocationARB(m_filters[passindex], m_properties[passindex][i]);
- if (uniformLoc != -1)
- {
- float value = ((CValue*)m_gameObjects[passindex])->GetPropertyNumber(m_properties[passindex][i], 0.0);
- glUniform1fARB(uniformLoc,value);
+
+ if (uniformLoc == -1)
+ continue;
+
+ CValue *property = ((CValue *)m_gameObjects[passindex])->GetProperty(m_properties[passindex][i]);
+
+ if (!property)
+ continue;
+
+ switch (property->GetValueType()) {
+ case VALUE_INT_TYPE:
+ glUniform1iARB(uniformLoc, property->GetNumber());
+ break;
+ case VALUE_FLOAT_TYPE:
+ glUniform1fARB(uniformLoc, property->GetNumber());
+ break;
+ default:
+ break;
}
}
}