protected override void Dispose(bool disposing) { if (graphicsDeviceService != null) { graphicsDeviceService.Release(true); graphicsDeviceService = null; } base.Dispose(disposing); }
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. instance = new GraphicsDeviceService(windowHandle, width, height); } return instance; }
protected override void OnCreateControl() { if (!DesignMode) { graphicsDeviceService = GraphicsDeviceService.AddRef(Handle, ClientSize.Width, ClientSize.Height); // Register the service, so components like ContentManager can find it. serviceContainer.AddService<IGraphicsDeviceService>(graphicsDeviceService); // Give derived classes a chance to initialize themselves. Initialize(); } base.OnCreateControl(); }