Main Page Modules Alphabetical List Data Structures Data Fields
|
Typedefs |
| typedef RwStream *(* | RwPluginDataChunkWriteCallBack )(RwStream *stream, RwInt32 binaryLength, const void *object, RwInt32 offsetInObject, RwInt32 sizeInObject) |
| typedef RwStream *(* | RwPluginDataChunkReadCallBack )(RwStream *stream, RwInt32 binaryLength, void *object, RwInt32 offsetInObject, RwInt32 sizeInObject) |
| typedef RwInt32(* | RwPluginDataChunkGetSizeCallBack )(const void *object, RwInt32 offsetInObject, RwInt32 sizeInObject) |
| typedef RwBool(* | RwPluginDataChunkAlwaysCallBack )(void *object, RwInt32 offsetInObject, RwInt32 sizeInObject) |
| typedef RwBool(* | RwPluginDataChunkRightsCallBack )(void *object, RwInt32 offsetInObject, RwInt32 sizeInObject, RwUInt32 extraData) |
| typedef void *(* | RwPluginObjectConstructor )(void *object, RwInt32 offsetInObject, RwInt32 sizeInObject) |
| typedef void *(* | RwPluginObjectCopy )(void *dstObject, const void *srcObject, RwInt32 offsetInObject, RwInt32 sizeInObject) |
| typedef void *(* | RwPluginObjectDestructor )(void *object, RwInt32 offsetInObject, RwInt32 sizeInObject) |
Functions |
| void | RwPluginRegistrySetFreeListCreateParams (RwInt32 blockSize, RwInt32 numBlocksToPrealloc) |
Detailed Description
Plugin management - Requirements
-
- Headers: rwcore.h
- Libraries: rwcore
Plugin attachment API.
RwPlugin provides an API to extend a base object with additional data to provide extra functionality. All of RenderWare's plugins extends their base object using this method.
A base object is extended by registering a unique ID along with the custom data size and a set of callbacks. For example, see RwCameraRegisterPlugin and RwCameraRegisterPluginStream. This reserves memory in the base object's memory block and attaches the callbacks to be called for general object management, such as creation and destruction. The callbacks and data size are optional. A plugin does not have to reserve memory area in the base object's memory block or provide callbacks to a particular function, such as streaming, if it is not required.
All instances of the base object will have the custom data. The custom data cannot vary in size between instances of the base object because it is embedded within the base object's memory block. If the custom data can vary in size, then this must be stored in an external memory block and referenced via a pointer within the base object's memory block.
Typedef Documentation
| typedef RwBool(* RwPluginDataChunkAlwaysCallBack)(void *object, RwInt32 offsetInObject, RwInt32 sizeInObject)
|
|
|
|
RwPluginDataChunkAlwaysCallBack represents the callback registered by RwCameraSetStreamAlwaysCallBack, etc. as the function that is called after the reading of plugin stream data is finished (useful to set up plugin data for plugins that found no data in the stream, but that cannot set up the data during the RwPluginObjectConstructor callback). - Parameters:
-
| object |
Pointer to the object containing the extension data. |
| offsetInObject |
A RwInt32 value equal to the byte offset of the extension data in the object. |
| sizeInObject |
A RwInt32 value equal to the size (in bytes) of the extension data. |
- Returns:
-
Returns TRUE if successful, FALSE otherwise.
|
| typedef RwInt32(* RwPluginDataChunkGetSizeCallBack)(const void *object, RwInt32 offsetInObject, RwInt32 sizeInObject)
|
|
|
|
RwPluginDataChunkGetSizeCallBack represents the callback registered by RwCameraRegisterPluginStream, etc. as the function that determines the binary size of the extension data. - Parameters:
-
| object |
Pointer to the object containing the extension data. |
| offsetInObject |
A RwInt32 value equal to the byte offset of the extension data in the object. |
| sizeInObject |
A RwInt32 value equal to the size (in bytes) of the extension data. |
- Returns:
-
A RwInt32 value equal to the size in bytes of the plugin extension data.
|
|
|
RwPluginDataChunkReadCallBack represents the function registered by RwCameraRegisterPluginStream, etc. as the function that reads extension data from a binary stream. - Parameters:
-
| stream |
Pointer to the binary stream |
| binaryLength |
A RwInt32 value equal to the binary size (in bytes) of the extension data that will be read from a binary stream. |
| object |
Pointer to the object containing the extension data. |
| offsetInObject |
A RwInt32 value equal to the byte offset of the extension data in the object. |
| sizeInObject |
A RwInt32 value equal to the size (in bytes) of the extension data. |
- Returns:
-
Pointer to the stream
|
|
|
RwPluginDataChunkRightsCallBack represents the callback registered by RwCameraSetStreamRightsCallBack, etc. as the function that is called after the reading of plugin stream data is finished, and the object finalised, if and only if the object's rights id was equal to that of the plugin registering the call. For convience the extension data is passed to the callback. - Parameters:
-
| object |
Pointer to the object containing the extension data. |
| offsetInObject |
A RwInt32 value equal to the byte offset of the extension data in the object. |
| sizeInObject |
A RwInt32 value equal to the size (in bytes) of the extension data. |
| extraData |
An RwUInt32 writen with the plugin id. |
- Returns:
-
Returns TRUE if successful, FALSE otherwise.
|
|
|
RwPluginDataChunkWriteCallBack represents the function registered by RwCameraRegisterPluginStream, etc. as the function that writes extension data to a binary stream. - Parameters:
-
| stream |
Pointer to the binary stream |
| binaryLength |
A RwInt32 value equal to the binary size (in bytes) of the extension data that will be written to the binary stream. |
| object |
Pointer to the object containing the extension data. |
| offsetInObject |
A RwInt32 value equal to the byte offset of the extension data in the object. |
| sizeInObject |
A RwInt32 value equal to the size (in bytes) of the extension data. |
- Returns:
-
Pointer to the stream
|
| typedef void*(* RwPluginObjectConstructor)(void *object, RwInt32 offsetInObject, RwInt32 sizeInObject)
|
|
|
|
RwPluginObjectConstructor represents the callback registered by RwEngineRegisterPlugin, RwCameraRegisterPlugin, etc. as the function that initializes either the global extension data (in the case of RwEngineRegisterPlugin) or the object extension data (in all other cases). Registered by RwCameraSetStreamAlwaysCallBack, etc. - Parameters:
-
| object |
Pointer to the object (global or otherwise) that contains the extension data. |
| offsetInObject |
A RwInt32 value equal to the byte offset of the extension data in the object. |
| sizeInObject |
A RwInt32 value equal to the size (in bytes) of the extension data. |
- Returns:
-
Pointer to the object
|
| typedef void*(* RwPluginObjectCopy)(void *dstObject, const void *srcObject, RwInt32 offsetInObject, RwInt32 sizeInObject)
|
|
|
|
RwPluginObjectCopy represents the callback registered by RwCameraRegisterPlugin, etc. as the function that copies the object extension data when an object is duplicated. - Parameters:
-
| dstObject |
Pointer to the destination object that will receive the extension data. |
| srcObject |
Pointer to the source object containing extension data. |
| offsetInObject |
A RwInt32 value equal to the byte offset of the extension data in the object. |
| sizeInObject |
A RwInt32 value equal to the size (in bytes) of the extension data. |
- Returns:
-
Pointer to the object
|
| typedef void*(* RwPluginObjectDestructor)(void *object, RwInt32 offsetInObject, RwInt32 sizeInObject)
|
|
|
|
RwPluginObjectDestructor represents the callback registered by RwEngineRegisterPlugin, RwCameraRegisterPlugin, etc. as the function that destroys either the global extension data (in the case of RwEngineRegisterPlugin) or the object extension data (in all other cases). - Parameters:
-
| object |
Pointer to the object (global or otherwise) containing the extension data. |
| offsetInObject |
A RwInt32 value equal to the byte offset of the extension data in the object. |
| sizeInObject |
A RwInt32 value equal to the size (in bytes) of the extension data. |
- Returns:
-
Pointer to the object.
|
Function Documentation
| void RwPluginRegistrySetFreeListCreateParams |
( |
RwInt32 |
blockSize, |
|
|
RwInt32 |
numBlocksToPrealloc |
|
) |
|
|
© 1993-2004 Criterion Software Limited. All rights reserved. Built Thu Feb 12 13:46:51 2004.
Send Feedback