Nebula
|
#include <visibilitycontext.h>
Inherits Graphics::GraphicsContext.
Classes | |
struct | VisibilityBatchCommand |
struct | VisibilityDrawCommand |
struct | VisibilityDrawList |
struct | VisibilityModelCommand |
Public Types | |
typedef Ids::Id32 | ModelAllocId |
Static Public Member Functions | |
static void | Setup (const Graphics::GraphicsEntityId id, VisibilityEntityType entityType, bool isOrtho=false) |
setup entity | |
static void | MakeDependency (const Graphics::GraphicsEntityId a, const Graphics::GraphicsEntityId b, const DependencyMode mode) |
setup a dependency between observers | |
static void | RunVisibilityTests (const Graphics::FrameContext &ctx) |
run visibility testing | |
static void | GenerateDrawLists (const Graphics::FrameContext &ctx) |
runs before frame is updated | |
static void | Create () |
create context | |
static void | Discard () |
discard context | |
static VisibilitySystem * | CreateBoxSystem (const BoxSystemLoadInfo &info) |
create a box system | |
static VisibilitySystem * | CreatePortalSystem (const PortalSystemLoadInfo &info) |
create a portal system | |
static VisibilitySystem * | CreateOctreeSystem (const OctreeSystemLoadInfo &info) |
create octree system | |
static VisibilitySystem * | CreateQuadtreeSystem (const QuadtreeSystemLoadInfo &info) |
create quadtree system | |
static VisibilitySystem * | CreateBruteforceSystem (const BruteforceSystemLoadInfo &info) |
create brute force system | |
static void | WaitForVisibility (const Graphics::FrameContext &ctx) |
wait for all visibility jobs | |
static void | OnRenderDebug (uint32_t flags) |
render debug | |
static const VisibilityDrawList * | GetVisibilityDrawList (const Graphics::GraphicsEntityId id) |
get visibility draw list | |
Static Public Attributes | |
static Jobs::JobSyncId | jobInternalSync |
static Jobs::JobSyncId | jobInternalSync2 |
static Jobs::JobSyncId | jobInternalSync3 |
static Jobs::JobSyncId | jobHostSync |
static Util::Queue< Jobs::JobId > | runningJobs |
Private Types | |
typedef Util::Array< Math::ClipStatus::Type > | VisibilityResultArray |
typedef Ids::IdAllocator< Math::mat4, bool, Graphics::GraphicsEntityId, VisibilityEntityType, VisibilityResultArray, Graphics::GraphicsEntityId, DependencyMode, VisibilityDrawList, Memory::ArenaAllocator< 1024 > > | ObserverAllocator |
Private Member Functions | |
__DeclareContext () | |
Static Private Member Functions | |
static Graphics::ContextEntityId | Alloc () |
allocate a new slice for this context | |
static void | Dealloc (Graphics::ContextEntityId id) |
deallocate a slice | |
Static Private Attributes | |
static ObserverAllocator | observerAllocator |
static Util::Array< VisibilitySystem * > | systems |
keep as ordinary array of pointers, no need to have them cache aligned | |
Friends | |
class | ObservableContext |
Additional Inherited Members | |
Public Member Functions inherited from Graphics::GraphicsContext | |
GraphicsContext () | |
constructor | |
virtual | ~GraphicsContext () |
destructor | |
Static Protected Member Functions inherited from Graphics::GraphicsContext | |
static void | InternalRegisterEntity (const Graphics::GraphicsEntityId id, Graphics::GraphicsContextState &&state) |
static void | InternalDeregisterEntity (const Graphics::GraphicsEntityId id, Graphics::GraphicsContextState &&state) |
template<class ID_ALLOCATOR > | |
static void | InternalDefragment (ID_ALLOCATOR &allocator, Graphics::GraphicsContextState &&state) |
|
private |
|
staticprivate |
allocate a new slice for this context
|
static |
create context
|
static |
create a box system
|
static |
create brute force system
|
static |
create octree system
|
static |
create a portal system
|
static |
create quadtree system
|
staticprivate |
deallocate a slice
|
static |
discard context
|
static |
runs before frame is updated
|
static |
get visibility draw list
|
static |
setup a dependency between observers
|
static |
render debug
|
static |
run visibility testing
|
static |
setup entity
|
static |
wait for all visibility jobs
|
friend |
|
static |
|
static |
|
static |
|
static |
|
staticprivate |
|
static |
|
staticprivate |
keep as ordinary array of pointers, no need to have them cache aligned