Browse Source

Added help for shaderc.

bkaradzic 13 years ago
parent
commit
f71617e1b6
2 changed files with 51 additions and 6 deletions
  1. BIN
      tools/bin/shaderc.exe
  2. 51 6
      tools/shaderc.cpp

BIN
tools/bin/shaderc.exe


+ 51 - 6
tools/shaderc.cpp

@@ -1341,40 +1341,85 @@ const char* baseName(const char* _filePath)
 // 4.1    410
 // 4.2    420               11.0     vhdgf    5.0
 
+void help(const char* _error = NULL)
+{
+	if (NULL != _error)
+	{
+		fprintf(stderr, "Error:\n%s\n\n", _error);
+	}
+
+	fprintf(stderr
+		, "shaderc, bgfx shader compiler tool\n"
+		  "Copyright 2011-2012 Branimir Karadzic. All rights reserved.\n"
+		  "License: http://www.opensource.org/licenses/BSD-2-Clause\n\n"
+		);
+
+	fprintf(stderr
+		, "Usage: shaderc -f <in> -o <out> --type <v/f> --platform <platform>\n\n"
+		  "Options:\n"
+		  "\t-f                Input file path.\n"
+		  "\t-o                Output file path.\n"
+		  "\t    --bin2c       Generate C header file.\n"
+		  "\t    --depends     Generate makefile style depends file.\n"
+		  "\t    --platform    Target platform.\n"
+		  "\t         android\n"
+		  "\t         ios\n"
+		  "\t         linux\n"
+		  "\t         nacl\n"
+		  "\t         osx\n"
+		  "\t         windows\n"
+		  "\t    --type        Shader type (vertex, fragment)\n"
+		  "\t    --varyingdef  Path to varying.def.sc file.\n"
+		  "\n"
+		  "Options (DX9 and DX11 only):\n"
+		  "\n"
+		  "\t    --disasm      Disassemble compiled shader.\n"
+		  "\t-p, --profile     Shader model (f.e. ps_3_0).\n"
+		  "\n"
+		  "For additional information, see https://github.com/bkaradzic/bgfx\n"
+		);
+}
+
 int main(int _argc, const char* _argv[])
 {
 	CommandLine cmdLine(_argc, _argv);
 
+	if (cmdLine.hasArg('h', "help") )
+	{
+		help();
+		return EXIT_FAILURE;
+	}
+
 	const char* filePath = cmdLine.findOption('f');
 	if (NULL == filePath)
 	{
-		fprintf(stderr, "Shader file name must be specified.\n");
+		help("Shader file name must be specified.");
 		return EXIT_FAILURE;
 	}
 
 	const char* outFilePath = cmdLine.findOption('o');
 	if (NULL == outFilePath)
 	{
-		fprintf(stderr, "Output file name must be specified.\n");
+		help("Output file name must be specified.");
 		return EXIT_FAILURE;
 	}
 
 	const char* type = cmdLine.findOption('\0', "type");
 	if (NULL == type)
 	{
-		fprintf(stderr, "Must specify shader type.");
+		help("Must specify shader type.");
 		return EXIT_FAILURE;
 	}
 
 	const char* platform = cmdLine.findOption('\0', "platform");
 	if (NULL == platform)
 	{
-		fprintf(stderr, "Must specify platform.\n");
+		help("Must specify platform.");
 		return EXIT_FAILURE;
 	}
 
 	uint32_t hlsl = 2;
-	const char* profile = cmdLine.findOption('p');
+	const char* profile = cmdLine.findOption('p', "profile");
 	if (NULL != profile)
 	{
 		if (0 == strncmp(&profile[1], "s_3", 3) )
@@ -1509,7 +1554,7 @@ int main(int _argc, const char* _argv[])
 	{
 		VaryingMap varyingMap;
 
-		File attribdef("varying.def.sc");
+		File attribdef(cmdLine.findOption("varyingdef", "varying.def.sc") );
 		const char* parse = attribdef.getData();
 		while (NULL != parse
 		   &&  *parse != '\0')