/// <summary>
 /// Triggers internal rendering within the resource (e. g. Render to Texture).
 /// </summary>
 /// <param name="renderState">Current render state.</param>
 public void Render(RenderState renderState)
 {
     m_overlayRenderer.BeginDraw();
     try
     {
         if (m_graphics2D != null)
         {
             m_drawingLayer.Draw2DInternal(m_graphics2D);
         }
     }
     finally
     {
         m_overlayRenderer.EndDraw();
     }
 }
        /// <summary>
        /// Loads all resource.
        /// </summary>
        /// <param name="device">The device on which to load all resources.</param>
        /// <param name="resources">The current ResourceDictionary.</param>
        protected override void LoadResourceInternal(EngineDevice device, ResourceDictionary resources)
        {
            m_renderTargetTexture = GraphicsHelper.CreateRenderTargetTexture(
                device, m_width, m_height, new GraphicsViewConfiguration()
            {
                AntialiasingEnabled = false
            });
            m_renderTargetTextureView = new D3D11.ShaderResourceView(device.DeviceD3D11_1, m_renderTargetTexture);

            // Create resources for rendering on the texture
            using (Direct2DOverlayRenderer overlayRenderer = new Direct2DOverlayRenderer(
                       device,
                       m_renderTargetTexture,
                       m_width, m_height,
                       DpiScaling.Default))
            {
                Graphics2D graphics2D = new Graphics2D(device, overlayRenderer.RenderTarget2D, new Size2F(m_width, m_height));

                // Start drawing
                overlayRenderer.BeginDraw();
                try
                {
                    if (m_drawingLayer != null)
                    {
                        m_drawingLayer.Draw2DInternal(graphics2D);
                    }
                    else if (m_fillBrush != null)
                    {
                        graphics2D.FillRectangle(
                            new RectangleF(0f, 0f, m_width, m_height),
                            m_fillBrush);
                    }
                }
                finally
                {
                    overlayRenderer.EndDraw();
                }
            }
        }