mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-01-11 13:21:10 +01:00
Ported: [macOS, 3.x] Fix unresponsive redraw during live resizing. - bruvzg
e75e1f3231
This commit is contained in:
parent
780ccf3342
commit
3659429afd
@ -471,6 +471,20 @@ static NSCursor *cursorFromSelector(SEL selector, SEL fallback = nil) {
|
||||
|
||||
@implementation PandemoniumContentView
|
||||
|
||||
- (void)drawRect:(NSRect)dirtyRect {
|
||||
if (OS_OSX::singleton->get_main_loop() && OS_OSX::singleton->is_resizing) {
|
||||
Main::force_redraw();
|
||||
if (!Main::is_iterating()) { // Avoid cyclic loop.
|
||||
Main::iteration();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setFrameSize:(NSSize)newSize {
|
||||
[super setFrameSize:newSize];
|
||||
[self setNeedsDisplay:YES]; // Force "drawRect" call.
|
||||
}
|
||||
|
||||
+ (void)initialize {
|
||||
if (self == [PandemoniumContentView class]) {
|
||||
// nothing left to do here at the moment..
|
||||
@ -3343,10 +3357,10 @@ void OS_OSX::force_process_input() {
|
||||
}
|
||||
|
||||
void OS_OSX::pre_wait_observer_cb(CFRunLoopObserverRef p_observer, CFRunLoopActivity p_activiy, void *p_context) {
|
||||
// Prevent main loop from sleeping and redraw window during resize / modal popups.
|
||||
// Do not redraw when rendering is done from the separate thread, it will conflict with the OpenGL context updates triggered by window view resize.
|
||||
// Prevent main loop from sleeping and redraw window during modal popup display.
|
||||
// Do not redraw when rendering is done from the separate thread, it will conflict with the OpenGL context updates.
|
||||
|
||||
if (get_singleton()->get_main_loop() && (get_singleton()->get_render_thread_mode() != RENDER_SEPARATE_THREAD || !OS_OSX::singleton->is_resizing)) {
|
||||
if (get_singleton()->get_main_loop() && (get_singleton()->get_render_thread_mode() != RENDER_SEPARATE_THREAD) && !OS_OSX::singleton->is_resizing) {
|
||||
Main::force_redraw();
|
||||
if (!Main::is_iterating()) { // Avoid cyclic loop.
|
||||
Main::iteration();
|
||||
|
Loading…
Reference in New Issue
Block a user