mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-18 19:55:54 +00:00
Change ObjCWrappedMTL* to ObjCBridgeMTL*
Change: AllocateObjCWrapper -> AllocateObjCBridge IsObjCWrapped -> IsObjCBridge GetObjC -> GetObjCBridge WrappedMTLObject::objc -> WrappedMTLObject::objcBridge WrappedMTLObject::GetObjCWrappedMTLDevice -> WrappedMTLObject::GetObjCBridgeMTLDevice Added GetReal() to C++ Wrapped objects
This commit is contained in:
committed by
Baldur Karlsson
parent
5f3203c698
commit
00e8c31255
@@ -30,7 +30,7 @@
|
||||
WrappedMTLDevice::WrappedMTLDevice(MTL::Device *realMTLDevice, ResourceId objId)
|
||||
: WrappedMTLObject(realMTLDevice, objId, this, GetStateRef())
|
||||
{
|
||||
objc = AllocateObjCWrapper(this);
|
||||
objcBridge = AllocateObjCBridge(this);
|
||||
m_WrappedMTLDevice = this;
|
||||
threadSerialiserTLSSlot = Threading::AllocateTLSSlot();
|
||||
|
||||
@@ -44,7 +44,6 @@ WrappedMTLDevice *WrappedMTLDevice::MTLCreateSystemDefaultDevice(MTL::Device *re
|
||||
ResourceId objId = ResourceIDGen::GetNewUniqueID();
|
||||
WrappedMTLDevice *wrappedMTLDevice = new WrappedMTLDevice(realMTLDevice, objId);
|
||||
|
||||
// return GetObjC<MTL::Device *>(wrappedMTLDevice);
|
||||
return wrappedMTLDevice;
|
||||
}
|
||||
|
||||
@@ -80,7 +79,7 @@ WrappedMTLLibrary *WrappedMTLDevice::newDefaultLibrary()
|
||||
{
|
||||
MTL::Library *realMTLLibrary;
|
||||
|
||||
SERIALISE_TIME_CALL(realMTLLibrary = Unwrap(this)->newDefaultLibrary());
|
||||
SERIALISE_TIME_CALL(realMTLLibrary = GetReal()->newDefaultLibrary());
|
||||
WrappedMTLLibrary *wrappedMTLLibrary;
|
||||
ResourceId id = GetResourceManager()->WrapResource(realMTLLibrary, wrappedMTLLibrary);
|
||||
if(IsCaptureMode(m_State))
|
||||
@@ -127,7 +126,7 @@ WrappedMTLLibrary *WrappedMTLDevice::newLibraryWithSource(NS::String *source,
|
||||
NS::Error **error)
|
||||
{
|
||||
MTL::Library *realMTLLibrary;
|
||||
SERIALISE_TIME_CALL(realMTLLibrary = Unwrap(this)->newLibrary(source, options, error));
|
||||
SERIALISE_TIME_CALL(realMTLLibrary = GetReal()->newLibrary(source, options, error));
|
||||
WrappedMTLLibrary *wrappedMTLLibrary;
|
||||
ResourceId id = GetResourceManager()->WrapResource(realMTLLibrary, wrappedMTLLibrary);
|
||||
if(IsCaptureMode(m_State))
|
||||
|
||||
@@ -34,6 +34,7 @@ class WrappedMTLDevice : public WrappedMTLObject
|
||||
public:
|
||||
WrappedMTLDevice(MTL::Device *realMTLDevice, ResourceId objId);
|
||||
~WrappedMTLDevice() {}
|
||||
MTL::Device *GetReal() { return (MTL::Device *)real; }
|
||||
static WrappedMTLDevice *MTLCreateSystemDefaultDevice(MTL::Device *realMTLDevice);
|
||||
|
||||
WrappedMTLLibrary *newDefaultLibrary();
|
||||
|
||||
@@ -32,13 +32,13 @@
|
||||
#define __MAC_12_0 120000
|
||||
#endif
|
||||
|
||||
// Wrapper for MTLDevice
|
||||
@implementation ObjCWrappedMTLDevice
|
||||
// Bridge for MTLDevice
|
||||
@implementation ObjCBridgeMTLDevice
|
||||
|
||||
// ObjCWrappedMTLDevice specific
|
||||
// ObjCBridgeMTLDevice specific
|
||||
- (id<MTLDevice>)real
|
||||
{
|
||||
MTL::Device *real = Unwrap(self.wrappedCPP);
|
||||
MTL::Device *real = self.wrappedCPP->GetReal();
|
||||
return id<MTLDevice>(real);
|
||||
}
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
- (nullable id<MTLLibrary>)newDefaultLibrary
|
||||
{
|
||||
WrappedMTLLibrary *wrapped = self.wrappedCPP->newDefaultLibrary();
|
||||
MTL::Library *objc = GetObjC<MTL::Library *>(wrapped);
|
||||
MTL::Library *objc = GetObjCBridge<MTL::Library *>(wrapped);
|
||||
return id<MTLLibrary>(objc);
|
||||
}
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
{
|
||||
WrappedMTLLibrary *wrapped = self.wrappedCPP->newLibraryWithSource(
|
||||
(NS::String *)source, (MTL::CompileOptions *)options, (NS::Error **)error);
|
||||
MTL::Library *objc = GetObjC<MTL::Library *>(wrapped);
|
||||
MTL::Library *objc = GetObjCBridge<MTL::Library *>(wrapped);
|
||||
return (id<MTLLibrary>)(objc);
|
||||
}
|
||||
|
||||
|
||||
@@ -29,5 +29,5 @@ WrappedMTLFunction::WrappedMTLFunction(MTL::Function *realMTLFunction, ResourceI
|
||||
WrappedMTLDevice *wrappedMTLDevice)
|
||||
: WrappedMTLObject(realMTLFunction, objId, wrappedMTLDevice, wrappedMTLDevice->GetStateRef())
|
||||
{
|
||||
objc = AllocateObjCWrapper(this);
|
||||
objcBridge = AllocateObjCBridge(this);
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ public:
|
||||
WrappedMTLFunction(MTL::Function *realMTLFunction, ResourceId objId,
|
||||
WrappedMTLDevice *wrappedMTLDevice);
|
||||
|
||||
MTL::Function *GetReal() { return (MTL::Function *)real; }
|
||||
enum
|
||||
{
|
||||
TypeEnum = eResFunction
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
#include "metal_function.h"
|
||||
#include "metal_types_bridge.h"
|
||||
|
||||
// Wrapper for MTLFunction
|
||||
@implementation ObjCWrappedMTLFunction
|
||||
// Bridge for MTLFunction
|
||||
@implementation ObjCBridgeMTLFunction
|
||||
|
||||
// ObjCWrappedMTLFunction specific
|
||||
// ObjCBrdigeMTLFunction specific
|
||||
- (id<MTLFunction>)real
|
||||
{
|
||||
MTL::Function *real = Unwrap(self.wrappedCPP);
|
||||
MTL::Function *real = self.wrappedCPP->GetReal();
|
||||
return id<MTLFunction>(real);
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
- (id<MTLDevice>)device
|
||||
{
|
||||
return id<MTLDevice>(self.wrappedCPP->GetObjCWrappedMTLDevice());
|
||||
return id<MTLDevice>(self.wrappedCPP->GetObjCBridgeMTLDevice());
|
||||
}
|
||||
|
||||
- (MTLFunctionType)functionType
|
||||
|
||||
@@ -55,7 +55,7 @@ id<MTLDevice> METAL_EXPORT_NAME(MTLCreateSystemDefaultDevice)(void)
|
||||
|
||||
id<MTLDevice> device = METAL.MTLCreateSystemDefaultDevice();
|
||||
WrappedMTLDevice *wrapped = WrappedMTLDevice::MTLCreateSystemDefaultDevice((MTL::Device *)device);
|
||||
return id<MTLDevice>(GetObjC<MTL::Device *>(wrapped));
|
||||
return id<MTLDevice>(GetObjCBridge<MTL::Device *>(wrapped));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -30,5 +30,5 @@ WrappedMTLLibrary::WrappedMTLLibrary(MTL::Library *realMTLLibrary, ResourceId ob
|
||||
WrappedMTLDevice *wrappedMTLDevice)
|
||||
: WrappedMTLObject(realMTLLibrary, objId, wrappedMTLDevice, wrappedMTLDevice->GetStateRef())
|
||||
{
|
||||
objc = AllocateObjCWrapper(this);
|
||||
objcBridge = AllocateObjCBridge(this);
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ public:
|
||||
WrappedMTLLibrary(MTL::Library *realMTLLibrary, ResourceId objId,
|
||||
WrappedMTLDevice *wrappedMTLDevice);
|
||||
|
||||
MTL::Library *GetReal() { return (MTL::Library *)real; }
|
||||
enum
|
||||
{
|
||||
TypeEnum = eResLibrary
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
#include "metal_library.h"
|
||||
#include "metal_types_bridge.h"
|
||||
|
||||
// Wrapper for MTLLibrary
|
||||
@implementation ObjCWrappedMTLLibrary
|
||||
// Bridge for MTLLibrary
|
||||
@implementation ObjCBridgeMTLLibrary
|
||||
|
||||
// ObjCWrappedMTLLibrary specific
|
||||
// ObjCBridgeMTLLibrary specific
|
||||
- (id<MTLLibrary>)real
|
||||
{
|
||||
MTL::Library *real = Unwrap(self.wrappedCPP);
|
||||
MTL::Library *real = self.wrappedCPP->GetReal();
|
||||
return id<MTLLibrary>(real);
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
- (id<MTLDevice>)device
|
||||
{
|
||||
return id<MTLDevice>(self.wrappedCPP->GetObjCWrappedMTLDevice());
|
||||
return id<MTLDevice>(self.wrappedCPP->GetObjCBridgeMTLDevice());
|
||||
}
|
||||
|
||||
- (nullable id<MTLFunction>)newFunctionWithName:(NSString *)functionName
|
||||
|
||||
@@ -43,9 +43,9 @@ MetalResourceManager *WrappedMTLObject::GetResourceManager()
|
||||
return m_WrappedMTLDevice->GetResourceManager();
|
||||
}
|
||||
|
||||
MTL::Device *WrappedMTLObject::GetObjCWrappedMTLDevice()
|
||||
MTL::Device *WrappedMTLObject::GetObjCBridgeMTLDevice()
|
||||
{
|
||||
return GetObjC<MTL::Device *>(m_WrappedMTLDevice);
|
||||
return GetObjCBridge<MTL::Device *>(m_WrappedMTLDevice);
|
||||
}
|
||||
|
||||
MetalResourceRecord::~MetalResourceRecord()
|
||||
|
||||
@@ -46,7 +46,7 @@ struct WrappedMTLObject
|
||||
{
|
||||
WrappedMTLObject() = delete;
|
||||
WrappedMTLObject(WrappedMTLDevice *wrappedMTLDevice, CaptureState &captureState)
|
||||
: objc(NULL),
|
||||
: objcBridge(NULL),
|
||||
real(NULL),
|
||||
record(NULL),
|
||||
m_WrappedMTLDevice(wrappedMTLDevice),
|
||||
@@ -55,7 +55,7 @@ struct WrappedMTLObject
|
||||
}
|
||||
WrappedMTLObject(void *mtlObject, ResourceId objId, WrappedMTLDevice *wrappedMTLDevice,
|
||||
CaptureState &captureState)
|
||||
: objc(NULL),
|
||||
: objcBridge(NULL),
|
||||
real(mtlObject),
|
||||
id(objId),
|
||||
record(NULL),
|
||||
@@ -67,11 +67,11 @@ struct WrappedMTLObject
|
||||
|
||||
void Dealloc();
|
||||
|
||||
MTL::Device *GetObjCWrappedMTLDevice();
|
||||
MTL::Device *GetObjCBridgeMTLDevice();
|
||||
|
||||
MetalResourceManager *GetResourceManager();
|
||||
|
||||
void *objc;
|
||||
void *objcBridge;
|
||||
void *real;
|
||||
ResourceId id;
|
||||
MetalResourceRecord *record;
|
||||
@@ -100,12 +100,12 @@ RealType Unwrap(WrappedMTLObject *obj)
|
||||
}
|
||||
|
||||
template <typename RealType>
|
||||
RealType GetObjC(WrappedMTLObject *obj)
|
||||
RealType GetObjCBridge(WrappedMTLObject *obj)
|
||||
{
|
||||
if(obj == NULL)
|
||||
return RealType();
|
||||
|
||||
return (RealType)obj->objc;
|
||||
return (RealType)obj->objcBridge;
|
||||
}
|
||||
|
||||
// template magic voodoo to unwrap types
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
#define DECLARE_OBJC_HELPERS(CPPTYPE) \
|
||||
class WrappedMTL##CPPTYPE; \
|
||||
extern MTL::CPPTYPE *AllocateObjCWrapper(WrappedMTL##CPPTYPE *wrapped);
|
||||
extern MTL::CPPTYPE *AllocateObjCBridge(WrappedMTL##CPPTYPE *wrapped);
|
||||
|
||||
METALCPP_WRAPPED_PROTOCOLS(DECLARE_OBJC_HELPERS)
|
||||
#undef DECLARE_OBJC_HELPERS
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
// clang-format off
|
||||
#define DECLARE_OBJC_WRAPPED_INTERFACES(CPPTYPE) \
|
||||
@interface ObjCWrappedMTL##CPPTYPE : NSObject<MTL##CPPTYPE> \
|
||||
@interface ObjCBridgeMTL##CPPTYPE : NSObject<MTL##CPPTYPE> \
|
||||
@property(assign) WrappedMTL##CPPTYPE *wrappedCPP; \
|
||||
@property(readonly) id<MTL##CPPTYPE> real; \
|
||||
@end
|
||||
|
||||
@@ -28,34 +28,34 @@
|
||||
#include "metal_library.h"
|
||||
|
||||
#define DEFINE_OBJC_HELPERS(CPPTYPE) \
|
||||
static ObjCWrappedMTL##CPPTYPE *GetObjC(MTL::CPPTYPE *cppType) \
|
||||
static ObjCBridgeMTL##CPPTYPE *GetObjCBridge(MTL::CPPTYPE *cppType) \
|
||||
{ \
|
||||
if(cppType == NULL) \
|
||||
{ \
|
||||
return NULL; \
|
||||
} \
|
||||
ObjCWrappedMTL##CPPTYPE *objC = (ObjCWrappedMTL##CPPTYPE *)cppType; \
|
||||
RDCASSERT([objC isKindOfClass:[ObjCWrappedMTL##CPPTYPE class]]); \
|
||||
ObjCBridgeMTL##CPPTYPE *objC = (ObjCBridgeMTL##CPPTYPE *)cppType; \
|
||||
RDCASSERT([objC isKindOfClass:[ObjCBridgeMTL##CPPTYPE class]]); \
|
||||
return objC; \
|
||||
} \
|
||||
\
|
||||
WrappedMTL##CPPTYPE *GetWrapped(MTL::CPPTYPE *cppType) \
|
||||
{ \
|
||||
ObjCWrappedMTL##CPPTYPE *objC = GetObjC(cppType); \
|
||||
ObjCBridgeMTL##CPPTYPE *objC = GetObjCBridge(cppType); \
|
||||
return objC.wrappedCPP; \
|
||||
} \
|
||||
\
|
||||
MTL::CPPTYPE *GetReal(MTL::CPPTYPE *cppType) \
|
||||
{ \
|
||||
ObjCWrappedMTL##CPPTYPE *objC = GetObjC(cppType); \
|
||||
ObjCBridgeMTL##CPPTYPE *objC = GetObjCBridge(cppType); \
|
||||
MTL::CPPTYPE *real = (MTL::CPPTYPE *)objC.real; \
|
||||
return real; \
|
||||
} \
|
||||
\
|
||||
bool IsObjCWrapped(MTL::CPPTYPE *cppType) \
|
||||
bool IsObjCBridge(MTL::CPPTYPE *cppType) \
|
||||
{ \
|
||||
ObjCWrappedMTL##CPPTYPE *objC = (ObjCWrappedMTL##CPPTYPE *)cppType; \
|
||||
return [objC isKindOfClass:[ObjCWrappedMTL##CPPTYPE class]]; \
|
||||
ObjCBridgeMTL##CPPTYPE *objC = (ObjCBridgeMTL##CPPTYPE *)cppType; \
|
||||
return [objC isKindOfClass:[ObjCBridgeMTL##CPPTYPE class]]; \
|
||||
} \
|
||||
\
|
||||
ResourceId GetId(MTL::CPPTYPE *cppType) \
|
||||
@@ -68,9 +68,9 @@
|
||||
return wrappedCPP->id; \
|
||||
} \
|
||||
\
|
||||
MTL::CPPTYPE *AllocateObjCWrapper(WrappedMTL##CPPTYPE *wrappedCPP) \
|
||||
MTL::CPPTYPE *AllocateObjCBridge(WrappedMTL##CPPTYPE *wrappedCPP) \
|
||||
{ \
|
||||
ObjCWrappedMTL##CPPTYPE *objC = [ObjCWrappedMTL##CPPTYPE alloc]; \
|
||||
ObjCBridgeMTL##CPPTYPE *objC = [ObjCBridgeMTL##CPPTYPE alloc]; \
|
||||
objC.wrappedCPP = wrappedCPP; \
|
||||
MTL::CPPTYPE *real = (MTL::CPPTYPE *)objC.real; \
|
||||
if(real) \
|
||||
|
||||
Reference in New Issue
Block a user