/////////////////////////////////////////////////////////////
// CINEMA 4D SDK                                           //
/////////////////////////////////////////////////////////////
// (c) 1989-2004 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
{
	LONG (ShaderData::*GetRenderInfo		)(PluginShader *chn);
	LONG (ShaderData::*InitRender				)(PluginShader *chn, InitRenderStruct *irs);
	void (ShaderData::*FreeRender				)(PluginShader *chn);
	Bool (ShaderData::*Draw							)(PluginShader *chn, BaseObject *op, BaseTag *tag, BaseDraw *bd, BaseDrawHelp *bh);
	Vector (ShaderData::*Output					)(PluginShader *chn, ChannelData *cd);
	LONG (ShaderData::*GlMessage				)(PluginShader *sh, LONG type, void *msgdata);
	LONG (ShaderData::*InitGLImage			)(PluginShader *sh, BaseDocument* doc, BaseThread* th, BaseBitmap *bmp, Bool alpha);

	void*	reserved[(32-7)*C4DPL_MEMBERMULTIPLIER-0];
};

#endif
