diff options
Diffstat (limited to 'sdk/rwsdk/include/d3d8/rt2d.h')
-rw-r--r-- | sdk/rwsdk/include/d3d8/rt2d.h | 1028 |
1 files changed, 0 insertions, 1028 deletions
diff --git a/sdk/rwsdk/include/d3d8/rt2d.h b/sdk/rwsdk/include/d3d8/rt2d.h deleted file mode 100644 index 0584d3a5..00000000 --- a/sdk/rwsdk/include/d3d8/rt2d.h +++ /dev/null @@ -1,1028 +0,0 @@ -/* - * Data structures for 2d toolkit - * - * Copyright (c) Criterion Software Limited - */ - -/*************************************************************************** - * * - * Module : rt2d.h * - * * - * Purpose : * - * * - **************************************************************************/ - -#ifndef RT2D_H -#define RT2D_H - -/** - * \defgroup rt2d Rt2d - * \ingroup 2dtools - * - * 2D Rendering Toolkit for RenderWare. - */ - -/** - * \defgroup rt2ddatatypes Data Types - * \ingroup rt2d - * - * Basic Data Types - */ - -/** - * \defgroup rt2dsub Rt2d - * \ingroup rt2d - * - * Rt2d functions - */ - -/** - * \defgroup rt2dbrush Rt2dBrush - * \ingroup rt2d - * - * Brush functions - */ - -/** - * \defgroup rt2dctm Rt2dCTM - * \ingroup rt2d - * - * Current Transformation Matrix (CTM) - */ - -/** - * \defgroup rt2ddevice Rt2dDevice - * \ingroup rt2d - * - * Camera device functions - */ - -/** - * \defgroup rt2dfont Rt2dFont - * \ingroup rt2d - * - * Font functions - */ - -/** - * \defgroup rt2dobject Rt2dObject - * \ingroup rt2d - * - * Objects - */ - -/** - * \defgroup rt2dobjectstring Rt2dObjectString - * \ingroup rt2d - * - * String functions - */ - -/** - * \defgroup rt2dpath Rt2dPath - * \ingroup rt2d - * - * Path functions - */ - -/** - * \defgroup rt2dpickregion Rt2dPickRegion - * \ingroup rt2d - * - * Pick regions - */ - -/** - * \defgroup rt2dscene Rt2dScene - * \ingroup rt2d - * - * Scenes - */ - -/** - * \defgroup rt2dshape Rt2dShape - * \ingroup rt2d - * - * Shapes - */ - -/** - * \defgroup rt2drwv2d RwV2d - * \ingroup rt2d - * - * Rt2d plugin directly extends the Core Library's RwV2d API functions. - */ - -/**************************************************************************** - Includes - */ - -#include "rpworld.h" -#include "rt2d.rpe" /* automatically generated header file */ - -/**************************************************************************** - Defines - */ - -#define Rt2dBrushSetWidthMacro(_brush, _width) \ - ( ( (_brush)->halfwidth = ((_width) * 0.5f) ), (_brush) ) - -#define Rt2dBrushGetWidthMacro(_brush) \ - ( (_brush)->halfwidth * 2.0f ) - -#define Rt2dCTMReadMacro(_result) \ - (RwMatrixCopy((_result), _rt2dCTMGet()), (_result)) - -#if defined (GCN_DRVMODEL_H) - #define VERTEXCACHESIZE 64 -#else - #define VERTEXCACHESIZE 256 -#endif - - -/**************************************************************************** - Global Types - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * rt2dShadeParameters - * typedef for a structure describing Shade Parameters - */ -typedef struct rt2dShadeParameters rt2dShadeParameters; - -/* - * - * rt2dShadeParameters - * describes Shade Parameters - */ - -#if (!defined(DOXYGEN)) -struct rt2dShadeParameters -{ - RwRGBAReal col; /* col */ - RwV2d uv; /* uv */ -}; -#endif /* (!defined(DOXYGEN)) */ - -/** - * \ingroup rt2ddatatypes - * \struct Rt2dBrush - * Brush object. - * This should be considered an opaque type. - * Use Rt2dBrush API functions to access. - */ -typedef struct Rt2dBrush Rt2dBrush; - -/* - * Rt2dBrush - * structure describing a Brush - */ -#if (!defined(DOXYGEN)) -struct Rt2dBrush -{ - rt2dShadeParameters top; - rt2dShadeParameters dtop; - rt2dShadeParameters bottom; - rt2dShadeParameters dbottom; - RwRGBA colorCache; - RwInt32 flag; - RwTexture *texture; - RpMaterial *material; - RwReal halfwidth; - RwInt32 refCount; -}; -#endif /* (!defined(DOXYGEN)) */ - -/** - * \ingroup rt2ddatatypes - * \struct Rt2dPath - * Path object. - * This should be considered an opaque type. - * Use Rt2dPath API functions to access. - */ -typedef struct Rt2dPath Rt2dPath; - -/** - * \ingroup rt2ddatatypes - * \struct Rt2dFont - * Font object. - * This should be considered an opaque type. - * Use Rt2dFont API functions to access. - */ -typedef struct Rt2dFont Rt2dFont; - -/* - * typedef used for referencing a spot in a font dictionary - */ -typedef struct _rt2dFontDictionaryNode _rt2dFontDictionaryNode; - - -typedef struct Rt2dBBox Rt2dBBox; -/** -* \ingroup rt2ddatatypes - * \struct Rt2dBBox - * structure describing a Bounding Box - */ -struct Rt2dBBox -{ - RwReal x; /**< x-coordinate of lower-left corner */ - RwReal y; /**< y-coordinate of lower-left corner */ - RwReal w; /**< Width */ - RwReal h; /**< Height */ -}; - -/** - * \ingroup rt2ddatatypes - * \struct Rt2dObject - * Structure describing a 2d Object - * This should be considered an opaque type. - * Use Rt2dObject, Rt2dScene, Rt2dShape, Rt2dPickRegion or Rt2dObjectString - * API functions to access. - */ -typedef struct Rt2dObject Rt2dObject; - -/* - * typedef for a structure describing a scene of shapes (opaque) - */ -typedef struct _rt2dScene _rt2dScene; - -/* - * typedef for a structure describing the depth of an object - */ -typedef struct _rt2dDepthOfObject _rt2dDepthOfObject; - -#if (!defined(DOXYGEN)) -/* - * typedef for a structure describing the depth of an object - */ -struct _rt2dDepthOfObject -{ - Rt2dObject *object; - RwInt32 depth; -}; - -/* - * structure describing a scene of shapes - */ -struct _rt2dScene -{ - RwSList *objects; /* collection of objects in scene */ - RwInt32 objectCount; /* number of objects */ - RwSList *depths; /* depths for depthsort */ - RwBool isDirtyDepths; /* depthsort needs updating */ -}; -#endif /* (!defined(DOXYGEN)) */ - -/* - * typedef for a structure describing a shape (opaque) - */ -typedef struct _rt2dShape _rt2dShape; - -#if (!defined(DOXYGEN)) -typedef struct _rt2dShapeRep _rt2dShapeRep; -struct _rt2dShapeRep -{ - RwSList *nodes; /* individual stroked/filled regions of the shape */ - RwUInt32 refCount; /* number of shapes referencing this rep */ - RpGeometry *geometry; /* Shareable geometry */ -}; - -extern _rt2dShapeRep * - _rt2dShapeRepCreate(); - -extern RwBool -_rt2dShapeRepDestroy(_rt2dShapeRep *); - -extern RwUInt32 -_rt2dShapeRepAddRef(_rt2dShapeRep *); - -typedef struct _rt2dSceneResourcePool _rt2dSceneResourcePool; -struct _rt2dSceneResourcePool -{ - _rt2dShapeRep **shapeReps; - RwUInt32 numShapeReps; -}; - -extern RwBool -_rt2dSceneResourcePoolFindShapeRep(const _rt2dSceneResourcePool * pool, - const _rt2dShapeRep * rep, RwInt32 * npIndex); - -struct _rt2dShape -{ - _rt2dShapeRep *rep; - RwRGBA *colorCache; /* Shape's color cache */ - RpAtomic *atomic; /* Atomic repn */ -}; - -/* - * typedef for a structure describing a pick region that can be tested for point inclusion (opaque) - */ -typedef struct _rt2dPickRegion _rt2dPickRegion; - -/* - * structure describing a pick region that can be tested for point inclusion - */ -struct _rt2dPickRegion -{ - Rt2dPath *path; /* path that defines region for testing */ - Rt2dBBox bbox; /* bounding box of path */ - RwMatrix transformation; - /* ivnert transformation used to place the pick region */ -}; - -/* - * structure describing a renderable text string - */ - -struct _rt2dObjectString -{ - RwChar *textString; /* Text string to be rendered */ - Rt2dBrush *brush; /* Brush to be used to draw text */ - RwInt32 maxLength; /* Maximum string length before reallocation, excluding null */ - RwReal height; /* Font rendering Height */ - _rt2dFontDictionaryNode *font; /* Dictionary node identifying font to be used */ -}; -#endif /* (!defined(DOXYGEN)) */ - -/* - * typedef for a renderable string - */ -typedef struct _rt2dObjectString _rt2dObjectString; -/** - * \ingroup rt2ddatatypes - * \ref Rt2dObjectTypeEnum - * enumeration describing types of Rt2dObject - */ -enum Rt2dObjectTypeEnum { - rt2DOBJECTTYPEOBJECT=0, /**<An untyped (yet) object */ - rt2DOBJECTTYPESCENE, /**<Container of objects */ - rt2DOBJECTTYPESHAPE, /**<Shape object */ - rt2DOBJECTTYPEPICKREGION, /**<Pick region object */ - rt2DOBJECTTYPEOBJECTSTRING, /**<Text string object */ - rt2DOBJECTTYPEFORCEENUMSIZEINT = RWFORCEENUMSIZEINT /* Ensures sizeof(enum) == sizeof(RwInt32)) */ -}; - -typedef union _rt2dObjectdata _rt2dObjectdata; - -#if (!defined(DOXYGEN)) -union _rt2dObjectdata -{ - _rt2dShape shape; - _rt2dScene scene; - _rt2dPickRegion pickRegion; - _rt2dObjectString objectString; -}; - -/* - * A base structure for forming a hierarchy of 2D shapes - */ - -#define Rt2dObjectIsLocked 0x00000001 -#define Rt2dObjectDirtyLTM 0x00000002 -#define Rt2dObjectVisible 0x00000004 -#define Rt2dObjectDirtyColor 0x00000008 - -#define Rt2dObjectStringGotNoFonts 0x01000000 - -struct Rt2dObject -{ - RwInt32 type; /* tag identifying type of object */ - RwInt32 depth; /* z-order of object under parent */ - RwInt32 flag; /* ... */ - RwMatrix MTM; /* local transformation matrix for object */ - RwMatrix LTM; /* global transformation matrix for object */ - RwRGBAReal colorMult; /* color multiply applied to object */ - RwRGBAReal colorOffs; /* color offset applied to object */ - _rt2dObjectdata data; -}; -#endif /* (!defined(DOXYGEN)) */ - - -/** - * \ingroup rt2ddatatypes - * \ref Rt2dObjectCallBack - * typedef for a callback on an object in a collection - * - * \param object is a specific object - * \param parent is the containing scene - * \param data is user data - * - * \return return value is ignored - */ -typedef Rt2dObject *(* Rt2dObjectCallBack)(Rt2dObject *object, Rt2dObject *parent, void *data); - -/** - * \ingroup rt2ddatatypes - * \ref Rt2dFontCallBackRead - * Rt2dFontCallBackRead represents the function used by Rt2dFontRead to read - * the specified font from a disk file. This function should return a - * pointer to the font to indicate success. The returned font is owned by - * the Rt2d internal font dictionary, and is destroyed on calling - * \ref Rt2dClose - * - * \param name is the name of the font to read - * - * \return return the font if successful, NULL otherwise - * - * \see Rt2dFontSetReadCallBack - * \see Rt2dFontGetReadCallBack - */ -typedef Rt2dFont*(* Rt2dFontCallBackRead)(const RwChar *name); - -/** - * \ingroup rt2ddatatypes - * \ref Rt2dJustificationType - * enumeration describing Justification - */ -enum Rt2dJustificationType -{ - rt2dJUSTIFYLEFT, /**<Left-justification */ - rt2dJUSTIFYCENTER, /**<Center-justification */ - rt2dJUSTIFYRIGHT, /**<Right-justification */ - rt2DJUSTIFICATIONTYPEFORCEENUMSIZEINT = RWFORCEENUMSIZEINT /* Ensures sizeof(enum) == sizeof(RwInt32)) */ -}; - -/* - * Rt2dObjectEnum - * typedef for a enumeration describing an object type enclosed by Rt2dObject - */ -typedef enum Rt2dJustificationType Rt2dJustificationType; - -/** - * \ingroup rt2ddatatypes - * \ref Rt2dShapeNodeFlag - * Passed to \ref Rt2dShapeAddNode, these flags specify - * the type and properties of the path. - */ -enum Rt2dShapeNodeFlag -{ - rt2dSHAPENODEFLAGNONE = 0x0000, - rt2dSHAPENODEFLAGSOLID = 0x0001, /**< Shape's node is a solid, not outline */ - rt2dSHAPENODEFLAGFORCEENUMSIZEINT = RWFORCEENUMSIZEINT /* Ensure sizeof(enum) == sizeof(RwInt32) */ -}; - - -#if (! ( defined(RWDEBUG) || defined(RWSUPPRESSINLINE) )) - -#define Rt2dBrushSetWidth(_brush, _width) \ - Rt2dBrushSetWidthMacro(_brush, _width) - -#define Rt2dBrushGetWidth(_brush) \ - Rt2dBrushGetWidthMacro(_brush) - -#define Rt2dCTMRead(_result) \ - Rt2dCTMReadMacro(_result) - -#endif /* (! ( defined(RWDEBUG) || defined(RWSUPPRESSINLINE) )) */ - -/**************************************************************************** - Function prototypes - */ -extern void -Rt2dBrushSetFreeListCreateParams( RwInt32 blockSize, RwInt32 numBlocksToPrealloc ); - -extern void -Rt2dFontSetFreeListCreateParams( RwInt32 blockSize, RwInt32 numBlocksToPrealloc ); - -extern void -Rt2dFontDictNodeSetFreeListCreateParams( RwInt32 blockSize, RwInt32 numBlocksToPrealloc ); - -extern void -Rt2dObjectSetFreeListCreateParams( RwInt32 blockSize, RwInt32 numBlocksToPrealloc ); - -extern void -Rt2dPathSetFreeListCreateParams( RwInt32 blockSize, RwInt32 numBlocksToPrealloc ); - -/* - * INITIALIZE - */ -extern void -Rt2dOpen(RwCamera *cam); - -extern void -Rt2dClose(void); - -extern void -Rt2dTriVertSetFreeListCreateParams( RwInt32 blockSize, RwInt32 numBlocksToPrealloc ); - -extern void -Rt2dTriPolySetFreeListCreateParams( RwInt32 blockSize, RwInt32 numBlocksToPrealloc ); - -/* - * PATHS - */ -extern Rt2dPath * -Rt2dPathCreate(void); - -extern RwBool -Rt2dPathDestroy(Rt2dPath *path); - -extern Rt2dPath * -Rt2dPathLock(Rt2dPath *path); - -extern Rt2dPath * -Rt2dPathUnlock(Rt2dPath *path); - -extern RwBool -Rt2dPathIsLocked(Rt2dPath *path); - -extern RwUInt32 -Rt2dPathStreamGetSize(Rt2dPath *path); - -extern Rt2dPath * -Rt2dPathStreamWrite(Rt2dPath *path, RwStream *stream); - -extern Rt2dPath * -Rt2dPathStreamRead(RwStream *stream); - -extern Rt2dPath * -Rt2dPathEmpty(Rt2dPath *path); - -extern Rt2dPath * -Rt2dPathCopy(Rt2dPath *dst, const Rt2dPath *src); - -extern Rt2dPath * -Rt2dPathInset(Rt2dPath *path, RwReal inset); - -extern Rt2dPath * -Rt2dPathMoveto(Rt2dPath *path, RwReal x, RwReal y); - -extern Rt2dPath * -Rt2dPathLineto(Rt2dPath *path, RwReal x, RwReal y); - -extern Rt2dPath * -Rt2dPathRLineto(Rt2dPath *path, RwReal x, RwReal y); - -extern Rt2dPath * -Rt2dPathCurveto(Rt2dPath *path, RwReal x1, RwReal y1, RwReal x2, RwReal y2, RwReal x3, RwReal y3); - -extern Rt2dPath * -Rt2dPathRCurveto(Rt2dPath *path, RwReal x1, RwReal y1, RwReal x2, RwReal y2, RwReal x3, RwReal y3); - -extern Rt2dPath * -Rt2dPathClose(Rt2dPath *path); - -extern Rt2dPath * -Rt2dPathRect(Rt2dPath *path, RwReal x, RwReal y, RwReal w, RwReal h); - -extern Rt2dPath * -Rt2dPathRoundRect(Rt2dPath *path, RwReal x, RwReal y, RwReal w, RwReal h, RwReal radius); - -extern Rt2dPath * -Rt2dPathOval(Rt2dPath *path, RwReal x, RwReal y, RwReal w, RwReal h); - -extern Rt2dPath * -Rt2dPathFlatten(Rt2dPath *path); - -extern const Rt2dPath * -Rt2dPathGetBBox(const Rt2dPath *path, Rt2dBBox *bbox); - -extern Rt2dPath * -Rt2dPathCreateMorphResultPath(Rt2dPath *path); - -extern Rt2dPath * -Rt2dPathMorph(Rt2dPath *result, Rt2dPath *source, Rt2dPath *destination, RwReal alpha); - -/* - * BRUSHES - */ -extern Rt2dBrush * -Rt2dBrushCreate(void); - -extern RwBool -Rt2dBrushDestroy(Rt2dBrush * brush); - -extern Rt2dBrush * -Rt2dBrushSetRGBA(Rt2dBrush *brush, RwRGBA * col0, RwRGBA * col1, RwRGBA * col2, RwRGBA * col3); - -extern Rt2dBrush * -Rt2dBrushSetUV(Rt2dBrush *brush, RwV2d *uv0, RwV2d *uv1, RwV2d *uv2, RwV2d *uv3); - -extern Rt2dBrush * -Rt2dBrushSetTexture(Rt2dBrush* brush, RwTexture* texture); - -extern RwUInt32 -Rt2dBrushStreamGetSize(Rt2dBrush *brush); - -extern Rt2dBrush * -Rt2dBrushStreamWrite(Rt2dBrush *brush, RwStream *stream); - -extern Rt2dBrush * -Rt2dBrushStreamRead(RwStream *stream); - -/* - * FONTS - */ -extern const RwChar * -Rt2dFontSetPath(const RwChar *path); - -extern Rt2dFont * -Rt2dFontRead(const RwChar *name); - -extern RwBool -Rt2dFontSetReadCallBack(Rt2dFontCallBackRead fpCallBack); - -extern Rt2dFontCallBackRead -Rt2dFontGetReadCallBack (void); - -extern RwUInt32 -_rt2dFontStreamGetSize(Rt2dFont *font); - -extern Rt2dFont * -_rt2dFontStreamWrite(Rt2dFont *font, RwStream *stream); - -extern Rt2dFont * -_rt2dFontStreamRead(RwStream *stream); - -extern RwBool -Rt2dFontDestroy(Rt2dFont *font); - -extern RwReal -Rt2dFontGetHeight(Rt2dFont *font); - -extern RwReal -Rt2dFontGetStringWidth(Rt2dFont *font, const RwChar *string, RwReal height); - -extern Rt2dFont * -Rt2dFontShow(Rt2dFont *font, const RwChar *string, RwReal height, RwV2d *anchor, Rt2dBrush *brush); - -extern Rt2dFont * -Rt2dFontFlow(Rt2dFont* font, RwChar* string, RwReal height, Rt2dBBox* bbox, Rt2dJustificationType format, Rt2dBrush* brush); - -extern Rt2dFont * -Rt2dFontSetIntergapSpacing(Rt2dFont *font, RwReal gap); - - -extern RwBool -Rt2dFontCacheFlush(void); - - -/* - * FILLING - */ -extern Rt2dPath * -Rt2dPathFill(Rt2dPath *path, Rt2dBrush *brush); -/* - * STROKING - */ -extern Rt2dPath * -Rt2dPathStroke(Rt2dPath *path, Rt2dBrush *brush); - -/* - * TRANSFORMS - */ -extern RwBool -Rt2dCTMPush(void); - -extern RwBool -Rt2dCTMPop(void); - -extern RwBool -Rt2dCTMSetIdentity(void); - -extern RwBool -Rt2dCTMScale(RwReal x, RwReal y); - -extern RwBool -Rt2dCTMTranslate(RwReal x, RwReal y); - -extern RwBool -Rt2dCTMRotate(RwReal theta); - -extern RwBool -RwV2dIsInPath(RwV2d *point, Rt2dPath *path); - -extern RwV2d * -RwV2dInvertTransform(RwV2d *pointOut, RwV2d *pointIn); - - -/* - * DEVICE SETTINGS - */ -extern RwBool -Rt2dDeviceSetCamera(RwCamera *cam); - -extern RwCamera * -Rt2dDeviceGetCamera(void); - -extern RwBool -Rt2dDeviceGetStep(RwV2d *xstep, RwV2d *ystep, RwV2d *origin); - -extern RwBool -Rt2dDeviceSetMetric(RwReal x, RwReal y, RwReal w, RwReal h); - -extern RwBool -Rt2dDeviceGetMetric(RwReal *x, RwReal *y, RwReal *w, RwReal *h); - -extern RwBool -Rt2dDeviceSetFlat(RwReal r); - -extern RwBool -Rt2dDeviceGetClippath(Rt2dPath *path); - -extern RwBool -Rt2dVisible(RwReal x, RwReal y, RwReal w, RwReal h); - -extern RwBool -Rt2dDeviceSetLayerDepth(RwReal depth); - -extern RwBool -Rt2dSetPipelineFlags(RwUInt32 flags); - -/* - * HIERARCHICAL SCENE FUNCTIONS - OBJECT MANIPULATION - */ - -extern Rt2dObject * -Rt2dObjectSetVisible(Rt2dObject *object,RwBool visible); - -extern RwBool -Rt2dObjectIsVisible(Rt2dObject *object); - -extern void -Rt2dObjectMTMChanged(Rt2dObject *object); - -extern RwMatrix * -Rt2dObjectGetLTM(Rt2dObject *object); - -extern RwMatrix * -Rt2dObjectGetMTM(Rt2dObject *object); - -extern Rt2dObject * -Rt2dObjectSetMTM(Rt2dObject *object, RwMatrix *mtm); - -extern void -Rt2dObjectApplyCTM(Rt2dObject *object); - -extern Rt2dObject * -Rt2dObjectMTMSetIdentity(Rt2dObject *object); - -extern Rt2dObject * -Rt2dObjectMTMScale(Rt2dObject *object, RwReal x, RwReal y); - -extern Rt2dObject * -Rt2dObjectMTMTranslate(Rt2dObject *object, RwReal x, RwReal y); - -extern Rt2dObject * -Rt2dObjectMTMRotate(Rt2dObject *object, RwReal theta); - -extern RwRGBAReal * -Rt2dObjectGetColorMultiplier(Rt2dObject *object); - -extern Rt2dObject * -Rt2dObjectSetColorMultiplier(Rt2dObject *object, RwRGBAReal *multCol); - -extern RwRGBAReal * -Rt2dObjectGetColorOffset(Rt2dObject *object); - -extern Rt2dObject * -Rt2dObjectSetColorOffset(Rt2dObject *object, RwRGBAReal *oofsCol); - -extern RwInt32 -Rt2dObjectGetObjectType(Rt2dObject *object); - -extern RwInt32 -Rt2dObjectGetDepth(Rt2dObject *object); - -extern Rt2dObject * -Rt2dObjectSetDepth(Rt2dObject *object, RwInt32 depth); - -extern RwBool -Rt2dObjectIsScene(Rt2dObject *object); - -extern RwBool -Rt2dObjectIsShape(Rt2dObject *object); - -extern RwBool -Rt2dObjectIsPickRegion(Rt2dObject *object); - -extern RwBool -Rt2dObjectIsObjectString(Rt2dObject *object); - -extern Rt2dObject * -Rt2dObjectCopy(Rt2dObject *dst, Rt2dObject *src); - -/* in-place dst version, destruction not req */ -extern Rt2dObject * -_rt2dObjectCopy(Rt2dObject *dst, Rt2dObject *src); - -/* - * HIERARCHICAL SCENE FUNCTIONS - SCENE - */ -extern Rt2dObject * -Rt2dSceneCreate(void); - -extern RwBool -Rt2dSceneDestroy(Rt2dObject *scene); - -extern Rt2dObject * -Rt2dSceneLock(Rt2dObject *object); - -extern Rt2dObject * -Rt2dSceneUnlock(Rt2dObject *object); - -extern RwInt32 -Rt2dSceneGetChildCount(Rt2dObject *scene); - -extern Rt2dObject * -Rt2dSceneGetChildByIndex(Rt2dObject *scene, RwInt32 index); - -extern RwV2d -Rt2dSceneGetCoordFromScreen(Rt2dObject *scene,RwV2d screenCoord ); - -extern Rt2dObject * -Rt2dSceneAddChild(Rt2dObject *scene, Rt2dObject *object); - -/* Those are keeped for compatiblity with the present code */ -extern Rt2dObject * -Rt2dSceneGetNewChildScene(Rt2dObject *object); - -extern Rt2dObject * -Rt2dSceneGetNewChildShape(Rt2dObject *object); - -extern Rt2dObject * -Rt2dSceneGetNewChildPickRegion(Rt2dObject *object); - -extern Rt2dObject * -Rt2dSceneGetNewChildObjectString(Rt2dObject *object, const RwChar *text, - const RwChar *font); - -extern Rt2dObject * -Rt2dSceneStreamWrite(Rt2dObject *shape, RwStream *stream); - -extern RwUInt32 -Rt2dSceneStreamGetSize(Rt2dObject *scene); - -extern Rt2dObject * -Rt2dSceneStreamRead(RwStream *stream); - -extern Rt2dObject * -Rt2dSceneRender(Rt2dObject *object); - -extern Rt2dObject * -Rt2dSceneForAllChildren(Rt2dObject *scene, Rt2dObjectCallBack callback, void *pData ); - -extern Rt2dObject * -Rt2dSceneSetDepthDirty(Rt2dObject *scene); - -extern Rt2dObject * -Rt2dSceneUpdateLTM(Rt2dObject *scene); - -/* - * HIERARCHICAL SCENE FUNCTIONS - SHAPE - */ -extern Rt2dObject * -Rt2dShapeCreate(void); - -extern RwBool -Rt2dShapeDestroy(Rt2dObject * shape); - -extern Rt2dObject * -Rt2dShapeAddNode(Rt2dObject *shape, RwUInt32 flag, Rt2dPath *path, Rt2dBrush *brush ); - -extern RwInt32 -Rt2dShapeGetNodeCount(Rt2dObject *shape); - -extern Rt2dObject * -Rt2dShapeStreamWrite(Rt2dObject *shape, RwStream *stream); - -extern RwUInt32 -Rt2dShapeStreamGetSize(Rt2dObject *shape); - -extern Rt2dObject * -Rt2dShapeStreamRead(RwStream *stream); - -extern Rt2dObject * -Rt2dShapeRender(Rt2dObject *object); - -extern Rt2dObject * -Rt2dShapeMorph(Rt2dObject *result, - Rt2dObject *source, - Rt2dObject *destination, - RwReal alpha); - -extern Rt2dObject * -Rt2dShapeLock(Rt2dObject * shape); - -extern Rt2dObject * -Rt2dShapeUnlock(Rt2dObject * shape); - -/* - * HIERARCHICAL SCENE FUNCTIONS - PICK REGION - */ -extern Rt2dObject * -Rt2dPickRegionCreate(void); - -extern RwBool -Rt2dPickRegionDestroy(Rt2dObject *pickRegion); - -extern Rt2dPath * -Rt2dPickRegionGetPath(Rt2dObject *pickRegion); - -extern RwBool -Rt2dPickRegionIsPointIn(Rt2dObject *pickRegion, RwV2d *point); - -extern Rt2dObject * -Rt2dPickRegionStreamWrite(Rt2dObject *pickRegion, RwStream *stream); - -extern RwUInt32 -Rt2dPickRegionStreamGetSize(Rt2dObject *pickRegion); - -extern Rt2dObject * -Rt2dPickRegionStreamRead(RwStream *stream); - -/* - * HIERARCHICAL SCENE FUNCTIONS - TEXT STRINGS - */ -extern Rt2dObject * -Rt2dObjectStringCreate(const RwChar *textString, const RwChar *font); - -extern RwBool -Rt2dObjectStringDestroy(Rt2dObject *object); - -extern Rt2dBrush * -Rt2dObjectStringGetBrush(Rt2dObject *object); - -extern RwChar * -Rt2dObjectStringGetText(Rt2dObject *object); - -extern RwChar * -Rt2dObjectStringGetFont(Rt2dObject *object); - -extern RwReal -Rt2dObjectStringGetHeight(Rt2dObject *object); - -extern Rt2dObject * -Rt2dObjectStringSetBrush(Rt2dObject *object, Rt2dBrush *); - -extern Rt2dObject * -Rt2dObjectStringSetText(Rt2dObject *object, const RwChar *text); - -extern Rt2dObject * -Rt2dObjectStringSetFont(Rt2dObject *object, const RwChar *font); - -extern Rt2dObject * -Rt2dObjectStringSetHeight(Rt2dObject *object, const RwReal height); - -extern Rt2dObject * -Rt2dObjectStringStreamRead(RwStream *stream); - -extern Rt2dObject * -Rt2dObjectStringStreamWrite(Rt2dObject *object, RwStream *stream); - -extern RwUInt32 -Rt2dObjectStringStreamGetSize(Rt2dObject *object); - -extern Rt2dObject * -Rt2dObjectStringRender(Rt2dObject *object); - - -/* - * SPI for macros - */ - -extern RwBool -_rt2dCTMPush(RwMatrix *matrix); - -extern RwBool -_rt2dCTMSet(RwMatrix *matrix); - -extern RwMatrix * -_rt2dCTMGet(void); - -extern RwMatrix * -_rt2dCTMGetDirect(void); - - -#if ( defined(RWDEBUG) || defined(RWSUPPRESSINLINE) ) - -extern Rt2dBrush * -Rt2dBrushSetWidth(Rt2dBrush *brush, RwReal width); -extern RwReal -Rt2dBrushGetWidth(Rt2dBrush * brush); - -extern RwMatrix * -Rt2dCTMRead(RwMatrix * result); - -#endif /* ( defined(RWDEBUG) || defined(RWSUPPRESSINLINE) ) */ - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#define Rt2dFontStreamGetSize(_font) \ - _rt2dFontStreamGetSize(_font) - -#define Rt2dFontStreamWrite(_font,_stream) \ - _rt2dFontStreamWrite(_font,_stream) - -#define Rt2dFontStreamRead(_stream) \ - _rt2dFontStreamRead(_stream) - -#endif /* RT2D_H */ |