minifb-zig-port/src/ios/iOSViewController.m
2020-04-26 13:16:25 +02:00

60 lines
1.4 KiB
Objective-C

//
// iOSViewController.m
// MiniFB
//
// Created by Carlos Aragones on 22/04/2020.
// Copyright © 2020 Carlos Aragones. All rights reserved.
//
#import "iOSViewController.h"
#import <Metal/Metal.h>
#import <MetalKit/MetalKit.h>
#import "iOSViewDelegate.h"
//-------------------------------------
@implementation iOSViewController
{
MTKView *metal_view;
iOSViewDelegate *view_delegate;
SWindowData *window_data;
}
//-------------------------------------
- (id) initWithWindowData:(SWindowData *) windowData {
self = [super init];
if (self) {
window_data = windowData;
}
return self;
}
//-------------------------------------
- (void) loadView {
UIView *view = [[MTKView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self setView:view];
[view release];
}
//-------------------------------------
- (void) viewDidLoad
{
[super viewDidLoad];
metal_view = (MTKView *)self.view;
metal_view.device = MTLCreateSystemDefaultDevice();
metal_view.backgroundColor = UIColor.blackColor;
if(!metal_view.device) {
NSLog(@"Metal is not supported on this device");
self.view = [[UIView alloc] initWithFrame:self.view.frame];
return;
}
view_delegate = [[iOSViewDelegate alloc] initWithMetalKitView:metal_view windowData:window_data];
[view_delegate mtkView:metal_view drawableSizeWillChange:metal_view.bounds.size];
metal_view.delegate = view_delegate;
}
@end