reman3/Rayman_X/cpa/public/GLD/GLD_Pub.h

235 lines
11 KiB
C

/*
Gld_Pub.h
Structures, prototypes and error codes for Graphic Library for Display.
Authors : Christophe MARTINAUD
Elie Khoury
Philippe Vimont
Last update : 10/16/1996
Last update : 04/08/1997 : Upgrade to VC++ & VSS 5.0 !!!
*/
#ifndef __GLD_PUB_H
#define __GLD_PUB_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* For DLLs who are using this module : */
#undef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
typedef short GLD_tdhDevice; /* Handle of devices */
typedef short GLD_tdhViewport; /* Handle of viewports */
/*typedef short GLD_tdhPicture; /* Handle of pictures */
typedef float GLD_tdxValue;
/* 007*/
#ifndef RGB
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
#endif /* RGB */
#include "Gld_Pu1.h"
/* Screen constantes */
#define GLD_C_lScreenDimInPixX 1024
#define GLD_C_lScreenDimInPixY 768
#define GLD_C_xScreenDimInMetersX (GLD_tdxValue)( 0.32 )
#define GLD_C_xScreenDimInMetersY (GLD_tdxValue)( 0.24 )
/* Begin : only for moteur D3D */
#define C_DRIVER_HARD (1)
#define C_DRIVER_SOFT (1<<1)
#define C_DRIVER_MONO (1<<2)
#define C_DRIVER_RGB (1<<3)
/* End : only for moteur D3D */
/* Constants used by GLD_bClear[Device/ViewPort]WithChoice */
#define GLD_C_CLEAR_NOTHING 0
#define GLD_C_CLEAR_BACKBUF 1
#define GLD_C_CLEAR_ZBUF 2
/* Structures for Viewports */
typedef unsigned long DWORD;
typedef struct GLD_tdstViewportAttributes_
{
DWORD dwInitialHeight; /* Initial height of viewport in pixels */
DWORD dwInitialWidth; /* Initial width of viewport in pixels */
DWORD dwHeight; /* Current height of viewport in pixels */
DWORD dwWidth; /* Current width of viewport in pixels */
/*DWORD dwBytesPerPixel;*/
DWORD dwTopInPix; /* Y of Left up corner */
DWORD dwBottomInPix; /* Y of right down corner */
DWORD dwLeftInPix; /* X of left up corner */
DWORD dwRightInPix; /* X of right down corner */
DWORD dwTopInPixForClip; /* Y of Left up corner */
DWORD dwBottomInPixForClip; /* Y of right down corner */
DWORD dwLeftInPixForClip; /* X of left up corner */
DWORD dwRightInPixForClip; /* X of right down corner */
DWORD dwWidthInPercent;
DWORD dwHeightInPercent;
DWORD dwClipTopInPix; /* Height of clip top */
DWORD dwClipBottomInPix; /* Height of clip bottom */
DWORD dwClipLeftInPix; /* Width of clip left */
DWORD dwClipRightInPix; /* Width of clip right */
DWORD dwClipTopInPercent; /* For clipping */
DWORD dwClipBottomInPercent;
DWORD dwClipLeftInPercent;
DWORD dwClipRightInPercent;
int iOffsetPosX; /* Offset of display window (relative to upper left corner) */
int iOffsetPosY;
char *p_cVirtualScreen; /* Pointer to back memory associated with the viewport */
LONG lPitch; /* Distance to the start of the next line */
/*void *p_vReserved; /* Reserved */
void *p_vSpecificToXD; /* Additionnal Attributes specific to 2D or 3D */
/* Strega 10/12/96 */
/*void *p_vReserved2;*/
GLD_tdhDevice hDevice;
GLD_tdhViewport hViewport;
/* Strega fin */
} GLD_tdstViewportAttributes, *GLD_tdpstViewportAttributes;
/* Structures for Devices */
typedef struct GLD_tdstDeviceAttributes_
{
DWORD dwHeight; /* Current height of device */
DWORD dwWidth; /* Current width of device */
/*DWORD dwBitsPerPixel; /* Current depth of device */
/*DWORD dwBytesPerPixel; /* Current bytes per pixel for device */
GLD_tdxValue xPixelDimensionX ; /* Pixel dimensions in world units */
GLD_tdxValue xPixelDimensionY ; /* Pixel dimensions in world units */
char *p_cVirtualScreen; /* Pointer to back surface memory */
LONG lPitch; /* Distance to the start of the next line */
short *p_sZBuffer; /* Z Buffer associated with device */
/* Windows only */
DWORD dwFullScreenModeX; /* X resolution when in full screen mode */
DWORD dwFullScreenModeY; /* Y resolution when in full screen mode */
DWORD dwFullScreenModeBpp; /* Depth in bits per pixel when in full screen mode */
HWND hFullScreenModeWnd; /* Handle of the window associated with the device in full screen mode */
HWND hNormalModeWnd; /* Handle of the window associated with the device in normal mode */
BOOL bFullScreen; /* Is the device in full screen/exclusive mode ? */
unsigned int uiTypeDriver; /* The device is hardware or software (version D3D du moteur 3D) */
/*void *p_vReserved; /* Reserved */
/* Strega 10/12/96 */
POINT pClientOnPrimary;
RECT rtClientRect;
RECT rtWindowRect;
/* Strega fin */
} GLD_tdstDeviceAttributes, *GLD_tdpstDeviceAttributes;
/* Structures for Pictures */
/*typedef struct GLD_tdstPictureAttributes_*/
/*{*/
/* char *p_szBitmap; /* Bitmap loaded in surface */
/* DWORD dwHeight; /* Height of picture in pixels */
/* DWORD dwWidth; /* Width of picture in pixels */
/* char *p_cVirtualScreen; /* Pointer to picture */
/* LONG lPitch; /* Distance to the start of the next line */
/* void *p_vReserved; /* Reserved */
/*} GLD_tdstPictureAttributes, *GLD_tdpstPictureAttributes;*/
/* Prototypes */
/* Device management */
extern CPA_EXPORT BOOL GLD_bIsDeviceHandleValid( GLD_tdhDevice );
extern CPA_EXPORT void GLD_vInvalidateDeviceHandle( GLD_tdhDevice * );
extern CPA_EXPORT BOOL GLD_bCreateDevice( GLD_tdpstDeviceAttributes, GLD_tdhDevice * );
extern CPA_EXPORT BOOL GLD_bGetDeviceAttributes( GLD_tdhDevice, GLD_tdpstDeviceAttributes );
extern CPA_EXPORT BOOL GLD_bRequestWriteToDevice( GLD_tdhDevice, GLD_tdpstDeviceAttributes, BOOL * );
extern CPA_EXPORT BOOL GLD_bWriteToDeviceFinished( GLD_tdhDevice );
extern CPA_EXPORT BOOL GLD_bAdjustDeviceToWindow( GLD_tdhDevice ); /* windows only */
extern BOOL GLD_bBeginWriteToDevice( GLD_tdhDevice hNotUsed );
extern BOOL GLD_bEndWriteToDevice( GLD_tdhDevice hNotUsed );
extern CPA_EXPORT BOOL GLD_bFlipDeviceWithSynchro(GLD_tdhDevice hDev,enum Synchro eSynchro);
#ifdef U64
extern BOOL GLD_bFlipDevice( GLD_tdhDevice hDev ); /*AR980326*/
#endif
extern CPA_EXPORT BOOL GLD_bDeleteDevice( GLD_tdhDevice );
extern CPA_EXPORT BOOL GLD_bSwapDeviceMode( GLD_tdhDevice, BOOL );
extern CPA_EXPORT BOOL GLD_bSwapToWindowedMode( GLD_tdhDevice, BOOL ); /*bart990126*/
extern CPA_EXPORT BOOL GLD_bSwapToFullScreen( GLD_tdhDevice, BOOL ); /*bart990126*/
extern CPA_EXPORT BOOL GLD_fn_bReinitDeviceDisplayMode( GLD_tdhDevice ); /*bart990111*/
extern CPA_EXPORT BOOL GLD_bSetNewWindowForDevice( GLD_tdhDevice, HWND );
extern CPA_EXPORT BOOL GLD_bClearDevice( GLD_tdhDevice );
extern CPA_EXPORT BOOL GLD_bClearDeviceWithChoice( GLD_tdhDevice, short );
extern CPA_EXPORT BOOL GLD_bSetFullScreenModeForDevice( GLD_tdhDevice, DWORD, DWORD, DWORD, HWND );
extern CPA_EXPORT BOOL GLD_bSetBackgroundColorForDevice( GLD_tdhDevice, COLORREF );
extern CPA_EXPORT BOOL GLD_bHandleResolutionChange();
extern CPA_EXPORT LRESULT GLD_lDeviceCallback ( GLD_tdhDevice hDevice, HWND xHWnd , UINT xMessage, WPARAM wParam, LPARAM lParam );
/* Viewport management */
extern CPA_EXPORT BOOL GLD_bIsViewportHandleValid( GLD_tdhViewport );
extern CPA_EXPORT void GLD_vInvalidateViewportHandle( GLD_tdhViewport * );
extern CPA_EXPORT BOOL GLD_bCreateViewport( GLD_tdhDevice, GLD_tdpstViewportAttributes, GLD_tdhViewport * );
extern CPA_EXPORT BOOL GLD_bSetViewportPosition( GLD_tdhDevice, GLD_tdhViewport, GLD_tdpstViewportAttributes );
extern CPA_EXPORT BOOL GLD_bGetViewportAttributes( GLD_tdhDevice, GLD_tdhViewport, GLD_tdpstViewportAttributes );
extern CPA_EXPORT BOOL GLD_bRequestWriteToViewport( GLD_tdhDevice, GLD_tdhViewport, GLD_tdpstViewportAttributes, BOOL * );
extern CPA_EXPORT BOOL GLD_bWriteToViewportFinished( GLD_tdhDevice, GLD_tdhViewport );
extern CPA_EXPORT BOOL GLD_bRequestWriteToViewport2D( GLD_tdhDevice, GLD_tdhViewport, GLD_tdpstViewportAttributes, BOOL * );
extern CPA_EXPORT BOOL GLD_bWriteToViewportFinished2D( GLD_tdhDevice, GLD_tdhViewport );
extern CPA_EXPORT BOOL GLD_bRequestWriteToViewport3D( GLD_tdhDevice, GLD_tdhViewport, GLD_tdpstViewportAttributes, BOOL * );
extern CPA_EXPORT BOOL GLD_bWriteToViewportFinished3D( GLD_tdhDevice, GLD_tdhViewport );
extern CPA_EXPORT BOOL GLD_bDeleteViewport( GLD_tdhDevice, GLD_tdhViewport );
extern CPA_EXPORT BOOL GLD_bClearViewport( GLD_tdhDevice, GLD_tdhViewport );
extern CPA_EXPORT BOOL GLD_bClearViewportWithChoice( GLD_tdhDevice, GLD_tdhViewport, short );
extern CPA_EXPORT BOOL GLD_bGiveSpecificAttributesToViewport( GLD_tdhDevice, GLD_tdhViewport, void * );
/* Picture management */
/*
extern CPA_EXPORT BOOL GLD_bIsPictureHandleValid( GLD_tdhPicture );
extern CPA_EXPORT void GLD_vInvalidatePictureHandle( GLD_tdhPicture * );
extern CPA_EXPORT BOOL GLD_bLoadPicture( GLD_tdpstPictureAttributes, GLD_tdhPicture * );
extern CPA_EXPORT BOOL GLD_bGetPictureAttributes( GLD_tdhPicture, GLD_tdpstPictureAttributes );
extern CPA_EXPORT BOOL GLD_bRequestReadFromPicture( GLD_tdhPicture, GLD_tdpstPictureAttributes, BOOL * );
extern CPA_EXPORT BOOL GLD_bReadFromPictureFinished( GLD_tdhPicture );
extern CPA_EXPORT BOOL GLD_bDeletePicture( GLD_tdhPicture );
*/
/* Strega stuff */
/* Forgotten management */
/*extern CPA_EXPORT BOOL GLD_bSetDeviceAttributes( GLD_tdhDevice hDev, GLD_tdpstDeviceAttributes p_stDevAttrib );*/
/*extern CPA_EXPORT BOOL GLD_bIsGoodDevice( GLD_tdhDevice hDev );*/
/*extern BOOL GLD_bSetViewportAttributes( GLD_tdhDevice hDev, GLD_tdhViewport hVP, GLD_tdpstViewportAttributes p_stViewAttrib );*/
/* Strega end */
extern CPA_EXPORT BOOL GLD_bReleaseViewportAndDevice(GLD_tdhDevice hDev, GLD_tdhViewport hVP);
extern CPA_EXPORT void GLD_bHardwareSetContrast( float fContrast);
extern CPA_EXPORT void GLD_bHardwareSetLuminosity( float fLuminosity);
extern CPA_EXPORT void GLD_PrintUsedStaticMemory();
/*extern CPA_EXPORT void GLD_vSetDDDriver(long);*/
/*extern CPA_EXPORT void GLD_vSetD3DDevice(long);*/
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* __GLD_H */