[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15546] trunk/blender/source: improvement of 2d-filter custom shader,
Hamed Zaghaghi
hamed.zaghaghi at gmail.com
Sat Jul 12 12:21:38 CEST 2008
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. @@
More information about the Bf-blender-cvs
mailing list