/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__NRAYTRACERJOB__
#define	__NRAYTRACERJOB__


		#include "raytracer/raytracer_core.h"
		#include "async/job.h"


namespace GS {
	namespace Raytrace {

//
struct	RaytraceJob : public ASync::Job
{
virtual	void		Execute(uint);

		Raytracer	*core;
		Color		*hdr;
		int			pitch;

		int			start_height, end_height;
		int			start_width, end_width;

		Vector4		s;
		Vector4		dt_l, pt_l, dt_r, pt_r;

		RaytraceJob() : Job("Raytrace") {}
};

//
struct	AntialiasJob : public ASync::Job
{
virtual	void		Execute(uint);

		Raytracer	*core;
		Color		*hdr;
		int			pitch;

		int			start_height, end_height;
		int			start_width, end_width;

		Vector4		s;
		Vector4		dt_l, pt_l, dt_r, pt_r;

		AntialiasJob() : Job("Antialias") {}
};

	} // Raytrace
} // GS


#endif	// __NRAYTRACERJOB__
