Improve handling of view loading/unloading
This commit is contained in:
@@ -153,10 +153,38 @@ public:
|
||||
manager = new GraphicsAppManager(app.get(), &window);
|
||||
manager->StartUp();
|
||||
|
||||
OpenVulkanoView* mtkView = (OpenVulkanoView*)(self.view);
|
||||
if ([self.view isKindOfClass:[MTKView class]]) {
|
||||
MTKView* mtkView = (MTKView*)(self.view);
|
||||
mtdelegate = [[MetalViewDelegate alloc] initWithGAM:manager win:&window];
|
||||
[mtkView setDelegate:mtdelegate];
|
||||
mtkView.preferredFramesPerSecond = 60;
|
||||
} else {
|
||||
_displayLink = [CADisplayLink displayLinkWithTarget: self selector: @selector(renderLoop)];
|
||||
[_displayLink setPreferredFramesPerSecond: 60];
|
||||
[_displayLink addToRunLoop: NSRunLoop.currentRunLoop forMode: NSDefaultRunLoopMode];
|
||||
}
|
||||
}
|
||||
|
||||
-(void) viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
self.view.contentScaleFactor = UIScreen.mainScreen.nativeScale / 1.5f;
|
||||
|
||||
auto size = self.view.bounds.size;
|
||||
auto sizeX = size.width * self.view.contentScaleFactor;
|
||||
auto sizeY = size.height * self.view.contentScaleFactor;
|
||||
manager->OnWindowResize(&window, sizeX, sizeY);
|
||||
}
|
||||
|
||||
-(void) viewDidDisappear:(BOOL)animated {
|
||||
[_displayLink release];
|
||||
_displayLink = nil;
|
||||
[super viewDidDisappear:animated];
|
||||
}
|
||||
|
||||
-(void) viewDidUnload {
|
||||
[_displayLink release];
|
||||
_displayLink = nil;
|
||||
[super viewDidUnload];
|
||||
}
|
||||
|
||||
-(void) renderLoop {
|
||||
|
||||
Reference in New Issue
Block a user