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

106 lines
4.9 KiB
C

/* PixFmt.h*/
/* Prototypes and structures for PixFmt.c*/
/* Author : Frederic PHILIPPE*/
/* Last update : 08/07/1997*/
#ifndef __PIXFMT_H
#define __PIXFMT_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include "acp_base.h"
/* #ifdef GLI_D3D */
#if !defined(U64) /* N64 does not want D3D stuffs... thanks*/
/*#include <d3d.h>*/
#endif /* U64 */
/* #endif */
/* format predefini de pixel */
#define GLD_C_xUndefinedPixelFormat 0 /* 0000 0000 0000 0000 0000 0000 0000 0000 */
#define GLD_C_xN1B5G5R5PixelFormat 1 /* 0000 0000 0000 0000 0BBB BBGG GGGR RRRR */
#define GLD_C_xA1B5G5R5PixelFormat 2 /* 0000 0000 0000 0000 ABBB BBGG GGGR RRRR */
#define GLD_C_xN1R5G5B5PixelFormat 3 /* 0000 0000 0000 0000 0RRR RRGG GGGB BBBB */
#define GLD_C_xA4B4G4R4PixelFormat 4 /* 0000 0000 0000 0000 AAAA BBBB GGGG RRRR */
#define GLD_C_xB8G8R8PixelFormat 5 /* 0000 0000 BBBB BBBB GGGG GGGG RRRR RRRR */
#define GLD_C_xA8B8G8R8PixelFormat 6 /* AAAA AAAA BBBB BBBB GGGG GGGG RRRR RRRR */
#define GLD_C_xB5G6R5PixelFormat 7 /* 0000 0000 0000 0000 BBBB BGGG GGGR RRRR */
#define GLD_C_xB6G5R5PixelFormat 8 /* 0000 0000 0000 0000 BBBB BBGG GGGR RRRR */
#define GLD_C_xB5G5R6PixelFormat 9 /* 0000 0000 0000 0000 BBBB BGGG GGRR RRRR */
#define GLD_C_xB5G5R5A1PixelFormat 10 /* 0000 0000 0000 0000 BBBB BGGG GGRR RRRA */
#define GLD_C_xR5G6B5PixelFormat 11 /* 0000 0000 0000 0000 RRRR RGGG GGGB BBBB */
#define GLD_C_xR6G5B5PixelFormat 12 /* 0000 0000 0000 0000 RRRR RRGG GGGB BBBB */
#define GLD_C_xR5G5B6PixelFormat 13 /* 0000 0000 0000 0000 RRRR RGGG GGBB BBBB */
#if defined(U64)
#define GLD_C_xR5G5B5A1PixelFormat 14 /* 0000 0000 0000 0000 RRRR RGGG GGBB BBBA */
#endif /* U64 */
#define GLD_C_lMaxNumberOfPixelFormat 16
/* pixel format */
typedef struct GLD_stPixelFormat
{
/* numero du format */
ACP_tdxIndex xFormatNumber;
/* alpha ? */
ACP_tdxBool bAlpha;
/* nombre de bits total du pixel */
long lPixelNbBits;
/* masque du pixel */
unsigned long ulPixelMask;
/* nombre d octets par pixel */
long lPixelNbBytes;
/* composante rouge */
long lRedNbBits;
long lRedShift;
unsigned long ulRedMask;
/* composante verte */
long lGreenNbBits;
long lGreenShift;
unsigned long ulGreenMask;
/* composante bleue */
long lBlueNbBits;
long lBlueShift;
unsigned long ulBlueMask;
/* composante alpha */
long lAlphaNbBits;
long lAlphaShift;
unsigned long ulAlphaMask;
} GLD_tdstPixelFormat, *GLD_tdpstPixelFormat;
void GLD_vSetDefinedPixelFormat ( GLD_tdpstPixelFormat p_stPixelFormat, ACP_tdxIndex xPixelFormatNumber );
void GLD_vCopyPixelFormat ( GLD_tdpstPixelFormat p_stDstPixelFormat, GLD_tdpstPixelFormat p_stSrcPixelFormat );
GLD_tdstPixelFormat *GLD_fn_p_stGetDefinedPixelFormat( long _lFormatIndex );
long GLD_fn_lAddDefinedPixelFormat( GLD_tdstPixelFormat *_p_stNewPF );
#if !defined(U64) /* N64 does not want DirectDraw Pixel Foramt... thanks*/
/*extern CPA_EXPORT void GLD_vConvertDDPixelFormatToPixelFormat ( ACP_tdxIndex xFormatNumber, GLD_tdpstPixelFormat p_stDstPixelFormat, LPDDPIXELFORMAT p_stDDPixelFormat );*/
/*extern CPA_EXPORT ACP_tdxBool GLD_bConvertDDPixelFormatToDefinedPixelFormat ( GLD_tdpstPixelFormat p_stDstPixelFormat, LPDDPIXELFORMAT p_stDDPixelFormat );*/
#endif /* U64 */
extern CPA_EXPORT ACP_tdxBool GLD_bGetPixelFormatOfDevice ( GLD_tdpstPixelFormat p_stDstPixelFormat, GLD_tdhDevice hDev, GLD_tdhViewport hVP );
/* attention : convertion entre les formats RGB 16 bits seulement */
extern CPA_EXPORT void GLD_vBitmapConvert16bPixelFormat ( GLD_tdpstPixelFormat p_stDstPixelFormat, GLD_tdpstPixelFormat p_stSrcPixelFormat, unsigned short *p_usBuffer, long lBufferSize );
extern CPA_EXPORT void GLD_vYInvertBitmap24b ( unsigned char *_p_ucBuffer, long _lWidth, long _lHeight );
extern CPA_EXPORT void GLD_vBitmapConvert24bTo16bPixelFormat ( unsigned short *_p_usDstBuffer, unsigned char *_p_ucSrcBuffer, long _lWidth, long _lHeight );
extern CPA_EXPORT void GLD_vBitmapConvert24bTo16bPixelFormatAndFiltre ( unsigned short *_p_usDstBuffer, long _lWDst, long _lHDst, unsigned char *_p_ucSrcBuffer, long _lWSrc, long _lHSrc );
extern CPA_EXPORT void GLD_fn_vBlit16b ( long _lW, long _lH, unsigned short *_p_usBufferDst, long _lPitch, unsigned short *_p_usBufferSrc );
extern CPA_EXPORT void GLD_fn_vBlitStretched16b ( long _lWDst, long _lHDst, unsigned short *_p_usBufferDst, long _lPitch, long _lWSrc, long _lHSrc, unsigned short *_p_usBufferSrc );
extern CPA_EXPORT void GLD_vBitmapConvertAndBlit24bTo16bPixelFormat ( GLD_tdhDevice _hGLDDevice, GLD_tdhViewport _hGLDViewport, long _lWidth, long _lHeight, unsigned char *_p_ucBufferSrc );
extern CPA_EXPORT void GLD_vGetFrontBufferIn24BitsAA( GLD_tdhDevice,GLD_tdhViewport,unsigned long _lWidth,unsigned long _lHeight,unsigned char *p_lBufferDst );
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* __PIXFMT_H*/