42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| import haxe.io.Path;
 | |
| import sys.FileSystem;
 | |
| 
 | |
| class HLSL
 | |
| {
 | |
|    var file:String;
 | |
|    var profile:String;
 | |
|    var target:String;
 | |
|    var variable:String;
 | |
| 
 | |
|    public function new(inFile:String, inProfile:String, inVariable:String, inTarget:String)
 | |
|    {
 | |
|       file = inFile;
 | |
|       profile = inProfile;
 | |
|       variable = inVariable;
 | |
|       target = inTarget;
 | |
|    }
 | |
| 
 | |
|    public function build()
 | |
|    {
 | |
|       if (!FileSystem.exists(Path.directory (target))) 
 | |
|       {
 | |
|          PathManager.mkdir(Path.directory (target));
 | |
|       }
 | |
|      
 | |
|       //DirManager.makeFileDir(target);
 | |
| 
 | |
|       var srcStamp = FileSystem.stat(file).mtime.getTime();
 | |
|       if (!FileSystem.exists(target) || FileSystem.stat(target).mtime.getTime() < srcStamp)
 | |
|       {
 | |
|          var exe = "fxc.exe";
 | |
|          var args =  [ "/nologo", "/T", profile, file, "/Vn", variable, "/Fh", target ];
 | |
|          
 | |
|          var result = ProcessManager.runCommand("", exe, args);
 | |
|          if (result!=0)
 | |
|          {
 | |
|             Log.error("Could not compile shader \"" + file + "\"");
 | |
|             //throw "Error : Could not compile shader " + file + " - build cancelled";
 | |
|          }
 | |
|       }
 | |
|    }
 | |
| } |