1 //----------------------------------------------------------------------------- 2 // ShaderFlags 3 //----------------------------------------------------------------------------- 4 5 #ifndef __SHADERFLAGS_H__ 6 #define __SHADERFLAGS_H__ 7 8 /** 9 * Transform functions. 10 */ 11 enum FUNC 12 { 13 FUNC_CONST, 14 FUNC_SIN, 15 FUNC_TRIANGLE, 16 FUNC_SQUARE, 17 FUNC_SAWTOOTH, 18 FUNC_INVERSESAWTOOTH, 19 FUNC_NOISE 20 }; 21 22 /** 23 * Functions for generating and deforming vertexes. 24 */ 25 enum RGBGEN 26 { 27 RGBGEN_NONE, 28 RGBGEN_IDENTITY_LIGHTING, /**< 0 */ 29 RGBGEN_IDENTITY, /**< 0 */ 30 RGBGEN_WAVE, /**< 5 */ 31 RGBGEN_ENTITY, /**< 0 */ 32 RGBGEN_ONE_MINUS_ENTITY, /**< 0 */ 33 RGBGEN_VERTEX, /**< 0 */ 34 RGBGEN_EXACTVERTEX, 35 RGBGEN_ONE_MINUS_VERTEX, /**< 0 */ 36 RGBGEN_LIGHTING_DIFFUSE, /**< 0 */ 37 RGBGEN_FLARE, 38 RGBGEN_FOG, 39 RGBGEN_CONST, 40 RGBGEN_MATERIAL 41 }; 42 43 /** 44 * Alpha channel generation. 45 */ 46 enum ALPHAGEN 47 { 48 ALPHAGEN_NONE, 49 ALPHAGEN_PORTAL, 50 ALPHAGEN_IDENTITY, 51 ALPHAGEN_CONST, 52 ALPHAGEN_VERTEX, 53 ALPHAGEN_ENTITY, 54 ALPHAGEN_SPECULAR, 55 ALPHAGEN_WAVE 56 }; 57 58 /** 59 * Texture coordinate generation. 60 */ 61 enum TCGEN 62 { 63 TCGEN_BASE, /**< 0 */ 64 TCGEN_ENVIRONMENT, /**< 0 */ 65 TCGEN_LIGHTMAP, /**< 0 */ 66 TCGEN_VECTOR, /**< 6 */ 67 TCGEN_FOG 68 }; 69 70 /** 71 * Texture coordinate deformation. 72 */ 73 enum TCMOD 74 { 75 SP_TCMOD_NONE = 0, 76 TCMOD_ROTATE = 1, 77 TCMOD_SCALE = 2, 78 TCMOD_SCROLL = 3, 79 TCMOD_STRETCH = 4, 80 TCMOD_TRANSFORM = 5, 81 TCMOD_TURB = 6, 82 }; 83 84 /** 85 * Vertes coordinates deformations. 86 * @see DeformVertexes 87 */ 88 enum DEFORMVERTEXES 89 { 90 DEFORMVERTEXES_NONE = 0, /**< 0 parameters */ 91 DEFORMVERTEXES_WAVE = 1, /**< 6 parameters */ 92 DEFORMVERTEXES_NORMAL = 2, /**< 5 parameters */ 93 DEFORMVERTEXES_BULGE = 3, /**< 3 parameters */ 94 DEFORMVERTEXES_MOVE = 4, /**< 8 parameters */ 95 DEFORMVERTEXES_AUTOSPRITE = 5, /**< 0 parameters */ 96 DEFORMVERTEXES_AUTOSPRITE2 = 6, /**< 0 parameters */ 97 }; 98 99 /** 100 * Layer flags. 101 */ 102 enum 103 { 104 LF_NOMIPMAP = 0x01, /**< do not create mipmaps */ 105 LF_NOPICMIP = 0x02, /**< allways pick the highest mipmap */ 106 LF_CLAMP = 0x04, /**< clamp, default is repeat */ 107 LF_DETAIL = 0x08, /**< detail texture */ 108 LF_LIGHTMAP = 0x10, /**< lightmap */ 109 LF_HASTCMOD = 0x20, 110 LF_USENORMALS = 0x40, 111 LF_MULTITEX = 0x80 /**< this shader and the next could be collapsed */ 112 }; 113 114 enum 115 { // val << 16 116 SORT_PORTAL = 1, // 0x10000 117 SORT_SKY = 2, // 0x20000 118 SORT_NORMAL = 3, SORT_OPAQUE = 3, // 0x30000 119 SORT_DECAL = 4, // 0x40000 120 SORT_UNDERBANNER = 5, // 0x50000 121 SORT_BANNER = 6, // 0x60000 122 SORT_TRANS = 7, SORT_SEETHROUGH = 7, // 0x70000 123 SORT_UNDERWATER = 8, // 0x80000 124 SORT_ADDITIVE = 9, // 0x90000 125 SORT_ADDITIVE1 = 10, /**< �? */ // 0xA0000 126 SORT_ADDITIVE2 = 11, // 0xB0000 127 SORT_FOG = 12, // 0xC0000 128 SORT_FOG1 = 13, /**< �? */ // 0xD0000 129 SORT_FOG2 = 14, /**< �? */ // 0xE0000 130 SORT_STENCILSHADOW = 15, /**< �? taken from shaderlib */ // 0xF0000 131 SORT_NEAREST = 16, // 0x100000 132 }; 133 134 /** 135 * Culling type. 136 */ 137 enum 138 { 139 CULL_FRONT = 1, 140 CULL_BACK = -1, 141 CULL_NONE = 0, 142 }; 143 144 /** 145 * Shader flags. 146 */ 147 enum 148 { 149 SF_NOMIPMAP = (1<<1), /**< do not create mipmaps */ 150 SF_NOPICMIP = (1<<2), /**< allways pick the highest mipmap */ 151 SF_POLYGONOFFSET = (1<<3), /**< surface needs polygon offset */ 152 SF_PORTAL = (1<<4), /**< there is a portal layer */ 153 SF_HASLIGHTMAP = (1<<5), /**< there is a lightmap layer */ 154 SF_HASCOLORS = (1<<6), /**< there is a layer that needs colors */ 155 SF_HASTCMOD = (1<<7), /**< there is a layer that has lf_hastcmod */ 156 SF_USENORMALS = (1<<8), /**< there is a layer that has lf_usenormals */ 157 SF_MULTITEX = (1<<9), /**< this shader has two layers that can be collapsed */ 158 }; 159 160 /** 161 * Face types. 162 */ 163 enum 164 { 165 FACETYPE_NORMAL = 1, 166 FACETYPE_PLANAR = 1, /**< the same as above */ 167 FACETYPE_PATCH = 2, 168 FACETYPE_MESH = 3, 169 FACETYPE_FLARE = 4 170 }; 171 172 #endif /* __SHADERFLAGS_H__ */ 173