//////////
// HLSL //
//////////
geometry_program Ogre/Isosurf/TessellateTetrahedraGS_HLSL hlsl
{
	source isosurf.hlsl
	entry_point mainGS
	target gs_4_0

	default_params
	{
		param_named IsoValue float 1
	}
}

//////////
//  CG  //
//////////
vertex_program Ogre/Isosurf/SampleFieldVS_CG cg
{
	source IsosurfVS.glsl
	profiles vp40 arbvp1

	default_params
	{
		param_named IsoValue float 1.0
		param_named_auto WorldViewProj worldviewproj_matrix
		param_named_auto origWorldViewIT inverse_transpose_worldview_matrix
	}
}

geometry_program Ogre/Isosurf/TessellateTetrahedraGS_CG cg
{
	source isosurf.cg
	entry_point mainGS
	profiles gpu_gp gp4_gp

	default_params
	{
		param_named IsoValue float 1.0
	}
}

fragment_program Ogre/Isosurf/MetaballPS_CG cg
{
	source IsosurfFS.glsl
	profiles fp40 arbfp1
}

//////////
// GLSL //
//////////
vertex_program Ogre/Isosurf/SampleFieldVS_GLSL glsl hlsl
{
	source IsosurfVS.glsl

	default_params
	{
		param_named IsoValue float 1.0
		param_named_auto WorldViewProj worldviewproj_matrix
		param_named_auto origWorldViewIT inverse_transpose_worldview_matrix
	}
}

geometry_program Ogre/Isosurf/TessellateTetrahedraGS_GLSL glsl
{
	source IsosurfGS.glsl
	syntax glsl150

	default_params
	{
		param_named IsoValue float 1.0
	}
}

fragment_program Ogre/Isosurf/MetaballPS_GLSL glsl hlsl
{
	source IsosurfFS.glsl
}

vertex_program Ogre/Isosurf/SampleFieldVS unified
{
	delegate Ogre/Isosurf/SampleFieldVS_CG
	delegate Ogre/Isosurf/SampleFieldVS_GLSL
}

geometry_program Ogre/Isosurf/TessellateTetrahedraGS unified
{
	delegate Ogre/Isosurf/TessellateTetrahedraGS_GLSL
	delegate Ogre/Isosurf/TessellateTetrahedraGS_HLSL
	delegate Ogre/Isosurf/TessellateTetrahedraGS_CG
	default_params
	{

	}
}

fragment_program Ogre/Isosurf/MetaballPS unified
{
	delegate Ogre/Isosurf/MetaballPS_CG
	delegate Ogre/Isosurf/MetaballPS_GLSL
}

material Ogre/Isosurf/TessellateTetrahedra
{
	technique
	{
		pass
		{
			vertex_program_ref Ogre/Isosurf/SampleFieldVS
			{

			}

			geometry_program_ref Ogre/Isosurf/TessellateTetrahedraGS
			{

			}

			fragment_program_ref Ogre/Isosurf/MetaballPS
			{

			}
		}
	}
}
