Skip to content

Commit 2a995cb

Browse files
ProxyDataBlob: added option to keep data container alive
1 parent 4eae867 commit 2a995cb

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

Common/interface/ProxyDataBlob.hpp

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,26 @@ class ProxyDataBlob : public ObjectBase<IDataBlob>
4343
public:
4444
typedef ObjectBase<IDataBlob> TBase;
4545

46-
ProxyDataBlob(IReferenceCounters* pRefCounters, void* pData, size_t Size) :
46+
ProxyDataBlob(IReferenceCounters* pRefCounters,
47+
void* pData,
48+
size_t Size,
49+
IObject* pDataContainer = nullptr) :
4750
TBase{pRefCounters},
4851
m_pData{pData},
4952
m_pConstData{pData},
50-
m_Size{Size}
53+
m_Size{Size},
54+
m_pDataContainer{pDataContainer}
5155
{}
5256

53-
ProxyDataBlob(IReferenceCounters* pRefCounters, const void* pData, size_t Size) :
57+
ProxyDataBlob(IReferenceCounters* pRefCounters,
58+
const void* pData,
59+
size_t Size,
60+
IObject* pDataContainer = nullptr) :
5461
TBase{pRefCounters},
5562
m_pData{nullptr},
5663
m_pConstData{pData},
57-
m_Size{Size}
64+
m_Size{Size},
65+
m_pDataContainer{pDataContainer}
5866
{}
5967

6068
template <typename... ArgsType>
@@ -92,9 +100,10 @@ class ProxyDataBlob : public ObjectBase<IDataBlob>
92100
}
93101

94102
private:
95-
void* const m_pData;
96-
const void* const m_pConstData;
97-
const size_t m_Size;
103+
void* const m_pData;
104+
const void* const m_pConstData;
105+
const size_t m_Size;
106+
RefCntAutoPtr<IObject> m_pDataContainer;
98107
};
99108

100109
} // namespace Diligent

0 commit comments

Comments
 (0)