#include "ZGo.h"



//---- ZGoRender -------------------------------------------------------------//

//---- ZGoRender

ZGoRender::ZGoRender(ZGo *zgo, ZGoPARAMS *input, ZGoPARAMS *output)
{
  this->zgo = zgo;
  this->input = input->setInput(this);
  this->output = output->setOutput(this);

  this->fnType = new ZGoNAME(zgo, "ZGoRender");

  //  Parameters

  obj = (ZGo3DOBJECT *)input->get("object");
  camera = (ZGoCAMERA *)input->get("camera");
  env = (ZGoIMAGE *)input->get("env");
  result = (ZGoIMAGE *)output->get("result");

  //  Internal data

  zbuf = new ZGoIMAGE(zgo, result->w, result->h);
}



//---- process

void ZGoRender::process()
{
  obj->process();
  camera->process();

  int i;

  //- Clear destination image

  result->clear(0x00000000);
  zbuf->clear(0x00000000);

  obj->render(camera, result, zbuf);
}



//---- end of file -----------------------------------------------------------//
