///////////////////////////////////////////////////////////// // CINEMA 4D SDK // ///////////////////////////////////////////////////////////// // (c) MAXON Computer GmbH, all rights reserved // ///////////////////////////////////////////////////////////// #ifndef __C4D_SHADERPLUGIN_H #define __C4D_SHADERPLUGIN_H #include "ge_math.h" #include "c4d_shaderdata.h" #include "c4d_nodeplugin.h" struct SHADERPLUGIN : public NODEPLUGIN { SHADERINFO (ShaderData::*GetRenderInfo )(BaseShader *chn); INITRENDERRESULT (ShaderData::*InitRender )(BaseShader *chn, const InitRenderStruct &irs); void (ShaderData::*FreeRender )(BaseShader *chn); Bool (ShaderData::*Draw )(BaseShader *chn, BaseObject *op, BaseTag *tag, BaseDraw *bd, BaseDrawHelp *bh); Vector (ShaderData::*Output )(BaseShader *chn, ChannelData *cd); GL_MESSAGE (ShaderData::*GlMessage )(BaseShader *sh, Int32 type, void *msgdata); Int32 (ShaderData::*InitGLImage )(BaseShader *sh, BaseDocument* doc, BaseThread* th, BaseBitmap *bmp, Bool alpha, Int32 doccolorspace, Bool linearworkflow); void (ShaderData::*DestroyGLImage )(BaseShader *sh, BaseDocument* doc); void (ShaderData::*InvalidateGLImage)(BaseShader *sh, BaseDocument* doc); Bool (ShaderData::*GetGLImageSize )(BaseShader *sh, BaseDocument* doc, Int32 s, Bool noScale, Int32 &w, Int32 &h); BaseShader* (ShaderData::*GetSubsurfaceShader)(BaseShader *sh, Float &bestmpl); void* reserved[(32-11)*C4DPL_MEMBERMULTIPLIER-0]; }; void FillShaderPlugin(SHADERPLUGIN *np, DataAllocator *npalloc, Int32 info, Int32 disklevel, void *emulation); #endif