/// <summary> /// Overridden Awake method for setting up the Interpreter and add the commands to the console /// </summary> protected override void Awake() { Tex = TextureLoader.ParameterToTexture(width, height, "FLGeneratorMainTexture"); SpecularTex = TextureLoader.ParameterToTexture(width, height, "FLGeneratorSpecularTexture"); SpecularTex.TexType = TextureType.Specular; for (int i = 0; i < previews.Count; i++) { previews[i].Textures[0] = Tex; previews[i].Textures[1] = SpecularTex; } if (multiThread) { flRunner = new FlMultiThreadScriptRunner(null, DataVectorTypes.Uchar1, "assets/kernel/"); } else { flRunner = new FLScriptRunner(CLAPI.MainThread, DataVectorTypes.Uchar1, "assets/kernel/"); } DebugConsoleComponent console = Owner.Scene.GetChildWithName("Console").GetComponent <DebugConsoleComponent>(); console?.AddCommand("runfl", cmd_RunFL); console?.AddCommand("r", cmd_FLReset); }
private void Run() { FLConsole.Settings.SetVerbosity(); BufferCreator creator = new BufferCreator(); FLConsole.Settings.BufferCreatorTypes.ForEach(x => creator.AddBufferCreator((ASerializableBufferCreator)Activator.CreateInstance(x))); KernelDatabase db = new KernelDatabase(CLAPI.MainThread, FLConsole.Settings.KernelFolder, DataVectorTypes.Uchar1); FLInstructionSet iset = FLInstructionSet.CreateWithBuiltInTypes(db); FLProgramCheckBuilder programCheckBuilder = new FLProgramCheckBuilder(iset, creator); FLConsole.Settings.ProgramCheckTypes.ForEach(x => programCheckBuilder.AddProgramCheck((FLProgramCheck)Activator.CreateInstance(x))); FLScriptRunner runner = new FLScriptRunner(CLAPI.MainThread, db, creator, iset, programCheckBuilder, new WorkItemRunnerSettings(FLConsole.Settings.MultiThread, FLConsole.Settings.WorkSizeMultiplier)); string[] inputFiles = SetInputFilesCommand.InputFiles; string[] outputFiles = SetOutputFilesCommand.OutputFiles; for (int i = 0; i < inputFiles.Length; i++) { string inp = inputFiles[i]; string outp = outputFiles.Length > i ? outputFiles[i] : $"./{Path.GetFileNameWithoutExtension(inp)}.out.png"; Bitmap bmp = new Bitmap(FLConsole.Settings.Resolution.X, FLConsole.Settings.Resolution.Y); runner.Enqueue(new FlScriptExecutionContext(inp, bmp, result => OnFinishCallback(result, outp))); } runner.Process(); }
public static void Initialize(bool multiThread) { if (runnerInit) { return; } runnerInit = true; if (multiThread) { runner = new FlMultiThreadScriptRunner(ProcessFinished); } else { runner = new FLScriptRunner(CLAPI.MainThread); } runner.AddProgramCheck(new ConvBRndCPU2GPUOptimization()); runner.AddProgramCheck(new ConvIRndCPU2GPUOptimization()); runner.AddProgramCheck(new RemoveUnusedFunctionsOptimization()); runner.AddProgramCheck(new InlineJumpInstructionsOptimization()); InitPerlin(); }