diff options
Diffstat (limited to 'Common/NativeApp')
15 files changed, 333 insertions, 88 deletions
diff --git a/Common/NativeApp/Apple/Data/OSX/Base.lproj/Main.storyboard b/Common/NativeApp/Apple/Data/OSX/Base.lproj/Main.storyboard index 04f3d53..0b43f5c 100644 --- a/Common/NativeApp/Apple/Data/OSX/Base.lproj/Main.storyboard +++ b/Common/NativeApp/Apple/Data/OSX/Base.lproj/Main.storyboard @@ -137,7 +137,7 @@ </connections> </window> <connections> - <segue destination="XfG-lQ-9wD" kind="relationship" relationship="window.shadowedContentViewController" id="p8t-OE-KhS"/> + <segue destination="XfG-lQ-9wD" kind="relationship" relationship="window.shadowedContentViewController" id="XQd-qx-IMN"/> </connections> </windowController> <customObject id="Oky-zY-oP4" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/> @@ -147,7 +147,7 @@ <!--View Controller--> <scene sceneID="hIz-AP-VOD"> <objects> - <viewController storyboardIdentifier="GLViewControllerID" id="XfG-lQ-9wD" sceneMemberID="viewController"> + <viewController storyboardIdentifier="GLViewControllerID" id="XfG-lQ-9wD" customClass="GLViewController" sceneMemberID="viewController"> <view key="view" id="m2S-Jp-Qdl" userLabel="GL View" customClass="GLView"> <rect key="frame" x="0.0" y="0.0" width="800" height="600"/> <autoresizingMask key="autoresizingMask"/> @@ -161,7 +161,7 @@ <scene sceneID="JAO-pz-Td3"> <objects> <viewController storyboardIdentifier="MetalViewControllerID" id="VWH-wR-9QD" customClass="MetalViewController" sceneMemberID="viewController"> - <view key="view" id="0v6-SX-xCX" customClass="MTKView"> + <view key="view" id="0v6-SX-xCX" customClass="MetalView"> <rect key="frame" x="0.0" y="0.0" width="800" height="600"/> <autoresizingMask key="autoresizingMask"/> </view> diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/AppDelegate.m b/Common/NativeApp/Apple/Source/Classes/OSX/AppDelegate.m index 3eb1f46..4e8e0f9 100644 --- a/Common/NativeApp/Apple/Source/Classes/OSX/AppDelegate.m +++ b/Common/NativeApp/Apple/Source/Classes/OSX/AppDelegate.m @@ -7,7 +7,8 @@ */ #import "AppDelegate.h" -#import "GLView.h" +#import "GLViewController.h" +#import "MetalViewController.h" @interface AppDelegate () @@ -18,7 +19,7 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { NSWindow* mainWindow = [[NSApplication sharedApplication]mainWindow]; - NSString* error = [[mainWindow contentView] getError]; + NSString* error = [[mainWindow contentViewController] getError]; if(error != nil) { NSAlert *alert = [[NSAlert alloc] init]; @@ -31,8 +32,11 @@ } [mainWindow setAcceptsMouseMovedEvents:YES]; - NSString *Name = [[mainWindow contentView] getAppName]; - [mainWindow setTitle:Name]; + NSString *name = [[mainWindow contentViewController] getAppName]; + if(name != nil) + { + [mainWindow setTitle:name]; + } } - (void)applicationWillTerminate:(NSNotification *)aNotification { diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/GLView.h b/Common/NativeApp/Apple/Source/Classes/OSX/GLView.h index 7ef94fb..6430751 100644 --- a/Common/NativeApp/Apple/Source/Classes/OSX/GLView.h +++ b/Common/NativeApp/Apple/Source/Classes/OSX/GLView.h @@ -9,6 +9,7 @@ #import <Cocoa/Cocoa.h> #import <QuartzCore/CVDisplayLink.h> +#include "NativeAppBase.h" @interface GLView : NSOpenGLView { CVDisplayLinkRef displayLink; @@ -16,7 +17,7 @@ -(void)stopDisplayLink; -(void)startDisplayLink; --(NSString*)getAppName; -(NSString*)getError; +-(NativeAppBase*)getApp; @end diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/GLView.m b/Common/NativeApp/Apple/Source/Classes/OSX/GLView.m index fac04b8..aafc32d 100644 --- a/Common/NativeApp/Apple/Source/Classes/OSX/GLView.m +++ b/Common/NativeApp/Apple/Source/Classes/OSX/GLView.m @@ -10,7 +10,6 @@ #include <string> #import "GLView.h" -#include "NativeAppBase.h" #ifndef SUPPORT_RETINA_RESOLUTION #define SUPPORT_RETINA_RESOLUTION 1 @@ -267,64 +266,8 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink, [super dealloc]; } -- (void)mouseMove:(NSEvent *)theEvent { - NSPoint curPoint = [self convertPoint:[theEvent locationInWindow] fromView:nil]; -#if SUPPORT_RETINA_RESOLUTION - curPoint = [self convertPointToBacking:curPoint]; -#endif - if(_theApp) - _theApp->OnMouseMove(curPoint.x, _viewRectPixels.size.height-1 - curPoint.y); -} - -- (void)mouseDown:(NSEvent *)theEvent { - [self mouseMove: theEvent]; - if(_theApp) - _theApp->OnMouseDown(1); -} - -- (void)mouseUp:(NSEvent *)theEvent { - [self mouseMove: theEvent]; - if(_theApp) - _theApp->OnMouseUp(1); -} - -- (void)rightMouseDown:(NSEvent *)theEvent { - [self mouseMove: theEvent]; - if(_theApp) - _theApp->OnMouseDown(3); -} - -- (void)rightMouseUp:(NSEvent *)theEvent { - [self mouseMove: theEvent]; - if(_theApp) - _theApp->OnMouseUp(3); -} - -- (void)mouseMoved:(NSEvent *)theEvent { - [self mouseMove: theEvent]; -} - -- (void)mouseDragged:(NSEvent *)theEvent { - [self mouseMove: theEvent]; -} - -- (void)keyDown:(NSEvent *)theEvent { - unichar c = [[theEvent charactersIgnoringModifiers] characterAtIndex:0]; - int key = 0; - switch(c){ - case NSLeftArrowFunctionKey: key = 260; break; - case NSRightArrowFunctionKey: key = 262; break; - case 0x7F: key = '\b'; break; - default: key = c; - } - if(_theApp) - _theApp->OnKeyPressed(key); - - [super keyDown:theEvent]; -} - - (BOOL)acceptsFirstResponder { - return YES; + return YES; // To make keyboard events work } - (void)stopDisplayLink @@ -337,14 +280,14 @@ static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink, CVDisplayLinkStart(displayLink); } -- (NSString*)getAppName +- (NSString*)getError { - return [NSString stringWithFormat:@"%s", _theApp ? _theApp->GetAppTitle() : ""]; + return _error.empty() ? nil : [NSString stringWithFormat:@"%s", _error.c_str()]; } -- (NSString*)getError +- (NativeAppBase*)getApp { - return _error.empty() ? nil : [NSString stringWithFormat:@"%s", _error.c_str()]; + return _theApp.get(); } @end diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/GLViewController.h b/Common/NativeApp/Apple/Source/Classes/OSX/GLViewController.h new file mode 100644 index 0000000..e709ffe --- /dev/null +++ b/Common/NativeApp/Apple/Source/Classes/OSX/GLViewController.h @@ -0,0 +1,31 @@ +/* Copyright 2015-2018 Egor Yusov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. + * + * In no event and under no legal theory, whether in tort (including negligence), + * contract, or otherwise, unless required by applicable law (such as deliberate + * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * liable for any damages, including any direct, indirect, special, incidental, + * or consequential damages of any character arising as a result of this License or + * out of the use or inability to use the software (including but not limited to damages + * for loss of goodwill, work stoppage, computer failure or malfunction, or any and + * all other commercial damages or losses), even if such Contributor has been advised + * of the possibility of such damages. + */ + +#import "ViewControllerBase.h" + +@interface GLViewController : ViewControllerBase + +-(NSString*)getAppName; +-(NSString*)getError; + +@end diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/GLViewController.mm b/Common/NativeApp/Apple/Source/Classes/OSX/GLViewController.mm new file mode 100644 index 0000000..430616f --- /dev/null +++ b/Common/NativeApp/Apple/Source/Classes/OSX/GLViewController.mm @@ -0,0 +1,47 @@ +/* Copyright 2015-2018 Egor Yusov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. + * + * In no event and under no legal theory, whether in tort (including negligence), + * contract, or otherwise, unless required by applicable law (such as deliberate + * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * liable for any damages, including any direct, indirect, special, incidental, + * or consequential damages of any character arising as a result of this License or + * out of the use or inability to use the software (including but not limited to damages + * for loss of goodwill, work stoppage, computer failure or malfunction, or any and + * all other commercial damages or losses), even if such Contributor has been advised + * of the possibility of such damages. + */ + +#import "GLViewController.h" +#import "GLView.h" + +@implementation GLViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + + _theApp = [(GLView*)self.view getApp]; +} + +-(NSString*)getAppName +{ + return [NSString stringWithFormat:@"%s (OpenGL)", _theApp ? _theApp->GetAppTitle() : ""]; +} + +-(NSString*)getError +{ + return [(GLView*)self.view getError]; +} + +@end + diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/MTKRenderer.h b/Common/NativeApp/Apple/Source/Classes/OSX/MTKRenderer.h index 53b2a63..d62dc81 100644 --- a/Common/NativeApp/Apple/Source/Classes/OSX/MTKRenderer.h +++ b/Common/NativeApp/Apple/Source/Classes/OSX/MTKRenderer.h @@ -23,11 +23,13 @@ #import <AppKit/AppKit.h> #import <MetalKit/MetalKit.h> +#include "NativeAppBase.h" // Implementation of MTKViewDelegate @interface MTKRenderer : NSObject<MTKViewDelegate> - (nonnull instancetype)initWithMetalKitView:(nonnull MTKView *)mtkView; +- (NativeAppBase*)getApp; @end diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/MTKRenderer.mm b/Common/NativeApp/Apple/Source/Classes/OSX/MTKRenderer.mm index 175c46d..75500b6 100644 --- a/Common/NativeApp/Apple/Source/Classes/OSX/MTKRenderer.mm +++ b/Common/NativeApp/Apple/Source/Classes/OSX/MTKRenderer.mm @@ -41,7 +41,7 @@ _theApp.reset(CreateApplication()); _theApp->Initialize(mtkView); } - + return self; } @@ -50,7 +50,7 @@ { NSRect viewRectPoints = [view bounds]; NSRect viewRectPixels = [view convertRectToBacking:viewRectPoints]; - + _theApp->WindowResize(viewRectPixels.size.width, viewRectPixels.size.height); } @@ -62,5 +62,10 @@ _theApp->Present(); } +- (NativeAppBase*)getApp +{ + return _theApp.get(); +} + @end diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/MetalView.h b/Common/NativeApp/Apple/Source/Classes/OSX/MetalView.h new file mode 100644 index 0000000..fedef45 --- /dev/null +++ b/Common/NativeApp/Apple/Source/Classes/OSX/MetalView.h @@ -0,0 +1,32 @@ +/* Copyright 2015-2018 Egor Yusov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. + * + * In no event and under no legal theory, whether in tort (including negligence), + * contract, or otherwise, unless required by applicable law (such as deliberate + * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * liable for any damages, including any direct, indirect, special, incidental, + * or consequential damages of any character arising as a result of this License or + * out of the use or inability to use the software (including but not limited to damages + * for loss of goodwill, work stoppage, computer failure or malfunction, or any and + * all other commercial damages or losses), even if such Contributor has been advised + * of the possibility of such damages. + */ + + +#import <MetalKit/MetalKit.h> +#include "NativeAppBase.h" + +@interface MetalView : MTKView +{ +} + +@end diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/MetalView.m b/Common/NativeApp/Apple/Source/Classes/OSX/MetalView.m new file mode 100644 index 0000000..0fd4cb7 --- /dev/null +++ b/Common/NativeApp/Apple/Source/Classes/OSX/MetalView.m @@ -0,0 +1,36 @@ +/* Copyright 2015-2018 Egor Yusov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. + * + * In no event and under no legal theory, whether in tort (including negligence), + * contract, or otherwise, unless required by applicable law (such as deliberate + * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * liable for any damages, including any direct, indirect, special, incidental, + * or consequential damages of any character arising as a result of this License or + * out of the use or inability to use the software (including but not limited to damages + * for loss of goodwill, work stoppage, computer failure or malfunction, or any and + * all other commercial damages or losses), even if such Contributor has been advised + * of the possibility of such damages. + */ + +#import "MetalView.h" + +@interface MetalView () + +@end + +@implementation MetalView + +- (BOOL)acceptsFirstResponder { + return YES; // To make keyboard events work +} + +@end diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/MetalViewController.h b/Common/NativeApp/Apple/Source/Classes/OSX/MetalViewController.h index bfe4a01..4c31feb 100644 --- a/Common/NativeApp/Apple/Source/Classes/OSX/MetalViewController.h +++ b/Common/NativeApp/Apple/Source/Classes/OSX/MetalViewController.h @@ -21,15 +21,11 @@ * of the possibility of such damages. */ -#if defined(TARGET_IOS) -#import <UIKit/UIKit.h> -#define PlatformViewController UIViewController -#else -#import <AppKit/AppKit.h> -#define PlatformViewController NSViewController -#endif +#import "ViewControllerBase.h" -// The main view controller for the app storyboard. -@interface MetalViewController : NSViewController +@interface MetalViewController : ViewControllerBase + +-(NSString*)getAppName; +-(NSString*)getError; @end diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/MetalViewController.mm b/Common/NativeApp/Apple/Source/Classes/OSX/MetalViewController.mm index a3d821f..985f442 100644 --- a/Common/NativeApp/Apple/Source/Classes/OSX/MetalViewController.mm +++ b/Common/NativeApp/Apple/Source/Classes/OSX/MetalViewController.mm @@ -21,6 +21,7 @@ * of the possibility of such damages. */ +#import "MetalView.h" #import "MetalViewController.h" #import "MTKRenderer.h" @@ -33,23 +34,32 @@ - (void)viewDidLoad { [super viewDidLoad]; - - // Set the view to use the default device + _view = (MTKView *)self.view; - + _renderer = [[MTKRenderer alloc] initWithMetalKitView:_view]; - + _theApp = [_renderer getApp]; + if(!_renderer) { NSLog(@"Renderer failed initialization"); return; } - + // Initialize our renderer with the view size [_renderer mtkView:_view drawableSizeWillChange:_view.drawableSize]; - + _view.delegate = _renderer; } -@end +-(NSString*)getAppName +{ + return [NSString stringWithFormat:@"%s (Vulkan)", _theApp ? _theApp->GetAppTitle() : ""]; +} + +-(NSString*)getError +{ + return nil; +} +@end diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/ViewControllerBase.h b/Common/NativeApp/Apple/Source/Classes/OSX/ViewControllerBase.h new file mode 100644 index 0000000..55341b0 --- /dev/null +++ b/Common/NativeApp/Apple/Source/Classes/OSX/ViewControllerBase.h @@ -0,0 +1,32 @@ +/* Copyright 2015-2018 Egor Yusov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. + * + * In no event and under no legal theory, whether in tort (including negligence), + * contract, or otherwise, unless required by applicable law (such as deliberate + * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * liable for any damages, including any direct, indirect, special, incidental, + * or consequential damages of any character arising as a result of this License or + * out of the use or inability to use the software (including but not limited to damages + * for loss of goodwill, work stoppage, computer failure or malfunction, or any and + * all other commercial damages or losses), even if such Contributor has been advised + * of the possibility of such damages. + */ + + +#import <AppKit/AppKit.h> +#include "NativeAppBase.h" + +@interface ViewControllerBase : NSViewController +{ + NativeAppBase* _theApp; +} +@end diff --git a/Common/NativeApp/Apple/Source/Classes/OSX/ViewControllerBase.mm b/Common/NativeApp/Apple/Source/Classes/OSX/ViewControllerBase.mm new file mode 100644 index 0000000..9eedb10 --- /dev/null +++ b/Common/NativeApp/Apple/Source/Classes/OSX/ViewControllerBase.mm @@ -0,0 +1,100 @@ +/* Copyright 2015-2018 Egor Yusov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF ANY PROPRIETARY RIGHTS. + * + * In no event and under no legal theory, whether in tort (including negligence), + * contract, or otherwise, unless required by applicable law (such as deliberate + * and grossly negligent acts) or agreed to in writing, shall any Contributor be + * liable for any damages, including any direct, indirect, special, incidental, + * or consequential damages of any character arising as a result of this License or + * out of the use or inability to use the software (including but not limited to damages + * for loss of goodwill, work stoppage, computer failure or malfunction, or any and + * all other commercial damages or losses), even if such Contributor has been advised + * of the possibility of such damages. + */ + +#import "ViewControllerBase.h" +#import "GLView.h" +#import "MetalView.h" + +#ifndef SUPPORT_RETINA_RESOLUTION +#define SUPPORT_RETINA_RESOLUTION 1 +#endif + +@implementation ViewControllerBase +{ + +} + +- (void)mouseMove:(NSEvent *)theEvent { + NSPoint curPoint = [self.view convertPoint:[theEvent locationInWindow] fromView:nil]; + + NSRect viewRectPoints = [self.view bounds]; +#if SUPPORT_RETINA_RESOLUTION + NSRect viewRectPixels = [self.view convertRectToBacking:viewRectPoints]; + curPoint = [self.view convertPointToBacking:curPoint]; +#else + // Points:Pixels is always 1:1 when not supporting retina resolutions + NSRect viewRectPixels = viewRectPoints; +#endif + + if(_theApp) + _theApp->OnMouseMove(curPoint.x, viewRectPixels.size.height-1 - curPoint.y); +} + +- (void)mouseDown:(NSEvent *)theEvent { + [self mouseMove: theEvent]; + if(_theApp) + _theApp->OnMouseDown(1); +} + +- (void)mouseUp:(NSEvent *)theEvent { + [self mouseMove: theEvent]; + if(_theApp) + _theApp->OnMouseUp(1); +} + +- (void)rightMouseDown:(NSEvent *)theEvent { + [self mouseMove: theEvent]; + if(_theApp) + _theApp->OnMouseDown(3); +} + +- (void)rightMouseUp:(NSEvent *)theEvent { + [self mouseMove: theEvent]; + if(_theApp) + _theApp->OnMouseUp(3); +} + +- (void)mouseMoved:(NSEvent *)theEvent { + [self mouseMove: theEvent]; +} + +- (void)mouseDragged:(NSEvent *)theEvent { + [self mouseMove: theEvent]; +} + +- (void)keyDown:(NSEvent *)theEvent { + unichar c = [[theEvent charactersIgnoringModifiers] characterAtIndex:0]; + int key = 0; + switch(c){ + case NSLeftArrowFunctionKey: key = 260; break; + case NSRightArrowFunctionKey: key = 262; break; + case 0x7F: key = '\b'; break; + default: key = c; + } + if(_theApp) + _theApp->OnKeyPressed(key); + + [super keyDown:theEvent]; +} + +@end diff --git a/Common/NativeApp/CMakeLists.txt b/Common/NativeApp/CMakeLists.txt index 148d967..d475f2e 100644 --- a/Common/NativeApp/CMakeLists.txt +++ b/Common/NativeApp/CMakeLists.txt @@ -140,8 +140,11 @@ elseif(PLATFORM_MACOS) ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/AppDelegate.m ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/FullscreenWindow.m ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/GLView.m + ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/MetalView.m ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/MetalViewController.mm + ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/GLViewController.mm ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/MTKRenderer.mm + ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/ViewControllerBase.mm ) set_source_files_properties(${APPLE_SOURCE} PROPERTIES COMPILE_FLAGS "-x objective-c++" @@ -152,8 +155,11 @@ elseif(PLATFORM_MACOS) ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/AppDelegate.h ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/FullscreenWindow.h ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/GLView.h + ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/MetalView.h ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/MetalViewController.h + ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/GLViewController.h ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/MTKRenderer.h + ${NATIVE_APP_SOURCE_DIR}/Apple/Source/Classes/OSX/ViewControllerBase.h ) set(APPLE_RESOURCES |
