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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 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);
        }
Ejemplo n.º 8
0
        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));
 }
Ejemplo n.º 11
0
 private void _Remove(CustomShaderMeta meta, ICustomShaderDatabaseDataTable table)
 {
     table.RemoveShader(meta, databaseFile, fileIO);
 }
Ejemplo n.º 12
0
 private void _Move(CustomShaderMeta meta, CustomShaderMeta previous, ICustomShaderDatabaseDataTable table)
 {
     table.MoveShader(meta, previous, databaseFile, fileIO);
 }