Revision: 15546
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15546
Author:   zaghaghi
Date:     2008-07-12 12:21:37 +0200 (Sat, 12 Jul 2008)

Log Message:
-----------
improvement of 2d-filter custom shader, 
some bugfixes,
now you can use depth buffer and luminance buffer without any settings,
also you can use object's properties in a shader

Modified Paths:
--------------
    trunk/blender/source/blender/makesdna/DNA_actuator_types.h
    trunk/blender/source/blender/src/buttons_logic.c
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
    trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp
    trunk/blender/source/gameengine/Expressions/Value.cpp
    trunk/blender/source/gameengine/Expressions/Value.h
    trunk/blender/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp
    trunk/blender/source/gameengine/GameLogic/SCA_2DFilterActuator.h
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
    trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.h
    trunk/blender/source/gameengine/Rasterizer/CMakeLists.txt
    trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_2DFilterManager.h
    trunk/blender/source/gameengine/Rasterizer/RAS_IRenderTools.h
    trunk/blender/source/gameengine/Rasterizer/SConscript

Modified: trunk/blender/source/blender/makesdna/DNA_actuator_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_actuator_types.h  2008-07-12 
06:49:33 UTC (rev 15545)
+++ trunk/blender/source/blender/makesdna/DNA_actuator_types.h  2008-07-12 
10:21:37 UTC (rev 15546)
@@ -196,9 +196,7 @@
 } bVisibilityActuator;
 
 typedef struct bTwoDFilterActuator{
-       char pad[2];
-       /* bitwise flag for enabling or disabling depth(bit 0) and 
luminance(bit 1) */
-       short texture_flag;
+       char pad[4];
        /* Tells what type of 2D Filter */
        short type;
        /* (flag == 0) means 2D filter is activate and

Modified: trunk/blender/source/blender/src/buttons_logic.c
===================================================================
--- trunk/blender/source/blender/src/buttons_logic.c    2008-07-12 06:49:33 UTC 
(rev 15545)
+++ trunk/blender/source/blender/src/buttons_logic.c    2008-07-12 10:21:37 UTC 
(rev 15546)
@@ -2536,11 +2536,7 @@
                                break;
                        case ACT_2DFILTER_CUSTOMFILTER:
                                uiDefButI(block, NUM, B_REDR, "Pass Number:", 
xco+30,yco-44,width-60,19,&tdfa->int_arg,0.0,MAX_RENDER_PASS-1,0.0,0.0,"Set 
motion blur value");
-                               uiDefIDPoinBut(block, test_scriptpoin_but, 
ID_SCRIPT, 1, "Script: ", xco+30,yco-64,width/2-32, 19, &tdfa->text, "");
-                               uiDefButS(block, TOG|BIT|0, B_REDR, "Depth", 
xco+width/2+2 , yco - 64, width/4-16 , 19,
-                                               &tdfa->texture_flag, 0.0, 0.0, 
0, 0, "Includes Depth Texture (bgl_DepthTexture)");
-                               uiDefButS(block, TOG|BIT|1, B_REDR, 
"Luminance", xco+3*width/4-14 , yco - 64, width/4-16 , 19,
-                                               &tdfa->texture_flag, 0.0, 0.0, 
0, 0, "Includes Luminance Texture (bgl_LuminanceTexture)");
+                               uiDefIDPoinBut(block, test_scriptpoin_but, 
ID_SCRIPT, 1, "Script: ", xco+30,yco-64,width-60, 19, &tdfa->text, "");
                                break;
                }
                

Modified: 
trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp   
2008-07-12 06:49:33 UTC (rev 15545)
+++ trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp   
2008-07-12 10:21:37 UTC (rev 15546)
@@ -483,9 +483,9 @@
        }
 }
 
-void 
KX_BlenderRenderTools::Update2DFilter(RAS_2DFilterManager::RAS_2DFILTER_MODE 
filtermode, int pass, STR_String& text, short texture_flag)
+void KX_BlenderRenderTools::Update2DFilter(vector<STR_String>& propNames, 
void* gameObj, RAS_2DFilterManager::RAS_2DFILTER_MODE filtermode, int pass, 
STR_String& text)
 {
-       m_filtermanager.EnableFilter(filtermode, pass, text, texture_flag);
+       m_filtermanager.EnableFilter(propNames, gameObj, filtermode, pass, 
text);
 }
 
 void KX_BlenderRenderTools::Render2DFilters(RAS_ICanvas* canvas)

Modified: 
trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h     
2008-07-12 06:49:33 UTC (rev 15545)
+++ trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h     
2008-07-12 10:21:37 UTC (rev 15546)
@@ -101,7 +101,7 @@
 
        virtual void MotionBlur(RAS_IRasterizer* rasterizer);
 
-       virtual void Update2DFilter(RAS_2DFilterManager::RAS_2DFILTER_MODE 
filtermode, int pass, STR_String& text, short texture_flag);
+       virtual void Update2DFilter(vector<STR_String>& propNames, void* 
gameObj, RAS_2DFilterManager::RAS_2DFILTER_MODE filtermode, int pass, 
STR_String& text);
 
        virtual void Render2DFilters(RAS_ICanvas* canvas);
 

Modified: trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp   
2008-07-12 06:49:33 UTC (rev 15545)
+++ trunk/blender/source/gameengine/Converter/KX_ConvertActuators.cpp   
2008-07-12 10:21:37 UTC (rev 15546)
@@ -1000,7 +1000,7 @@
                        }
             
                        tmp = new SCA_2DFilterActuator(gameobj, filtermode, 
_2dfilter->flag,
-                               
_2dfilter->float_arg,_2dfilter->int_arg,_2dfilter->texture_flag,ketsjiEngine->GetRasterizer(),rendertools);
+                               
_2dfilter->float_arg,_2dfilter->int_arg,ketsjiEngine->GetRasterizer(),rendertools);
 
                        if (_2dfilter->text)
                        {

Modified: trunk/blender/source/gameengine/Expressions/Value.cpp
===================================================================
--- trunk/blender/source/gameengine/Expressions/Value.cpp       2008-07-12 
06:49:33 UTC (rev 15545)
+++ trunk/blender/source/gameengine/Expressions/Value.cpp       2008-07-12 
10:21:37 UTC (rev 15546)
@@ -405,8 +405,21 @@
        return false;
 }
 
+//
+// Get Property Names
+//
+vector<STR_String> CValue::GetPropertyNames()
+{
+       vector<STR_String> result;
+       if(!m_pNamedPropertyArray) return result;
+       for ( std::map<STR_String,CValue*>::iterator it = 
m_pNamedPropertyArray->begin();
+       !(it == m_pNamedPropertyArray->end());it++)
+       {
+               result.push_back((*it).first);
+       }
+       return result;
+}
 
-
 //
 // Clear all properties
 //

Modified: trunk/blender/source/gameengine/Expressions/Value.h
===================================================================
--- trunk/blender/source/gameengine/Expressions/Value.h 2008-07-12 06:49:33 UTC 
(rev 15545)
+++ trunk/blender/source/gameengine/Expressions/Value.h 2008-07-12 10:21:37 UTC 
(rev 15546)
@@ -286,6 +286,7 @@
        STR_String                      GetPropertyText(const STR_String & 
inName,const STR_String& deftext="");                                           
     // Get text description of property with name <inName>, returns an empty 
string if there is no property named <inName>
        float                           GetPropertyNumber(const STR_String& 
inName,float defnumber);
        virtual bool            RemoveProperty(const STR_String & inName);      
                                        // Remove the property named <inName>, 
returns true if the property was succesfully removed, false if property was not 
found or could not be removed
+       virtual vector<STR_String>      GetPropertyNames();
        virtual void            ClearProperties();                              
                                                // Clear all properties
 
        virtual void            SetPropertiesModified(bool inModified);         
                        // Set all properties' modified flag to <inModified>

Modified: trunk/blender/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp  
2008-07-12 06:49:33 UTC (rev 15545)
+++ trunk/blender/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp  
2008-07-12 10:21:37 UTC (rev 15546)
@@ -7,7 +7,6 @@
 #endif
 #include <iostream>
 
-
 SCA_2DFilterActuator::~SCA_2DFilterActuator()
 {
 }
@@ -18,7 +17,6 @@
                short flag,
                float float_arg,
                int int_arg,
-               short texture_flag,
                RAS_IRasterizer* rasterizer,
                RAS_IRenderTools* rendertools,
         PyTypeObject* T)
@@ -26,11 +24,15 @@
      m_type(type),
         m_flag(flag),
         m_int_arg(int_arg),
-        m_texture_flag(texture_flag),
         m_float_arg(float_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 @@
 
 bool SCA_2DFilterActuator::Update()
 {
-       bool result = false;
-
        bool bNegativeEvent = IsNegativeEvent();
        RemoveAllEvents();
 
@@ -74,7 +74,7 @@
        }
        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;
 }

Modified: trunk/blender/source/gameengine/GameLogic/SCA_2DFilterActuator.h
===================================================================
--- trunk/blender/source/gameengine/GameLogic/SCA_2DFilterActuator.h    
2008-07-12 06:49:33 UTC (rev 15545)
+++ trunk/blender/source/gameengine/GameLogic/SCA_2DFilterActuator.h    
2008-07-12 10:21:37 UTC (rev 15546)
@@ -5,18 +5,17 @@
 #include "RAS_IRenderTools.h"
 #include "SCA_IActuator.h"
 
-
 class SCA_2DFilterActuator : public SCA_IActuator
 {
     Py_Header;
 
 private:
-       
+       vector<STR_String> m_propNames;
+       void * m_gameObj;
        RAS_2DFilterManager::RAS_2DFILTER_MODE m_type;
        short m_flag;
        float m_float_arg;
        int   m_int_arg;
-       short m_texture_flag;
        STR_String      m_shaderText;
        RAS_IRasterizer* m_rasterizer;
        RAS_IRenderTools* m_rendertools;
@@ -29,7 +28,6 @@
                short flag,
                float float_arg,
                int int_arg,
-               short texture_flag,
                RAS_IRasterizer* rasterizer,
                RAS_IRenderTools* rendertools,
         PyTypeObject* T=&Type

Modified: trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp       
2008-07-12 06:49:33 UTC (rev 15545)
+++ trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp       
2008-07-12 10:21:37 UTC (rev 15546)
@@ -602,9 +602,9 @@
        }
 }
 
-void GPC_RenderTools::Update2DFilter(RAS_2DFilterManager::RAS_2DFILTER_MODE 
filtermode, int pass, STR_String& text, short texture_flag)
+void GPC_RenderTools::Update2DFilter(vector<STR_String>& propNames, void* 
gameObj, RAS_2DFilterManager::RAS_2DFILTER_MODE filtermode, int pass, 
STR_String& text)
 {
-       m_filtermanager.EnableFilter(filtermode, pass, text, texture_flag);
+       m_filtermanager.EnableFilter(propNames, gameObj, filtermode, pass, 
text);
 }
 
 void GPC_RenderTools::Render2DFilters(RAS_ICanvas* canvas)

Modified: trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.h
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.h 
2008-07-12 06:49:33 UTC (rev 15545)
+++ trunk/blender/source/gameengine/GamePlayer/common/GPC_RenderTools.h 
2008-07-12 10:21:37 UTC (rev 15546)
@@ -142,7 +142,7 @@
 
        virtual void MotionBlur(RAS_IRasterizer* rasterizer);
 
-       virtual void Update2DFilter(RAS_2DFilterManager::RAS_2DFILTER_MODE 
filtermode, int pass, STR_String& text, short texture_flag);
+       virtual void Update2DFilter(vector<STR_String>& propNames, void* 
gameObj, RAS_2DFilterManager::RAS_2DFILTER_MODE filtermode, int pass, 
STR_String& text);
 
        virtual void Render2DFilters(RAS_ICanvas* canvas);
 

Modified: trunk/blender/source/gameengine/Rasterizer/CMakeLists.txt
===================================================================
--- trunk/blender/source/gameengine/Rasterizer/CMakeLists.txt   2008-07-12 
06:49:33 UTC (rev 15545)

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to