#include "c4d_videopost.h"
#include "c4d_raytrace.h"
#include "c4d_memory.h"
#include "c4d_basecontainer.h"
#include "c4d_basebitmap.h"
#include "c4d_file.h"
#include "c4d_general.h"
#include "c4d_gui.h"
#include "c4d_resource.h"

Bool VideoPostData::Draw(PluginVideoPost *node, BaseDraw *bd, BaseDrawHelp *bh)
{
	return TRUE;
}

void VideoPostData::CalcVolumetric(PluginVideoPost *node, VolumeData *vd)
{
}

void VideoPostData::CalcShadow(PluginVideoPost *node, VolumeData *vd)
{
}

void VideoPostData::AllocateBuffers(PluginVideoPost *node, Render *render, BaseDocument *doc)
{
}

LONG VideoPostData::GetRenderInfo(PluginVideoPost *node)
{
	return 0;
}

LONG VideoPostData::Execute(PluginVideoPost *node, VideoPostStruct *vps)
{
	return RAY_OK;
}

void VideoPostData::ExecuteLine(PluginVideoPost *node, PixelPost *pp)
{
}

void VideoPostData::ExecutePixel(PluginVideoPost *node, PixelPost *pp, LONG x, LONG subx, LONG suby)
{
}

Bool VideoPostData::GlDraw(PluginVideoPost *node, BaseDraw *bd, GlFrameBuffer* fbuf, LONG colortex, LONG depthtex, LONG flags)
{
	return TRUE;
}

Bool RegisterVideoPostPlugin(LONG id, const String &str, LONG info, DataAllocator *g, const String &description, LONG disklevel, LONG priority, void *emulation)
{
	if (description.Content() && !RegisterDescription(id,description)) return FALSE;

	VIDEOPOSTPLUGIN np;
	ClearMem(&np,sizeof(np));

	FillNodePlugin(&np,info,g,NULL,disklevel,emulation);

	np.priority					= priority;
	np.Draw							= &VideoPostData::Draw;
	np.GlDraw						= &VideoPostData::GlDraw;
	np.AllocateBuffers	= &VideoPostData::AllocateBuffers;
	np.GetRenderInfo		= &VideoPostData::GetRenderInfo;
	np.Execute					= &VideoPostData::Execute;
	np.ExecuteLine			= &VideoPostData::ExecuteLine;
	np.ExecutePixel			= &VideoPostData::ExecutePixel;
	np.CalcVolumetric   = &VideoPostData::CalcVolumetric;
	np.CalcShadow			  = &VideoPostData::CalcShadow;

	return GeRegisterPlugin(C4DPL_VIDEOPOST,id,str,&np,sizeof(np));
}
