mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 17:40:39 +00:00
Added DeallocateObjCBridge(WrappedMTL<type> *)
This replaces WrappedMTLObject::Dealloc() which was not implemented or hooked up (it was a TODO). Deleted WrappedMTLObject::Dealloc() DeallocateObjCBridge calls resource manager ReleaseWrappedResource().
This commit is contained in:
committed by
Baldur Karlsson
parent
8c41ff714e
commit
c56beb77c8
@@ -40,7 +40,7 @@
|
||||
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
||||
- (void)dealloc
|
||||
{
|
||||
GetWrapped(self)->Dealloc();
|
||||
DeallocateObjCBridge(GetWrapped(self));
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
||||
- (void)dealloc
|
||||
{
|
||||
GetWrapped(self)->Dealloc();
|
||||
DeallocateObjCBridge(GetWrapped(self));
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
||||
- (void)dealloc
|
||||
{
|
||||
GetWrapped(self)->Dealloc();
|
||||
DeallocateObjCBridge(GetWrapped(self));
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
||||
- (void)dealloc
|
||||
{
|
||||
GetWrapped(self)->Dealloc();
|
||||
DeallocateObjCBridge(GetWrapped(self));
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
||||
- (void)dealloc
|
||||
{
|
||||
GetWrapped(self)->Dealloc();
|
||||
DeallocateObjCBridge(GetWrapped(self));
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
||||
- (void)dealloc
|
||||
{
|
||||
GetWrapped(self)->Dealloc();
|
||||
DeallocateObjCBridge(GetWrapped(self));
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
||||
- (void)dealloc
|
||||
{
|
||||
GetWrapped(self)->Dealloc();
|
||||
DeallocateObjCBridge(GetWrapped(self));
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
||||
- (void)dealloc
|
||||
{
|
||||
GetWrapped(self)->Dealloc();
|
||||
DeallocateObjCBridge(GetWrapped(self));
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
||||
- (void)dealloc
|
||||
{
|
||||
GetWrapped(self)->Dealloc();
|
||||
DeallocateObjCBridge(GetWrapped(self));
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
@@ -47,11 +47,6 @@ ResourceId GetResID(WrappedMTLObject *obj)
|
||||
METALCPP_WRAPPED_PROTOCOLS(IMPLEMENT_WRAPPED_TYPE_HELPERS)
|
||||
#undef IMPLEMENT_WRAPPED_TYPE_HELPERS
|
||||
|
||||
void WrappedMTLObject::Dealloc()
|
||||
{
|
||||
// TODO: call the wrapped object destructor
|
||||
}
|
||||
|
||||
MetalResourceManager *WrappedMTLObject::GetResourceManager()
|
||||
{
|
||||
return m_Device->GetResourceManager();
|
||||
|
||||
@@ -64,8 +64,6 @@ struct WrappedMTLObject
|
||||
}
|
||||
~WrappedMTLObject() = default;
|
||||
|
||||
void Dealloc();
|
||||
|
||||
MTL::Device *GetDevice() { return (MTL::Device *)m_Device; }
|
||||
MetalResourceManager *GetResourceManager();
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#pragma clang diagnostic ignored "-Wobjc-missing-super-calls"
|
||||
- (void)dealloc
|
||||
{
|
||||
GetWrapped(self)->Dealloc();
|
||||
DeallocateObjCBridge(GetWrapped(self));
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
|
||||
@@ -65,6 +65,11 @@ RDCCOMPILE_ASSERT(sizeof(NS::UInteger) == sizeof(std::uintptr_t),
|
||||
((MTL::CPPTYPE *)objc)->release(); \
|
||||
} \
|
||||
} \
|
||||
void DeallocateObjCBridge(WrappedMTL##CPPTYPE *wrappedCPP) \
|
||||
{ \
|
||||
wrappedCPP->m_ObjcBridge = NULL; \
|
||||
wrappedCPP->m_Real = NULL; \
|
||||
wrappedCPP->GetResourceManager()->ReleaseWrappedResource(wrappedCPP); \
|
||||
}
|
||||
|
||||
METALCPP_WRAPPED_PROTOCOLS(DEFINE_OBJC_HELPERS)
|
||||
|
||||
@@ -73,7 +73,8 @@ DECLARE_WRAPPED_TYPE_SERIALISE(Resource)
|
||||
{ \
|
||||
return (WrappedMTL##CPPTYPE *)cppType; \
|
||||
} \
|
||||
extern void AllocateObjCBridge(WrappedMTL##CPPTYPE *wrapped);
|
||||
extern void AllocateObjCBridge(WrappedMTL##CPPTYPE *wrapped); \
|
||||
extern void DeallocateObjCBridge(WrappedMTL##CPPTYPE *wrapped);
|
||||
|
||||
METALCPP_WRAPPED_PROTOCOLS(DECLARE_OBJC_HELPERS)
|
||||
#undef DECLARE_OBJC_HELPERS
|
||||
|
||||
Reference in New Issue
Block a user