Improve handling of view loading/unloading
This commit is contained in:
@@ -153,10 +153,38 @@ public:
|
|||||||
manager = new GraphicsAppManager(app.get(), &window);
|
manager = new GraphicsAppManager(app.get(), &window);
|
||||||
manager->StartUp();
|
manager->StartUp();
|
||||||
|
|
||||||
OpenVulkanoView* mtkView = (OpenVulkanoView*)(self.view);
|
if ([self.view isKindOfClass:[MTKView class]]) {
|
||||||
mtdelegate = [[MetalViewDelegate alloc] initWithGAM:manager win:&window];
|
MTKView* mtkView = (MTKView*)(self.view);
|
||||||
[mtkView setDelegate:mtdelegate];
|
mtdelegate = [[MetalViewDelegate alloc] initWithGAM:manager win:&window];
|
||||||
mtkView.preferredFramesPerSecond = 60;
|
[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 {
|
-(void) renderLoop {
|
||||||
|
|||||||
Reference in New Issue
Block a user