Inheritance: IDisposable
示例#1
0
 private int Present(IntPtr swapChainPtr, int syncInterval, PresentFlags dwFlags)
 {
     var swapChain = (SwapChain) swapChainPtr;
     try
     {
         if (RenderEngine == null)
         {
             RenderEngine = new Renderer(swapChainPtr, OverlayConfig);
             var baseFont = new Font("Arial", 16, FontStyle.Bold);
             var elements = new ConcurrentDictionary<Guid, IOverlayElement>();
             elements.TryAdd(FramesPerSecondID, new FramesPerSecond(baseFont)
             {
                 Location = new Point(10, 10),
                 Color = Color.Lime,
                 AntiAliased = true,
                 Hidden = !OverlayConfig.ShowFPS
             });
             RenderEngine.Overlays.Add(new Overlay
             {
                 Elements = elements
             });
             RenderEngine.Overlays.Add(new Overlay());
         }
         else
         {
             foreach (var overlay in RenderEngine?.Overlays)
             {
                 overlay.Frame();
             }
             RenderEngine?.Render();
         }
     }
     catch (Exception ex)
     {
         Log.Write("Failed present: {0}", ex.Message);
     }
     finally
     {
         swapChain.Present(syncInterval, dwFlags);
     }
     return Result.Ok.Code;
 }
示例#2
0
 private void CleanupRenderer()
 {
     RenderEngine.Dispose();
     RenderEngine = null;
 }