1 #include "SCA_IActuator.h"
3 #include "SCA_2DFilterActuator.h"
10 SCA_2DFilterActuator::~SCA_2DFilterActuator()
14 SCA_2DFilterActuator::SCA_2DFilterActuator(
16 RAS_2DFilterManager::RAS_2DFILTER_MODE type,
20 RAS_IRasterizer* rasterizer,
21 RAS_IRenderTools* rendertools,
23 : SCA_IActuator(gameobj, T),
26 m_float_arg(float_arg),
28 m_rasterizer(rasterizer),
29 m_rendertools(rendertools)
33 m_propNames = gameobj->GetPropertyNames();
38 void SCA_2DFilterActuator::SetShaderText(STR_String text)
45 CValue* SCA_2DFilterActuator::GetReplica()
47 SCA_2DFilterActuator* replica = new SCA_2DFilterActuator(*this);
48 replica->ProcessReplica();
49 CValue::AddDataToReplica(replica);
55 bool SCA_2DFilterActuator::Update()
57 bool bNegativeEvent = IsNegativeEvent();
62 return false; // do nothing on negative events
64 if( m_type == RAS_2DFilterManager::RAS_2DFILTER_MOTIONBLUR )
67 m_rasterizer->EnableMotionBlur(m_float_arg);
69 m_rasterizer->DisableMotionBlur();
73 else if(m_type < RAS_2DFilterManager::RAS_2DFILTER_NUMBER_OF_FILTERS)
75 m_rendertools->Update2DFilter(m_propNames, m_gameObj, m_type, m_int_arg, m_shaderText);
77 // once the filter is in place, no need to update it again => disable the actuator
82 PyTypeObject SCA_2DFilterActuator::Type = {
83 PyObject_HEAD_INIT(NULL)
85 "SCA_2DFilterActuator",
86 sizeof(SCA_2DFilterActuator),
102 PyParentObject SCA_2DFilterActuator::Parents[] = {
103 &SCA_2DFilterActuator::Type,
104 &SCA_IActuator::Type,
105 &SCA_ILogicBrick::Type,
111 PyMethodDef SCA_2DFilterActuator::Methods[] = {
112 /* add python functions to deal with m_msg... */
116 PyAttributeDef SCA_2DFilterActuator::Attributes[] = {
120 PyObject* SCA_2DFilterActuator::py_getattro(PyObject *attr) {
121 py_getattro_up(SCA_IActuator);