Cogs.Core
Public Member Functions | List of all members
Cogs::Core::Extension Struct Referenceabstract

Defines an extension to Cogs.Core and provides methods to override in order to initialize extension code. More...

#include <ExtensionRegistry.h>

Inheritance diagram for Cogs::Core::Extension:
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::PhysicsExtension Cogs::Core::PotreeExtension Cogs::Core::ProceduralSkyExtension Cogs::Core::SeaCurrentsExtension Cogs::Core::Streaming::StreamingExtension Cogs::Core::TerrainExtension Cogs::Core::TerrainProvider::TerrainProviderExtension Cogs::Core::VectorField::VectorFieldExtension Cogs::Core::Volumetric::VolumetricExtension Cogs::Core::WellLogExtension Cogs::RationalReducerExtension::RationalReducerExtension Cogs::VideoExtension::VideoExtension

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.
 

Detailed Description

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;".

struct MyExtension : public Extension
{
void initializeStatic() override
{
// My static initialization code.
}
void initialize(Context * context)
{
// My instance initialization code.
}
const char * getExtensionKey() const { return "MyExtension"; }
} myExtensionInstance;
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition: Context.h:83
Defines an extension to Cogs.Core and provides methods to override in order to initialize extension c...

Definition at line 53 of file ExtensionRegistry.h.

Member Function Documentation

◆ cleanup()

virtual void Cogs::Core::Extension::cleanup ( Context )
inlinevirtual

Cleanup context bound extension content.

Parameters
contextContext 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.

◆ getExtensionKey()

virtual const char * Cogs::Core::Extension::getExtensionKey ( ) const
pure virtual

◆ getPublicAPI()

virtual const void * Cogs::Core::Extension::getPublicAPI ( ) const
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.

◆ getSymbolPointer()

virtual void * Cogs::Core::Extension::getSymbolPointer ( const char *  ) const
inlinevirtual

Get pointer to symbol defined by extension.

Reimplemented in Cogs::Core::EchoSounder::EchoSounderExtension.

Definition at line 93 of file ExtensionRegistry.h.

◆ initialize()

virtual bool Cogs::Core::Extension::initialize ( Context )
inlinevirtual

◆ initializeStatic()

virtual bool Cogs::Core::Extension::initializeStatic ( )
inlinevirtual

The documentation for this struct was generated from the following file: