[Bf-blender-cvs] [97b431e] master: BGE: Add integer uniforms for 2D Filter
Thomas Szepe
noreply at git.blender.org
Fri Jul 3 17:44:45 CEST 2015
Commit: 97b431e42dd2a87eed08423afc42a0ceb7448bff
Author: Thomas Szepe
Date: Fri Jul 3 17:07:31 2015 +0200
Branches: master
https://developer.blender.org/rB97b431e42dd2a87eed08423afc42a0ceb7448bff
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
===================================================================
M source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
===================================================================
diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
index 908c597..4133f2b 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;
}
}
}
More information about the Bf-blender-cvs
mailing list