Cogs.Core
|
Defines an extension to Cogs.Core and provides methods to override in order to initialize extension code. More...
#include <ExtensionRegistry.h>
Public Member Functions | |
virtual bool | initializeStatic () |
Initialize extension statically. | |
virtual bool | initialize (Context *) |
Initialize extension for the given context. | |
virtual void | cleanup (Context *) |
Cleanup context bound extension content. | |
virtual const char * | getExtensionKey () const =0 |
Get the extensions unique key, used to check for extension presence and retrieve extension specific data from the context. | |
virtual void * | getSymbolPointer (const char *) const |
Get pointer to symbol defined by extension. | |
virtual const void * | getPublicAPI () const |
Retrieve a pointer to a struct containing all publicly available function pointers. | |
Defines an extension to Cogs.Core and provides methods to override in order to initialize extension code.
The extension code has two initialization entry points which can be overridden to handle extension initialization.
To create a new extension make a source file (with .cpp extension) and make sure it is included in the build. In this file, a class derived from Extension should be created, providing overrides for all the virtual methods in Extension, and make sure a single static instance is created by using the form "struct Struct {} instance;".
Definition at line 53 of file ExtensionRegistry.h.
|
inlinevirtual |
Cleanup context bound extension content.
context | Context currently being cleaned up. |
Reimplemented in Cogs::Core::Image360Extension, Cogs::Core::EchoSounder::EchoSounderExtension, Cogs::Core::EditorExtension, Cogs::Core::PotreeExtension, and Cogs::RationalReducerExtension::RationalReducerExtension.
Definition at line 80 of file ExtensionRegistry.h.
|
pure virtual |
Get the extensions unique key, used to check for extension presence and retrieve extension specific data from the context.
Implemented in Cogs::Core::PhysicsExtension, Cogs::Core::AudioExtension, Cogs::Core::AxisCube::AxisCubeExtension, Cogs::Core::BlueNoiseExtension, Cogs::Core::CasingExtension, Cogs::Core::CinematicCamera::CinematicCameraExtension, Cogs::Core::CurtainView::CurtainViewExtension, Cogs::Core::DimeLoaderExtension, Cogs::Core::DrillingExtension, Cogs::Core::EchoSounder::EchoSounderExtension, Cogs::Core::EditorExtension, Cogs::Core::GliTextureLoaderExtension, Cogs::Core::GltfLoaderExtension, Cogs::Core::GuiExtension, Cogs::Core::HeightMap::HeightMapExtension, Cogs::Core::Image360Extension, Cogs::Core::MultiphaseFlowExtension, Cogs::Core::OGC3DTilesExtension, Cogs::Core::PotreeExtension, Cogs::Core::ProceduralSkyExtension, Cogs::RationalReducerExtension::RationalReducerExtension, Cogs::Core::SeaCurrentsExtension, Cogs::Core::Streaming::StreamingExtension, Cogs::Core::TerrainExtension, Cogs::Core::TerrainProvider::TerrainProviderExtension, Cogs::Core::VectorField::VectorFieldExtension, Cogs::VideoExtension::VideoExtension, Cogs::Core::Volumetric::VolumetricExtension, and Cogs::Core::WellLogExtension.
|
inlinevirtual |
Retrieve a pointer to a struct containing all publicly available function pointers.
The returned pointer should be cast to the structure type defined by the extension.
Reimplemented in Cogs::Core::GuiExtension, and Cogs::Core::SeaCurrentsExtension.
Definition at line 100 of file ExtensionRegistry.h.
|
inlinevirtual |
Get pointer to symbol defined by extension.
Reimplemented in Cogs::Core::EchoSounder::EchoSounderExtension.
Definition at line 93 of file ExtensionRegistry.h.
|
inlinevirtual |
Initialize extension for the given context.
Override this method to provide context bound initialization. This can for example be registering entity definitions in the entity store, creating component systems in the context, or other per context tasks.
context | Context currently being initialized. |
Reimplemented in Cogs::Core::AudioExtension, Cogs::Core::AxisCube::AxisCubeExtension, Cogs::Core::BlueNoiseExtension, Cogs::Core::CasingExtension, Cogs::Core::CinematicCamera::CinematicCameraExtension, Cogs::Core::CurtainView::CurtainViewExtension, Cogs::Core::DimeLoaderExtension, Cogs::Core::DrillingExtension, Cogs::Core::EchoSounder::EchoSounderExtension, Cogs::Core::EditorExtension, Cogs::Core::GliTextureLoaderExtension, Cogs::Core::GltfLoaderExtension, Cogs::Core::GuiExtension, Cogs::Core::HeightMap::HeightMapExtension, Cogs::Core::Image360Extension, Cogs::Core::MultiphaseFlowExtension, Cogs::Core::OGC3DTilesExtension, Cogs::Core::PotreeExtension, Cogs::Core::ProceduralSkyExtension, Cogs::RationalReducerExtension::RationalReducerExtension, Cogs::Core::SeaCurrentsExtension, Cogs::Core::TerrainExtension, Cogs::Core::TerrainProvider::TerrainProviderExtension, Cogs::Core::VectorField::VectorFieldExtension, Cogs::VideoExtension::VideoExtension, Cogs::Core::Volumetric::VolumetricExtension, Cogs::Core::WellLogExtension, and Cogs::Core::PhysicsExtension.
Definition at line 73 of file ExtensionRegistry.h.
Referenced by Cogs::Core::ExtensionRegistry::loadExtensionModule().
|
inlinevirtual |
Initialize extension statically.
Override this method to provide static initialization code. This can for example be filling data tables for later use, registering types in the static type system or other tasks that are only necessary to perform once per application run.
Reimplemented in Cogs::Core::MultiphaseFlowExtension, Cogs::Core::AudioExtension, Cogs::Core::AxisCube::AxisCubeExtension, Cogs::Core::BlueNoiseExtension, Cogs::Core::CasingExtension, Cogs::Core::CinematicCamera::CinematicCameraExtension, Cogs::Core::CurtainView::CurtainViewExtension, Cogs::Core::DrillingExtension, Cogs::Core::EchoSounder::EchoSounderExtension, Cogs::Core::GuiExtension, Cogs::Core::HeightMap::HeightMapExtension, Cogs::Core::Image360Extension, Cogs::Core::OGC3DTilesExtension, Cogs::Core::PotreeExtension, Cogs::Core::ProceduralSkyExtension, Cogs::RationalReducerExtension::RationalReducerExtension, Cogs::Core::SeaCurrentsExtension, Cogs::Core::TerrainExtension, Cogs::Core::TerrainProvider::TerrainProviderExtension, Cogs::Core::VectorField::VectorFieldExtension, Cogs::VideoExtension::VideoExtension, Cogs::Core::Volumetric::VolumetricExtension, Cogs::Core::WellLogExtension, and Cogs::Core::PhysicsExtension.
Definition at line 62 of file ExtensionRegistry.h.
Referenced by Cogs::Core::ExtensionRegistry::loadExtensionModule().