Functions for creating and controlling engine native extension libraries.
| Namespace: | dmExtension |
| Include: | #include <dmsdk/extension/extension_gen.hpp> |
| TYPES | |
|---|---|
| FCallback | Extra extension callback typedef |
| FExtensionAppFinalize | Callback when the app is being finalized |
| FExtensionAppInitialize | Callback when the app is being initialized. Called... |
| FExtensionCallback | Extra extension callback typedef |
| FExtensionFinalize | Calls for the finalization of an extension |
| FExtensionInitialize | Callback when the app is being finalized |
| FExtensionOnEvent | Receives an event from the engine |
| FExtensionUpdate | Updates an extension. Called for each game frame. |
| ENUMS | |
|---|---|
| AppExitCode | engine exit code |
| CallbackType | extra callback type |
| EventID | event id enumeration |
| ExtensionAppExitCode | engine exit code |
| ExtensionCallbackType | extra callback type |
| ExtensionEventID | event id enumeration |
| ExtensionResult | result enumeration |
| Result | result enumeration |
| STRUCTS | |
|---|---|
| struct AppParams | The extension app parameters |
| struct Event | Extension event |
| struct ExtensionAppParams | The extension app parameters |
| struct ExtensionEvent | Extension event |
| struct ExtensionParams | The global parameters avalable when registering an... |
| struct Params | The global parameters avalable when registering an... |
| MACROS | |
|---|---|
| DM_DECLARE_EXTENSION() | declare a new extension |
| DM_PLATFORM_ANDROID() | Set if the platform is Android |
| DM_PLATFORM_HTML5() | Set if the platform is Html5 |
| DM_PLATFORM_IOS() | Set if the platform is iPhoneOS |
| DM_PLATFORM_LINUX() | Set if the platform is Linux |
| DM_PLATFORM_OSX() | Set if the platform is OSX |
| DM_PLATFORM_WINDOWS() | Set if the platform is Windows (on both x86 and x86_64) |
void AppParamsFinalize(ExtensionAppParams* app_params)
Finalizes an extension app params struct (deallocates internal memory)
PARAMETERS
ExtensionAppParams* |
app_params |
the params |
ExtensionAppExitCode AppParamsGetAppExitCode(dmExtension::AppParams* app_params)
get the app exit code
PARAMETERS
dmExtension::AppParams* |
app_params |
The app params sent to the extension dmExtension::AppInitialize / dmExtension::AppInitialize |
RETURNS
ExtensionAppExitCode |
engine exit code |
void* AppParamsGetContext(ExtensionAppParams params, dmhash_t name_hash)
Gets a context using a specified name hash
PARAMETERS
ExtensionAppParams |
params |
the params |
dmhash_t |
name_hash |
the context name hash |
RETURNS
void* |
The context, if it exists |
void* AppParamsGetContextByName(ExtensionAppParams params, const char* name)
Gets a context using a specified name
PARAMETERS
ExtensionAppParams |
params |
the params |
const char* |
name |
the context name |
RETURNS
void* |
The context, if it exists |
void AppParamsInitialize(ExtensionAppParams* app_params)
Initializes an extension app params struct NOTE: this is an opaque struct, do not use it's members directly!
PARAMETERS
ExtensionAppParams* |
app_params |
the params |
int AppParamsSetContext(ExtensionAppParams params, const char* name, void* context)
Sets a context using a specified name
PARAMETERS
ExtensionAppParams |
params |
the params |
const char* |
name |
the context name |
void* |
context |
the context |
RETURNS
int |
0 if successful |
void ExtensionAppParamsFinalize(ExtensionAppParams* app_params)
Finalizes an extension app params struct (deallocates internal memory)
PARAMETERS
ExtensionAppParams* |
app_params |
the params |
ExtensionAppExitCode ExtensionAppParamsGetAppExitCode(dmExtension::AppParams* app_params)
get the app exit code
PARAMETERS
dmExtension::AppParams* |
app_params |
The app params sent to the extension dmExtension::AppInitialize / dmExtension::AppInitialize |
RETURNS
ExtensionAppExitCode |
engine exit code |
void* ExtensionAppParamsGetContext(ExtensionAppParams params, dmhash_t name_hash)
Gets a context using a specified name hash
PARAMETERS
ExtensionAppParams |
params |
the params |
dmhash_t |
name_hash |
the context name hash |
RETURNS
void* |
The context, if it exists |
void* ExtensionAppParamsGetContextByName(ExtensionAppParams params, const char* name)
Gets a context using a specified name
PARAMETERS
ExtensionAppParams |
params |
the params |
const char* |
name |
the context name |
RETURNS
void* |
The context, if it exists |
void ExtensionAppParamsInitialize(ExtensionAppParams* app_params)
Initializes an extension app params struct NOTE: this is an opaque struct, do not use it's members directly!
PARAMETERS
ExtensionAppParams* |
app_params |
the params |
int ExtensionAppParamsSetContext(ExtensionAppParams params, const char* name, void* context)
Sets a context using a specified name
PARAMETERS
ExtensionAppParams |
params |
the params |
const char* |
name |
the context name |
void* |
context |
the context |
RETURNS
int |
0 if successful |
void ExtensionDescBufferSize()
Used when registering new extensions
PARAMETERS
void ExtensionParamsFinalize(ExtensionParams* app_params)
Finalizes an extension params struct (deallocates internal memory)
PARAMETERS
ExtensionParams* |
app_params |
the params |
void* ExtensionParamsGetContext(ExtensionParams params, dmhash_t name_hash)
Gets a context using a specified name hash
PARAMETERS
ExtensionParams |
params |
the params |
dmhash_t |
name_hash |
the context name hash |
RETURNS
void* |
The context, if it exists |
void* ExtensionParamsGetContextByName(ExtensionParams params, const char* name)
Gets a context using a specified name
PARAMETERS
ExtensionParams |
params |
the params |
const char* |
name |
the context name |
RETURNS
void* |
The context, if it exists |
void ExtensionParamsInitialize(ExtensionParams* app_params)
Initializes an extension params struct NOTE: this is an opaque struct, do not use it's members directly!
PARAMETERS
ExtensionParams* |
app_params |
the params |
int ExtensionParamsSetContext(ExtensionAppParams params, const char* name, void* context)
Sets a context using a specified name
PARAMETERS
ExtensionAppParams |
params |
the params |
const char* |
name |
the context name |
void* |
context |
the context |
RETURNS
int |
0 if successful |
void ExtensionRegister(void* desc, const char* desc_size, const char* name, FExtensionAppInitialize app_initialize, FExtensionAppFinalize app_finalize, FExtensionInitialize initialize, FExtensionFinalize finalize, FExtensionUpdate update, FExtensionOnEvent on_event)
Extension declaration helper. Internal function. Use DM_DECLARE_EXTENSION
PARAMETERS
void* |
desc |
A persistent buffer of at least 128 bytes. |
const char* |
desc_size |
size of buffer holding desc. in bytes |
const char* |
name |
extension name. human readble. max 16 characters long. |
FExtensionAppInitialize |
app_initialize |
app-init function. May be null |
FExtensionAppFinalize |
app_finalize |
app-final function. May be null |
FExtensionInitialize |
initialize |
init function. May not be 0 |
FExtensionFinalize |
finalize |
finalize function. May not be 0 |
FExtensionUpdate |
update |
update function. May be null |
FExtensionOnEvent |
on_event |
event callback function. May be null |
void ExtensionRegisteriOSUIApplicationDelegate(void* delegate)
Register an iOS application delegate to the engine. Multiple delegates are supported (Max 32)
PARAMETERS
void* |
delegate |
An id |
EXAMPLES
```objective-c // myextension_ios.mm idvoid ExtensionUnregisteriOSUIApplicationDelegate(void* delegate)
Deregister a previously registered iOS application delegate This function is only available on iOS.
PARAMETERS
void* |
delegate |
an id |
void ParamsFinalize(ExtensionParams* app_params)
Finalizes an extension params struct (deallocates internal memory)
PARAMETERS
ExtensionParams* |
app_params |
the params |
void* ParamsGetContext(ExtensionParams params, dmhash_t name_hash)
Gets a context using a specified name hash
PARAMETERS
ExtensionParams |
params |
the params |
dmhash_t |
name_hash |
the context name hash |
RETURNS
void* |
The context, if it exists |
void* ParamsGetContextByName(ExtensionParams params, const char* name)
Gets a context using a specified name
PARAMETERS
ExtensionParams |
params |
the params |
const char* |
name |
the context name |
RETURNS
void* |
The context, if it exists |
void ParamsInitialize(ExtensionParams* app_params)
Initializes an extension params struct NOTE: this is an opaque struct, do not use it's members directly!
PARAMETERS
ExtensionParams* |
app_params |
the params |
int ParamsSetContext(ExtensionAppParams params, const char* name, void* context)
Sets a context using a specified name
PARAMETERS
ExtensionAppParams |
params |
the params |
const char* |
name |
the context name |
void* |
context |
the context |
RETURNS
int |
0 if successful |
void RegisteriOSUIApplicationDelegate(void* delegate)
Register an iOS application delegate to the engine. Multiple delegates are supported (Max 32)
PARAMETERS
void* |
delegate |
An id |
EXAMPLES
```objective-c // myextension_ios.mm idvoid UnregisteriOSUIApplicationDelegate(void* delegate)
Deregister a previously registered iOS application delegate This function is only available on iOS.
PARAMETERS
void* |
delegate |
an id |
TYPE
struct AppParamsThe extension app parameters
MEMBERS
HConfigFile |
m_ConfigFile |
Deprecated |
ExtensionAppExitCode |
m_ExitStatus |
App exit code |
TYPE
struct ExtensionAppParamsThe extension app parameters
MEMBERS
HConfigFile |
m_ConfigFile |
Deprecated |
ExtensionAppExitCode |
m_ExitStatus |
App exit code |
TYPE
struct ExtensionParamsThe global parameters avalable when registering and unregistering an extension
MEMBERS
HConfigFile |
m_ConfigFile |
The game project settings (including overrides and plugins) |
HResourceFactory |
m_ResourceFactory |
The game resource factory / repository |
lua_State* |
m_L |
The Lua state. |
TYPE
struct ParamsThe global parameters avalable when registering and unregistering an extension
MEMBERS
HConfigFile |
m_ConfigFile |
The game project settings (including overrides and plugins) |
HResourceFactory |
m_ResourceFactory |
The game resource factory / repository |
lua_State* |
m_L |
The Lua state. |
ExtensionResult FCallback(ExtensionParams params)
Callback typedef for functions passed to RegisterCallback().
PARAMETERS
ExtensionParams |
params |
RETURNS
ExtensionResult |
ExtensionResult FExtensionAppFinalize(ExtensionAppParams params)
Callback when the app is being finalized
PARAMETERS
ExtensionAppParams |
params |
RETURNS
ExtensionResult |
EXTENSION_RESULT_OK if all went ok |
ExtensionResult FExtensionAppInitialize(ExtensionAppParams params)
Callback when the app is being initialized. Called before FExtensionInitialize
PARAMETERS
ExtensionAppParams |
params |
RETURNS
ExtensionResult |
EXTENSION_RESULT_OK if all went ok |
ExtensionResult FExtensionCallback(ExtensionParams params)
Callback typedef for functions passed to RegisterCallback().
PARAMETERS
ExtensionParams |
params |
RETURNS
ExtensionResult |
ExtensionResult FExtensionFinalize(ExtensionParams params)
Calls for the finalization of an extension
PARAMETERS
ExtensionParams |
params |
RETURNS
ExtensionResult |
EXTENSION_RESULT_OK if all went ok |
ExtensionResult FExtensionInitialize(ExtensionAppParams params)
Callback when the app is being finalized
PARAMETERS
ExtensionAppParams |
params |
RETURNS
ExtensionResult |
EXTENSION_RESULT_OK if all went ok |
void FExtensionOnEvent(ExtensionParams params, ExtensionEvent event)
Receives an event from the engine
PARAMETERS
ExtensionParams |
params |
|
ExtensionEvent |
event |
The current event |
ExtensionResult FExtensionUpdate(ExtensionParams params)
Updates an extension. Called for each game frame.
PARAMETERS
ExtensionParams |
params |
RETURNS
ExtensionResult |
EXTENSION_RESULT_OK if all went ok |
Engine exit code.
EXTENSION_APP_EXIT_CODE_NONE |
|
EXTENSION_APP_EXIT_CODE_REBOOT |
|
EXTENSION_APP_EXIT_CODE_EXIT |
Extra callback type for RegisterCallback function.
EXTENSION_CALLBACK_PRE_RENDER |
|
EXTENSION_CALLBACK_POST_RENDER |
Event id enumeration. EVENT_ID_ICONIFYAPP and EVENT_ID_DEICONIFYAPP only available on
EXTENSION_EVENT_ID_ACTIVATEAPP |
|
EXTENSION_EVENT_ID_DEACTIVATEAPP |
|
EXTENSION_EVENT_ID_ICONIFYAPP |
|
EXTENSION_EVENT_ID_DEICONIFYAPP |
|
EXTENSION_EVENT_ID_ENGINE_INITIALIZED |
|
EXTENSION_EVENT_ID_ENGINE_DELETE |
Engine exit code.
EXTENSION_APP_EXIT_CODE_NONE |
|
EXTENSION_APP_EXIT_CODE_REBOOT |
|
EXTENSION_APP_EXIT_CODE_EXIT |
Extra callback type for RegisterCallback function.
EXTENSION_CALLBACK_PRE_RENDER |
|
EXTENSION_CALLBACK_POST_RENDER |
Event id enumeration. EVENT_ID_ICONIFYAPP and EVENT_ID_DEICONIFYAPP only available on
EXTENSION_EVENT_ID_ACTIVATEAPP |
|
EXTENSION_EVENT_ID_DEACTIVATEAPP |
|
EXTENSION_EVENT_ID_ICONIFYAPP |
|
EXTENSION_EVENT_ID_DEICONIFYAPP |
|
EXTENSION_EVENT_ID_ENGINE_INITIALIZED |
|
EXTENSION_EVENT_ID_ENGINE_DELETE |
Result enumeration.
EXTENSION_RESULT_OK |
|
EXTENSION_RESULT_INIT_ERROR |
Result enumeration.
EXTENSION_RESULT_OK |
|
EXTENSION_RESULT_INIT_ERROR |
Declare and register new extension to the engine. This macro is used to declare the extension callback functions used by the engine to communicate with the extension.
EXAMPLES
Register a new extension:DM_DECLARE_EXTENSION(MyExt, "MyExt", AppInitializeMyExt, AppFinalizeMyExt, InitializeMyExt, UpdateMyExt, OnEventMyExt, FinalizeMyExt);
Set if the platform is Android
Set if the platform is Html5
Set if the platform is iPhoneOS
Set if the platform is Linux
Set if the platform is OSX
Set if the platform is Windows (on both x86 and x86_64)