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:
Jake Turner
2022-03-15 19:01:52 +00:00
committed by Baldur Karlsson
parent 5f3203c698
commit 00e8c31255
15 changed files with 45 additions and 43 deletions
+3 -4
View File
@@ -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))
+1
View File
@@ -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);
}
+1 -1
View File
@@ -29,5 +29,5 @@ WrappedMTLFunction::WrappedMTLFunction(MTL::Function *realMTLFunction, ResourceI
WrappedMTLDevice *wrappedMTLDevice)
: WrappedMTLObject(realMTLFunction, objId, wrappedMTLDevice, wrappedMTLDevice->GetStateRef())
{
objc = AllocateObjCWrapper(this);
objcBridge = AllocateObjCBridge(this);
}
+1
View File
@@ -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
+1 -1
View File
@@ -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));
}
/*
+1 -1
View File
@@ -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);
}
+1
View File
@@ -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
+2 -2
View File
@@ -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()
+6 -6
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+10 -10
View File
@@ -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) \