Collection of DPF-based plugins for packaging
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

488 lines
14KB

  1. /// @ref gtc_matrix_integer
  2. /// @file glm/gtc/matrix_integer.hpp
  3. ///
  4. /// @see core (dependence)
  5. ///
  6. /// @defgroup gtc_matrix_integer GLM_GTC_matrix_integer
  7. /// @ingroup gtc
  8. ///
  9. /// Include <glm/gtc/matrix_integer.hpp> to use the features of this extension.
  10. ///
  11. /// Defines a number of matrices with integer types.
  12. #pragma once
  13. // Dependency:
  14. #include "../mat2x2.hpp"
  15. #include "../mat2x3.hpp"
  16. #include "../mat2x4.hpp"
  17. #include "../mat3x2.hpp"
  18. #include "../mat3x3.hpp"
  19. #include "../mat3x4.hpp"
  20. #include "../mat4x2.hpp"
  21. #include "../mat4x3.hpp"
  22. #include "../mat4x4.hpp"
  23. #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
  24. # pragma message("GLM: GLM_GTC_matrix_integer extension included")
  25. #endif
  26. namespace glm
  27. {
  28. /// @addtogroup gtc_matrix_integer
  29. /// @{
  30. /// High-qualifier signed integer 2x2 matrix.
  31. /// @see gtc_matrix_integer
  32. typedef mat<2, 2, int, highp> highp_imat2;
  33. /// High-qualifier signed integer 3x3 matrix.
  34. /// @see gtc_matrix_integer
  35. typedef mat<3, 3, int, highp> highp_imat3;
  36. /// High-qualifier signed integer 4x4 matrix.
  37. /// @see gtc_matrix_integer
  38. typedef mat<4, 4, int, highp> highp_imat4;
  39. /// High-qualifier signed integer 2x2 matrix.
  40. /// @see gtc_matrix_integer
  41. typedef mat<2, 2, int, highp> highp_imat2x2;
  42. /// High-qualifier signed integer 2x3 matrix.
  43. /// @see gtc_matrix_integer
  44. typedef mat<2, 3, int, highp> highp_imat2x3;
  45. /// High-qualifier signed integer 2x4 matrix.
  46. /// @see gtc_matrix_integer
  47. typedef mat<2, 4, int, highp> highp_imat2x4;
  48. /// High-qualifier signed integer 3x2 matrix.
  49. /// @see gtc_matrix_integer
  50. typedef mat<3, 2, int, highp> highp_imat3x2;
  51. /// High-qualifier signed integer 3x3 matrix.
  52. /// @see gtc_matrix_integer
  53. typedef mat<3, 3, int, highp> highp_imat3x3;
  54. /// High-qualifier signed integer 3x4 matrix.
  55. /// @see gtc_matrix_integer
  56. typedef mat<3, 4, int, highp> highp_imat3x4;
  57. /// High-qualifier signed integer 4x2 matrix.
  58. /// @see gtc_matrix_integer
  59. typedef mat<4, 2, int, highp> highp_imat4x2;
  60. /// High-qualifier signed integer 4x3 matrix.
  61. /// @see gtc_matrix_integer
  62. typedef mat<4, 3, int, highp> highp_imat4x3;
  63. /// High-qualifier signed integer 4x4 matrix.
  64. /// @see gtc_matrix_integer
  65. typedef mat<4, 4, int, highp> highp_imat4x4;
  66. /// Medium-qualifier signed integer 2x2 matrix.
  67. /// @see gtc_matrix_integer
  68. typedef mat<2, 2, int, mediump> mediump_imat2;
  69. /// Medium-qualifier signed integer 3x3 matrix.
  70. /// @see gtc_matrix_integer
  71. typedef mat<3, 3, int, mediump> mediump_imat3;
  72. /// Medium-qualifier signed integer 4x4 matrix.
  73. /// @see gtc_matrix_integer
  74. typedef mat<4, 4, int, mediump> mediump_imat4;
  75. /// Medium-qualifier signed integer 2x2 matrix.
  76. /// @see gtc_matrix_integer
  77. typedef mat<2, 2, int, mediump> mediump_imat2x2;
  78. /// Medium-qualifier signed integer 2x3 matrix.
  79. /// @see gtc_matrix_integer
  80. typedef mat<2, 3, int, mediump> mediump_imat2x3;
  81. /// Medium-qualifier signed integer 2x4 matrix.
  82. /// @see gtc_matrix_integer
  83. typedef mat<2, 4, int, mediump> mediump_imat2x4;
  84. /// Medium-qualifier signed integer 3x2 matrix.
  85. /// @see gtc_matrix_integer
  86. typedef mat<3, 2, int, mediump> mediump_imat3x2;
  87. /// Medium-qualifier signed integer 3x3 matrix.
  88. /// @see gtc_matrix_integer
  89. typedef mat<3, 3, int, mediump> mediump_imat3x3;
  90. /// Medium-qualifier signed integer 3x4 matrix.
  91. /// @see gtc_matrix_integer
  92. typedef mat<3, 4, int, mediump> mediump_imat3x4;
  93. /// Medium-qualifier signed integer 4x2 matrix.
  94. /// @see gtc_matrix_integer
  95. typedef mat<4, 2, int, mediump> mediump_imat4x2;
  96. /// Medium-qualifier signed integer 4x3 matrix.
  97. /// @see gtc_matrix_integer
  98. typedef mat<4, 3, int, mediump> mediump_imat4x3;
  99. /// Medium-qualifier signed integer 4x4 matrix.
  100. /// @see gtc_matrix_integer
  101. typedef mat<4, 4, int, mediump> mediump_imat4x4;
  102. /// Low-qualifier signed integer 2x2 matrix.
  103. /// @see gtc_matrix_integer
  104. typedef mat<2, 2, int, lowp> lowp_imat2;
  105. /// Low-qualifier signed integer 3x3 matrix.
  106. /// @see gtc_matrix_integer
  107. typedef mat<3, 3, int, lowp> lowp_imat3;
  108. /// Low-qualifier signed integer 4x4 matrix.
  109. /// @see gtc_matrix_integer
  110. typedef mat<4, 4, int, lowp> lowp_imat4;
  111. /// Low-qualifier signed integer 2x2 matrix.
  112. /// @see gtc_matrix_integer
  113. typedef mat<2, 2, int, lowp> lowp_imat2x2;
  114. /// Low-qualifier signed integer 2x3 matrix.
  115. /// @see gtc_matrix_integer
  116. typedef mat<2, 3, int, lowp> lowp_imat2x3;
  117. /// Low-qualifier signed integer 2x4 matrix.
  118. /// @see gtc_matrix_integer
  119. typedef mat<2, 4, int, lowp> lowp_imat2x4;
  120. /// Low-qualifier signed integer 3x2 matrix.
  121. /// @see gtc_matrix_integer
  122. typedef mat<3, 2, int, lowp> lowp_imat3x2;
  123. /// Low-qualifier signed integer 3x3 matrix.
  124. /// @see gtc_matrix_integer
  125. typedef mat<3, 3, int, lowp> lowp_imat3x3;
  126. /// Low-qualifier signed integer 3x4 matrix.
  127. /// @see gtc_matrix_integer
  128. typedef mat<3, 4, int, lowp> lowp_imat3x4;
  129. /// Low-qualifier signed integer 4x2 matrix.
  130. /// @see gtc_matrix_integer
  131. typedef mat<4, 2, int, lowp> lowp_imat4x2;
  132. /// Low-qualifier signed integer 4x3 matrix.
  133. /// @see gtc_matrix_integer
  134. typedef mat<4, 3, int, lowp> lowp_imat4x3;
  135. /// Low-qualifier signed integer 4x4 matrix.
  136. /// @see gtc_matrix_integer
  137. typedef mat<4, 4, int, lowp> lowp_imat4x4;
  138. /// High-qualifier unsigned integer 2x2 matrix.
  139. /// @see gtc_matrix_integer
  140. typedef mat<2, 2, uint, highp> highp_umat2;
  141. /// High-qualifier unsigned integer 3x3 matrix.
  142. /// @see gtc_matrix_integer
  143. typedef mat<3, 3, uint, highp> highp_umat3;
  144. /// High-qualifier unsigned integer 4x4 matrix.
  145. /// @see gtc_matrix_integer
  146. typedef mat<4, 4, uint, highp> highp_umat4;
  147. /// High-qualifier unsigned integer 2x2 matrix.
  148. /// @see gtc_matrix_integer
  149. typedef mat<2, 2, uint, highp> highp_umat2x2;
  150. /// High-qualifier unsigned integer 2x3 matrix.
  151. /// @see gtc_matrix_integer
  152. typedef mat<2, 3, uint, highp> highp_umat2x3;
  153. /// High-qualifier unsigned integer 2x4 matrix.
  154. /// @see gtc_matrix_integer
  155. typedef mat<2, 4, uint, highp> highp_umat2x4;
  156. /// High-qualifier unsigned integer 3x2 matrix.
  157. /// @see gtc_matrix_integer
  158. typedef mat<3, 2, uint, highp> highp_umat3x2;
  159. /// High-qualifier unsigned integer 3x3 matrix.
  160. /// @see gtc_matrix_integer
  161. typedef mat<3, 3, uint, highp> highp_umat3x3;
  162. /// High-qualifier unsigned integer 3x4 matrix.
  163. /// @see gtc_matrix_integer
  164. typedef mat<3, 4, uint, highp> highp_umat3x4;
  165. /// High-qualifier unsigned integer 4x2 matrix.
  166. /// @see gtc_matrix_integer
  167. typedef mat<4, 2, uint, highp> highp_umat4x2;
  168. /// High-qualifier unsigned integer 4x3 matrix.
  169. /// @see gtc_matrix_integer
  170. typedef mat<4, 3, uint, highp> highp_umat4x3;
  171. /// High-qualifier unsigned integer 4x4 matrix.
  172. /// @see gtc_matrix_integer
  173. typedef mat<4, 4, uint, highp> highp_umat4x4;
  174. /// Medium-qualifier unsigned integer 2x2 matrix.
  175. /// @see gtc_matrix_integer
  176. typedef mat<2, 2, uint, mediump> mediump_umat2;
  177. /// Medium-qualifier unsigned integer 3x3 matrix.
  178. /// @see gtc_matrix_integer
  179. typedef mat<3, 3, uint, mediump> mediump_umat3;
  180. /// Medium-qualifier unsigned integer 4x4 matrix.
  181. /// @see gtc_matrix_integer
  182. typedef mat<4, 4, uint, mediump> mediump_umat4;
  183. /// Medium-qualifier unsigned integer 2x2 matrix.
  184. /// @see gtc_matrix_integer
  185. typedef mat<2, 2, uint, mediump> mediump_umat2x2;
  186. /// Medium-qualifier unsigned integer 2x3 matrix.
  187. /// @see gtc_matrix_integer
  188. typedef mat<2, 3, uint, mediump> mediump_umat2x3;
  189. /// Medium-qualifier unsigned integer 2x4 matrix.
  190. /// @see gtc_matrix_integer
  191. typedef mat<2, 4, uint, mediump> mediump_umat2x4;
  192. /// Medium-qualifier unsigned integer 3x2 matrix.
  193. /// @see gtc_matrix_integer
  194. typedef mat<3, 2, uint, mediump> mediump_umat3x2;
  195. /// Medium-qualifier unsigned integer 3x3 matrix.
  196. /// @see gtc_matrix_integer
  197. typedef mat<3, 3, uint, mediump> mediump_umat3x3;
  198. /// Medium-qualifier unsigned integer 3x4 matrix.
  199. /// @see gtc_matrix_integer
  200. typedef mat<3, 4, uint, mediump> mediump_umat3x4;
  201. /// Medium-qualifier unsigned integer 4x2 matrix.
  202. /// @see gtc_matrix_integer
  203. typedef mat<4, 2, uint, mediump> mediump_umat4x2;
  204. /// Medium-qualifier unsigned integer 4x3 matrix.
  205. /// @see gtc_matrix_integer
  206. typedef mat<4, 3, uint, mediump> mediump_umat4x3;
  207. /// Medium-qualifier unsigned integer 4x4 matrix.
  208. /// @see gtc_matrix_integer
  209. typedef mat<4, 4, uint, mediump> mediump_umat4x4;
  210. /// Low-qualifier unsigned integer 2x2 matrix.
  211. /// @see gtc_matrix_integer
  212. typedef mat<2, 2, uint, lowp> lowp_umat2;
  213. /// Low-qualifier unsigned integer 3x3 matrix.
  214. /// @see gtc_matrix_integer
  215. typedef mat<3, 3, uint, lowp> lowp_umat3;
  216. /// Low-qualifier unsigned integer 4x4 matrix.
  217. /// @see gtc_matrix_integer
  218. typedef mat<4, 4, uint, lowp> lowp_umat4;
  219. /// Low-qualifier unsigned integer 2x2 matrix.
  220. /// @see gtc_matrix_integer
  221. typedef mat<2, 2, uint, lowp> lowp_umat2x2;
  222. /// Low-qualifier unsigned integer 2x3 matrix.
  223. /// @see gtc_matrix_integer
  224. typedef mat<2, 3, uint, lowp> lowp_umat2x3;
  225. /// Low-qualifier unsigned integer 2x4 matrix.
  226. /// @see gtc_matrix_integer
  227. typedef mat<2, 4, uint, lowp> lowp_umat2x4;
  228. /// Low-qualifier unsigned integer 3x2 matrix.
  229. /// @see gtc_matrix_integer
  230. typedef mat<3, 2, uint, lowp> lowp_umat3x2;
  231. /// Low-qualifier unsigned integer 3x3 matrix.
  232. /// @see gtc_matrix_integer
  233. typedef mat<3, 3, uint, lowp> lowp_umat3x3;
  234. /// Low-qualifier unsigned integer 3x4 matrix.
  235. /// @see gtc_matrix_integer
  236. typedef mat<3, 4, uint, lowp> lowp_umat3x4;
  237. /// Low-qualifier unsigned integer 4x2 matrix.
  238. /// @see gtc_matrix_integer
  239. typedef mat<4, 2, uint, lowp> lowp_umat4x2;
  240. /// Low-qualifier unsigned integer 4x3 matrix.
  241. /// @see gtc_matrix_integer
  242. typedef mat<4, 3, uint, lowp> lowp_umat4x3;
  243. /// Low-qualifier unsigned integer 4x4 matrix.
  244. /// @see gtc_matrix_integer
  245. typedef mat<4, 4, uint, lowp> lowp_umat4x4;
  246. #if(defined(GLM_PRECISION_HIGHP_INT))
  247. typedef highp_imat2 imat2;
  248. typedef highp_imat3 imat3;
  249. typedef highp_imat4 imat4;
  250. typedef highp_imat2x2 imat2x2;
  251. typedef highp_imat2x3 imat2x3;
  252. typedef highp_imat2x4 imat2x4;
  253. typedef highp_imat3x2 imat3x2;
  254. typedef highp_imat3x3 imat3x3;
  255. typedef highp_imat3x4 imat3x4;
  256. typedef highp_imat4x2 imat4x2;
  257. typedef highp_imat4x3 imat4x3;
  258. typedef highp_imat4x4 imat4x4;
  259. #elif(defined(GLM_PRECISION_LOWP_INT))
  260. typedef lowp_imat2 imat2;
  261. typedef lowp_imat3 imat3;
  262. typedef lowp_imat4 imat4;
  263. typedef lowp_imat2x2 imat2x2;
  264. typedef lowp_imat2x3 imat2x3;
  265. typedef lowp_imat2x4 imat2x4;
  266. typedef lowp_imat3x2 imat3x2;
  267. typedef lowp_imat3x3 imat3x3;
  268. typedef lowp_imat3x4 imat3x4;
  269. typedef lowp_imat4x2 imat4x2;
  270. typedef lowp_imat4x3 imat4x3;
  271. typedef lowp_imat4x4 imat4x4;
  272. #else //if(defined(GLM_PRECISION_MEDIUMP_INT))
  273. /// Signed integer 2x2 matrix.
  274. /// @see gtc_matrix_integer
  275. typedef mediump_imat2 imat2;
  276. /// Signed integer 3x3 matrix.
  277. /// @see gtc_matrix_integer
  278. typedef mediump_imat3 imat3;
  279. /// Signed integer 4x4 matrix.
  280. /// @see gtc_matrix_integer
  281. typedef mediump_imat4 imat4;
  282. /// Signed integer 2x2 matrix.
  283. /// @see gtc_matrix_integer
  284. typedef mediump_imat2x2 imat2x2;
  285. /// Signed integer 2x3 matrix.
  286. /// @see gtc_matrix_integer
  287. typedef mediump_imat2x3 imat2x3;
  288. /// Signed integer 2x4 matrix.
  289. /// @see gtc_matrix_integer
  290. typedef mediump_imat2x4 imat2x4;
  291. /// Signed integer 3x2 matrix.
  292. /// @see gtc_matrix_integer
  293. typedef mediump_imat3x2 imat3x2;
  294. /// Signed integer 3x3 matrix.
  295. /// @see gtc_matrix_integer
  296. typedef mediump_imat3x3 imat3x3;
  297. /// Signed integer 3x4 matrix.
  298. /// @see gtc_matrix_integer
  299. typedef mediump_imat3x4 imat3x4;
  300. /// Signed integer 4x2 matrix.
  301. /// @see gtc_matrix_integer
  302. typedef mediump_imat4x2 imat4x2;
  303. /// Signed integer 4x3 matrix.
  304. /// @see gtc_matrix_integer
  305. typedef mediump_imat4x3 imat4x3;
  306. /// Signed integer 4x4 matrix.
  307. /// @see gtc_matrix_integer
  308. typedef mediump_imat4x4 imat4x4;
  309. #endif//GLM_PRECISION
  310. #if(defined(GLM_PRECISION_HIGHP_UINT))
  311. typedef highp_umat2 umat2;
  312. typedef highp_umat3 umat3;
  313. typedef highp_umat4 umat4;
  314. typedef highp_umat2x2 umat2x2;
  315. typedef highp_umat2x3 umat2x3;
  316. typedef highp_umat2x4 umat2x4;
  317. typedef highp_umat3x2 umat3x2;
  318. typedef highp_umat3x3 umat3x3;
  319. typedef highp_umat3x4 umat3x4;
  320. typedef highp_umat4x2 umat4x2;
  321. typedef highp_umat4x3 umat4x3;
  322. typedef highp_umat4x4 umat4x4;
  323. #elif(defined(GLM_PRECISION_LOWP_UINT))
  324. typedef lowp_umat2 umat2;
  325. typedef lowp_umat3 umat3;
  326. typedef lowp_umat4 umat4;
  327. typedef lowp_umat2x2 umat2x2;
  328. typedef lowp_umat2x3 umat2x3;
  329. typedef lowp_umat2x4 umat2x4;
  330. typedef lowp_umat3x2 umat3x2;
  331. typedef lowp_umat3x3 umat3x3;
  332. typedef lowp_umat3x4 umat3x4;
  333. typedef lowp_umat4x2 umat4x2;
  334. typedef lowp_umat4x3 umat4x3;
  335. typedef lowp_umat4x4 umat4x4;
  336. #else //if(defined(GLM_PRECISION_MEDIUMP_UINT))
  337. /// Unsigned integer 2x2 matrix.
  338. /// @see gtc_matrix_integer
  339. typedef mediump_umat2 umat2;
  340. /// Unsigned integer 3x3 matrix.
  341. /// @see gtc_matrix_integer
  342. typedef mediump_umat3 umat3;
  343. /// Unsigned integer 4x4 matrix.
  344. /// @see gtc_matrix_integer
  345. typedef mediump_umat4 umat4;
  346. /// Unsigned integer 2x2 matrix.
  347. /// @see gtc_matrix_integer
  348. typedef mediump_umat2x2 umat2x2;
  349. /// Unsigned integer 2x3 matrix.
  350. /// @see gtc_matrix_integer
  351. typedef mediump_umat2x3 umat2x3;
  352. /// Unsigned integer 2x4 matrix.
  353. /// @see gtc_matrix_integer
  354. typedef mediump_umat2x4 umat2x4;
  355. /// Unsigned integer 3x2 matrix.
  356. /// @see gtc_matrix_integer
  357. typedef mediump_umat3x2 umat3x2;
  358. /// Unsigned integer 3x3 matrix.
  359. /// @see gtc_matrix_integer
  360. typedef mediump_umat3x3 umat3x3;
  361. /// Unsigned integer 3x4 matrix.
  362. /// @see gtc_matrix_integer
  363. typedef mediump_umat3x4 umat3x4;
  364. /// Unsigned integer 4x2 matrix.
  365. /// @see gtc_matrix_integer
  366. typedef mediump_umat4x2 umat4x2;
  367. /// Unsigned integer 4x3 matrix.
  368. /// @see gtc_matrix_integer
  369. typedef mediump_umat4x3 umat4x3;
  370. /// Unsigned integer 4x4 matrix.
  371. /// @see gtc_matrix_integer
  372. typedef mediump_umat4x4 umat4x4;
  373. #endif//GLM_PRECISION
  374. /// @}
  375. }//namespace glm