Metal API bug fixes

This commit is contained in:
Jack Andersen
2015-11-08 20:45:14 -10:00
parent 2be32d6ca4
commit a13758dca5
4 changed files with 65 additions and 47 deletions

View File

@@ -13,7 +13,13 @@ public:
NSPtr() = default;
~NSPtr() {[m_ptr release];}
NSPtr(T&& recv) : m_ptr(recv) {}
NSPtr& operator=(T&& recv) {[m_ptr release]; m_ptr = recv; return *this;}
NSPtr& operator=(T&& recv)
{
NSUInteger rc = [m_ptr retainCount];
[m_ptr release];
m_ptr = recv;
return *this;
}
NSPtr(const NSPtr& other) = delete;
NSPtr(NSPtr&& other) = default;
NSPtr& operator=(const NSPtr& other) = delete;

View File

@@ -884,8 +884,9 @@ static boo::ESpecialKey translateKeycode(short code)
@implementation GraphicsContextCocoaMetalInternal
- (id)initWithBooContext:(boo::GraphicsContextCocoaMetal*)bctx
{
self = [self initWithFrame:NSMakeRect(0, 0, 100, 100)];
m_ctx = bctx->m_metalCtx;
self = [self initWithFrame:NSMakeRect(0, 0, 100, 100)];
[self setWantsLayer:YES];
resp = [[BooCocoaResponder alloc] initWithBooContext:bctx View:self];
return self;
}
@@ -896,11 +897,6 @@ static boo::ESpecialKey translateKeycode(short code)
[super dealloc];
}
- (BOOL)wantsLayer
{
return YES;
}
- (CALayer*)makeBackingLayer
{
CAMetalLayer* layer = [CAMetalLayer new];