16#include "materials/gpulang/materialtemplatesgpulang.h"
114#if NEBULA_GRAPHICS_DEBUG
Defines a group of primitives as a subset of a vertex buffer and index buffer plus the primitive topo...
Definition primitivegroup.h:20
Definition graphicscontext.h:165
An ID allocator associates an id with a slice in an N number of arrays.
Definition idallocator.h:39
Allocates memory in chunks.
Definition arenaallocator.h:36
Definition modelcontext.h:58
Nebula's dynamic array class.
Definition array.h:60
Implements a fixed size one-dimensional array.
Definition fixedarray.h:20
Organizes key/value pairs by a hash code.
Definition hashtable.h:42
Nebula's queue class (a FIFO container).
Definition queue.h:28
A StringAtom.
Definition stringatom.h:22
Definition visibilitycontext.h:180
Ids::IdAllocator< Graphics::GraphicsEntityId, uint32_t > ObservableAllocator
Definition visibilitycontext.h:198
static Graphics::ContextEntityId Alloc()
allocate a new slice for this context
Definition visibilitycontext.cc:681
static ObservableAllocator observableAllocator
Definition visibilitycontext.h:200
static void Setup(const Graphics::GraphicsEntityId id, VisibilityEntityType entityType)
setup entity
Definition visibilitycontext.cc:638
friend class ObserverContext
Definition visibilitycontext.h:191
static void Dealloc(Graphics::ContextEntityId id)
deallocate a slice
Definition visibilitycontext.cc:692
static void Create()
create context
Definition visibilitycontext.cc:671
Definition visibilitycontext.h:67
static Util::Queue< Jobs::JobId > runningJobs
Definition visibilitycontext.h:147
Util::Array< Math::ClipStatus::Type > VisibilityResultArray
Definition visibilitycontext.h:153
static Jobs::JobSyncId jobInternalSync3
Definition visibilitycontext.h:145
static VisibilitySystem * CreateBruteforceSystem(const BruteforceSystemLoadInfo &info)
create brute force system
Definition visibilitycontext.cc:481
static Jobs::JobSyncId jobHostSync
Definition visibilitycontext.h:146
Ids::Id32 ModelAllocId
Definition visibilitycontext.h:105
static void WaitForVisibility(const Graphics::FrameContext &ctx)
wait for all visibility jobs
Definition visibilitycontext.cc:493
static Util::Array< VisibilitySystem * > systems
keep as ordinary array of pointers, no need to have them cache aligned
Definition visibilitycontext.h:176
static Graphics::ContextEntityId Alloc()
allocate a new slice for this context
Definition visibilitycontext.cc:615
static VisibilitySystem * CreateBoxSystem(const BoxSystemLoadInfo &info)
create a box system
Definition visibilitycontext.cc:433
static const VisibilityDrawList * GetVisibilityDrawList(const Graphics::GraphicsEntityId id)
get visibility draw list
Definition visibilitycontext.cc:602
static Jobs::JobSyncId jobInternalSync2
Definition visibilitycontext.h:144
static void Discard()
discard context
Definition visibilitycontext.cc:418
static void GenerateDrawLists(const Graphics::FrameContext &ctx)
runs before frame is updated
Definition visibilitycontext.cc:394
Ids::IdAllocator< Math::mat4, bool, Graphics::GraphicsEntityId, VisibilityEntityType, VisibilityResultArray, Graphics::GraphicsEntityId, DependencyMode, VisibilityDrawList, Memory::ArenaAllocator< 1024 >, Util::FixedArray< uint64_t >, Util::FixedArray< Math::ClipStatus::Type > > ObserverAllocator
Definition visibilitycontext.h:167
static void Create()
create context
Definition visibilitycontext.cc:403
friend class ObservableContext
Definition visibilitycontext.h:151
friend struct ObservableGlobalState
Definition visibilitycontext.h:152
static VisibilitySystem * CreateQuadtreeSystem(const QuadtreeSystemLoadInfo &info)
create quadtree system
Definition visibilitycontext.cc:469
static VisibilitySystem * CreatePortalSystem(const PortalSystemLoadInfo &info)
create a portal system
Definition visibilitycontext.cc:445
static VisibilitySystem * CreateOctreeSystem(const OctreeSystemLoadInfo &info)
create octree system
Definition visibilitycontext.cc:457
static void Dealloc(Graphics::ContextEntityId id)
deallocate a slice
Definition visibilitycontext.cc:624
static Jobs::JobSyncId jobInternalSync
Definition visibilitycontext.h:143
static void OnRenderDebug(uint32_t flags)
render debug
Definition visibilitycontext.cc:508
static void Setup(const Graphics::GraphicsEntityId id, VisibilityEntityType entityType, bool isOrtho=false)
setup entity
Definition visibilitycontext.cc:54
static void MakeDependency(const Graphics::GraphicsEntityId a, const Graphics::GraphicsEntityId b, const DependencyMode mode)
setup a dependency between observers
Definition visibilitycontext.cc:67
static ObserverAllocator observerAllocator
Definition visibilitycontext.h:168
static void RunVisibilityTests(const Graphics::FrameContext &ctx)
run visibility testing
Definition visibilitycontext.cc:78
Definition visibilitysystem.h:84
uint32_t Id32
Definition id.h:138
A model resource consists of nodes, each of which inhibit some information read from an ....
Definition model.cc:10
Implements a resource loader for models.
Definition modelcontext.h:35
@ ObservableAtom_VisibilityEntityType
Definition visibilitycontext.h:50
@ ObservableAtom_NodeInstanceRange
Definition visibilitycontext.h:46
@ ObservableAtom_Instance
Definition visibilitycontext.h:49
@ ObservableAtom_GraphicsEntityId
Definition visibilitycontext.h:47
@ ObservableAtom_Active
Definition visibilitycontext.h:51
@ ObservableAtom_Transform
Definition visibilitycontext.h:48
DependencyMode
Definition visibilitycontext.h:61
@ DependencyMode_Masked
Definition visibilitycontext.h:63
@ DependencyMode_Total
Definition visibilitycontext.h:62
@ Observable_NumNodes
Definition visibilitycontext.h:57
@ Observable_EntityId
Definition visibilitycontext.h:56
@ Observer_DrawListAllocator
Definition visibilitycontext.h:39
@ Observer_IsOrtho
Definition visibilitycontext.h:32
@ Observer_DependencyMode
Definition visibilitycontext.h:37
@ Observer_DrawList
Definition visibilitycontext.h:38
@ Observer_EntityId
Definition visibilitycontext.h:33
@ Observer_ResultArray
Definition visibilitycontext.h:35
@ Observer_EntityType
Definition visibilitycontext.h:34
@ Observer_Dependency
Definition visibilitycontext.h:36
@ Observer_IndexedClipStatuses
Definition visibilitycontext.h:41
@ Observer_IndexBuffer
Definition visibilitycontext.h:40
@ Observer_Matrix
Definition visibilitycontext.h:31
VisibilityEntityType
Definition visibility.h:36
Definition graphicscontext.h:133
Definition graphicsserver.h:31
The graphics entity is only an Id, to which we can attach GraphicsContexts.
Definition graphicsentity.h:16
A 4x4 single point precision float matrix.
Definition mat4.h:49
Definition visibilitysystem.h:53
Definition visibilitysystem.h:79
Definition visibilitycontext.h:127
Util::Array< VisibilityModelCommand, 256 > models
Definition visibilitycontext.h:130
uint32_t packetOffset
Definition visibilitycontext.h:128
uint32_t numDrawPackets
Definition visibilitycontext.h:129
Util::Array< VisibilityDrawCommand, 1024 > draws
Definition visibilitycontext.h:131
Definition visibilitycontext.h:120
uint32_t offset
Definition visibilitycontext.h:121
uint32_t baseInstance
Definition visibilitycontext.h:123
uint32_t numInstances
Definition visibilitycontext.h:122
Definition visibilitycontext.h:135
Util::HashTable< const MaterialTemplatesGPULang::Entry *, VisibilityBatchCommand > visibilityTable
Definition visibilitycontext.h:136
Util::Array< Models::ShaderStateNode::DrawPacket * > drawPackets
Definition visibilitycontext.h:137
Definition visibilitycontext.h:108
CoreGraphics::MeshId mesh
Definition visibilitycontext.h:110
Materials::MaterialId material
Definition visibilitycontext.h:112
CoreGraphics::PrimitiveGroup primitiveGroup
Definition visibilitycontext.h:111
uint32_t offset
Definition visibilitycontext.h:109
Definition visibilitysystem.h:63
Definition visibilitysystem.h:58
Definition visibilitysystem.h:71