forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			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";
							 | 
						||
| 
								 | 
							
								         }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								   }
							 | 
						||
| 
								 | 
							
								}
							 |