summaryrefslogtreecommitdiffstats
path: root/Tools/CompressShaders/ShaderNames.cs
blob: 81ba46e3f39ad500fccd1cb43f43aa45acff1b3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
static class ShaderNames
{
	public static void write( string path, IEnumerable<string> names )
	{
		string[] arr = names.ToArray();
		using var stream = File.CreateText( path );
		stream.WriteLine( @"// This source file is generated by a tool
#include ""stdafx.h""
#include ""shaderNames.h""
" );

		stream.WriteLine( "static const std::array<const char*, {0}> s_shaderNames = ", arr.Length );
		stream.WriteLine( "{" );
		foreach( string name in arr )
			stream.WriteLine( @"	""{0}"",", name );

		stream.Write( @"};

const char* DirectCompute::computeShaderName( eComputeShader cs )
{
	const uint16_t i = (uint16_t)cs;
	if( i < s_shaderNames.size() )
		return s_shaderNames[ i ];
	return nullptr;
}" );
	}
}