merging trunk 19093:19274
[blender.git] / source / gameengine / GameLogic / SCA_2DFilterActuator.cpp
index 56249bb52ec3a4c0c47c3418ecfb5ce70a0a9a83..7bf051f2b5cb559a396a05471bbf2da02f4baa02 100644 (file)
@@ -7,7 +7,6 @@
 #endif
 #include <iostream>
 
-
 SCA_2DFilterActuator::~SCA_2DFilterActuator()
 {
 }
@@ -18,19 +17,22 @@ SCA_2DFilterActuator::SCA_2DFilterActuator(
                short flag,
                float float_arg,
                int int_arg,
-               short texture_flag,
                RAS_IRasterizer* rasterizer,
                RAS_IRenderTools* rendertools,
         PyTypeObject* T)
     : SCA_IActuator(gameobj, T),
      m_type(type),
         m_flag(flag),
-        m_int_arg(int_arg),
-        m_texture_flag(texture_flag),
         m_float_arg(float_arg),
+        m_int_arg(int_arg),
         m_rasterizer(rasterizer),
         m_rendertools(rendertools)
 {
+       m_gameObj = NULL;
+       if(gameobj){
+               m_propNames = gameobj->GetPropertyNames();
+               m_gameObj = gameobj;
+       }
 }
 
 void SCA_2DFilterActuator::SetShaderText(STR_String text)
@@ -52,8 +54,6 @@ CValue* SCA_2DFilterActuator::GetReplica()
 
 bool SCA_2DFilterActuator::Update()
 {
-       bool result = false;
-
        bool bNegativeEvent = IsNegativeEvent();
        RemoveAllEvents();
 
@@ -64,19 +64,18 @@ bool SCA_2DFilterActuator::Update()
        if( m_type == RAS_2DFilterManager::RAS_2DFILTER_MOTIONBLUR )
        {
                if(!m_flag)
-               {
                        m_rasterizer->EnableMotionBlur(m_float_arg);
-               }
                else
-               {
                        m_rasterizer->DisableMotionBlur();
-               }
+
+               return false;
        }
        else if(m_type < RAS_2DFilterManager::RAS_2DFILTER_NUMBER_OF_FILTERS)
        {
-               m_rendertools->Update2DFilter(m_type, m_int_arg, m_shaderText, m_texture_flag);
+               m_rendertools->Update2DFilter(m_propNames, m_gameObj, m_type, m_int_arg, m_shaderText);
        }
-    return true;
+       // once the filter is in place, no need to update it again => disable the actuator
+    return false;
 }
 
 
@@ -114,7 +113,10 @@ PyMethodDef SCA_2DFilterActuator::Methods[] = {
     {NULL,NULL}
 };
 
+PyAttributeDef SCA_2DFilterActuator::Attributes[] = {
+       { NULL }        //Sentinel
+};
 
-PyObject* SCA_2DFilterActuator::_getattr(const STR_String& attr) {
+PyObject* SCA_2DFilterActuator::_getattr(const char *attr) {
     _getattr_up(SCA_IActuator);
 }