33 template<
typename TShaderResourceLayout>
34 struct ShaderVariableD3DBase :
public IShaderVariable
36 ShaderVariableD3DBase(TShaderResourceLayout &ParentResLayout,
const D3DShaderResourceAttribs &ResourcesAttribs) :
37 m_ParentResLayout(ParentResLayout),
38 Attribs(ResourcesAttribs)
42 virtual IReferenceCounters* GetReferenceCounters()const override final
44 return m_ParentResLayout.GetOwner().GetReferenceCounters();
47 virtual Atomics::Long AddRef()override final
49 return m_ParentResLayout.GetOwner().AddRef();
52 virtual Atomics::Long Release()override final
54 return m_ParentResLayout.GetOwner().Release();
57 void QueryInterface(
const INTERFACE_ID &IID, IObject **ppInterface )
override final 59 if( ppInterface ==
nullptr )
62 *ppInterface =
nullptr;
63 if( IID == IID_ShaderVariable || IID ==
IID_Unknown )
66 (*ppInterface)->AddRef();
70 const D3DShaderResourceAttribs &Attribs;
73 TShaderResourceLayout &m_ParentResLayout;
Graphics engine namespace.
Definition: AdaptiveFixedBlockAllocator.h:30
static constexpr INTERFACE_ID IID_Unknown
Unknown interface.
Definition: InterfaceID.h:50