Add CaptureState& to WrappedMTLObject constructor

This commit is contained in:
Jake Turner
2022-03-12 12:08:23 +00:00
committed by Baldur Karlsson
parent 86f4f2f70e
commit ef85b49e91
3 changed files with 21 additions and 4 deletions
+1 -1
View File
@@ -25,7 +25,7 @@
#include "metal_device.h"
WrappedMTLDevice::WrappedMTLDevice(MTL::Device *realMTLDevice, ResourceId objId)
: WrappedMTLObject(realMTLDevice, objId, this)
: WrappedMTLObject(realMTLDevice, objId, this, GetStateRef())
{
wrappedObjC = AllocateObjCWrapper(this);
m_WrappedMTLDevice = this;
+8 -1
View File
@@ -24,7 +24,7 @@
#pragma once
#include "metal_resources.h"
#include "metal_common.h"
class WrappedMTLDevice : public WrappedMTLObject
{
@@ -33,5 +33,12 @@ public:
~WrappedMTLDevice() {}
static MTL::Device *MTLCreateSystemDefaultDevice(MTL::Device *realMTLDevice);
CaptureState &GetStateRef() { return m_State; }
enum
{
TypeEnum = eResDevice
};
private:
CaptureState m_State;
};
+12 -2
View File
@@ -42,8 +42,17 @@ DECLARE_REFLECTION_ENUM(MetalResourceType);
struct WrappedMTLObject
{
WrappedMTLObject() = delete;
WrappedMTLObject(void *mtlObject, ResourceId objId, WrappedMTLDevice *wrappedMTLDevice)
: wrappedObjC(NULL), real(mtlObject), id(objId), m_WrappedMTLDevice(wrappedMTLDevice)
WrappedMTLObject(WrappedMTLDevice *wrappedMTLDevice, CaptureState &captureState)
: wrappedObjC(NULL), real(NULL), m_WrappedMTLDevice(wrappedMTLDevice), m_State(captureState)
{
}
WrappedMTLObject(void *mtlObject, ResourceId objId, WrappedMTLDevice *wrappedMTLDevice,
CaptureState &captureState)
: wrappedObjC(NULL),
real(mtlObject),
id(objId),
m_WrappedMTLDevice(wrappedMTLDevice),
m_State(captureState)
{
}
~WrappedMTLObject() = default;
@@ -52,6 +61,7 @@ struct WrappedMTLObject
void *real;
ResourceId id;
WrappedMTLDevice *m_WrappedMTLDevice;
CaptureState &m_State;
};
template <typename RealType>