16#include "materials/gpulang/materialtemplatesgpulang.h"
75#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:175
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:153
Ids::IdAllocator< Graphics::GraphicsEntityId, uint32_t > ObservableAllocator
Definition visibilitycontext.h:177
static Graphics::ContextEntityId Alloc()
allocate a new slice for this context
Definition visibilitycontext.cc:676
static ObservableAllocator observableAllocator
Definition visibilitycontext.h:179
static void Setup(const Graphics::GraphicsEntityId id, VisibilityEntityType entityType)
setup entity
Definition visibilitycontext.cc:633
friend class ObserverContext
Definition visibilitycontext.h:164
static void Dealloc(Graphics::ContextEntityId id)
deallocate a slice
Definition visibilitycontext.cc:687
@ Observable_NumNodes
Definition visibilitycontext.h:170
@ Observable_EntityId
Definition visibilitycontext.h:169
static void Create()
create context
Definition visibilitycontext.cc:666
Definition visibilitycontext.h:31
static Util::Queue< Jobs::JobId > runningJobs
Definition visibilitycontext.h:109
Util::Array< Math::ClipStatus::Type > VisibilityResultArray
Definition visibilitycontext.h:115
static Jobs::JobSyncId jobInternalSync3
Definition visibilitycontext.h:107
static VisibilitySystem * CreateBruteforceSystem(const BruteforceSystemLoadInfo &info)
create brute force system
Definition visibilitycontext.cc:476
static Jobs::JobSyncId jobHostSync
Definition visibilitycontext.h:108
Ids::Id32 ModelAllocId
Definition visibilitycontext.h:67
static void WaitForVisibility(const Graphics::FrameContext &ctx)
wait for all visibility jobs
Definition visibilitycontext.cc:488
static Util::Array< VisibilitySystem * > systems
keep as ordinary array of pointers, no need to have them cache aligned
Definition visibilitycontext.h:149
static Graphics::ContextEntityId Alloc()
allocate a new slice for this context
Definition visibilitycontext.cc:610
static VisibilitySystem * CreateBoxSystem(const BoxSystemLoadInfo &info)
create a box system
Definition visibilitycontext.cc:428
static const VisibilityDrawList * GetVisibilityDrawList(const Graphics::GraphicsEntityId id)
get visibility draw list
Definition visibilitycontext.cc:597
static Jobs::JobSyncId jobInternalSync2
Definition visibilitycontext.h:106
static void Discard()
discard context
Definition visibilitycontext.cc:413
static void GenerateDrawLists(const Graphics::FrameContext &ctx)
runs before frame is updated
Definition visibilitycontext.cc:389
static void Create()
create context
Definition visibilitycontext.cc:398
friend class ObservableContext
Definition visibilitycontext.h:113
friend struct ObservableGlobalState
Definition visibilitycontext.h:114
static VisibilitySystem * CreateQuadtreeSystem(const QuadtreeSystemLoadInfo &info)
create quadtree system
Definition visibilitycontext.cc:464
static VisibilitySystem * CreatePortalSystem(const PortalSystemLoadInfo &info)
create a portal system
Definition visibilitycontext.cc:440
static void Setup(const Graphics::GraphicsEntityId id, VisibilityEntityType entityType, Graphics::StageMask stageMask=0xFFFF, bool isOrtho=false)
setup entity
Definition visibilitycontext.cc:55
static VisibilitySystem * CreateOctreeSystem(const OctreeSystemLoadInfo &info)
create octree system
Definition visibilitycontext.cc:452
static void Dealloc(Graphics::ContextEntityId id)
deallocate a slice
Definition visibilitycontext.cc:619
static Jobs::JobSyncId jobInternalSync
Definition visibilitycontext.h:105
static void OnRenderDebug(uint32_t flags)
render debug
Definition visibilitycontext.cc:503
@ Observer_EntityType
Definition visibilitycontext.h:121
@ Observer_DrawList
Definition visibilitycontext.h:124
@ Observer_ResultArray
Definition visibilitycontext.h:123
@ Observer_DrawListAllocator
Definition visibilitycontext.h:125
@ Observer_IndexBuffer
Definition visibilitycontext.h:126
@ Observer_StageMask
Definition visibilitycontext.h:122
@ Observer_IsOrtho
Definition visibilitycontext.h:119
@ Observer_IndexedClipStatuses
Definition visibilitycontext.h:127
@ Observer_EntityId
Definition visibilitycontext.h:120
Ids::IdAllocator< bool, Graphics::GraphicsEntityId, VisibilityEntityType, Graphics::StageMask, VisibilityResultArray, VisibilityDrawList, Memory::ArenaAllocator< 1024 >, Util::FixedArray< uint64_t >, Util::FixedArray< Math::ClipStatus::Type > > ObserverAllocator
Definition visibilitycontext.h:140
static ObserverAllocator observerAllocator
Definition visibilitycontext.h:141
static void RunVisibilityTests(const Graphics::FrameContext &ctx)
run visibility testing
Definition visibilitycontext.cc:69
Definition visibilitysystem.h:84
uint16_t StageMask
Definition view.h:23
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
VisibilityEntityType
Definition visibility.h:36
Definition graphicscontext.h:143
Definition graphicsserver.h:31
The graphics entity is only an Id, to which we can attach GraphicsContexts.
Definition graphicsentity.h:16
Definition visibilitysystem.h:53
Definition visibilitysystem.h:79
Definition visibilitycontext.h:89
Util::Array< VisibilityModelCommand, 256 > models
Definition visibilitycontext.h:92
uint32_t packetOffset
Definition visibilitycontext.h:90
uint32_t numDrawPackets
Definition visibilitycontext.h:91
Util::Array< VisibilityDrawCommand, 1024 > draws
Definition visibilitycontext.h:93
Definition visibilitycontext.h:81
uint32_t offset
Definition visibilitycontext.h:83
uint32_t baseInstance
Definition visibilitycontext.h:85
uint32_t numInstances
Definition visibilitycontext.h:84
CoreGraphics::PrimitiveGroup primitiveGroup
Definition visibilitycontext.h:82
Definition visibilitycontext.h:97
Util::HashTable< const MaterialTemplatesGPULang::Entry *, VisibilityBatchCommand > visibilityTable
Definition visibilitycontext.h:98
Util::Array< Models::ShaderStateNode::DrawPacket * > drawPackets
Definition visibilitycontext.h:99
Definition visibilitycontext.h:70
CoreGraphics::MeshId mesh
Definition visibilitycontext.h:72
Materials::MaterialId material
Definition visibilitycontext.h:73
uint32_t offset
Definition visibilitycontext.h:71
Definition visibilitysystem.h:63
Definition visibilitysystem.h:58
Definition visibilitysystem.h:71