GraphicsDefs.pkg 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. $#include "Graphics/GraphicsDefs.h"
  2. enum PrimitiveType
  3. {
  4. TRIANGLE_LIST = 0,
  5. LINE_LIST,
  6. POINT_LIST,
  7. TRIANGLE_STRIP,
  8. LINE_STRIP,
  9. TRIANGLE_FAN
  10. };
  11. enum GeometryType
  12. {
  13. GEOM_STATIC = 0,
  14. GEOM_SKINNED = 1,
  15. GEOM_INSTANCED = 2,
  16. GEOM_BILLBOARD = 3,
  17. GEOM_STATIC_NOINSTANCING = 4,
  18. MAX_GEOMETRYTYPES = 4,
  19. };
  20. enum BlendMode
  21. {
  22. BLEND_REPLACE = 0,
  23. BLEND_ADD,
  24. BLEND_MULTIPLY,
  25. BLEND_ALPHA,
  26. BLEND_ADDALPHA,
  27. BLEND_PREMULALPHA,
  28. BLEND_INVDESTALPHA,
  29. BLEND_SUBTRACT,
  30. BLEND_SUBTRACTALPHA,
  31. MAX_BLENDMODES
  32. };
  33. enum CompareMode
  34. {
  35. CMP_ALWAYS = 0,
  36. CMP_EQUAL,
  37. CMP_NOTEQUAL,
  38. CMP_LESS,
  39. CMP_LESSEQUAL,
  40. CMP_GREATER,
  41. CMP_GREATEREQUAL,
  42. MAX_COMPAREMODES
  43. };
  44. enum CullMode
  45. {
  46. CULL_NONE = 0,
  47. CULL_CCW,
  48. CULL_CW,
  49. MAX_CULLMODES
  50. };
  51. enum FillMode
  52. {
  53. FILL_SOLID = 0,
  54. FILL_WIREFRAME,
  55. FILL_POINT
  56. };
  57. enum StencilOp
  58. {
  59. OP_KEEP = 0,
  60. OP_ZERO,
  61. OP_REF,
  62. OP_INCR,
  63. OP_DECR
  64. };
  65. enum LockState
  66. {
  67. LOCK_NONE = 0,
  68. LOCK_HARDWARE,
  69. LOCK_SHADOW,
  70. LOCK_SCRATCH
  71. };
  72. enum LegacyVertexElement
  73. {
  74. ELEMENT_POSITION = 0,
  75. ELEMENT_NORMAL,
  76. ELEMENT_COLOR,
  77. ELEMENT_TEXCOORD1,
  78. ELEMENT_TEXCOORD2,
  79. ELEMENT_CUBETEXCOORD1,
  80. ELEMENT_CUBETEXCOORD2,
  81. ELEMENT_TANGENT,
  82. ELEMENT_BLENDWEIGHTS,
  83. ELEMENT_BLENDINDICES,
  84. ELEMENT_INSTANCEMATRIX1,
  85. ELEMENT_INSTANCEMATRIX2,
  86. ELEMENT_INSTANCEMATRIX3,
  87. ELEMENT_OBJECTINDEX,
  88. MAX_LEGACY_VERTEX_ELEMENTS
  89. };
  90. enum VertexElementType
  91. {
  92. TYPE_INT = 0,
  93. TYPE_FLOAT,
  94. TYPE_VECTOR2,
  95. TYPE_VECTOR3,
  96. TYPE_VECTOR4,
  97. TYPE_UBYTE4,
  98. TYPE_UBYTE4_NORM,
  99. MAX_VERTEX_ELEMENT_TYPES
  100. };
  101. enum VertexElementSemantic
  102. {
  103. SEM_POSITION = 0,
  104. SEM_NORMAL,
  105. SEM_BINORMAL,
  106. SEM_TANGENT,
  107. SEM_TEXCOORD,
  108. SEM_COLOR,
  109. SEM_BLENDWEIGHTS,
  110. SEM_BLENDINDICES,
  111. SEM_OBJECTINDEX,
  112. MAX_VERTEX_ELEMENT_SEMANTICS
  113. };
  114. enum TextureFilterMode
  115. {
  116. FILTER_NEAREST = 0,
  117. FILTER_BILINEAR,
  118. FILTER_TRILINEAR,
  119. FILTER_ANISOTROPIC,
  120. FILTER_DEFAULT,
  121. MAX_FILTERMODES
  122. };
  123. enum TextureAddressMode
  124. {
  125. ADDRESS_WRAP = 0,
  126. ADDRESS_MIRROR,
  127. ADDRESS_CLAMP,
  128. ADDRESS_BORDER,
  129. MAX_ADDRESSMODES
  130. };
  131. enum TextureCoordinate
  132. {
  133. COORD_U = 0,
  134. COORD_V,
  135. COORD_W,
  136. MAX_COORDS
  137. };
  138. enum TextureUsage
  139. {
  140. TEXTURE_STATIC = 0,
  141. TEXTURE_DYNAMIC,
  142. TEXTURE_RENDERTARGET,
  143. TEXTURE_DEPTHSTENCIL
  144. };
  145. enum CubeMapFace
  146. {
  147. FACE_POSITIVE_X = 0,
  148. FACE_NEGATIVE_X,
  149. FACE_POSITIVE_Y,
  150. FACE_NEGATIVE_Y,
  151. FACE_POSITIVE_Z,
  152. FACE_NEGATIVE_Z,
  153. MAX_CUBEMAP_FACES
  154. };
  155. enum RenderSurfaceUpdateMode
  156. {
  157. SURFACE_MANUALUPDATE = 0,
  158. SURFACE_UPDATEVISIBLE,
  159. SURFACE_UPDATEALWAYS
  160. };
  161. enum ShaderType
  162. {
  163. VS = 0,
  164. PS,
  165. };
  166. // Texture unit numbering depends on graphics capability (mobile or desktop). Expose only the units we are sure of
  167. enum TextureUnit
  168. {
  169. TU_DIFFUSE = 0,
  170. TU_ALBEDOBUFFER = 0,
  171. TU_NORMAL = 1,
  172. TU_NORMALBUFFER = 1,
  173. TU_SPECULAR = 2,
  174. TU_EMISSIVE = 3,
  175. TU_ENVIRONMENT = 4,
  176. };
  177. enum FaceCameraMode
  178. {
  179. FC_NONE = 0,
  180. FC_ROTATE_XYZ,
  181. FC_ROTATE_Y,
  182. FC_LOOKAT_XYZ,
  183. FC_LOOKAT_Y,
  184. FC_DIRECTION
  185. };
  186. /// Shadow type
  187. enum ShadowQuality
  188. {
  189. SHADOWQUALITY_SIMPLE_16BIT = 0,
  190. SHADOWQUALITY_SIMPLE_24BIT,
  191. SHADOWQUALITY_PCF_16BIT,
  192. SHADOWQUALITY_PCF_24BIT,
  193. SHADOWQUALITY_VSM,
  194. SHADOWQUALITY_BLUR_VSM
  195. };
  196. struct VertexElement
  197. {
  198. VertexElement();
  199. VertexElement(VertexElementType type, VertexElementSemantic semantic, unsigned char index = 0, bool perInstance = false);
  200. VertexElementType type_ @ type;
  201. VertexElementSemantic semantic_ @ semantic;
  202. unsigned char index_ @ index;
  203. bool perInstance_ @ perInstance;
  204. unsigned offset_ @ offset;
  205. };
  206. static const int QUALITY_LOW;
  207. static const int QUALITY_MEDIUM;
  208. static const int QUALITY_HIGH;
  209. static const int QUALITY_MAX;
  210. static const unsigned CLEAR_COLOR;
  211. static const unsigned CLEAR_DEPTH;
  212. static const unsigned CLEAR_STENCIL;
  213. static const unsigned MASK_NONE;
  214. static const unsigned MASK_POSITION;
  215. static const unsigned MASK_NORMAL;
  216. static const unsigned MASK_COLOR;
  217. static const unsigned MASK_TEXCOORD1;
  218. static const unsigned MASK_TEXCOORD2;
  219. static const unsigned MASK_CUBETEXCOORD1;
  220. static const unsigned MASK_CUBETEXCOORD2;
  221. static const unsigned MASK_TANGENT;
  222. static const unsigned MASK_BLENDWEIGHTS;
  223. static const unsigned MASK_BLENDINDICES;
  224. static const unsigned MASK_INSTANCEMATRIX1;
  225. static const unsigned MASK_INSTANCEMATRIX2;
  226. static const unsigned MASK_INSTANCEMATRIX3;
  227. static const unsigned MASK_OBJECTINDEX;