public static GraphicsDeviceService AddRef(IntPtr windowHandle, int width, int height) { if (Interlocked.Increment(ref _referenceCount) == 1) { _singletonInstance = new GraphicsDeviceService(windowHandle, width, height); } return _singletonInstance; }
/// <summary> /// Disposes the control. /// </summary> protected override void Dispose(bool disposing) { if (_graphicsDeviceService != null) { _graphicsDeviceService.Release(disposing); _graphicsDeviceService = null; } base.Dispose(disposing); }
/// <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(); _timer = new Stopwatch(); } base.OnCreateControl(); }