public void Initialize(IntPtr handle, int width, int height) { graphicsDeviceService = GraphicsDeviceService.AddRef(handle, width, height); // Register the service, so components like ContentManager can find it. services.AddService <IGraphicsDeviceService>(graphicsDeviceService); contentBuilder = new ContentBuilder(ProjectContentFolder, false); contentManager = new ContentManager(this.Services, contentBuilder.OutputDirectory); modelManager = new XnaModelManager(contentBuilder, contentManager, OriginalContentFolder); texture2dManager = new XnaTexture2dManager(contentBuilder, contentManager, OriginalContentFolder); fontManager = new XnaFontManager(contentBuilder, contentManager, OriginalContentFolder); effectManager = new XnaEffectManager(contentBuilder, contentManager, OriginalContentFolder); spriterManager = new XnaSpriterManager(contentBuilder, contentManager, OriginalContentFolder); RefreshLists(); FyriEffect roundlineEffect = effectManager.GetEffect("RoundLine"); FyriFont roundlineFont = fontManager.GetFont("SpriteFont"); roundLineManager = new RoundLineManager(); roundLineManager.Init(this.graphicsDeviceService.GraphicsDevice, roundlineEffect.Effect); lineBatch = new XnaLine2dBatch(); lineBatch.Init(this.graphicsDeviceService.GraphicsDevice, roundlineEffect.Effect); drawingContext = new XnaDrawingContext(this.graphicsDeviceService.GraphicsDevice); IsInitialized = true; }
public void RefreshProject() { ProjectNameNode.Text = "Project Name"; ProjectNameNode.Nodes.Clear(); if (spriterManager != null) { spriterManager = null; } if (effectManager != null) { effectManager = null; } if (fontManager != null) { fontManager = null; } if (texture2dManager != null) { texture2dManager = null; } if (modelManager != null) { modelManager = null; } if (contentManager != null) { contentManager.Unload(); contentManager.Dispose(); contentManager = null; } if (contentBuilder != null) { contentBuilder.Clear(); contentBuilder.Dispose(); contentBuilder = null; } if (currentProject != null) { ProjectNameNode.Text = currentProject.ProjectName; contentBuilder = new ContentBuilder(currentProject.ProjectContentFolder, false); contentManager = new ContentManager(this.Services, contentBuilder.OutputDirectory); modelManager = new XnaModelManager(contentBuilder, contentManager, currentProject.OriginalContentFolder); texture2dManager = new XnaTexture2dManager(contentBuilder, contentManager, currentProject.OriginalContentFolder); fontManager = new XnaFontManager(contentBuilder, contentManager, currentProject.OriginalContentFolder); effectManager = new XnaEffectManager(contentBuilder, contentManager, currentProject.OriginalContentFolder); spriterManager = new XnaSpriterManager(contentBuilder, contentManager, currentProject.OriginalContentFolder); ProjectNameNode.Nodes.Clear(); ModelNode = null; Texture2dNode = null; FontNode = null; EffectNode = null; SpriterNode = null; effectViewerControl.Effect = null; if (currentProject.LoadedModels.Count > 0) { currentProject.LoadedModels = modelManager.RefreshList(currentProject.LoadedModels); foreach (FyriModel model in currentProject.LoadedModels) { AddModelToTreeView(model); } } else { //Load default Sphere string defSphereFileName = Directory.GetCurrentDirectory() + "\\Default\\Sphere.fbx"; if (File.Exists(defSphereFileName)) { LoadModelToProject(defSphereFileName); } } if (currentProject.LoadedTexture2ds.Count > 0) { currentProject.LoadedTexture2ds = texture2dManager.RefreshList(currentProject.LoadedTexture2ds); foreach (FyriTexture2d texture in currentProject.LoadedTexture2ds) { AddTexture2dToTreeView(texture); } } if (currentProject.LoadedFonts.Count > 0) { currentProject.LoadedFonts = fontManager.RefreshList(currentProject.LoadedFonts); foreach (FyriFont font in currentProject.LoadedFonts) { AddFontToTreeView(font); } } if (currentProject.LoadedEffects.Count > 0) { currentProject.LoadedEffects = effectManager.RefreshList(currentProject.LoadedEffects); foreach (FyriEffect effect in currentProject.LoadedEffects) { AddEffectToTreeView(effect); } } } }