aboutsummaryrefslogtreecommitdiff
path: root/src/libparsec/include/od_texdf.h
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
committerFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
commitc068f22329d5cc722622a2183bbb22eef2093df7 (patch)
tree12d56c1aede67988a55e241364606bfbb4dba933 /src/libparsec/include/od_texdf.h
downloadopenparsec-c068f22329d5cc722622a2183bbb22eef2093df7.tar.xz
openparsec-c068f22329d5cc722622a2183bbb22eef2093df7.zip
initial importHEADmain
Diffstat (limited to 'src/libparsec/include/od_texdf.h')
-rw-r--r--src/libparsec/include/od_texdf.h146
1 files changed, 146 insertions, 0 deletions
diff --git a/src/libparsec/include/od_texdf.h b/src/libparsec/include/od_texdf.h
new file mode 100644
index 0000000..467d61e
--- /dev/null
+++ b/src/libparsec/include/od_texdf.h
@@ -0,0 +1,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_
+
+