//============================================================ // <T>加载主题信息。</T> // // @prama theme 主题 //============================================================ public void LoadTheme(FDrTheme theme) { _loading = true; // 打开材质 theme.Open(); _theme = theme; // 设置属性 txtName.Text = _theme.Name; // 建立列表 _loading = false; }
//============================================================ // <T>加载配置信息。</T> // // @param config 配置信息 //============================================================ public void LoadConfig(FXmlNode xconfig) { // 读取主题 _theme = RContent3dManager.ThemeConsole.Find(xconfig.Nvl("theme_name")); if (_theme == null) { _theme = RContent3dManager.ThemeConsole.DefaultTheme; } _themeName = _theme.Name; // 读取属性 LoadConfigInfo(xconfig); }
//============================================================ // <T>打开资源。</T> //============================================================ public void SelectItem(object item) { if (item is FDrTheme) { FDrTheme theme = item as FDrTheme; qdrThemeProperty.Dock = DockStyle.Fill; qdrThemeProperty.Visible = true; qdrThemeProperty.LoadTheme(theme); } else { qdrThemeProperty.Visible = false; } }
//============================================================ // <T>打开处理。</T> //============================================================ public void ScanTextures() { string rootDirectory = _folder.Directory; foreach (INamePair <FDrTexture> pair in RContent3dManager.TextureConsole.Textures) { FDrTexture texture = pair.Value; String name = texture.Name; FDrMaterialGroup materialGroup = FindGroup(name); if (materialGroup != null) { continue; } // 创建材质组 FDrFolder folder = texture.Folder; FObjects <FCfgFolder> stack = folder.FetchFolderStack(false); string materialPath = folder.FolderPath().Replace("tx-", "mt-"); string materialDirectory = rootDirectory + materialPath; RDirectory.MakeDirectories(materialDirectory); FDrTheme theme = RContent3dManager.ThemeConsole.DefaultTheme; // 创建材质组 materialGroup = new FDrMaterialGroup(); materialGroup.Name = name; materialGroup.ConfigFileName = materialDirectory + "/config.xml"; // 创建材质 FDrMaterial material = new FDrMaterial(); material.Theme = theme; material.EffectName = theme.EffectName; materialGroup.Materials.Push(material); foreach (FDrTextureBitmap bitmap in texture.Bitmaps) { FDrMaterialTexture materialTexture = new FDrMaterialTexture(); materialTexture.TypeCd = bitmap.TypeCd; materialTexture.Source = texture.Name; materialTexture.SourceTypeCd = bitmap.TypeCd; materialTexture.SourceIndex = bitmap.Index; materialGroup.Textures.Push(materialTexture); } // 存储材质 materialGroup.Store(); _materials.Set(name, materialGroup); _logger.Debug(this, "ScanTextures", "Create material. (name={0})", materialDirectory); } }
//============================================================ // <T>存储主题信息。</T> // // @prama theme 主题 //============================================================ public void SaveTheme(FDrTheme theme) { }