Bool BitmapData::Message(GeListNode *node, LONG type, void *msgdat) { BaseContainer *data = ((BaseShader*)node)->GetDataInstance(); HandleInitialChannel(node,BITMAPDISTORTIONSHADER_TEXTURE,type,msgdat); HandleShaderMessage(node,(BaseShader*)data->GetLink(BITMAPDISTORTIONSHADER_TEXTURE,node->GetDocument(),Xbase),type,msgdat); return TRUE; }
INITRENDERRESULT ColorWeightShader::InitRender (BaseShader *chn, const InitRenderStruct &irs) { const InitRenderStruct *mirs = &irs; #else Int32 ColorWeightShader::InitRender (BaseShader *chn, InitRenderStruct *irs) { const InitRenderStruct *mirs = irs; #endif BaseContainer *data = chn->GetDataInstance(); m_shader = (BaseShader*)data->GetLink(COLORWEIGHT_TEXTURE,mirs->doc,Xbase); m_color = data->GetVector(COLORWEIGHT_COLOR); if (m_shader) return m_shader->InitRender(irs); return INITRENDERRESULT_OK; } void ColorWeightShader::FreeRender(BaseShader *sh) { if (m_shader) m_shader->FreeRender(); m_shader=NULL; } Vector ColorWeightShader::Output(BaseShader *sh, ChannelData *cd) { if(m_shader) { Vector v = m_shader->Sample(cd); return Vector(v.x*m_color.x, v.y*m_color.y, v.z*m_color.z); } return m_color; } #ifdef C4D_R13 Bool ColorWeightShader::Message(GeListNode *node, LONG type, void *msgdat) #else Bool ColorWeightShader::Message(GeListNode *node, Int32 type, void *msgdat) #endif { BaseContainer *data = ((BaseShader*)node)->GetDataInstance(); HandleInitialChannel(node,COLORWEIGHT_TEXTURE,type,msgdat); HandleShaderMessage(node,(BaseShader*)data->GetLink(COLORWEIGHT_TEXTURE,node->GetDocument(),Xbase),type,msgdat); return TRUE; }