private void RenderFunction() { RenderLoop.RenderCallback callback = new RenderLoop.RenderCallback(RenderCallback); using (var renderLoop = new TRRM.Viewer.RenderLoop(this) { UseApplicationDoEvents = false }) { float target = 1.0f / 60.0f; DateTime last = DateTime.Now; while (renderLoop.NextFrame()) { lock (DX.GlobalLock) { try { callback(); } catch (SharpDXException e) { Console.WriteLine("DX error occurred: {0}", e.Message); } } DateTime now = DateTime.Now; double elapsed = (now - last).TotalMilliseconds; if (elapsed < target) { Thread.Sleep((int)(target - elapsed)); } } } }
public GraphicSystem(RenderLoop.RenderCallback LogicMethod, RenderLoop.RenderCallback RenderMethod) { _logicMethod = LogicMethod; _renderMethod = RenderMethod; _renderForm = new RenderForm(); _graphicsDevice = new GraphicsDevice(this); _graphicsDevice.CreateDevice(_renderForm.Handle); }
public void Draw(RenderLoop.RenderCallback cb) { RenderLoop.Run(Window, () => { _device.BeginDraw(); _device.Clear(null); cb.Invoke(); _device.Flush(); _device.EndDraw(); }); }
public Form1() { InitializeComponent(); SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true); form.Width = 600; form.Height = 600; test(); callback = new RenderLoop.RenderCallback(Render); RenderLoop.Run(form, callback); }
public Chart() { InitializeComponent(); #region Init _resize = 0; _isResized = true; _isZoomed = true; _mousePisition = new ScreenPoint(); _drawings = new List <SelectedFigureBase>(); _barType = BarType.OHLC; _actions = DrawingActions.Default; _chartHelpers = ChartHelpers.Default; var windowSize = new Size(800, 800); SetRenderSettings(windowSize); _chart = new ChartDrawing(ClientSize.Width, ClientSize.Height, _d2DRenderTarget, TimingBy.Minute); _chartRendering = new ChartRendering.ChartRendering(_d2DRenderTarget, _textFormat, _chart); GenerateBars(); SetForChartMinMaxPoints(0); _borders = new RectangleF(windowSize.Width * _chart.Paddings.PaddingLeftRatio, windowSize.Height * _chart.Paddings.PaddingTopRatio, _chart.ChartWidth, _chart.ChartHeight); #endregion #region FormHandlers KeyDown += OnKeyDown; MouseDown += OnMouseDown; MouseClick += OnMouseClick; MouseWheel += OnMouseWheel; MouseMove += OnMouseMove; Resize += OnResizeEnd; Closing += OnClosing; #endregion _callback += RenderChart; RenderLoop.Run(this, _callback); }
internal override void Run() { Debug.Assert(InitCallback != null); Debug.Assert(RunCallback != null); // Initialize the init callback InitCallback(); runRenderCallback = new RenderLoop.RenderCallback(RenderLoopCallback); // Run the rendering loop try { // Use custom do events to improve performance and avoid GC caused by Application.DoEvents RenderLoop.Run(Control, runRenderCallback); } finally { if (ExitCallback != null) { ExitCallback(); } } }
public void Run(RenderLoop.RenderCallback renderCallback) { this._form.Show(); while (this._isAlive) { if (RenderLoop.UseCustomDoEvents) { Win32Native.NativeMessage lpMsg; while (Win32Native.PeekMessage(out lpMsg, this._windowHandle, 0, 0, 0) != 0) { if (Win32Native.GetMessage(out lpMsg, this._windowHandle, 0, 0) == -1) { throw new InvalidOperationException(string.Format((IFormatProvider)CultureInfo.InvariantCulture, "An error happened in rendering loop while processing windows messages. Error: {0}", new object[1] { (object)Marshal.GetLastWin32Error() })); } else { Win32Native.TranslateMessage(ref lpMsg); Win32Native.DispatchMessage(ref lpMsg); } } } else { Application.DoEvents(); } if (this._isAlive) { renderCallback(); } } this._form.Disposed -= new EventHandler(this._form_Disposed); MessageFilterHook.RemoveMessageFilter(this._windowHandle, (IMessageFilter)this); }
public static void Run(Form form, RenderLoop.RenderCallback renderMethod) { RenderLoop.Run(form, renderMethod); }
public static void Run(Control form, RenderLoop.RenderCallback renderCallback) { new RenderLoop.ProxyNativeWindow(form).Run(renderCallback); }
public static void Run(ApplicationContext context, RenderLoop.RenderCallback renderCallback) { RenderLoop.Run((Control)context.MainForm, renderCallback); }
internal override void Run() { Debug.Assert(InitCallback != null); Debug.Assert(RunCallback != null); // Initialize the init callback InitCallback(); var runCallback = new RenderLoop.RenderCallback(RunCallback); // Run the rendering loop try { RenderLoop.Run(Control, runCallback); } finally { if (ExitCallback != null) { ExitCallback(); } } }
public void StartRender() { callback = new RenderLoop.RenderCallback(Render); RenderLoop.Run(mainRenderForm, callback); }
public static void Run(Form form, RenderLoop.RenderCallback mainLoop) { RenderLoop.Run(form, mainLoop); }