17 template<
typename ResourceType >
21 ResourceType* m_resource;
26 static_assert( std::is_base_of< ResourceObject, ResourceType >::value,
"Template parameter type must inherit from ResourceObject" );
32 static_assert( std::is_base_of< ResourceObject, ResourceType >::value,
"Template parameter type must inherit from ResourceObject" );
44 AssignPointer( other.m_resource );
51 m_resource = other.m_resource;
52 other.m_resource =
nullptr;
56 void operator=( ResourceType* ptr )
65 AssignPointer( ptr.m_resource );
68 operator void*()
const
73 ResourceType* operator*()
78 ResourceType* operator->()
83 const ResourceType* operator*()
const
88 const ResourceType* operator->()
const
93 void ReleaseResource()
96 m_resource->DeleteObjectReference();
100 void AssignPointer( ResourceType* ptr )
105 m_resource->AddObjectReference();
109 ResourceType* Ptr ()
const
110 {
return m_resource; }
122 template<
typename T >
128 inline static wrapped_type
get (
const type& obj )
133 inline static type create (
const wrapped_type& value )
Definition: ResourcePtr.h:116
Wrapper for low level resources and high level assets.
Definition: ResourcePtr.h:18
Klasa ułatwiająca zarządzanie odwołaniami do assetów.Obiekty assetów (np. MaterialObject, TextureObject, VertexShader, PixelShader itp.) wymagają jakiegoś systemu zapewniającego współdzielenie między innymi obiektami.
Definition: ResourceObject.h:30