GraphicsDefs.pkg 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  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_NEAREST_ANISOTROPIC,
  121. FILTER_DEFAULT,
  122. MAX_FILTERMODES
  123. };
  124. enum TextureAddressMode
  125. {
  126. ADDRESS_WRAP = 0,
  127. ADDRESS_MIRROR,
  128. ADDRESS_CLAMP,
  129. ADDRESS_BORDER,
  130. MAX_ADDRESSMODES
  131. };
  132. enum TextureCoordinate
  133. {
  134. COORD_U = 0,
  135. COORD_V,
  136. COORD_W,
  137. MAX_COORDS
  138. };
  139. enum TextureUsage
  140. {
  141. TEXTURE_STATIC = 0,
  142. TEXTURE_DYNAMIC,
  143. TEXTURE_RENDERTARGET,
  144. TEXTURE_DEPTHSTENCIL
  145. };
  146. enum CubeMapFace
  147. {
  148. FACE_POSITIVE_X = 0,
  149. FACE_NEGATIVE_X,
  150. FACE_POSITIVE_Y,
  151. FACE_NEGATIVE_Y,
  152. FACE_POSITIVE_Z,
  153. FACE_NEGATIVE_Z,
  154. MAX_CUBEMAP_FACES
  155. };
  156. enum RenderSurfaceUpdateMode
  157. {
  158. SURFACE_MANUALUPDATE = 0,
  159. SURFACE_UPDATEVISIBLE,
  160. SURFACE_UPDATEALWAYS
  161. };
  162. enum ShaderType
  163. {
  164. VS = 0,
  165. PS,
  166. };
  167. // Texture unit numbering depends on graphics capability (mobile or desktop). Expose only the units we are sure of
  168. enum TextureUnit
  169. {
  170. TU_DIFFUSE = 0,
  171. TU_ALBEDOBUFFER = 0,
  172. TU_NORMAL = 1,
  173. TU_NORMALBUFFER = 1,
  174. TU_SPECULAR = 2,
  175. TU_EMISSIVE = 3,
  176. TU_ENVIRONMENT = 4,
  177. };
  178. enum FaceCameraMode
  179. {
  180. FC_NONE = 0,
  181. FC_ROTATE_XYZ,
  182. FC_ROTATE_Y,
  183. FC_LOOKAT_XYZ,
  184. FC_LOOKAT_Y,
  185. FC_LOOKAT_MIXED,
  186. FC_DIRECTION
  187. };
  188. /// Shadow type
  189. enum ShadowQuality
  190. {
  191. SHADOWQUALITY_SIMPLE_16BIT = 0,
  192. SHADOWQUALITY_SIMPLE_24BIT,
  193. SHADOWQUALITY_PCF_16BIT,
  194. SHADOWQUALITY_PCF_24BIT,
  195. SHADOWQUALITY_VSM,
  196. SHADOWQUALITY_BLUR_VSM
  197. };
  198. struct VertexElement
  199. {
  200. VertexElement();
  201. VertexElement(VertexElementType type, VertexElementSemantic semantic, unsigned char index = 0, bool perInstance = false);
  202. VertexElementType type_ @ type;
  203. VertexElementSemantic semantic_ @ semantic;
  204. unsigned char index_ @ index;
  205. bool perInstance_ @ perInstance;
  206. unsigned offset_ @ offset;
  207. };
  208. static const int QUALITY_LOW;
  209. static const int QUALITY_MEDIUM;
  210. static const int QUALITY_HIGH;
  211. static const int QUALITY_MAX;
  212. static const unsigned CLEAR_COLOR;
  213. static const unsigned CLEAR_DEPTH;
  214. static const unsigned CLEAR_STENCIL;
  215. static const unsigned MASK_NONE;
  216. static const unsigned MASK_POSITION;
  217. static const unsigned MASK_NORMAL;
  218. static const unsigned MASK_COLOR;
  219. static const unsigned MASK_TEXCOORD1;
  220. static const unsigned MASK_TEXCOORD2;
  221. static const unsigned MASK_CUBETEXCOORD1;
  222. static const unsigned MASK_CUBETEXCOORD2;
  223. static const unsigned MASK_TANGENT;
  224. static const unsigned MASK_BLENDWEIGHTS;
  225. static const unsigned MASK_BLENDINDICES;
  226. static const unsigned MASK_INSTANCEMATRIX1;
  227. static const unsigned MASK_INSTANCEMATRIX2;
  228. static const unsigned MASK_INSTANCEMATRIX3;
  229. static const unsigned MASK_OBJECTINDEX;