void OnRenderFrame(object sender, LedBadgeLib.BadgeFrameEventArgs args) { switch (DisplayMode) { case DisplayMode.Messages: { LedBadgeLib.BadgePump pump = (LedBadgeLib.BadgePump)sender; m_messageScene.Update(1.0f / pump.FrameRate); m_messageScene.Render(args.Frame, 0, 0); break; } case DisplayMode.TestFrame: { TestFrame(args.Frame); break; } } Frame++; }
void OnFrameReady(object sender, LedBadgeLib.BadgeFrameEventArgs args) { bool fpsUpdate = false; if (Frame % 60 == 0) { FrameRate = 60 / (float)m_frameTimer.Elapsed.TotalSeconds; m_frameTimer.Restart(); fpsUpdate = true; } if (ViewWindowState != WindowState.Minimized) { Dispatcher.InvokeAsync(() => { LedBadgeLib.WPF.ImageFromPackedBuffer(FrameBuffer, args.Frame.PackedBuffer, 0, RotateFrame, args.Frame.IntermediateStride, args.Frame.WidthInPixels, args.Frame.Height, LedBadgeLib.PixelFormat.TwoBits); if (fpsUpdate) { RaiseProperyChanged("FrameRate"); } }); } }