Sleeping Wombat GUI
0.100
swGUI
|
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. More...
#include <ResourceObject.h>
Public Member Functions | |
ResourceObject (int id) | |
void | SetID (unsigned int id) |
Ustawia identyfikator obiektu. More... | |
bool | CanDelete (unsigned int &objectRef) |
sprawdza czy można zwolnić zmienną More... | |
bool | CanDelete () |
Funkcja informuje czy obiekt są obiektu, które odwołują się do assetu. More... | |
void | AddAssetReference () |
Dodaje odwołanie plikowe do assetu. More... | |
void | AddObjectReference () |
Dodaje odwołanie bezpośrednie obiektu do assetu. More... | |
void | DeleteAssetReference () |
Kasuje odwołanie plikowe do assetu. More... | |
void | DeleteObjectReference () |
Kasuje odwołanie bezpośrednie obiektu do assetu. More... | |
unsigned int | GetID () |
Zwraca identyfikator nadany assetowi. More... | |
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. More... | |
Public Member Functions inherited from EngineObject | |
TypeID | GetType () const |
std::string | GetTypeName () const |
virtual void | Serialize (ISerializer *ser) const |
Implements default serialization. Serializes only declared properties. More... | |
virtual void | Deserialize (IDeserializer *deser) |
Implements default deserialization. More... | |
virtual Size | MemorySize () |
template<typename TargetType > | |
TargetType * | DynamicCast () |
Protected Member Functions | |
virtual | ~ResourceObject ()=default |
Nie każdy może skasować obiekt. More... | |
Private Member Functions | |
RTTR_ENABLE (EngineObject) | |
Private Attributes | |
unsigned int | m_objectReferences |
Liczba assetów, które sie odwołują. More... | |
unsigned int | m_uniqueId |
Unikalny identyfikator zasobu. More... | |
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.
Do każdego pojedynczego obiektu mogą istnieć wilokrotne odwołania w klasie MeshAsset, a także w obiektach dziedziczących po StaticActor oraz w modułach silnika. Z tego względu istnieje zmienna m_objectReferences, która zlicza odwołania do obiektów.
Żaden obiekt nie powinien być kasowany, dopóki istnieją do niego odwołania.
Zmienna m_uniqueId jest na początku ustawiana na 0. Jej faktyczne ustawienie odbywa robi klasa ResourceContainer. Jest to wymagane do ułatwienia obsługi wielowątkowości. Inaczej mogłyby się pokrywać identyfikatory.
|
protectedvirtualdefault |
Nie każdy może skasować obiekt.
|
inline |
Ustawia zerową liczbę odwołań.
|
inline |
Dodaje odwołanie plikowe do assetu.
Funkcje służące do zarządzania odwołaniami. Należy pilnować, aby wszystkie funkcje, które modyfikują jakiekolwiek przypisania obiektów do tekstur, materiałów i meshy, modyfikowały również ilość odwołań. Użytkownik silnika powinien mieć udostępnioną wartstwę pośredniczacą, żeby nie musiał pamiętać o odwołaniach.
|
inline |
Dodaje odwołanie bezpośrednie obiektu do assetu.
|
inline |
sprawdza czy można zwolnić zmienną
Funkcja informuje czy obiekt są obiektu, które odwołują się do assetu.
[out] | file_ref | W zmiennej zostanie umieszczona liczba referencji plikowych. |
[out] | other_ref | W zmiennej zostanie umieszczona liczba referencji bezpośrednich od obiektów. |
|
inline |
Funkcja informuje czy obiekt są obiektu, które odwołują się do assetu.
|
inline |
Kasuje odwołanie plikowe do assetu.
|
inline |
Kasuje odwołanie bezpośrednie obiektu do assetu.
|
inline |
Zwraca identyfikator nadany assetowi.
|
pure virtual |
Zwraca nazwę zasobu. To może być nazwa pliku, na podstawie którego stworzono zasób, ale zasadniczo interpretacja jest dowolna.
Implemented in MaterialObject, BufferObject, ComputeShader, EvaluationShader, ControlShader, GeometryShader, PixelShader, VertexShader, ShaderInputLayout, RenderTargetObject, TextureObject, DX11BlendingState, sw::MockBlendingState, DX11DepthStencilState, SwapChain, sw::MockDepthStencilState, DX11RasterizerState, and sw::MockRasterizerState.
|
private |
|
inline |
Ustawia identyfikator obiektu.
|
private |
Liczba assetów, które sie odwołują.
|
private |
Unikalny identyfikator zasobu.