mirror of
https://github.com/AxioDL/boo.git
synced 2025-12-09 13:37:48 +00:00
NSPtr is unnecessary with ARC enabled
This commit is contained in:
@@ -89,7 +89,7 @@ public:
|
||||
if (!arg.compare("--metal"))
|
||||
{
|
||||
m_metalCtx.m_dev = MTLCreateSystemDefaultDevice();
|
||||
m_metalCtx.m_q = [m_metalCtx.m_dev.get() newCommandQueue];
|
||||
m_metalCtx.m_q = [m_metalCtx.m_dev newCommandQueue];
|
||||
Log.report(LogVisor::Info, "using Metal renderer");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -7,40 +7,6 @@
|
||||
#endif
|
||||
|
||||
#include <Availability.h>
|
||||
#include <utility>
|
||||
|
||||
template <class T>
|
||||
class NSPtr
|
||||
{
|
||||
void* m_ptr = nullptr;
|
||||
public:
|
||||
NSPtr() = default;
|
||||
~NSPtr()
|
||||
{
|
||||
T ptr = (__bridge_transfer T)m_ptr;
|
||||
(void)ptr;
|
||||
}
|
||||
NSPtr(T&& recv) {*this = std::move(recv);}
|
||||
NSPtr& operator=(T&& recv)
|
||||
{
|
||||
T old = (__bridge_transfer T)m_ptr;
|
||||
(void)old;
|
||||
m_ptr = (__bridge_retained void*)recv;
|
||||
return *this;
|
||||
}
|
||||
NSPtr(const NSPtr& other) = delete;
|
||||
NSPtr(NSPtr&& other) = default;
|
||||
NSPtr& operator=(const NSPtr& other) = delete;
|
||||
NSPtr& operator=(NSPtr&& other) = default;
|
||||
operator bool() const {return m_ptr != 0;}
|
||||
T get() const {return (__bridge T)m_ptr;}
|
||||
void reset()
|
||||
{
|
||||
T old = (__bridge_transfer T)m_ptr;
|
||||
(void)old;
|
||||
m_ptr = nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 101100
|
||||
#define BOO_HAS_METAL 1
|
||||
@@ -55,8 +21,8 @@ namespace boo
|
||||
class IWindow;
|
||||
struct MetalContext
|
||||
{
|
||||
NSPtr<id<MTLDevice>> m_dev;
|
||||
NSPtr<id<MTLCommandQueue>> m_q;
|
||||
id<MTLDevice> m_dev = nullptr;
|
||||
id<MTLCommandQueue> m_q = nullptr;
|
||||
struct Window
|
||||
{
|
||||
CAMetalLayer* m_metalLayer = nullptr;
|
||||
|
||||
@@ -1154,7 +1154,7 @@ static boo::ESpecialKey translateKeycode(short code)
|
||||
- (CALayer*)makeBackingLayer
|
||||
{
|
||||
CAMetalLayer* layer = [CAMetalLayer new];
|
||||
layer.device = m_ctx->m_dev.get();
|
||||
layer.device = m_ctx->m_dev;
|
||||
layer.pixelFormat = MTLPixelFormatBGRA8Unorm;
|
||||
layer.framebufferOnly = NO;
|
||||
return layer;
|
||||
|
||||
Reference in New Issue
Block a user