blob: 467d61e48bf8598d8132e80d8d52624630cf4cd1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
/*
* PARSEC HEADER (OBJECT)
* Texture Format Specifications V1.15
*
* Copyright (c) Markus Hadwiger 1998-2000
* All Rights Reserved.
*/
#ifndef _OD_TEXDF_H_
#define _OD_TEXDF_H_
// texture flags
#define TEXFLG_NONE 0x0000 // no special flags
#define TEXFLG_EXT_GEOMETRY 0x0001 // extended geometry specification
#define TEXFLG_LODRANGE_VALID 0x0002 // lod range (small to large) valid
#define TEXFLG_GLIDE_TEXTURE 0x0004 // directly usable as glide texture
#define TEXFLG_IS_COMPRESSED 0x0010 // texture data is compressed
#define TEXFLG_DO_COMPRESSION 0x0020 // texture data should be compressed
#define TEXFLG_CACHE_MAY_FREE 0x0100 // cache may free texture data
// texture map formats
#define TEXFMT_FORMATMASK 0x0000ffff // mask to extract actual format
#define TEXFMT_FLAGSMASK 0xffff0000 // mask to extract additional flags
#define TEXFMT_PALETTEDTEXTURE 0x00010000 // format needs texture palette
#define TEXFMT_GLIDEFORMAT 0x00020000 // format spec identical to glide
#define TEXFMT_STANDARD 0x0000 // 8-bit indexes into global palette
#define TEXFMT_RGB_565 0x0001 // 16-bit direct color
#define TEXFMT_RGBA_1555 0x0002 // 16-bit direct color with alpha
#define TEXFMT_RGB_888 0x0003 // 24-bit direct color
#define TEXFMT_RGBA_8888 0x0004 // 32-bit direct color with alpha
#define TEXFMT_ALPHA_8 0x0005 // 8-bit alpha only
#define TEXFMT_INTENSITY_8 0x0006 // 8-bit intensity only
#define TEXFMT_LUMINANCE_8 0x0007 // 8-bit luminance only
#define TEXFMT_GR_8BIT ( 0x0000 | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_RGB_332 TEXFMT_GR_8BIT
#define TEXFMT_GR_YIQ_422 ( 0x0001 | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_ALPHA_8 ( 0x0002 | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_INTENSITY_8 ( 0x0003 | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_ALPHA_INTENSITY_44 ( 0x0004 | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_P_8 ( 0x0005 | TEXFMT_GLIDEFORMAT | TEXFMT_PALETTEDTEXTURE )
#define TEXFMT_GR_RSVD0 ( 0x0006 | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_RSVD1 ( 0x0007 | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_16BIT ( 0x0008 | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_ARGB_8332 TEXFMT_GR_16BIT
#define TEXFMT_GR_AYIQ_8422 ( 0x0009 | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_RGB_565 ( 0x000a | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_ARGB_1555 ( 0x000b | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_ARGB_4444 ( 0x000c | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_ALPHA_INTENSITY_88 ( 0x000d | TEXFMT_GLIDEFORMAT )
#define TEXFMT_GR_AP_88 ( 0x000e | TEXFMT_GLIDEFORMAT | TEXFMT_PALETTEDTEXTURE )
#define TEXFMT_GR_RSVD2 ( 0x000f | TEXFMT_GLIDEFORMAT )
// texture lod specification
#define TEXLOD_1 0x0000 // lowest level: 1x1
#define TEXLOD_2 0x0001
#define TEXLOD_4 0x0002
#define TEXLOD_8 0x0003
#define TEXLOD_16 0x0004
#define TEXLOD_32 0x0005
#define TEXLOD_64 0x0006
#define TEXLOD_128 0x0007
#define TEXLOD_256 0x0008
#define TEXLOD_512 0x0009
#define TEXLOD_1024 0x000a
#define TEXLOD_2048 0x000b // highest level: 2048x2048
// texture geometry codes (legacy geometry spec)
#define TEXGEO_CODE_32x32 0x00000000
#define TEXGEO_CODE_64x32 0x00000001
#define TEXGEO_CODE_64x64 0x00000002
#define TEXGEO_CODE_128x64 0x00000003
#define TEXGEO_CODE_128x128 0x00000004
#define TEXGEO_CODE_256x128 0x00000005
#define TEXGEO_CODE_256x256 0x00000006 // currently not supported!
// texture extended geometry codes (scale, aspect ratio, flags)
#define TEXGEO_NOTSPECIFIED 0x00000000
#define TEXGEO_GLIDEASPECT 0x00000100 // aspect ratio spec for glide
#define TEXGEO_EXTASPECT 0x00000200 // non-standard aspect ratio spec
#define TEXGEO_INVERSESCALE 0x00000400 // inverse scale factor stored
#define TEXGEO_ASPECTMASK 0x000000ff // mask to extract aspect ratio
#define TEXGEO_SCALEMASK 0x0fff0000 // mask to extract coordinate scale
#define TEXGEO_SCALESHIFT 16 // shift to get actual scale value
#define TEXGEO_SCALE2MASK 0xf0000000 // mask to extract log2 scale
#define TEXGEO_SCALE2SHIFT 28 // shift to get actual log2 scale
#define TEXGEO_FLAGSMASK 0x0000ff00 // mask to extract additional flags
#define TEXGEO_SCALE_1 0x00010000 // scale factors by which texture
#define TEXGEO_SCALE_2 0x10020000 // coordinates need to be scaled
#define TEXGEO_SCALE_4 0x20040000 // up before they can be used for
#define TEXGEO_SCALE_8 0x30080000 // actual rendering (| their log2).
#define TEXGEO_SCALE_16 0x40100000 // this facility is used if texture
#define TEXGEO_SCALE_32 0x50200000 // coordinates have to be normalized
#define TEXGEO_SCALE_64 0x60400000 // to a reference texture size
#define TEXGEO_SCALE_128 0x70800000 // instead of the actual size of
#define TEXGEO_SCALE_256 0x81000000 // the texture.
#define TEXGEO_SCALE_512 0x92000000
#define TEXGEO_SCALE_1024 0xa4000000
#define TEXGEO_ASPECT_1x1 0x00 // supported everywhere
#define TEXGEO_ASPECT_2x1 0x01 // supported everywhere
#define TEXGEO_ASPECT_4x1 ( 0x02 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_8x1 ( 0x03 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_16x1 ( 0x04 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_32x1 ( 0x05 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_64x1 ( 0x06 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_128x1 ( 0x07 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_256x1 ( 0x08 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_512x1 ( 0x09 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1024x1 ( 0x0a | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1x2 ( 0x0b | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1x4 ( 0x0c | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1x8 ( 0x0d | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1x16 ( 0x0e | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1x32 ( 0x0f | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1x64 ( 0x10 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1x128 ( 0x11 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1x256 ( 0x12 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1x512 ( 0x13 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_1x1024 ( 0x14 | TEXGEO_EXTASPECT )
#define TEXGEO_ASPECT_GR_8x1 ( 0x00 | TEXGEO_GLIDEASPECT )
#define TEXGEO_ASPECT_GR_4x1 ( 0x01 | TEXGEO_GLIDEASPECT )
#define TEXGEO_ASPECT_GR_2x1 ( 0x02 | TEXGEO_GLIDEASPECT )
#define TEXGEO_ASPECT_GR_1x1 ( 0x03 | TEXGEO_GLIDEASPECT )
#define TEXGEO_ASPECT_GR_1x2 ( 0x04 | TEXGEO_GLIDEASPECT )
#define TEXGEO_ASPECT_GR_1x4 ( 0x05 | TEXGEO_GLIDEASPECT )
#define TEXGEO_ASPECT_GR_1x8 ( 0x06 | TEXGEO_GLIDEASPECT )
#endif // _OD_TEXDF_H_
|