public static void WriteDatabaseToFile(CustomShaderDatabaseFile file)
        {
            StreamWriter writer = new StreamWriter(JSON_FILE_PATH, false);

            writer.WriteLine(JsonConvert.SerializeObject(file, formatting: Formatting.Indented));
            writer.Close();
        }
        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);
        }
Exemplo 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);
        }
        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 void LoadShaderDatabase()
        {
            closestHitDataTable = new ClosestHitDataTable();
            intersectDataTable  = new IntersectDataTable();

            fileIO       = new CustomShaderDatabaseFileIO();
            databaseFile = fileIO.ReadDatabaseFromFile();

            closestHitDataTable.Populate(databaseFile.closetHit);
            intersectDataTable.Populate(databaseFile.intersect);
        }
Exemplo n.º 6
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);
        }
        private void PopulateDataTableFromFile()
        {
            m_dbFile = CustomShaderDatabaseFileIO.ReadDatabaseFromFile();

            m_shaderNameList = new SortedSet <string>();
            m_shaderMetaList = new SortedSet <CustomShaderMeta>(comparer: new CustomShaderMetaComparer());

            foreach (var kvp in m_dbFile.lights)
            {
                // Shader Name = kvp.Value.name
                // Shader GUID = kvp.Key
                m_shaderNameList.Add(kvp.Value.name);
                m_shaderMetaList.Add(kvp.Value);
            }
        }
        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);
        }
 public virtual GUID AddShader(CustomShaderMeta shaderMeta, CustomShaderDatabaseFile database, IShaderDatabaseFileIO fileIOHandler)
 {
     isDirty = true;
     return(AddShaderHelper(shaderMeta));
 }