|
Nebula
|
#include <streamactorpool.h>
Inherits Resources::ResourceLoader.
Public Member Functions | |
| StreamActorPool () | |
| constructor | |
| virtual | ~StreamActorPool () |
| destructor | |
| void | Setup () override |
| setup resource loader, initiates the placeholder and error resources if valid | |
| ActorId | CreateActorInstance (ActorResourceId id, Math::transform const &trans, Physics::ActorType type, uint64_t userData, IndexT scene=0) |
| ActorId | CreateActorInstance (PhysicsResourceId id, Math::transform const &trans, Physics::ActorType type, uint64_t userData, IndexT scene=0) |
| void | DiscardActorInstance (ActorId id) |
| destroys an actor, if the actor was created from a resource it also reduces use count of resource | |
| AggregateId | CreateAggregate (PhysicsResourceId id, Math::transform const &trans, Physics::ActorType type, uint64_t userData, IndexT scene=0) |
| void | DiscardAggregateInstance (AggregateId id) |
| PhysicsResource::PhysicsResourceUnion | GetResourceType (PhysicsResourceId id) |
Public Member Functions inherited from Resources::ResourceLoader | |
| ResourceLoader () | |
| constructor | |
| virtual | ~ResourceLoader () |
| destructor | |
| virtual void | Discard () |
| discard resource loader | |
| virtual void | LoadFallbackResources () |
| load placeholder and error resources | |
| void | ClearPendingUnloads () |
| clear pending unloads | |
| Resources::ResourceId | CreateResource (const Resources::ResourceName &res, const void *loadInfo, SizeT loadInfoSize, const Util::StringAtom &tag, std::function< void(const Resources::ResourceId)> success, std::function< void(const Resources::ResourceId)> failed, bool immediate, bool stream) |
| create a container with a tag associated with it, if no tag is provided, the resource will be untagged | |
| void | DiscardResource (const Resources::ResourceId id) |
| discard container | |
| void | DiscardByTag (const Util::StringAtom &tag) |
| discard all resources associated with a tag | |
| void | CreateListener (const Resources::ResourceId res, std::function< void(const Resources::ResourceId)> success, std::function< void(const Resources::ResourceId)> failed) |
| Create new listener on resource. | |
| const Resources::ResourceName & | GetName (const Resources::ResourceId id) const |
| get resource name | |
| const uint32_t | GetUsage (const Resources::ResourceId id) const |
| get resource usage from resource id | |
| const Util::StringAtom | GetTag (const Resources::ResourceId id) const |
| get resource tag was first registered with | |
| const Resource::State | GetState (const Resources::ResourceId id) const |
| get resource state | |
| const Resources::ResourceId | GetId (const Resources::ResourceName &name) const |
| get resource id by name, use with care | |
| const Util::Dictionary< Resources::ResourceName, Ids::Id32 > & | GetResources () const |
| get the dictionary of all resource-id pairs | |
| const bool | HasResource (const Resources::ResourceId id) const |
| returns true if pool has resource | |
| const int32_t & | GetUniqueId () const |
| get the global identifier for this pool | |
| void | ReloadResource (const Resources::ResourceName &res, std::function< void(const Resources::ResourceId)> success, std::function< void(const Resources::ResourceId)> failed) |
| reload resource using resource name | |
| void | ReloadResource (const Resources::ResourceId &id, std::function< void(const Resources::ResourceId)> success, std::function< void(const Resources::ResourceId)> failed) |
| reload resource using resource id | |
| void | SetMinLod (const Resources::ResourceId &id, const float lod, bool immediate) |
| begin updating a resources lod | |
Public Member Functions inherited from Core::RefCounted | |
| RefCounted () | |
| constructor | |
| int | GetRefCount () const |
| get the current refcount | |
| void | AddRef () |
| increment refcount by one | |
| void | Release () |
| decrement refcount and destroy object if refcount is zero | |
| bool | IsInstanceOf (const Rtti &rtti) const |
| return true if this object is instance of given class | |
| bool | IsInstanceOf (const Util::String &className) const |
| return true if this object is instance of given class by string | |
| bool | IsInstanceOf (const Util::FourCC &classFourCC) const |
| return true if this object is instance of given class by fourcc | |
| bool | IsA (const Rtti &rtti) const |
| return true if this object is instance of given class, or a derived class | |
| bool | IsA (const Util::String &rttiName) const |
| return true if this object is instance of given class, or a derived class, by string | |
| bool | IsA (const Util::FourCC &rttiFourCC) const |
| return true if this object is instance of given class, or a derived class, by fourcc | |
| const Util::String & | GetClassName () const |
| get the class name | |
| Util::FourCC | GetClassFourCC () const |
| get the class FourCC code | |
Private Types | |
| enum | { Info } |
Private Member Functions | |
| __DeclareClass (StreamActorPool) | |
| ResourceLoader::ResourceInitOutput | InitializeResource (const ResourceLoadJob &job, const Ptr< IO::Stream > &stream) override |
| perform actual load, override in subclass | |
| void | Unload (const Resources::ResourceId id) override |
| unload resource | |
Private Attributes | |
| Ids::IdAllocatorSafe< 0xFFFF, ActorInfo > | actorAllocator |
| Ids::IdAllocatorSafe< 0xFFFF, ConstraintInfo > | constraintAllocator |
| Ids::IdAllocatorSafe< 0xFFFF, AggregateInfo > | aggregateAllocator |
| Ids::IdAllocatorSafe< 0xFFFF, PhysicsResource::PhysicsResourceUnion, Ids::Id32 > | resourceAllocator |
Additional Inherited Members | |
Static Public Member Functions inherited from Core::RefCounted | |
| static void | DumpRefCountingLeaks () |
| dump refcounting leaks, call at end of application (NEBULA_DEBUG builds only!) | |
Protected Member Functions inherited from Resources::ResourceLoader | |
| virtual void | UpdateLoaderSyncState () |
| Update loader internal state. | |
| virtual ResourceStreamOutput | StreamResource (const ResourceLoadJob &job) |
| Stream resource. | |
| virtual Resource::State | ReloadFromStream (const Resources::ResourceId id, const Ptr< IO::Stream > &stream) |
| perform a reload | |
| virtual uint | LodMask (const _StreamData &stream, float lod, bool async) const |
| Create load mask based on LOD. This will be used to determine if the resoure is fully loaded. | |
| virtual void | RequestLOD (const Ids::Id32 entry, float lod) const |
| Set lod factor for resource. | |
| virtual void | Update (IndexT frameIndex) |
| update the resource loader, this is done every frame | |
| void | SetupIdFromEntry (const Ids::Id32 entry, ResourceId &cacheEntry) |
| Construct resource ID based on loader entry. | |
| void | RunCallbacks (Resource::State status, const Resources::ResourceId id) |
| run callbacks | |
| void | EnqueueJob (const std::function< void()> &func) |
| Issue async job. | |
| Resources::ResourceId | GetPlaceholder (const Resources::ResourceName &name) |
| get placeholder based on resource name | |
Protected Member Functions inherited from Core::RefCounted | |
| virtual | ~RefCounted () |
| destructor (called when refcount reaches zero) | |
Protected Attributes inherited from Resources::ResourceLoader | |
| Util::FixedArray< _PlaceholderResource > | placeholders |
| Util::StringAtom | placeholderResourceName |
| these types need to be properly initiated in a subclass Setup function | |
| Util::StringAtom | failResourceName |
| Resources::ResourceId | placeholderResourceId |
| Resources::ResourceId | failResourceId |
| bool | async |
| Ptr< ResourceLoaderThread > | streamerThread |
| std::function< void()> | preJobFunc |
| std::function< void()> | postJobFunc |
| Util::StringAtom | streamerThreadName |
| Util::Array< IndexT > | pendingLoads |
| Util::Array< _PendingResourceUnload > | pendingUnloads |
| Util::Array< _PendingStreamLod > | pendingStreamLods |
| Threading::SafeQueue< _PendingStreamLod > | pendingStreamQueue |
| Threading::SafeQueue< ResourceLoadOutput > | loadOutputs |
| Util::Array< ResourceLoadJob > | dependentJobs |
| Util::Dictionary< Resources::ResourceName, uint32_t > | ids |
| Ids::IdPool | resourceInstanceIndexPool |
| Util::FixedArray< Resources::ResourceName > | names |
| Util::FixedArray< uint32_t > | usage |
| Util::FixedArray< Util::StringAtom > | tags |
| Util::FixedArray< Resource::State > | states |
| Util::FixedArray< LoadState > | loadStates |
| Util::FixedArray< ResourceId > | resources |
| Util::FixedArray< Util::Array< _Callbacks > > | callbacks |
| Util::FixedArray< _PendingResourceLoad > | loads |
| Util::FixedArray< _LoadMetaData > | metaData |
| Util::FixedArray< _StreamData > | streamDatas |
| uint32_t | uniqueResourceId |
| int32_t | uniqueId |
| id in resource manager | |
| Threading::CriticalSection | asyncSection |
| async section to sync callbacks and pending list with thread | |
| Threading::ThreadId | creatorThread |
Static Protected Attributes inherited from Resources::ResourceLoader | |
| static const uint32_t | ResourceIndexGrow = 512 |
| Physics::StreamActorPool::StreamActorPool | ( | ) |
constructor
|
virtual |
destructor
|
private |
| ActorId Physics::StreamActorPool::CreateActorInstance | ( | ActorResourceId | id, |
| Math::transform const & | trans, | ||
| Physics::ActorType | type, | ||
| uint64_t | userData, | ||
| IndexT | scene = 0 ) |
| ActorId Physics::StreamActorPool::CreateActorInstance | ( | PhysicsResourceId | id, |
| Math::transform const & | trans, | ||
| Physics::ActorType | type, | ||
| uint64_t | userData, | ||
| IndexT | scene = 0 ) |
| AggregateId Physics::StreamActorPool::CreateAggregate | ( | PhysicsResourceId | id, |
| Math::transform const & | trans, | ||
| Physics::ActorType | type, | ||
| uint64_t | userData, | ||
| IndexT | scene = 0 ) |
| void Physics::StreamActorPool::DiscardActorInstance | ( | ActorId | id | ) |
destroys an actor, if the actor was created from a resource it also reduces use count of resource
| void Physics::StreamActorPool::DiscardAggregateInstance | ( | AggregateId | id | ) |
| PhysicsResource::PhysicsResourceUnion Physics::StreamActorPool::GetResourceType | ( | PhysicsResourceId | id | ) |
|
overrideprivatevirtual |
perform actual load, override in subclass
during the load-phase, we can safetly get the structs
Implements Resources::ResourceLoader.
|
overridevirtual |
setup resource loader, initiates the placeholder and error resources if valid
Reimplemented from Resources::ResourceLoader.
|
overrideprivatevirtual |
unload resource
Implements Resources::ResourceLoader.
|
private |
|
private |
|
private |
|
private |