summaryrefslogtreecommitdiffstats
path: root/Tools/CompressShaders/ShaderNames.cs
diff options
context:
space:
mode:
authorKonstantin <const@const.me>2023-01-16 14:52:43 +0100
committerKonstantin <const@const.me>2023-01-16 14:52:43 +0100
commit8c4603c73675958efc960fbd4bb599a2909d106a (patch)
tree714dc6fc9a1672d5fd7f89676b97e10959662abc /Tools/CompressShaders/ShaderNames.cs
parent990a8d0dbaefc996244097397259e92758b15cce (diff)
Source codes
Diffstat (limited to 'Tools/CompressShaders/ShaderNames.cs')
-rw-r--r--Tools/CompressShaders/ShaderNames.cs27
1 files changed, 27 insertions, 0 deletions
diff --git a/Tools/CompressShaders/ShaderNames.cs b/Tools/CompressShaders/ShaderNames.cs
new file mode 100644
index 0000000..81ba46e
--- /dev/null
+++ b/Tools/CompressShaders/ShaderNames.cs
@@ -0,0 +1,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;
+}" );
+ }
+} \ No newline at end of file