public GPUProgram AddGPUProgram(string name, string sourceCode, string[] defines, DefineSet[] multicompiles, DefineSet[] multicompileCombinations) { var result = new GPUProgram(name, sourceCode, defines, multicompiles, multicompileCombinations); result.report = this; m_Programs.Add(result); m_ProgramNameIndex[name] = m_Programs.Count - 1; return(result); }
public override object ConvertTo(ITypeDescriptorContext Context, CultureInfo Culture, object Value, Type DestinationType) { if (DestinationType == typeof(String) && Value is GPUProgram) { GPUProgram so = (GPUProgram)Value; return("Check while typing : " + so.Pointer); } return(base.ConvertTo(Context, Culture, Value, DestinationType)); }
PerformanceUnit AddPerformanceReport(GPUProgram gpuProgram, int multicompileIndex, string rawReport, ProgramPerformanceMetrics parsedReport) { var programIndex = m_Programs.IndexOf(gpuProgram); var unit = new PerformanceUnit(this, programIndex, multicompileIndex, rawReport, parsedReport); m_PerformanceUnit.Add(unit); if (!m_ProgramPerformanceUnits.ContainsKey(unit.programIndex)) { m_ProgramPerformanceUnits[unit.programIndex] = new Dictionary <int, int>(); } m_ProgramPerformanceUnits[unit.programIndex][unit.multicompileIndex] = m_PerformanceUnit.Count - 1; return(unit); }
CompileUnit AddCompileUnit(GPUProgram gpuProgram, int multicompileIndex, string[] defines, LogItem[] warnings, LogItem[] errors, ShaderProfile profile, string entry) { var programIndex = m_Programs.IndexOf(gpuProgram); var unit = new CompileUnit(this, programIndex, multicompileIndex, defines, warnings, errors, profile, entry); m_CompileUnits.Add(unit); if (!m_ProgramCompileUnits.ContainsKey(unit.programIndex)) { m_ProgramCompileUnits[unit.programIndex] = new Dictionary <int, int>(); } m_ProgramCompileUnits[unit.programIndex][unit.multicompileIndex] = m_CompileUnits.Count - 1; return(unit); }
IEnumerable <CompileUnit> GetCompileUnits(GPUProgram gpuProgram) { return(GetUnits(m_ProgramCompileUnits, m_CompileUnits, gpuProgram)); }
CompileUnit GetCompileUnit(GPUProgram gpuProgram, int multicompileIndex) { return(GetUnit(m_ProgramCompileUnits, m_CompileUnits, gpuProgram, multicompileIndex)); }
IEnumerable <PerformanceUnit> GetPerformanceUnits(GPUProgram gpuProgram) { return(GetUnits(m_ProgramPerformanceUnits, m_PerformanceUnit, gpuProgram)); }
PerformanceUnit GetPerformanceUnit(GPUProgram gpuProgram, int multicompileIndex) { return(GetUnit(m_ProgramPerformanceUnits, m_PerformanceUnit, gpuProgram, multicompileIndex)); }
IEnumerable <TType> GetUnits <TType>(Dictionary <int, Dictionary <int, int> > map, List <TType> source, GPUProgram program) where TType : class { var programIndex = m_Programs.IndexOf(program); if (!map.ContainsKey(programIndex)) { return(Enumerable.Empty <TType>()); } var indices = map[programIndex]; return(new IndirectEnumerable <TType>(source, indices)); }
TType GetUnit <TType>(Dictionary <int, Dictionary <int, int> > map, List <TType> source, GPUProgram program, int multicompileIndex) where TType : class { var programIndex = m_Programs.IndexOf(program); return(GetUnit(map, source, programIndex, multicompileIndex)); }