public void Add(CustomShaderMeta meta) { if (m_dataTable.ContainsThisShader(meta.shaderType, meta.name)) { // TODO: Support Update Debug.LogWarning("TODO: Support shader update"); } else { switch (meta.shaderType) { case OpenRT.EShaderType.CloestHit: m_dataTable.AddClosetHitShader(meta); break; case OpenRT.EShaderType.Intersect: m_dataTable.AddIntersectShader(meta); break; default: // TODO: Support adding shaders of type {meta.shaderType} Debug.LogWarning($"TODO: Support adding shaders of type {meta.shaderType}"); break; } } }
public override GUID AddShader(CustomShaderMeta shaderMeta, CustomShaderDatabaseFile database, IShaderDatabaseFileIO fileIOHandler) { string guid = base.AddShader(shaderMeta, database, fileIOHandler); database.lights.Add(guid, shaderMeta); fileIOHandler.WriteDatabaseToFile(database); return(guid); }
public override GUID RemoveShader(CustomShaderMeta shaderMeta, CustomShaderDatabaseFile database, IShaderDatabaseFileIO fileIOHandler) { string guid = base.RemoveShader(shaderMeta, database, fileIOHandler); database.intersect.Remove(guid); fileIOHandler.WriteDatabaseToFile(database); return(guid); }
private void _Add(CustomShaderMeta meta, ICustomShaderDatabaseDataTable datatable) { if (datatable.Contains(meta.name)) { datatable.MoveShader(meta, meta, databaseFile, fileIO); } else { datatable.AddShader(meta, databaseFile, fileIO); } }
public virtual GUID RemoveShader(CustomShaderMeta shaderMeta, CustomShaderDatabaseFile database, IShaderDatabaseFileIO fileIOHandler) { isDirty = true; var guid = shaderList[shaderMeta.name]; shaderList.Remove(shaderMeta.name); shaderMetaList.Remove(shaderMeta.name); return(guid); }
public virtual GUID MoveShader(CustomShaderMeta shaderMeta, CustomShaderMeta previousShaderMeta, CustomShaderDatabaseFile database, IShaderDatabaseFileIO fileIOHandler) { isDirty = true; var guid = shaderList[previousShaderMeta.name]; shaderList.Remove(previousShaderMeta.name); shaderMetaList.Remove(previousShaderMeta.name); shaderList.Add(shaderMeta.name, guid); shaderMetaList.Add(shaderMeta.name, shaderMeta); return(guid); }
protected GUID AddShaderHelper(CustomShaderMeta shaderMeta) { string guid; do { guid = Guid.NewGuid().ToString(); } while (shaderMetaList.ContainsKey(guid)); shaderList.Add(shaderMeta.name, guid); shaderMetaList.Add(guid, shaderMeta); return(guid); }
public override GUID MoveShader(CustomShaderMeta shaderMeta, CustomShaderMeta previousShaderMeta, CustomShaderDatabaseFile database, IShaderDatabaseFileIO fileIOHandler) { string guid = base.MoveShader(shaderMeta, previousShaderMeta, database, fileIOHandler); database.closetHit.Remove(guid); database.closetHit.Add(guid, shaderMeta); fileIOHandler.WriteDatabaseToFile(database); return(guid); }
public void Remove(CustomShaderMeta meta) { switch (meta.shaderType) { case OpenRT.EShaderType.ClosestHit: _Remove(meta, closestHitDataTable); break; case OpenRT.EShaderType.Intersect: _Remove(meta, intersectDataTable); break; default: // TODO: Support adding shaders of type {meta.shaderType} Debug.LogWarning($"TODO: Support adding shaders of type {meta.shaderType}"); break; } }
public virtual GUID AddShader(CustomShaderMeta shaderMeta, CustomShaderDatabaseFile database, IShaderDatabaseFileIO fileIOHandler) { isDirty = true; return(AddShaderHelper(shaderMeta)); }
private void _Remove(CustomShaderMeta meta, ICustomShaderDatabaseDataTable table) { table.RemoveShader(meta, databaseFile, fileIO); }
private void _Move(CustomShaderMeta meta, CustomShaderMeta previous, ICustomShaderDatabaseDataTable table) { table.MoveShader(meta, previous, databaseFile, fileIO); }