/// <summary> /// Allocates DirectX resources and attaches to render events. /// </summary> private void EnableStats() { Log("Try get Device"); _device = SkinContext.Device; if (_device == null) { return; } _swapChain = _device.GetSwapChain(0); _swapChainEx = new SwapChain9Ex(_swapChain.NativePointer); _line = new Line(_device) { Width = 2.5f, Antialias = true }; _fontSprite = new Sprite(_device); _font = new Font(_device, TEXT_SIZE, 0, FontWeight.Normal, 0, false, FontCharacterSet.Default, FontPrecision.Default, FontQuality.ClearTypeNatural, FontPitchAndFamily.DontCare, "tahoma"); // Get device info _adapterDisplayModeEx = SkinContext.Direct3D.GetAdapterDisplayModeEx(0); Log("Screen height {0} at refresh rate {1} Hz", _adapterDisplayModeEx.Height, _adapterDisplayModeEx.RefreshRate); Log("Attach render events"); SkinContext.DeviceSceneBegin += BeginScene; SkinContext.DeviceSceneEnd += EndScene; _statsEnabled = true; }