fix: sync imgui fps to stream fps to avoid it interferes with displaylink timings
This commit is contained in:
1 parent
9b9104b502
commit
5d1bed4d25
2 files changed
+6
-2
No files matched your search
@@ -28,6 +28,7 @@ typedef void (^MetricsHandler)(int plotId, CFTimeInterval value);
|
|||||||
@property (nonatomic) BOOL enableGraphs;
|
@property (nonatomic) BOOL enableGraphs;
|
||||||
@property (nonatomic) float graphOpacity;
|
@property (nonatomic) float graphOpacity;
|
||||||
@property (nonatomic) BOOL imguiRunning;
|
@property (nonatomic) BOOL imguiRunning;
|
||||||
|
@property (nonatomic) int streamFps;
|
||||||
@property (nonatomic) MetricsHandler _Nonnull metricsHandler;
|
@property (nonatomic) MetricsHandler _Nonnull metricsHandler;
|
||||||
|
|
||||||
-(nonnull instancetype) initWithFrame:(CGRect)bounds
|
-(nonnull instancetype) initWithFrame:(CGRect)bounds
|
||||||
|
|||||||
@@ -42,6 +42,9 @@
|
|||||||
|
|
||||||
_plots = [ImGuiPlots sharedInstance].plots;
|
_plots = [ImGuiPlots sharedInstance].plots;
|
||||||
|
|
||||||
|
// Store stream FPS to synchronize MTKView
|
||||||
|
_streamFps = streamFps;
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,7 +93,7 @@
|
|||||||
|
|
||||||
self.mtkView.device = self.device;
|
self.mtkView.device = self.device;
|
||||||
self.mtkView.delegate = self;
|
self.mtkView.delegate = self;
|
||||||
self.mtkView.preferredFramesPerSecond = 60; // ImGui overlay will always render at this rate
|
self.mtkView.preferredFramesPerSecond = _streamFps; // Synchronize with stream framerate
|
||||||
self.mtkView.opaque = NO;
|
self.mtkView.opaque = NO;
|
||||||
self.mtkView.enableSetNeedsDisplay = NO;
|
self.mtkView.enableSetNeedsDisplay = NO;
|
||||||
|
|
||||||
@@ -173,7 +176,7 @@
|
|||||||
#if TARGET_OS_SIMULATOR
|
#if TARGET_OS_SIMULATOR
|
||||||
[commandBuffer presentDrawable:view.currentDrawable];
|
[commandBuffer presentDrawable:view.currentDrawable];
|
||||||
#else
|
#else
|
||||||
[commandBuffer presentDrawable:view.currentDrawable afterMinimumDuration:1.0 / view.preferredFramesPerSecond];
|
[commandBuffer presentDrawable:view.currentDrawable afterMinimumDuration:1.0 / _streamFps];
|
||||||
#endif
|
#endif
|
||||||
[commandBuffer commit];
|
[commandBuffer commit];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in new issue
Block a user