summaryrefslogtreecommitdiffstats
path: root/sdk/rwsdk/include/d3d8/rpptank.h
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/rwsdk/include/d3d8/rpptank.h')
-rw-r--r--sdk/rwsdk/include/d3d8/rpptank.h781
1 files changed, 0 insertions, 781 deletions
diff --git a/sdk/rwsdk/include/d3d8/rpptank.h b/sdk/rwsdk/include/d3d8/rpptank.h
deleted file mode 100644
index 20931f21..00000000
--- a/sdk/rwsdk/include/d3d8/rpptank.h
+++ /dev/null
@@ -1,781 +0,0 @@
-
-#ifndef RPPTANK_H
-#define RPPTANK_H
-
-/*===========================================================================*
- *--- Include files ---------------------------------------------------------*
- *===========================================================================*/
-
-#include "rwcore.h"
-#include "rpworld.h"
-
-/*---- start: ./ptank.h----*/
-
-/**
- * \defgroup rpptank RpPTank
- * \ingroup rpplugin
- *
- * PTank Plugin for RenderWare.
- */
-
-/*--- Include files ---*/
-#include <string.h>
-
-#include "rwcore.h"
-
-#include "rpptank.rpe" /* automatically generated header file */
-
-/******************************************************************************
- * Global Types
- */
-
-/**
- * \ingroup rpptank
- * Passed to \ref RpPTankAtomicCreate, these flags specify
- * the type and properties held by the particles.
- * Some flags are mutually exclusive and should not be mixed.
- * The debug version of the library will assert and signal these problems.
- */
-enum RpPTankDataFlags
-{
- rpPTANKDFLAGNONE = ((int)0x00000000),
- rpPTANKDFLAGPOSITION = ((int)0x00000001), /**<Uses a position per particle*/
- rpPTANKDFLAGCOLOR = ((int)0x00000002), /**<Uses a color per particle*/
- rpPTANKDFLAGSIZE = ((int)0x00000004), /**<Uses a size per particle*/
- rpPTANKDFLAGMATRIX = ((int)0x00000008), /**<Uses a matrix per particle*/
- rpPTANKDFLAGNORMAL = ((int)0x00000010), /**<Uses a normal per particle*/
- rpPTANKDFLAG2DROTATE = ((int)0x00000020), /**<Uses a 2D rotation per particle*/
- rpPTANKDFLAGVTXCOLOR = ((int)0x00000040), /**<Uses a color per Billboard vertex*/
- rpPTANKDFLAGVTX2TEXCOORDS = ((int)0x00000080), /**<Uses Top-Left and Bottom-Right Texture coordinates*/
- rpPTANKDFLAGVTX4TEXCOORDS = ((int)0x00000100), /**<Uses a texture UV per vertex*/
-/* free = ((int)0x00000200), */
-/* free = ((int)0x00000400), */
-/* free = ((int)0x00000800), */
-/* free = ((int)0x00001000), */
-/* free = ((int)0x00002000), */
-/* free = ((int)0x00004000), */
- rpPTANKDFLAGCNSMATRIX = ((int)0x00008000), /**<Uses a constant matrix*/
- rpPTANKDFLAGCNSNORMAL = ((int)0x00010000), /**<Uses a constant normal*/
- rpPTANKDFLAGCNS2DROTATE = ((int)0x00020000), /**<Uses a constant 2D rotation*/
- rpPTANKDFLAGCNSVTXCOLOR = ((int)0x00040000), /**<Uses a constant color per Billboard vertex*/
- rpPTANKDFLAGCNSVTX2TEXCOORDS = ((int)0x00080000), /**<Uses constant Top-Left and Bottom-Right Texture coordinates*/
- rpPTANKDFLAGCNSVTX4TEXCOORDS = ((int)0x00100000), /**<Uses a constant texture UV per vertex*/
-/* free = ((int)0x00200000), */
-/* free = ((int)0x00400000), */
-/* free = ((int)0x00800000), */
- rpPTANKDFLAGUSECENTER = ((int)0x01000000), /**<The position of the particles are shifted*/
-/* free = ((int)0x04000000), */
-/* free = ((int)0x08000000), */
- rpPTANKDFLAGARRAY = ((int)0x10000000), /**<Data is organized in an array */
- rpPTANKDFLAGSTRUCTURE = ((int)0x20000000), /**<Data is organized in a structure */
-
- RPPTANKDATAFLAGSFORCEENUMSIZEINT = RWFORCEENUMSIZEINT
-};
-typedef enum RpPTankDataFlags RpPTankDataFlags;
-
-#define rpPTANKDFLAGTHINPARTICLES (rpPTANKDFLAGPOSITION)
-#define rpPTANKDFLAGFATPARTICLES ( rpPTANKDFLAGPOSITION | rpPTANKDFLAGSIZE \
- | rpPTANKDFLAG2DROTATE | rpPTANKDFLAGVTXCOLOR \
- | rpPTANKDFLAGVTX4TEXCOORDS)
-
-
-/**
- * \ingroup rpptank
- * Passed to \ref RpPTankAtomicLock, these flags specify
- * the data accessed.
- * those flags are mutually exclusive and should not be mixed.
- */
-enum RpPTankDataLockFlags
-{
- rpPTANKLFLAGNONE = ((int)0x00000000),
- rpPTANKLFLAGPOSITION = ((int)0x00000001), /**<Access the positions buffer*/
- rpPTANKLFLAGCOLOR = ((int)0x00000002), /**<Access the colors buffer*/
- rpPTANKLFLAGSIZE = ((int)0x00000004), /**<Access the sizes buffer*/
- rpPTANKLFLAGMATRIX = ((int)0x00000008), /**<Access the matrixes buffer*/
- rpPTANKLFLAGNORMAL = ((int)0x00000010), /**<Access the normals buffer*/
- rpPTANKLFLAG2DROTATE = ((int)0x00000020), /**<Access the 2D rotations buffer*/
- rpPTANKLFLAGVTXCOLOR = ((int)0x00000040), /**<Access the colors buffer (when using a color per vertex) */
- rpPTANKLFLAGVTX2TEXCOORDS = ((int)0x00000080), /**<Access the Top-Left and Bottom-Right Texture coordinates buffer*/
- rpPTANKLFLAGVTX4TEXCOORDS = ((int)0x00000100), /**<Access the texture UVs Buffer (when using a color per vertex)*/
-
- RPPTANKLOCKFLAGSFORCEENUMSIZEINT = RWFORCEENUMSIZEINT
-};
-typedef enum RpPTankDataLockFlags RpPTankDataLockFlags;
-
-
-#if (!defined(DOXYGEN))
-
-/**
- * \ingroup rpptank
- * RpPTankInstanceFlags
- */
-enum RpPTankInstanceFlags
-{
- rpPTANKIFLAGNONE = ((int)0x00000000),
- rpPTANKIFLAGPOSITION = ((int)0x00000001), /**<Particles position changed*/
- rpPTANKIFLAGCOLOR = ((int)0x00000002), /**<Particles color changed*/
- rpPTANKIFLAGSIZE = ((int)0x00000004), /**<Particles size changed*/
- rpPTANKIFLAGMATRIX = ((int)0x00000008), /**<Particles matrix changed*/
- rpPTANKIFLAGNORMAL = ((int)0x00000010), /**<Particles normal changed*/
- rpPTANKIFLAG2DROTATE = ((int)0x00000020), /**<Particles 2D rotation changed*/
- rpPTANKIFLAGVTXCOLOR = ((int)0x00000040), /**<Vertex color changed*/
- rpPTANKIFLAGVTX2TEXCOORDS = ((int)0x00000080), /**<Vertex 2 Texture coordinates changed*/
- rpPTANKIFLAGVTX4TEXCOORDS = ((int)0x00000100), /**<Vertex 4 Texture coordinates changed*/
-/* free = ((int)0x00000200), */
-/* free = ((int)0x00000400), */
-/* free = ((int)0x00000800), */
-/* free = ((int)0x00001000), */
- rpPTANKIFLAGCNSCOLOR = ((int)0x00002000), /**<Constant color changed*/
- rpPTANKIFLAGCNSSIZE = ((int)0x00004000), /**<Constant size changed*/
- rpPTANKIFLAGCNSMATRIX = ((int)0x00008000), /**<Constant matrix changed*/
- rpPTANKIFLAGCNSNORMAL = ((int)0x00010000), /**<Constant normal changed*/
- rpPTANKIFLAGCNS2DROTATE = ((int)0x00020000), /**<Constant 2D rotation changed*/
- rpPTANKIFLAGCNSVTXCOLOR = ((int)0x00040000), /**<Constant vertex color changed*/
- rpPTANKIFLAGCNSVTX2TEXCOORDS = ((int)0x00080000), /**<Constant vertex 2 Texture coordinates changed*/
- rpPTANKIFLAGCNSVTX4TEXCOORDS = ((int)0x00100000), /**<Constant vertex 4 Texture coordinates changed*/
-/* free = ((int)0x00200000), */
-/* free = ((int)0x00400000), */
- rpPTANKIFLAGACTNUMCHG = ((int)0x00800000), /**<Number of active particle changed*/
- rpPTANKIFLAGCENTER = ((int)0x01000000), /**<Center position changed*/
-/* free = ((int)0x04000000), */
-/* free = ((int)0x08000000), */
-/* free = ((int)0x10000000), */
- rpPTANKIFLAGALL = ((int)0xFFFFFFFF),
-
- RPPTANKINSTANCEFLAGSFORCEENUMSIZEINT = RWFORCEENUMSIZEINT
-};
-
-typedef enum RpPTankInstanceFlags RpPTankInstanceFlags;
-
-#endif
-
-/**
- * \ingroup rpptank
- * Passed to \ref RpPTankAtomicLock to specify the type of access needed.
- *
- * Accessing data using \ref rpPTANKLOCKWRITE will force the PTank object to reinstance
- * the rendered data. The instantiation of this data takes place at rendering
- * time and is done once per frame.
- */
-enum RpPTankLockFlags
-{
- rpPTANKLOCKWRITE = ((int)0x40000000), /**<Lock data for writing. */
- rpPTANKLOCKREAD = ((int)0x80000000) /**<Lock data for reading. */
-};
-
-typedef enum RpPTankLockFlags RpPTankLockFlags;
-
-typedef struct RpPTankLockStruct RpPTankLockStruct;
-
-/**
- * \ingroup rpptank
- * \struct RpPTankLockStruct
- * Returned by \ref RpPTankAtomicLock
- */
-struct RpPTankLockStruct{
- RwUInt8 *data; /**<Pointer to the locked data. */
- RwInt32 stride; /**<Stride of the data accessed. */
-};
-
-typedef struct RpPTankFormatDescriptor RpPTankFormatDescriptor;
-
-/**
- * \ingroup rpptank
- * \struct RpPTankFormatDescriptor
- * Returned by \ref RpPTankAtomicGetDataFormat
- */
-struct RpPTankFormatDescriptor
-{
- RwInt32 numClusters; /**<Number of clusters */
- RwInt32 stride; /**<Size of a single structure when using
- * structure organization, 0 otherwise */
- RwInt32 dataFlags; /**<flags passed to \ref RpPTankAtomicCreate */
-};
-
-#if (!defined(DOXYGEN))
-
-typedef struct RpPTankData RpPTankData;
-
-struct RpPTankData
-{
- void *data; /* PI data array
- * in the A form :
- * Point to the ptrList table
- * in the S form :
- * point to the structure
- *
- */
- RpPTankLockStruct clusters[9];
-
- void *userData; /* void pointer for platform use */
-
- RpPTankFormatDescriptor format;
-
- /* constant values */
- RwUInt32 srcBlend;
- RwUInt32 dstBlend;
- RwBool vertexAlphaBlend;
-
- RwV2d cCenter;
- RwV2d cSize;
- RwReal cRotate;
- RwRGBA cColor;
- RwRGBA cVtxColor[4];
- RwTexCoords cUV[4];
- RwMatrix cMatrix;
-};
-
-
-
-
-/* data piece size */
-extern const RwInt32 datasize[];
-
-#define RPPTANKSIZEPOSITION 0
-#define RPPTANKSIZEMATRIX 1
-#define RPPTANKSIZENORMAL 2
-#define RPPTANKSIZESIZE 3
-#define RPPTANKSIZECOLOR 4
-#define RPPTANKSIZEVTXCOLOR 5
-#define RPPTANKSIZE2DROTATE 6
-#define RPPTANKSIZEVTX2TEXCOORDS 7
-#define RPPTANKSIZEVTX4TEXCOORDS 8
-
-
-/**
- * \ingroup rpptank
- * \typedef rpptankAllocCallBack
- * ...
- */
-typedef void *(* rpPTankAllocCallBack)(RpPTankData *ptankGlobal,
- RwInt32 maxPCount,
- RwUInt32 dataFlags,
- RwUInt32 platFlags);
-
-/**
- * \ingroup rpptank
- * \typedef rpPTankCreateCallBack
- * ...
- */
-typedef RwBool (* rpPTankCreateCallBack)(RpAtomic *atomic,
- RpPTankData *ptankGlobal,
- RwInt32 maxPCount,
- RwUInt32 dataFlags,
- RwUInt32 platFlags);
-
-/**
- * \ingroup rpptank
- * \typedef rpPTankInstanceCallBack
- * ...
- */
-typedef RwBool (* rpPTankInstanceCallBack)(RpAtomic *atomic,
- RpPTankData *ptankGlobal,
- RwInt32 actPCount,
- RwUInt32 instFlags);
-
-/**
- * \ingroup rpptank
- * \typedef rpPTankRenderCallBack
- * ...
- */
-typedef RwBool (* rpPTankRenderCallBack)(RpAtomic *atomic,
- RpPTankData *ptankGlobal,
- RwInt32 actPCount);
-
-typedef struct rpPTankCallBacks rpPTankCallBacks;
-
-struct rpPTankCallBacks
-{
- rpPTankAllocCallBack alloc;
- rpPTankCreateCallBack create;
- rpPTankInstanceCallBack instance;
- rpPTankRenderCallBack render;
-};
-
-/* private typedefs */
-typedef struct rpPTANKInstanceSetupData rpPTANKInstanceSetupData;
-
-struct rpPTANKInstanceSetupData
-{
- RwBool instancePositions;
- RwBool instanceUVs;
- RwBool instanceColors;
- RwBool instanceNormals;
-
- RpPTankLockStruct positionOut;
- RpPTankLockStruct UVOut;
- RpPTankLockStruct colorsOut;
- RpPTankLockStruct normalsOut;
-
- RwV3d right;
- RwV3d up;
-
-};
-
-typedef void (* rpPTankGENInstancePosCallback)(
- RpPTankLockStruct *dstCluster,
- RwV3d *right,
- RwV3d *up,
- RwInt32 pCount,
- RpPTankData *ptankGlobal);
-
-typedef void (* rpPTankGENInstanceCallback)(
- RpPTankLockStruct *dstCluster,
- RwInt32 pCount,
- RpPTankData *ptankGlobal);
-
-typedef void (* rpPTankGENInstanceSetupCallback)(
- rpPTANKInstanceSetupData *data,
- RpAtomic *atomic,
- RpPTankData *ptankGlobal,
- RwInt32 actPCount,
- RwUInt32 instFlags);
-
-typedef void (* rpPTankGENInstanceEndingCallback)(
- rpPTANKInstanceSetupData *data,
- RpAtomic *atomic,
- RpPTankData *ptankGlobal,
- RwInt32 actPCount,
- RwUInt32 instFlags);
-
-typedef struct RpPTankAtomicExtPrv RpPTankAtomicExtPrv;
-
-struct RpPTankAtomicExtPrv
-{
- RwInt32 maxPCount; /* max number of particles */
- RwInt32 actPCount; /* number of actives particles */
-
- RwBool isAStructure; /* is in a structure of array form */
- void *rawdata; /* unaligned pointer to the PI data */
-
- /* Rendering callback */
- RpAtomicCallBackRender defaultRenderCB;
-
- rpPTankCallBacks ptankCallBacks;
-
- /* Instancing CallBacks */
- rpPTankGENInstanceSetupCallback insSetupCB;
- rpPTankGENInstancePosCallback insPosCB;
- rpPTankGENInstanceCallback insUVCB;
- rpPTankGENInstanceCallback insColorsCB;
- rpPTankGENInstanceCallback insNormalsCB;
- rpPTankGENInstanceEndingCallback insEndingCB;
-
- RwUInt32 lockFlags;
- RwUInt32 instFlags;
- RwUInt32 platFlags;
-
- RpPTankData publicData;
-};
-
-/*--- Plugin API Functions ---*/
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/* private globals */
-extern RwInt32 _rpPTankAtomicDataOffset; /* Offset in RpAtomic */
-
-extern RwInt32 _rpPTankGlobalsOffset; /* Offset in RwEngine */
-
-/* Macro tools */
-#define RPATOMICPTANKPLUGINDATA(atomic) \
- (*RWPLUGINOFFSET(RpPTankAtomicExtPrv *, (atomic), _rpPTankAtomicDataOffset))
-
-#define GLOBALPTANKPLUGINDATA() \
- (*RWPLUGINOFFSET(void *, RwEngineInstance, _rpPTankGlobalsOffset))
-
-#endif
-
-
-
-extern RwBool
-RpPTankPluginAttach(void);
-
-
-/*
- * PTank Management API ******************************************************
- */
-
-extern RpAtomic *
-RpPTankAtomicCreate(RwInt32 maxParticleNum,
- RwUInt32 dataFlags,
- RwUInt32 platFlags);
-
-extern void
-RpPTankAtomicDestroy(RpAtomic *ptank);
-
-extern RwBool
-RpAtomicIsPTank(RpAtomic *atomic);
-
-extern const RpPTankFormatDescriptor *
-RpPTankAtomicGetDataFormat(RpAtomic *atomic);
-
-/*
- * Particles Management API **************************************************
- */
-
-#define RpPTankAtomicGetActiveParticlesCountMacro(_atm)\
- (RPATOMICPTANKPLUGINDATA(_atm)->actPCount)
-
-#define RpPTankAtomicGetMaximumParticlesCountMacro(_atm)\
- (RPATOMICPTANKPLUGINDATA(_atm)->maxPCount)
-
-#define RpPTankAtomicSetActiveParticlesCountMacro(atm_,cnt_)\
-MACRO_START\
-{\
- RPATOMICPTANKPLUGINDATA(atm_)->instFlags |= rpPTANKIFLAGACTNUMCHG;\
- RPATOMICPTANKPLUGINDATA(atm_)->actPCount = cnt_;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicSetTextureMacro(atm_, tex_)\
-MACRO_START\
-{\
-RpMaterialSetTexture(RpGeometryGetMaterial(RpAtomicGetGeometry(atm_),0), tex_);\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetTextureMacro(atm_)\
- (RpMaterialGetTexture(RpGeometryGetMaterial(RpAtomicGetGeometry(atm_),0)))
-
-#define RpPTankAtomicGetMaterialMacro(atm_)\
- (RpGeometryGetMaterial(RpAtomicGetGeometry(atm_),0))
-
-#define RpPTankAtomicSetBlendModesMacro(atm_,src_,dst_)\
-MACRO_START\
-{\
- RPATOMICPTANKPLUGINDATA(atm_)->publicData.srcBlend = src_;\
- RPATOMICPTANKPLUGINDATA(atm_)->publicData.dstBlend = dst_;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetBlendModesMacro(atm_,src_,dst_)\
-MACRO_START\
-{\
- *src_ =\
- (RwBlendFunction)(RPATOMICPTANKPLUGINDATA(atm_)->publicData.srcBlend);\
- *dst_ =\
- (RwBlendFunction)(RPATOMICPTANKPLUGINDATA(atm_)->publicData.dstBlend);\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicSetVertexAlphaMacro(atm_, vas_)\
-MACRO_START\
-{\
- RPATOMICPTANKPLUGINDATA(atm_)->publicData.vertexAlphaBlend = vas_;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetVertexAlphaMacro(atm_)\
- (RPATOMICPTANKPLUGINDATA(atm_)->publicData.vertexAlphaBlend)
-
-#define RpPTankAtomicSetConstantCenterMacro(atm_, ctr_)\
-MACRO_START\
-{\
- RPATOMICPTANKPLUGINDATA(atm_)->publicData.cCenter = *ctr_;\
- RPATOMICPTANKPLUGINDATA(atm_)->instFlags |= rpPTANKIFLAGCENTER;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetConstantCenterMacro(atm_)\
- (&(RPATOMICPTANKPLUGINDATA(atm_)->publicData.cCenter))
-
-
-#define RpPTankAtomicSetConstantSizeMacro(atm_, size_)\
-MACRO_START\
-{\
- RPATOMICPTANKPLUGINDATA(atm_)->publicData.cSize = *size_;\
- RPATOMICPTANKPLUGINDATA(atm_)->instFlags |= rpPTANKIFLAGCNSSIZE;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetConstantSizeMacro(atm_)\
- (&RPATOMICPTANKPLUGINDATA(atm_)->publicData.cSize)
-
-#define RpPTankAtomicSetConstantRotateMacro(atm_, rot_)\
-MACRO_START\
-{\
- RPATOMICPTANKPLUGINDATA(atm_)->publicData.cRotate = rot_;\
- RPATOMICPTANKPLUGINDATA(atm_)->instFlags |= rpPTANKIFLAGCNS2DROTATE;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetConstantRotateMacro(atm_)\
- (RPATOMICPTANKPLUGINDATA(atm_)->publicData.cRotate)
-
-#define RpPTankAtomicSetConstantMatrixMacro(atm_, mtx_)\
-MACRO_START\
-{\
- RwMatrixCopy(&(RPATOMICPTANKPLUGINDATA(atm_)->publicData.cMatrix),mtx_);\
- RPATOMICPTANKPLUGINDATA(atm_)->instFlags |= rpPTANKIFLAGCNSMATRIX;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetConstantMatrixMacro(atm_)\
- (&(RPATOMICPTANKPLUGINDATA(atm_)->publicData.cMatrix))
-
-#define RpPTankAtomicSetConstantColorMacro(atm_, col_)\
-MACRO_START\
-{\
- RPATOMICPTANKPLUGINDATA(atm_)->publicData.cColor = *col_;\
- if( RpGeometryGetMaterial(RpAtomicGetGeometry(atm_),0) )\
- {\
- RpMaterialSetColor(\
- RpGeometryGetMaterial(RpAtomicGetGeometry(atm_),0),\
- &RPATOMICPTANKPLUGINDATA(atm_)->publicData.cColor);\
- }\
- RPATOMICPTANKPLUGINDATA(atm_)->instFlags |= rpPTANKIFLAGCNSCOLOR;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetConstantColorMacro(atm_)\
- (&(RPATOMICPTANKPLUGINDATA(atm_)->publicData.cColor))
-
-#define RpPTankAtomicSetConstantVtxColorMacro(atm_, col_)\
-MACRO_START\
-{\
- memcpy(RPATOMICPTANKPLUGINDATA(atm_)->publicData.cVtxColor,\
- col_,\
- sizeof(RwRGBA)*4);\
- RPATOMICPTANKPLUGINDATA(atm_)->instFlags |= rpPTANKIFLAGCNSVTXCOLOR;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetConstantVtxColorMacro(atm_)\
- (RPATOMICPTANKPLUGINDATA(atm_)->publicData.cVtxColor)
-
-#define RpPTankAtomicSetConstantVtx2TexCoordsMacro(atm_, uv_)\
-MACRO_START\
-{\
- memcpy(RPATOMICPTANKPLUGINDATA(atm_)->publicData.cUV,\
- uv_,\
- sizeof(RwTexCoords)*2);\
- RPATOMICPTANKPLUGINDATA(atm_)->instFlags |= rpPTANKIFLAGCNSVTX2TEXCOORDS;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetConstantVtx2TexCoordsMacro(atm_)\
- (RPATOMICPTANKPLUGINDATA(atm_)->publicData.cUV)
-
-#define RpPTankAtomicSetConstantVtx4TexCoordsMacro(atm_, uv_)\
-MACRO_START\
-{\
- memcpy(RPATOMICPTANKPLUGINDATA(atm_)->publicData.cUV,\
- uv_,\
- sizeof(RwTexCoords)*4);\
- RPATOMICPTANKPLUGINDATA(atm_)->instFlags |= rpPTANKIFLAGCNSVTX4TEXCOORDS;\
-}\
-MACRO_STOP
-
-#define RpPTankAtomicGetConstantVtx4TexCoordsMacro(atm_)\
- (RPATOMICPTANKPLUGINDATA(atm_)->publicData.cUV)
-
-#if (defined(RWDEBUG) || defined(RWSUPPRESSINLINE))
-extern RwInt32
-RpPTankAtomicGetActiveParticlesCount(RpAtomic *atomic);
-
-extern RwInt32
-RpPTankAtomicGetMaximumParticlesCount(RpAtomic *atomic);
-
-extern void
-RpPTankAtomicSetActiveParticlesCount(RpAtomic *atomic, RwInt32 count);
-
-extern void
-RpPTankAtomicSetTexture(RpAtomic *atomic, RwTexture *texture);
-
-extern RwTexture *
-RpPTankAtomicGetTexture(RpAtomic *atomic);
-
-extern RpAtomic *
-RpPTankAtomicSetMaterial(RpAtomic *atomic, RpMaterial *material);
-
-extern RpMaterial *
-RpPTankAtomicGetMaterial(RpAtomic *atomic);
-
-extern void
-RpPTankAtomicSetBlendModes(RpAtomic *atomic,
- RwBlendFunction srcBlendMode,
- RwBlendFunction dstBlendMode );
-
-extern void
-RpPTankAtomicGetBlendModes(RpAtomic *atomic,
- RwBlendFunction *srcBlendMode,
- RwBlendFunction *dstBlendMode );
-
-extern void
-RpPTankAtomicSetVertexAlpha(RpAtomic *atomic, RwBool vtxAlphaState);
-
-extern RwBool
-RpPTankAtomicGetVertexAlpha(RpAtomic *atomic);
-
-extern void
-RpPTankAtomicSetConstantCenter(RpAtomic *atomic, RwV2d *center);
-
-const RwV2d *
-RpPTankAtomicGetConstantCenter(RpAtomic *atomic);
-
-extern void
-RpPTankAtomicSetConstantSize(RpAtomic *atomic, RwV2d *size);
-
-extern const RwV2d *
-RpPTankAtomicGetConstantSize(RpAtomic *atomic);
-
-extern void
-RpPTankAtomicSetConstantRotate(RpAtomic *atomic, RwReal rotate);
-
-extern RwReal
-RpPTankAtomicGetConstantRotate(RpAtomic *atomic);
-
-extern void
-RpPTankAtomicSetConstantMatrix(RpAtomic *atomic, RwMatrix *matrix);
-
-extern const RwMatrix *
-RpPTankAtomicGetConstantMatrix(RpAtomic *atomic);
-
-extern void
-RpPTankAtomicSetConstantColor(RpAtomic *atomic, RwRGBA *color);
-
-extern const RwRGBA *
-RpPTankAtomicGetConstantColor(RpAtomic *atomic);
-
-extern void
-RpPTankAtomicSetConstantVtxColor(RpAtomic *atomic, RwRGBA *color);
-
-extern const RwRGBA *
-RpPTankAtomicGetConstantVtxColor(RpAtomic *atomic);
-
-extern void
-RpPTankAtomicSetConstantVtx2TexCoords(RpAtomic *atomic, RwTexCoords *UVs);
-
-extern const RwTexCoords *
-RpPTankAtomicGetConstantVtx2TexCoords(RpAtomic *atomic);
-
-extern void
-RpPTankAtomicSetConstantVtx4TexCoords(RpAtomic *atomic, RwTexCoords *UVs);
-
-extern const RwTexCoords *
-RpPTankAtomicGetConstantVtx4TexCoords(RpAtomic *atomic);
-#else
-
-#define RpPTankAtomicGetActiveParticlesCount(atm_)\
- RpPTankAtomicGetActiveParticlesCountMacro(atm_)
-
-#define RpPTankAtomicGetMaximumParticlesCount(atm_)\
- RpPTankAtomicGetMaximumParticlesCountMacro(atm_)
-
-#define RpPTankAtomicSetActiveParticlesCount(atm_,cnt_)\
- RpPTankAtomicSetActiveParticlesCountMacro(atm_,cnt_)
-
-
-#define RpPTankAtomicSetTexture(atm_,tex_)\
- RpPTankAtomicSetTextureMacro(atm_,tex_)
-
-#define RpPTankAtomicGetTexture(atm_)\
- RpPTankAtomicGetTextureMacro(atm_)
-
-extern RpAtomic *
-RpPTankAtomicSetMaterial(RpAtomic *atomic, RpMaterial *material);
-
-#define RpPTankAtomicGetMaterial(atm_)\
- RpPTankAtomicGetMaterialMacro(atm_)
-
-#define RpPTankAtomicSetBlendModes(atm_,src_,dst_)\
- RpPTankAtomicSetBlendModesMacro(atm_,src_,dst_)
-
-#define RpPTankAtomicGetBlendModes(atm_,src_,dst_)\
- RpPTankAtomicGetBlendModesMacro(atm_,src_,dst_)
-
-#define RpPTankAtomicSetVertexAlpha(atm_, vas_)\
- RpPTankAtomicSetVertexAlphaMacro(atm_, vas_)
-
-#define RpPTankAtomicGetVertexAlpha(atm_)\
- RpPTankAtomicGetVertexAlphaMacro(atm_)
-
-#define RpPTankAtomicSetConstantCenter(atm_, ctr_)\
- RpPTankAtomicSetConstantCenterMacro(atm_, ctr_)
-
-#define RpPTankAtomicGetConstantCenter(atm_)\
- RpPTankAtomicGetConstantCenterMacro(atm_)
-
-#define RpPTankAtomicSetConstantSize(atm_, size_)\
- RpPTankAtomicSetConstantSizeMacro(atm_, size_)
-
-#define RpPTankAtomicGetConstantSize(atm_)\
- RpPTankAtomicGetConstantSizeMacro(atm_)
-
-#define RpPTankAtomicSetConstantRotate(atm_, rot_)\
- RpPTankAtomicSetConstantRotateMacro(atm_, rot_)
-
-#define RpPTankAtomicGetConstantRotate(atm_)\
- RpPTankAtomicGetConstantRotateMacro(atm_)
-
-#define RpPTankAtomicSetConstantMatrix(atm_, mtx_)\
- RpPTankAtomicSetConstantMatrixMacro(atm_, mtx_)
-
-#define RpPTankAtomicGetConstantMatrix(atm_)\
- RpPTankAtomicGetConstantMatrixMacro(atm_)
-
-#define RpPTankAtomicSetConstantColor(atm_, col_)\
- RpPTankAtomicSetConstantColorMacro(atm_, col_)
-
-#define RpPTankAtomicGetConstantColor(atm_)\
- RpPTankAtomicGetConstantColorMacro(atm_)
-
-#define RpPTankAtomicSetConstantVtxColor(atm_, _col)\
- RpPTankAtomicSetConstantVtxColorMacro(atm_, _col)
-
-#define RpPTankAtomicGetConstantVtxColor(atm_)\
- RpPTankAtomicGetConstantVtxColorMacro(atm_)
-
-#define RpPTankAtomicSetConstantVtx2TexCoords(atm_, uv_)\
- RpPTankAtomicSetConstantVtx2TexCoordsMacro(atm_, uv_)
-
-#define RpPTankAtomicGetConstantVtx2TexCoords(atm_)\
- RpPTankAtomicGetConstantVtx2TexCoordsMacro(atm_)\
-
-#define RpPTankAtomicSetConstantVtx4TexCoords(atm_, uv_)\
- RpPTankAtomicSetConstantVtx4TexCoordsMacro(atm_, uv_)
-
-#define RpPTankAtomicGetConstantVtx4TexCoords(atm_)\
- RpPTankAtomicGetConstantVtx4TexCoordsMacro(atm_)
-
-#endif
-
-/*
- * Data access API ***********************************************************
- */
-
-extern RwBool
-RpPTankAtomicLock(RpAtomic *atomic, RpPTankLockStruct *dst,
- RwUInt32 dataFlags, RpPTankLockFlags lockFlag);
-
-extern void *
-RpPTankAtomicLockByIndex(RpAtomic *atomic, RwInt32 idx, RwUInt32 dataFlags, RpPTankLockFlags lockFlag);
-
-extern RpAtomic *
-RpPTankAtomicUnlock(RpAtomic *atomic);
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-/*---- end: ./ptank.h----*/
-
-/*---- start: c:/daily/rwsdk/plugin/ptank/d3d8/ptankplatform.h----*/
-
-enum RpPTankD3D8Flags
-{
- rpPTANKD3D8FLAGSUSEPOINTSPRITES = 0x00000001,
-
- rpPTANKD3D8FLAGFORCEENUMSIZEINT = RWFORCEENUMSIZEINT
-};
-
-/*---- end: c:/daily/rwsdk/plugin/ptank/d3d8/ptankplatform.h----*/
-
-#endif /* RPPTANK_H */
-
-