Sleeping Wombat Graphic API  1.010
swGraphicAPI
ResourceObject.h
Go to the documentation of this file.
1 #pragma once
2 
9 #include "swCommonLib/Common/EngineObject.h"
10 //#include <atomic>
11 
12 
30 class ResourceObject : public EngineObject
31 {
32  RTTR_ENABLE( EngineObject );
33  RTTR_REGISTRATION_FRIEND
34 private:
35  unsigned int m_objectReferences;
36  unsigned int m_uniqueId;
37 
38 protected:
39  virtual ~ResourceObject() = default;
40 
41 public:
44  ResourceObject( int id )
45  {
46  m_objectReferences = 0;
47  m_uniqueId = id;
48  }
49 
50 
51  inline void SetID( unsigned int id ) { m_uniqueId = id; }
52 
54  inline bool CanDelete( unsigned int& objectRef );
55  inline bool CanDelete();
56 
62  inline void AddAssetReference() { ++m_objectReferences; }
63  inline void AddObjectReference() { ++m_objectReferences; }
66 
67  inline unsigned int GetID() { return m_uniqueId; }
68 
69  virtual std::string GetResourceName() const = 0;
70 };
71 
72 
73 
74 
75 //----------------------------------------------------------------------------------------------//
76 // ResourceObject //
77 //----------------------------------------------------------------------------------------------//
78 
79 //==============================================================================================//
80 
81 
82 
89 inline bool ResourceObject::CanDelete( unsigned int& objectRef )
90 {
91  objectRef = m_objectReferences;
92 
93  if( m_objectReferences == 0 )
94  return true;
95  return false;
96 }
97 
103 {
104  if( m_objectReferences == 0 )
105  return true;
106  return false;
107 }
void AddObjectReference()
Dodaje odwołanie bezpośrednie obiektu do assetu.
Definition: ResourceObject.h:63
bool CanDelete()
Funkcja informuje czy obiekt są obiektu, które odwołują się do assetu.
Definition: ResourceObject.h:102
ResourceObject(int id)
Definition: ResourceObject.h:44
unsigned int m_uniqueId
Unikalny identyfikator zasobu.
Definition: ResourceObject.h:36
void AddAssetReference()
Dodaje odwołanie plikowe do assetu.
Definition: ResourceObject.h:62
void DeleteObjectReference()
Kasuje odwołanie bezpośrednie obiektu do assetu.
Definition: ResourceObject.h:65
unsigned int m_objectReferences
Liczba assetów, które sie odwołują.
Definition: ResourceObject.h:35
unsigned int GetID()
Zwraca identyfikator nadany assetowi.
Definition: ResourceObject.h:67
virtual std::string GetResourceName() const =0
Zwraca nazwę zasobu. To może być nazwa pliku, na podstawie którego stworzono zasób, ale zasadniczo interpretacja jest dowolna.
void SetID(unsigned int id)
Ustawia identyfikator obiektu.
Definition: ResourceObject.h:51
void DeleteAssetReference()
Kasuje odwołanie plikowe do assetu.
Definition: ResourceObject.h:64
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
virtual ~ResourceObject()=default
Nie każdy może skasować obiekt.