Imports the current Win32 source for the pod-racing game 'Red Planet', built on the MUNGA engine and its L4 (Win32/DirectX) platform layer: - MUNGA / MUNGA_L4: cross-platform engine core and Win32 backend - RP / RP_L4: Red Planet game logic and Win32 application - DivLoader, Setup1: asset loader and installer project - lib, MUNGA_L4/openal, MUNGA_L4/sos: third-party audio dependencies Removed stale Subversion metadata and added .gitignore/.gitattributes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
200 lines
5.4 KiB
C++
200 lines
5.4 KiB
C++
/*
|
|
* PROJECT:
|
|
* SUBSYSTEM:
|
|
* MODULE:
|
|
*
|
|
* File: $RCSfile: pimage.h,v $
|
|
* Revision: $Revision: 1.5 $
|
|
* Date: $Date: 95/04/27 23:01:16 $
|
|
* Author: $Author: bill $
|
|
* RCS Ident: $Id: pimage.h,v 1.5 95/04/27 23:01:16 bill Exp $
|
|
*
|
|
* FUNCTION:
|
|
*
|
|
*
|
|
* $Log: pimage.h,v $
|
|
* Revision 1.5 95/04/27 23:01:16 bill
|
|
* Major ci for 3.0 Alpha (new: pgeneral, dm)
|
|
*
|
|
* Revision 1.4 95/03/21 14:50:22 bill
|
|
* Adding the global opacity setter
|
|
*
|
|
* Revision 1.3 1995/03/10 19:03:01 bill
|
|
* Ci for beta release of v2.1 dvs -> dsys change
|
|
*
|
|
* Revision 1.2 1995/03/10 18:43:29 bill
|
|
* Ci for beta release of v2.1
|
|
*
|
|
* Revision 1.1 1995/03/06 10:24:34 bill
|
|
* Initial revision
|
|
*
|
|
* Revision 1.4 1994/11/09 17:49:06 bill
|
|
* texture type was int32 instead of uint8, read wronge
|
|
*
|
|
* Revision 1.3 1994/08/30 17:18:09 bill
|
|
* Altered -t so it sets the background opacity to a given value (-ve is
|
|
* default and preserves inta, rgba and svt opacity values, sets rest to
|
|
* 255).
|
|
* Also added sgi save -> rgba format.
|
|
*
|
|
* Revision 1.2 1994/05/13 12:08:51 bill
|
|
* File name changing for release. pfile.h->pfile2.h, __pfile.h->__pfile2.h, ptools.h->ptools2.h, __ptools.h->__ptools2.h, filelib.h->filelib2.h, getparam.h->getprm.h.
|
|
*
|
|
* Revision 1.1 1994/04/15 15:43:18 bill
|
|
* new pfile and ptools that cope with spheres lines text and polygons, also uses new FL extension pfl & PF extension dpf
|
|
*
|
|
* Revision 1.1 1994/02/16 20:30:34 bill
|
|
* General edit
|
|
*
|
|
*
|
|
* Copyright (c) 1992 Division Ltd.
|
|
*
|
|
* All Rights Reserved.
|
|
*
|
|
* This Document may not, in whole or in part, be copied,
|
|
* photocopied, reproduced, translated, or reduced to any
|
|
* electronic medium or machine readable form without prior
|
|
* written consent from Division Ltd.
|
|
*/
|
|
#ifndef __PIMAGE_H__
|
|
#define __PIMAGE_H__
|
|
|
|
#include <dsys/divtypes.h>
|
|
|
|
extern char *progname ;
|
|
|
|
/****************************************************************************
|
|
* pimage error numbers */
|
|
#define dpiENO_OPEN 0x7001
|
|
#define dpiENO_READ 0x7002
|
|
#define dpiENO_WRITE 0x7003
|
|
#define dpiENO_CLOSE 0x7004
|
|
#define dpiENO_NULL 0x7005
|
|
#define dpiENO_FORM 0x7006
|
|
|
|
/****************************************************************************
|
|
* pimage error numbers */
|
|
#define dpiWARN_PROB 2
|
|
|
|
/****************************************************************************
|
|
* pimage monitor numbers */
|
|
#define dpiMON_POS 0x00010000
|
|
#define dpiMON_PALLET 0x00020000
|
|
#define dpiMON_IMAGE 0x00040000
|
|
|
|
#define VTX_ALLOW_VTX 1
|
|
#define VTX_ALLOW_SVT 2
|
|
#define VTX_ALLOW_OTHER 4
|
|
#define VTX_ALLOW_DIV 3
|
|
#define VTX_ALLOW_ALL 7
|
|
|
|
#define VTX_WIDTH_EIGHT (uint8)1
|
|
|
|
#define VTXcmpIRGB(s1,s2) memcmp(s1,s2,3)
|
|
#define VTXcmpIRGBA(s1,s2) memcmp(s1,s2,4)
|
|
#define VTXcpyIRGBA(dd,ss) memcpy(dd,ss,sizeof(VTXIRGBA))
|
|
|
|
typedef enum { VTX_GIF_FILE, VTX_BMP_FILE, VTX_SGI_FILE,
|
|
VTX_SVT_FILE, VTX_TGA_FILE, VTX_TIF_FILE,
|
|
VTX_VTX_FILE, VTX_BSL_FILE, VTX_UNKNOWN_FILE } VTX_IMG_TYPE ;
|
|
|
|
typedef enum { VTX_PREC_SINGLE=0, VTX_PREC_DOUBLE=1 } VTXPRECISION ;
|
|
/* bsl types */
|
|
#define dpiBSLNOTYPES 9
|
|
typedef enum {dpiBSLTYPE_MONO0=0, dpiBSLTYPE_MONO1=1, dpiBSLTYPE_MONO2=2,
|
|
dpiBSLTYPE_MONO3=3, dpiBSLTYPE_MONO4=4, dpiBSLTYPE_MONO5=5,
|
|
dpiBSLTYPE_BILINEAR=6,
|
|
dpiBSLTYPE_RGB=7, dpiBSLTYPE_RGBA=8 } dpiBSLTYPE ;
|
|
|
|
typedef enum VTXcoord { /* used for indexing arrays, identifying axies etc */
|
|
VTXERGBA = 4, VTX_R = 0, VTX_G = 1, VTX_B = 2, VTX_A=3
|
|
} VTXcoord;
|
|
|
|
typedef struct
|
|
{
|
|
uint8 col[VTXERGBA];
|
|
}VTXIRGBA ;
|
|
|
|
typedef struct
|
|
{
|
|
float32 col[VTXERGBA];
|
|
}VTXFRGBA ;
|
|
|
|
typedef float32 VTXBOXFILTER[3][3] ;
|
|
|
|
|
|
struct VTXTEXTURETYPE ;
|
|
typedef struct VTXTEXTURETYPE *VTXTEXTUREPTR ;
|
|
|
|
struct VTXHEADERTYPE ;
|
|
typedef struct VTXHEADERTYPE *VTXHEADERPTR ;
|
|
|
|
struct VTXFILETYPE ;
|
|
typedef struct VTXFILETYPE *VTXFILEPTR ;
|
|
|
|
int32
|
|
VTXgetFile(char *name, VTXFILEPTR *file, int32 allowFile) ;
|
|
VTXFILEPTR
|
|
VTXopenFile(char *name, int32 allowFile) ;
|
|
int32
|
|
VTXgetFileBody(VTXFILEPTR file) ;
|
|
int32
|
|
VTXcloseFile(VTXFILEPTR file) ;
|
|
int32
|
|
VTXfreeFile(VTXFILEPTR file) ;
|
|
|
|
int32
|
|
VTXputFile(char *name, VTXFILEPTR Sfile, VTX_IMG_TYPE fileType) ;
|
|
VTXFILEPTR
|
|
VTXopenNewFile(char *name, VTX_IMG_TYPE fileType) ;
|
|
int32
|
|
VTXputFileBody(VTXFILEPTR Dfile, VTXFILEPTR Sfile) ;
|
|
|
|
VTXFILEPTR
|
|
VTXcreateFile(char *name) ;
|
|
VTXTEXTUREPTR
|
|
VTXcreateTexture(void) ;
|
|
void
|
|
VTXcreateData(VTXTEXTUREPTR texture) ;
|
|
|
|
VTXTEXTUREPTR
|
|
VTXgetTexture(VTXFILEPTR file) ;
|
|
void
|
|
VTXgetTextureSize(VTXTEXTUREPTR vtx, int32 *u, int32 *v) ;
|
|
uint8
|
|
VTXgetTextureType(VTXTEXTUREPTR vtx) ;
|
|
void
|
|
VTXgetTextureBgColour(VTXTEXTUREPTR vtx, VTXIRGBA *col) ;
|
|
void
|
|
VTXsetTextureType(VTXTEXTUREPTR vtx, uint8 type) ;
|
|
void
|
|
VTXsetTextureBgColour(VTXTEXTUREPTR vtx, VTXIRGBA *col) ;
|
|
int32
|
|
VTXaddTexture(VTXFILEPTR file, VTXTEXTUREPTR text) ;
|
|
|
|
void
|
|
VTXfreeTexture(VTXTEXTUREPTR texture) ;
|
|
|
|
|
|
/* returns non-zero on error, zero otherwise. new_quads points to the same or
|
|
** a new array of quads.
|
|
*/
|
|
int32
|
|
VTXinterpolate(VTXTEXTUREPTR vtx, int32 new_width, int32 new_height) ;
|
|
int32
|
|
VTXboxFilter(VTXTEXTUREPTR file, VTXBOXFILTER BoxF) ;
|
|
/* if Opacity is < 0 then the alpha is just initialised, else it is set to
|
|
* it (range 0 -> 255)
|
|
*/
|
|
int32
|
|
VTXsetTransparency(VTXTEXTUREPTR vtx, int32 glOpacity, int32 bgOpacity) ;
|
|
|
|
|
|
VTXFILEPTR
|
|
VTXcreateBSL(char *name, int32 u, int32 v, int32 w) ;
|
|
int32
|
|
VTXmergeBSL(VTXFILEPTR Dfp, int32 type, VTXFILEPTR Sfp) ;
|
|
|
|
#endif /* __PIMAGE_H__ */
|
|
|