12 class FileSystemWatcher;
13 class IGraphicsDevice;
36 typedef void RenderCallback(
class Context * context);
38 typedef void ReadbackCallback(
class Context * context,
const char * key,
const void * data,
int size);
40 typedef void ReadbackCallbackInternal(
class Context* context,
const CameraData *, uint32_t frame,
const char * key,
const void * data,
int size);
42 typedef void MessageCallback(
int messageId,
const void * data);
54 typedef void ComponentNotifyCallback(BridgeContext* context,
int componentTypeId,
size_t entityId,
int notification,
const void* data,
size_t dataSize);
96 Context(
const char ** variables,
int count);
110 static void initializeStatic();
115 static void cleanupStatic();
134 void initializeDynamicComponents();
141 void registerDynamicComponentType(
const StringView & typeName);
166 void setDefaultView(
ViewContext* view) { defaultView = view; }
167 ViewContext* getDefaultView()
const {
return defaultView; }
168 std::span<ViewContext*> getViews() {
return views; }
171 std::unique_ptr<struct MemoryContext>
memory;
198 std::unique_ptr<class Time>
time;
280 void * sharedSurface =
nullptr;
292 bool enableExecutionChecks =
false;
295 std::string miniDumpPath =
"./";
298 std::string miniDumpName =
"Cogs";
306 ResourceLoadCallback* resourceLoadCallback =
nullptr;
307 HierarchyChangeCallback* hierarchyChangeCallback =
nullptr;
308 RenderCallback* postSystemsUpdateCallback =
nullptr;
309 RenderCallback* preRenderCallback =
nullptr;
310 RenderCallback* postRenderCallback =
nullptr;
311 ReadbackCallback* readbackCallback =
nullptr;
312 ComponentNotifyCallback* componentNotifyCallback =
nullptr;
314 std::list<ReadbackCallbackInternal*> readbackCallbackInternal;
320 std::vector<ViewContext*> views;
The billboard system calculates data for billboard components found in the scene.
The camera system computes CameraData for every CameraDataComponent in the engine.
Base class for component systems.
Context base contains the parts of a Context that may be instantiated by static scene or model instan...
A Context instance contains all the services, systems and runtime components needed to use Cogs.
std::unique_ptr< class Services > services
Services.
std::unique_ptr< class CullingManager > cullingManager
CullingManager instance.
std::unique_ptr< class ScriptingManager > scriptingManager
ScriptingManager service instance.
std::unique_ptr< class ExtensionSystems > extensionSystems
Mapping of active extension systems.
class IRenderer * renderer
Renderer.
std::unique_ptr< class Features > features
Features service instance.
std::unique_ptr< class Random > random
Random Number service instance.
std::unique_ptr< class Bounds > bounds
Bounds service instance.
std::unique_ptr< class QualityService > qualityService
Quality service instance.
class EntityStore * store
Entity store.
std::unique_ptr< class ResourceUsageLogger > resourceUsageLogger
Resource usage logger service instance.
std::unique_ptr< class RayPicking > rayPicking
RayPicking service instance.
std::unique_ptr< struct MemoryContext > memory
Memory and allocation info.
std::unique_ptr< class TaskManager > taskManager
TaskManager service instance.
std::unique_ptr< class Variables > variables
Variables service instance.
std::unique_ptr< class Time > time
Time service instance.
std::unique_ptr< class DeferredNameResolution > deferredResolution
Deferred name resolution service instance.
std::unique_ptr< class ResourceStore > resourceStore
ResourceStore service instance.
std::unique_ptr< FileSystemWatcher > watcher
File system watcher.
std::unique_ptr< class Engine > engine
Engine instance.
std::unique_ptr< class Scene > scene
Scene structure.
The dynamic component system handles instances of components derived from DynamicComponent.
Effect manager responsible for loading, processing and activating Effect resources.
Stores top level entities for the engine.
The fog system manages fog instances, in addition to special handling a single fog component as the g...
Font manager responsible for loading, processing and lifetime of Font resources.
Renderer interface used by the engine to control registered renderer instances.
Instanced mesh render system.
Holds all LightComponent instances in the system.
The LodSystem is responsible for calculating common basic level of detail data for all entities with ...
Material instance manager handles creation, processing and lifetime for MaterialInstance resources.
Material manager handling loading and processing of Material resources.
Updates material components.
Mesh manager handling the creation, processing and lifetime of Mesh resources.
Model manager responsible for loading, processing and lifetime for Model resources.
The overlay system handles OverlayComponent instances.
The mesh render system handles MeshRenderComponents.
The scene system handles SceneComponent instances, managing hierarchical visibility and pickability b...
The submesh render system handles SubMeshRenderComponents.
The 3D text system handles Text3DComponents.
The text system handles TextComponents.
Texture manager responsible for loading, processing, activation and lifetime of Texture resources.
Represents a graphics device used to manage graphics resources and issue drawing commands.
Provides a weakly referenced view over the contents of a string.
void ResourceLoadCallback(class Context *context, int resourceType, ResourceId id, int code)
Resource loading callback.
void HierarchyChangeCallback(class Context *context, EntityId entityId)
Hierarchy change callback.
void ComponentNotifyCallback(BridgeContext *context, int componentTypeId, size_t entityId, int notification, const void *data, size_t dataSize)
Callback to receive component notifications.
Contains all Cogs related functionality.
Contains data describing a Camera instance and its derived data structured such as matrix data and vi...