diff options
Diffstat (limited to 'rwsdk/include/d3d8/rpstereo.h')
-rw-r--r-- | rwsdk/include/d3d8/rpstereo.h | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/rwsdk/include/d3d8/rpstereo.h b/rwsdk/include/d3d8/rpstereo.h new file mode 100644 index 00000000..5a8db912 --- /dev/null +++ b/rwsdk/include/d3d8/rpstereo.h @@ -0,0 +1,141 @@ +/* + * Stereo camera plugin + */ + +/********************************************************************** + * + * File : rpstereo.h + * + * Abstract : Add Stereo Camera support to RenderWare + * + ********************************************************************** + * + * This file is a product of Criterion Software Ltd. + * + * This file is provided as is with no warranties of any kind and is + * provided without any obligation on Criterion Software Ltd. or + * Canon Inc. to assist in its use or modification. + * + * Criterion Software Ltd. will not, under any + * circumstances, be liable for any lost revenue or other damages arising + * from the use of this file. + * + * Copyright (c) 1998 Criterion Software Ltd. + * All Rights Reserved. + * + * RenderWare is a trademark of Canon Inc. + * + ************************************************************************/ + +#ifndef RPSTEREO_H +#define RPSTEREO_H + +/** + * \defgroup rpstereo RpStereo + * \ingroup rpplugin + * + * Stereo Camera Plugin for RenderWare Graphics. + */ + +/*--- Include files ---*/ +#include <rwcore.h> +#include <rpworld.h> + +#include "rpstereo.rpe" /* automatically generated header file */ + +/*--- Global Structures ---*/ + +/* Supported Stereo Modes */ + +/** + * \ingroup rpstereo + * \ref RpStereoCameraMode + * Stereo camera mode enumeration. + */ +enum RpStereoCameraMode +{ + rpNASTEREOMODE = 0, + rpSTEREOMONO, /**< Render as Mono camera - single + * image + */ + rpSTEREOLEFTRIGHT, /**< Vertical split screen. Left eye + * image on left of screen. Right eye + * image on right of screen. + */ + rpSTEREORIGHTLEFT, /**< Vertical split screen. Right eye + * image on left of screen. Left eye image + * on right of screen. + */ + + rpSTEREOROTATE90, /**< As for rpSTEREOLEFTRIGHT - with + * the images rotated inwards by 90 degrees + */ + rpSTEREOINTERLACEDLEFTRIGHT, /**< Left and right eye images on + * alternate scanlines. The left eye image + * on the topmost line of the display. + */ + + rpSTEREOINTERLACEDRIGHTLEFT, /**< Left and right eye images on + * alternate scanlines. The right eye + * image is on the topmost line of the + * display. + */ + rpSTEREOLASTMODE, + rpSTEREOCAMERAMODEFORCEENUMSIZEINT = RWFORCEENUMSIZEINT +}; + +/* + * typedef for stereo camera mode enumeration. + */ +typedef enum RpStereoCameraMode RpStereoCameraMode; + +/*--- Constants ---*/ + +/* These may be used to quickly adapt an existing application to a + * stereo version. + */ + +#ifdef RPSTEREO_OVERLOAD +#define RwCameraBeginUpdate RpStereoCameraBeginUpdate +#define RwCameraEndUpdate RpStereoCameraEndUpdate +#undef RpWorldRender +#define RpWorldRender RpStereoWorldRender +#undef RpClumpRender +#define RpClumpRender RpStereoClumpRender +#undef RpAtomicRender +#define RpAtomicRender RpStereoAtomicRender +#undef RpWorldSectorRender +#define RpWorldSectorRender RpStereoWorldSectorRender +#endif + +/*--- Plugin API Functions ---*/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +RwBool RpStereoPluginAttach(void); + +RpWorld *RpStereoWorldRender(RpWorld *world); +RpClump *RpStereoClumpRender(RpClump *clump); +RpAtomic *RpStereoAtomicRender(RpAtomic *atomic); +RpWorldSector *RpStereoWorldSectorRender(RpWorldSector *sector); + +RwCamera *RpStereoCameraBeginUpdate(RwCamera *camera); +RwCamera *RpStereoCameraEndUpdate(RwCamera *stereoCam); + +RwReal RpStereoCameraGetSeparation(RwCamera *stereoCam); +RwReal RpStereoCameraGetFocal(RwCamera *stereoCam); +RpStereoCameraMode RpStereoCameraGetMode(RwCamera *stereoCam); + +RwCamera *RpStereoCameraSetSeparation(RwCamera *stereoCam, RwReal dist); +RwCamera *RpStereoCameraSetFocal(RwCamera *stereoCam, RwReal focal); +RwCamera *RpStereoCameraSetMode(RwCamera *stereoCam, RpStereoCameraMode newMode); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* RPSTEREO_H */ + |