Skip to content
Snippets Groups Projects
Commit 439c8539 authored by teuben's avatar teuben
Browse files

Initial revision

parent 469f5211
No related branches found
No related tags found
No related merge requests found
#ifndef _FINDFILE_H
#define _FINDFILE_H
extern char **getfiledirs(void);
extern char *findfile( char *superfile, char *fname );
extern void filedirs( char **dirs );
extern int fgetns(FILE *, int nshort, short *sp, int binary);
extern int fgetni(FILE *, int nint, int *ip, int binary);
#endif
#ifndef _TEXTURES_H
#define _TEXTURES_H
#include "geometry.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct Texture Texture;
typedef struct { float r,g,b,a; } ColorA;
Texture * txmake( char *fname, int apply, int txflags, int qualflags );
int txload( Texture *tx );
int txbind( Texture *tx, int *enabled );
int txaddentry( Texture ***tp, int *ntextures, char *fromfile,
int txno, char *txfname, int apply, int txflags, int qualflags );
void txpurge( Texture *tx );
#define MAXGLCTX 8
struct Texture {
char *filename; /* ppm or pgm (.Z) file */
char *alphafilename; /* If present, this is a .pgm (.Z) file */
char *data; /* Raw data, top to bottom, read from file */
int xsize, ysize, channels;
unsigned int flags; /* clamp, etc. */
int apply; /* Application style (TXF_DECAL, TXF_MODULATE, TXF_BLEND) */
int loaded; /* 0: not yet; 1: yes; -1: error */
int coords; /* Texture-coord auto generation (not used) */
int qualflags; /* APF_TX{MIPMAP,MIPINTERP,LINEAR}: if loaded, how? */
ColorA background; /* background color: outside of clamped texture */
Matrix tfm; /* texture-coord transformation */
int txid[MAXGLCTX]; /* OpenGL texture-object id's */
struct Texture *next; /* Link in list of all loaded textures */
};
extern Texture *AllLoadedTextures; /* List of em */
#define TX_DOCLAMP 450
#define TXF_SCLAMP 0x1 /* Clamp if s outside 0..1 (else wrap) */
#define TXF_TCLAMP 0x2 /* Clamp if t outside 0..1 (else wrap) */
#define TXF_LOADED 0x4 /* Has this texture been loaded?
* (tried to read those files yet?)
*/
#define TXF_RGBA 0x8 /* In loaded data, is R first byte? (else ABGR) */
#define TXF_USED 0x10 /* "Recently rendered a geom containing this texture" */
#define TX_APPLY 451 /* Interpret texture values to... */
#define TXF_MODULATE 0
#define TXF_BLEND 1
#define TXF_DECAL 2
#define TX_FILE 452
#define TX_ALPHAFILE 453
#define TX_DATA 454
#define TX_XSIZE 455
#define TX_YSIZE 456
#define TX_CHANNELS 457
#define TX_COORDS 458 /* Texture coordinates come from... */
#define TXF_COORD_GIVEN 0 /* given as part of object (default) */
/* In fact, only TXF_COORD_GIVEN works now. */
#define TXF_COORD_LOCAL 1 /* In coord system of texture map */
#define TXF_COORD_CAMERA 2 /* In camera coords */
#define TXF_COORD_NORMAL 3 /* Taken from surface-normal, for env map */
#define TX_BACKGROUND 459
#define TX_HANDLE_TRANSFORM 460
#define TX_ABLOCK 464
#define TX_END 465
#ifdef __cplusplus
}
#endif
#endif /* _TEXTURES_H */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment