/// <summary> /// Gets a reference to the singleton instance. /// </summary> public static GraphicsDeviceService AddRef(IntPtr windowHandle, int width, int height) { // Increment the "how many controls sharing the device" reference count. if (Interlocked.Increment(ref referenceCount) == 1) { // If this is the first control to start using the // device, we must create the singleton instance. singletonInstance = new GraphicsDeviceService(windowHandle, width, height); } return(singletonInstance); }
/// <summary> /// Initializes the control. /// </summary> protected override void OnCreateControl() { // Don't initialize the graphics device if we are running in the designer. if (!DesignMode) { graphicsDeviceService = GraphicsDeviceService.AddRef(Handle, ClientSize.Width, ClientSize.Height); // Register the service, so components like ContentManager can find it. services.AddService <IGraphicsDeviceService>(graphicsDeviceService); // Give derived classes a chance to initialize themselves. Initialize(); } base.OnCreateControl(); }
private void frmMain_Load(object sender, EventArgs e) { mapViewer1.DrawImages = new List <Texture2D>(); string defaultTilesetPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Resources\\default.tileset"; if (!File.Exists(defaultTilesetPath)) { if (MessageBox.Show("No default tileset found. Create one now?", "", MessageBoxButtons.YesNo) == DialogResult.No) { Application.Exit(); return; } EditTileset(); if (tileset.Tiles.Count == 0) { Application.Exit(); return; } } else { tileset.LoadFromFile(defaultTilesetPath); mapViewer1.TileSize = tileset.Images.ImageSize.Width; RegistryAccess.AddRecentFile(tileset.FileName, RegistrySetting.RecentTilesets); RefreshListViewer(); } //set up graphics device to pass to the created content manager GraphicsDeviceService gds = GraphicsDeviceService.AddRef(Handle, ClientSize.Width, ClientSize.Height); ServiceContainer service = new ServiceContainer(); service.AddService <IGraphicsDeviceService>(gds); ContentManager cont = new ContentManager(service, EditorConst.CONTENT_ROOT_DIR); Left = (int)RegistryAccess.GetValue(RegistrySetting.WindowX); Top = (int)RegistryAccess.GetValue(RegistrySetting.WindowY); Size = new Size((int)RegistryAccess.GetValue(RegistrySetting.WindowWidth), (int)RegistryAccess.GetValue(RegistrySetting.WindowHeight)); //if (((int)RegistryAccess.GetValueOrDefault(RegistrySetting.WindowMaximized, EditorConst.WINDOW_DEFAULT_MAXIMIZATION)).ToBool()) WindowState = FormWindowState.Maximized; //WindowState = FormWindowState.Maximized; // WindowState = FormWindowState.Maximized; mapViewer1.GridText = cont.Load <Texture2D>("gridbox"); mapViewer1.SelectorText = cont.Load <Texture2D>("selector"); System.Resources.ResourceSet res = GenericMapEditor.Properties.Resources.ResourceManager.GetResourceSet(new System.Globalization.CultureInfo("en-us"), true, true); for (int i = 0; i < (int)SpecialTileSpec.NUM_VALS; ++i) { cmbSpecialType.Items.Add(Enum.GetName(typeof(SpecialTileSpec), (SpecialTileSpec)i)); } cmbSpecialType.SelectedIndex = 0; for (int i = (int)WarpAnim.NONE; i < (int)WarpAnim.NUM_VALS; ++i) { cmbWarpAnim.Items.Add(Enum.GetName(typeof(WarpAnim), (WarpAnim)i)); } cmbWarpAnim.SelectedIndex = 0; RefreshRecentList(mnuFileRecent, RegistrySetting.RecentMaps); RefreshRecentList(recentToolStripMenuItem, RegistrySetting.RecentTilesets); }