/// <summary> /// Run a callback when the specified task has completed. /// </summary> /// <param name="task">The task object that needs to complete</param> /// <param name="action">The action to perform when it is complete</param> public void OnTask(Task task, ShaderCompileTaskCallback action) { _compiling = false; _programsTask = task; _action = action; task.ContinueWith(task => _taskDoneEvent.Set()); }
/// <summary> /// Run a callback when the specified program has been linked. /// </summary> /// <param name="task">The program that needs to be linked</param> /// <param name="action">The action to perform when linking is complete</param> public void OnCompiled(IProgram program, ShaderCompileTaskCallback action) { _compiling = true; _program = program; _action = action; if (program == null) { action(false, this); } }