/****************************************************************************************************

		GBuffers.h
		Copyright: (c) 2001 Eovia Corp. All rights reserved.

		Author:	charles
		Date:	9/22/2005

****************************************************************************************************/

#ifndef __GBuffers__
#define __GBuffers__

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include "RenderSettings.h"


struct IShSpooledBuffer;

struct TGBufferData
{
	ERenderMultiPassElement				fBufferID;				// distance, position, velocity...
	TMCCountedPtrArray<IShChannel>		fFrontMostFragments;	// there can be several channel for one buffer
	//TMCCountedPtr<IShSpooledBuffer>		fExtraFragmentsData; // data location is SizeofData(fBufferID) * fFragmentIndex[pixelPos]
};

struct TGBuffer32List : public TMCClassArray< TGBufferData >
{
	TMCCountedPtr<IShChannel>	fFragmentCount; // for each pixel, the number of extra fragments
	TMCCountedPtr<IShChannel>	fFragmentIndex;	// for each pixel, the index of the fragments data
};


#endif
