From e1a8af968baa2e9519b1276065b3c4e8edf6cc63 Mon Sep 17 00:00:00 2001 From: Thomas A Date: Sat, 18 Jul 2020 08:06:13 -0700 Subject: [PATCH] Fix MTKView, add device and clearColor --- .../Metal/include/Metal/MTLRenderPass.h | 10 +++++++++ src/frameworks/Metal/include/Metal/Metal.h | 1 + src/frameworks/Metal/src/MTLRenderPass.m | 6 ++++++ src/frameworks/MetalKit/CMakeLists.txt | 1 + .../MetalKit/include/MetalKit/MTKView.h | 21 +++++++++++++++++-- src/frameworks/MetalKit/src/MTKView.m | 3 +++ 6 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 src/frameworks/Metal/include/Metal/MTLRenderPass.h create mode 100644 src/frameworks/Metal/src/MTLRenderPass.m diff --git a/src/frameworks/Metal/include/Metal/MTLRenderPass.h b/src/frameworks/Metal/include/Metal/MTLRenderPass.h new file mode 100644 index 000000000..ecceed195 --- /dev/null +++ b/src/frameworks/Metal/include/Metal/MTLRenderPass.h @@ -0,0 +1,10 @@ +#import + +typedef struct { + double red; + double green; + double blue; + double alpha; +} MTLClearColor; + +MTLClearColor MTLClearColorMake(double red, double green, double blue, double alpha); diff --git a/src/frameworks/Metal/include/Metal/Metal.h b/src/frameworks/Metal/include/Metal/Metal.h index 615543b20..02f0dbe90 100755 --- a/src/frameworks/Metal/include/Metal/Metal.h +++ b/src/frameworks/Metal/include/Metal/Metal.h @@ -142,3 +142,4 @@ along with Darling. If not, see . #import #import #import +#import diff --git a/src/frameworks/Metal/src/MTLRenderPass.m b/src/frameworks/Metal/src/MTLRenderPass.m new file mode 100644 index 000000000..d66387699 --- /dev/null +++ b/src/frameworks/Metal/src/MTLRenderPass.m @@ -0,0 +1,6 @@ +#import + +MTLClearColor MTLClearColorMake(double red, double green, double blue, double alpha) { + MTLClearColor item = { red, green, blue, alpha, }; + return item; +} diff --git a/src/frameworks/MetalKit/CMakeLists.txt b/src/frameworks/MetalKit/CMakeLists.txt index 076e84a54..ecb772dda 100644 --- a/src/frameworks/MetalKit/CMakeLists.txt +++ b/src/frameworks/MetalKit/CMakeLists.txt @@ -31,6 +31,7 @@ add_framework(MetalKit src/MTKView.m DEPENDENCIES + AppKit system objc Foundation diff --git a/src/frameworks/MetalKit/include/MetalKit/MTKView.h b/src/frameworks/MetalKit/include/MetalKit/MTKView.h index d71a63fa7..a8ee227ed 100644 --- a/src/frameworks/MetalKit/include/MetalKit/MTKView.h +++ b/src/frameworks/MetalKit/include/MetalKit/MTKView.h @@ -17,8 +17,25 @@ along with Darling. If not, see . */ -#include +#if TARGET_OS_IPHONE +// #import +// #define View UIView +#else // TARGET_OS_OSX +#import +#define View NSView +#endif -@interface MTKView : NSObject +#import +#import +#import + + +@interface MTKView : View { + id _device; + MTLClearColor _clearColor; +} + +@property(nonatomic, retain) id device; +@property(nonatomic) MTLClearColor clearColor; @end diff --git a/src/frameworks/MetalKit/src/MTKView.m b/src/frameworks/MetalKit/src/MTKView.m index fcb2c8a38..c55a80601 100644 --- a/src/frameworks/MetalKit/src/MTKView.m +++ b/src/frameworks/MetalKit/src/MTKView.m @@ -21,6 +21,9 @@ @implementation MTKView +@synthesize device = _device; +@synthesize clearColor = _clearColor; + - (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { return [NSMethodSignature signatureWithObjCTypes: "v@:"]; -- 2.51.2