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.

2573 lines
78KB

  1. /// @ref core
  2. /// @file glm/fwd.hpp
  3. #include "detail/setup.hpp"
  4. #pragma once
  5. #include "detail/type_int.hpp"
  6. #include "detail/type_float.hpp"
  7. #include "detail/type_vec.hpp"
  8. #include "detail/type_mat.hpp"
  9. //////////////////////
  10. // GLM_GTC_quaternion
  11. namespace glm
  12. {
  13. template<typename T, qualifier Q> struct tquat;
  14. /// Quaternion of low single-qualifier floating-point numbers.
  15. ///
  16. /// @see gtc_quaternion
  17. typedef tquat<float, lowp> lowp_quat;
  18. /// Quaternion of medium single-qualifier floating-point numbers.
  19. ///
  20. /// @see gtc_quaternion
  21. typedef tquat<float, mediump> mediump_quat;
  22. /// Quaternion of high single-qualifier floating-point numbers.
  23. ///
  24. /// @see gtc_quaternion
  25. typedef tquat<float, highp> highp_quat;
  26. #if(defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
  27. typedef highp_quat quat;
  28. #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
  29. typedef mediump_quat quat;
  30. #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && defined(GLM_PRECISION_LOWP_FLOAT))
  31. typedef lowp_quat quat;
  32. #elif(!defined(GLM_PRECISION_HIGHP_FLOAT) && !defined(GLM_PRECISION_MEDIUMP_FLOAT) && !defined(GLM_PRECISION_LOWP_FLOAT))
  33. /// Quaternion of default single-qualifier floating-point numbers.
  34. typedef highp_quat quat;
  35. #endif
  36. /// Quaternion of low single-qualifier floating-point numbers.
  37. ///
  38. /// @see gtc_quaternion
  39. typedef lowp_quat lowp_fquat;
  40. /// Quaternion of medium single-qualifier floating-point numbers.
  41. ///
  42. /// @see gtc_quaternion
  43. typedef mediump_quat mediump_fquat;
  44. /// Quaternion of high single-qualifier floating-point numbers.
  45. ///
  46. /// @see gtc_quaternion
  47. typedef highp_quat highp_fquat;
  48. /// Quaternion of default single-qualifier floating-point numbers.
  49. ///
  50. /// @see gtc_quaternion
  51. typedef quat fquat;
  52. /// Quaternion of low double-qualifier floating-point numbers.
  53. ///
  54. /// @see gtc_quaternion
  55. typedef tquat<double, lowp> lowp_dquat;
  56. /// Quaternion of medium double-qualifier floating-point numbers.
  57. ///
  58. /// @see gtc_quaternion
  59. typedef tquat<double, mediump> mediump_dquat;
  60. /// Quaternion of high double-qualifier floating-point numbers.
  61. ///
  62. /// @see gtc_quaternion
  63. typedef tquat<double, highp> highp_dquat;
  64. #if(defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
  65. typedef highp_dquat dquat;
  66. #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
  67. typedef mediump_dquat dquat;
  68. #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && defined(GLM_PRECISION_LOWP_DOUBLE))
  69. typedef lowp_dquat dquat;
  70. #elif(!defined(GLM_PRECISION_HIGHP_DOUBLE) && !defined(GLM_PRECISION_MEDIUMP_DOUBLE) && !defined(GLM_PRECISION_LOWP_DOUBLE))
  71. /// Quaternion of default double-qualifier floating-point numbers.
  72. ///
  73. /// @see gtc_quaternion
  74. typedef highp_dquat dquat;
  75. #endif
  76. }//namespace glm
  77. //////////////////////
  78. // GLM_GTC_precision
  79. namespace glm
  80. {
  81. /// Low qualifier 8 bit signed integer type.
  82. /// @see gtc_type_precision
  83. typedef detail::int8 lowp_int8;
  84. /// Low qualifier 16 bit signed integer type.
  85. /// @see gtc_type_precision
  86. typedef detail::int16 lowp_int16;
  87. /// Low qualifier 32 bit signed integer type.
  88. /// @see gtc_type_precision
  89. typedef detail::int32 lowp_int32;
  90. /// Low qualifier 64 bit signed integer type.
  91. /// @see gtc_type_precision
  92. typedef detail::int64 lowp_int64;
  93. /// Low qualifier 8 bit signed integer type.
  94. /// @see gtc_type_precision
  95. typedef detail::int8 lowp_int8_t;
  96. /// Low qualifier 16 bit signed integer type.
  97. /// @see gtc_type_precision
  98. typedef detail::int16 lowp_int16_t;
  99. /// Low qualifier 32 bit signed integer type.
  100. /// @see gtc_type_precision
  101. typedef detail::int32 lowp_int32_t;
  102. /// Low qualifier 64 bit signed integer type.
  103. /// @see gtc_type_precision
  104. typedef detail::int64 lowp_int64_t;
  105. /// Low qualifier 8 bit signed integer type.
  106. /// @see gtc_type_precision
  107. typedef detail::int8 lowp_i8;
  108. /// Low qualifier 16 bit signed integer type.
  109. /// @see gtc_type_precision
  110. typedef detail::int16 lowp_i16;
  111. /// Low qualifier 32 bit signed integer type.
  112. /// @see gtc_type_precision
  113. typedef detail::int32 lowp_i32;
  114. /// Low qualifier 64 bit signed integer type.
  115. /// @see gtc_type_precision
  116. typedef detail::int64 lowp_i64;
  117. /// Medium qualifier 8 bit signed integer type.
  118. /// @see gtc_type_precision
  119. typedef detail::int8 mediump_int8;
  120. /// Medium qualifier 16 bit signed integer type.
  121. /// @see gtc_type_precision
  122. typedef detail::int16 mediump_int16;
  123. /// Medium qualifier 32 bit signed integer type.
  124. /// @see gtc_type_precision
  125. typedef detail::int32 mediump_int32;
  126. /// Medium qualifier 64 bit signed integer type.
  127. /// @see gtc_type_precision
  128. typedef detail::int64 mediump_int64;
  129. /// Medium qualifier 8 bit signed integer type.
  130. /// @see gtc_type_precision
  131. typedef detail::int8 mediump_int8_t;
  132. /// Medium qualifier 16 bit signed integer type.
  133. /// @see gtc_type_precision
  134. typedef detail::int16 mediump_int16_t;
  135. /// Medium qualifier 32 bit signed integer type.
  136. /// @see gtc_type_precision
  137. typedef detail::int32 mediump_int32_t;
  138. /// Medium qualifier 64 bit signed integer type.
  139. /// @see gtc_type_precision
  140. typedef detail::int64 mediump_int64_t;
  141. /// Medium qualifier 8 bit signed integer type.
  142. /// @see gtc_type_precision
  143. typedef detail::int8 mediump_i8;
  144. /// Medium qualifier 16 bit signed integer type.
  145. /// @see gtc_type_precision
  146. typedef detail::int16 mediump_i16;
  147. /// Medium qualifier 32 bit signed integer type.
  148. /// @see gtc_type_precision
  149. typedef detail::int32 mediump_i32;
  150. /// Medium qualifier 64 bit signed integer type.
  151. /// @see gtc_type_precision
  152. typedef detail::int64 mediump_i64;
  153. /// High qualifier 8 bit signed integer type.
  154. /// @see gtc_type_precision
  155. typedef detail::int8 highp_int8;
  156. /// High qualifier 16 bit signed integer type.
  157. /// @see gtc_type_precision
  158. typedef detail::int16 highp_int16;
  159. /// High qualifier 32 bit signed integer type.
  160. /// @see gtc_type_precision
  161. typedef detail::int32 highp_int32;
  162. /// High qualifier 64 bit signed integer type.
  163. /// @see gtc_type_precision
  164. typedef detail::int64 highp_int64;
  165. /// High qualifier 8 bit signed integer type.
  166. /// @see gtc_type_precision
  167. typedef detail::int8 highp_int8_t;
  168. /// High qualifier 16 bit signed integer type.
  169. /// @see gtc_type_precision
  170. typedef detail::int16 highp_int16_t;
  171. /// 32 bit signed integer type.
  172. /// @see gtc_type_precision
  173. typedef detail::int32 highp_int32_t;
  174. /// High qualifier 64 bit signed integer type.
  175. /// @see gtc_type_precision
  176. typedef detail::int64 highp_int64_t;
  177. /// High qualifier 8 bit signed integer type.
  178. /// @see gtc_type_precision
  179. typedef detail::int8 highp_i8;
  180. /// High qualifier 16 bit signed integer type.
  181. /// @see gtc_type_precision
  182. typedef detail::int16 highp_i16;
  183. /// High qualifier 32 bit signed integer type.
  184. /// @see gtc_type_precision
  185. typedef detail::int32 highp_i32;
  186. /// High qualifier 64 bit signed integer type.
  187. /// @see gtc_type_precision
  188. typedef detail::int64 highp_i64;
  189. /// 8 bit signed integer type.
  190. /// @see gtc_type_precision
  191. typedef detail::int8 int8;
  192. /// 16 bit signed integer type.
  193. /// @see gtc_type_precision
  194. typedef detail::int16 int16;
  195. /// 32 bit signed integer type.
  196. /// @see gtc_type_precision
  197. typedef detail::int32 int32;
  198. /// 64 bit signed integer type.
  199. /// @see gtc_type_precision
  200. typedef detail::int64 int64;
  201. #if GLM_HAS_EXTENDED_INTEGER_TYPE
  202. using std::int8_t;
  203. using std::int16_t;
  204. using std::int32_t;
  205. using std::int64_t;
  206. #else
  207. /// 8 bit signed integer type.
  208. /// @see gtc_type_precision
  209. typedef detail::int8 int8_t;
  210. /// 16 bit signed integer type.
  211. /// @see gtc_type_precision
  212. typedef detail::int16 int16_t;
  213. /// 32 bit signed integer type.
  214. /// @see gtc_type_precision
  215. typedef detail::int32 int32_t;
  216. /// 64 bit signed integer type.
  217. /// @see gtc_type_precision
  218. typedef detail::int64 int64_t;
  219. #endif
  220. /// 8 bit signed integer type.
  221. /// @see gtc_type_precision
  222. typedef detail::int8 i8;
  223. /// 16 bit signed integer type.
  224. /// @see gtc_type_precision
  225. typedef detail::int16 i16;
  226. /// 32 bit signed integer type.
  227. /// @see gtc_type_precision
  228. typedef detail::int32 i32;
  229. /// 64 bit signed integer type.
  230. /// @see gtc_type_precision
  231. typedef detail::int64 i64;
  232. /// Low qualifier 8 bit signed integer scalar type.
  233. /// @see gtc_type_precision
  234. typedef vec<1, i8, lowp> lowp_i8vec1;
  235. /// Low qualifier 8 bit signed integer vector of 2 components type.
  236. /// @see gtc_type_precision
  237. typedef vec<2, i8, lowp> lowp_i8vec2;
  238. /// Low qualifier 8 bit signed integer vector of 3 components type.
  239. /// @see gtc_type_precision
  240. typedef vec<3, i8, lowp> lowp_i8vec3;
  241. /// Low qualifier 8 bit signed integer vector of 4 components type.
  242. /// @see gtc_type_precision
  243. typedef vec<4, i8, lowp> lowp_i8vec4;
  244. /// Medium qualifier 8 bit signed integer scalar type.
  245. /// @see gtc_type_precision
  246. typedef vec<1, i8, mediump> mediump_i8vec1;
  247. /// Medium qualifier 8 bit signed integer vector of 2 components type.
  248. /// @see gtc_type_precision
  249. typedef vec<2, i8, mediump> mediump_i8vec2;
  250. /// Medium qualifier 8 bit signed integer vector of 3 components type.
  251. /// @see gtc_type_precision
  252. typedef vec<3, i8, mediump> mediump_i8vec3;
  253. /// Medium qualifier 8 bit signed integer vector of 4 components type.
  254. /// @see gtc_type_precision
  255. typedef vec<4, i8, mediump> mediump_i8vec4;
  256. /// High qualifier 8 bit signed integer scalar type.
  257. /// @see gtc_type_precision
  258. typedef vec<1, i8, highp> highp_i8vec1;
  259. /// High qualifier 8 bit signed integer vector of 2 components type.
  260. /// @see gtc_type_precision
  261. typedef vec<2, i8, highp> highp_i8vec2;
  262. /// High qualifier 8 bit signed integer vector of 3 components type.
  263. /// @see gtc_type_precision
  264. typedef vec<3, i8, highp> highp_i8vec3;
  265. /// High qualifier 8 bit signed integer vector of 4 components type.
  266. /// @see gtc_type_precision
  267. typedef vec<4, i8, highp> highp_i8vec4;
  268. #if(defined(GLM_PRECISION_LOWP_INT))
  269. typedef lowp_i8vec1 i8vec1;
  270. typedef lowp_i8vec2 i8vec2;
  271. typedef lowp_i8vec3 i8vec3;
  272. typedef lowp_i8vec4 i8vec4;
  273. #elif(defined(GLM_PRECISION_MEDIUMP_INT))
  274. typedef mediump_i8vec1 i8vec1;
  275. typedef mediump_i8vec2 i8vec2;
  276. typedef mediump_i8vec3 i8vec3;
  277. typedef mediump_i8vec4 i8vec4;
  278. #else
  279. /// Default qualifier 8 bit signed integer scalar type.
  280. /// @see gtc_type_precision
  281. typedef highp_i8vec1 i8vec1;
  282. /// Default qualifier 8 bit signed integer vector of 2 components type.
  283. /// @see gtc_type_precision
  284. typedef highp_i8vec2 i8vec2;
  285. /// Default qualifier 8 bit signed integer vector of 3 components type.
  286. /// @see gtc_type_precision
  287. typedef highp_i8vec3 i8vec3;
  288. /// Default qualifier 8 bit signed integer vector of 4 components type.
  289. /// @see gtc_type_precision
  290. typedef highp_i8vec4 i8vec4;
  291. #endif
  292. /// Low qualifier 16 bit signed integer scalar type.
  293. /// @see gtc_type_precision
  294. typedef vec<1, i16, lowp> lowp_i16vec1;
  295. /// Low qualifier 16 bit signed integer vector of 2 components type.
  296. /// @see gtc_type_precision
  297. typedef vec<2, i16, lowp> lowp_i16vec2;
  298. /// Low qualifier 16 bit signed integer vector of 3 components type.
  299. /// @see gtc_type_precision
  300. typedef vec<3, i16, lowp> lowp_i16vec3;
  301. /// Low qualifier 16 bit signed integer vector of 4 components type.
  302. /// @see gtc_type_precision
  303. typedef vec<4, i16, lowp> lowp_i16vec4;
  304. /// Medium qualifier 16 bit signed integer scalar type.
  305. /// @see gtc_type_precision
  306. typedef vec<1, i16, mediump> mediump_i16vec1;
  307. /// Medium qualifier 16 bit signed integer vector of 2 components type.
  308. /// @see gtc_type_precision
  309. typedef vec<2, i16, mediump> mediump_i16vec2;
  310. /// Medium qualifier 16 bit signed integer vector of 3 components type.
  311. /// @see gtc_type_precision
  312. typedef vec<3, i16, mediump> mediump_i16vec3;
  313. /// Medium qualifier 16 bit signed integer vector of 4 components type.
  314. /// @see gtc_type_precision
  315. typedef vec<4, i16, mediump> mediump_i16vec4;
  316. /// High qualifier 16 bit signed integer scalar type.
  317. /// @see gtc_type_precision
  318. typedef vec<1, i16, highp> highp_i16vec1;
  319. /// High qualifier 16 bit signed integer vector of 2 components type.
  320. /// @see gtc_type_precision
  321. typedef vec<2, i16, highp> highp_i16vec2;
  322. /// High qualifier 16 bit signed integer vector of 3 components type.
  323. /// @see gtc_type_precision
  324. typedef vec<3, i16, highp> highp_i16vec3;
  325. /// High qualifier 16 bit signed integer vector of 4 components type.
  326. /// @see gtc_type_precision
  327. typedef vec<4, i16, highp> highp_i16vec4;
  328. #if(defined(GLM_PRECISION_LOWP_INT))
  329. typedef lowp_i16vec1 i16vec1;
  330. typedef lowp_i16vec2 i16vec2;
  331. typedef lowp_i16vec3 i16vec3;
  332. typedef lowp_i16vec4 i16vec4;
  333. #elif(defined(GLM_PRECISION_MEDIUMP_INT))
  334. typedef mediump_i16vec1 i16vec1;
  335. typedef mediump_i16vec2 i16vec2;
  336. typedef mediump_i16vec3 i16vec3;
  337. typedef mediump_i16vec4 i16vec4;
  338. #else
  339. /// Default qualifier 16 bit signed integer scalar type.
  340. /// @see gtc_type_precision
  341. typedef highp_i16vec1 i16vec1;
  342. /// Default qualifier 16 bit signed integer vector of 2 components type.
  343. /// @see gtc_type_precision
  344. typedef highp_i16vec2 i16vec2;
  345. /// Default qualifier 16 bit signed integer vector of 3 components type.
  346. /// @see gtc_type_precision
  347. typedef highp_i16vec3 i16vec3;
  348. /// Default qualifier 16 bit signed integer vector of 4 components type.
  349. /// @see gtc_type_precision
  350. typedef highp_i16vec4 i16vec4;
  351. #endif
  352. /// Low qualifier 32 bit signed integer scalar type.
  353. /// @see gtc_type_precision
  354. typedef vec<1, i32, lowp> lowp_i32vec1;
  355. /// Low qualifier 32 bit signed integer vector of 2 components type.
  356. /// @see gtc_type_precision
  357. typedef vec<2, i32, lowp> lowp_i32vec2;
  358. /// Low qualifier 32 bit signed integer vector of 3 components type.
  359. /// @see gtc_type_precision
  360. typedef vec<3, i32, lowp> lowp_i32vec3;
  361. /// Low qualifier 32 bit signed integer vector of 4 components type.
  362. /// @see gtc_type_precision
  363. typedef vec<4, i32, lowp> lowp_i32vec4;
  364. /// Medium qualifier 32 bit signed integer scalar type.
  365. /// @see gtc_type_precision
  366. typedef vec<1, i32, mediump> mediump_i32vec1;
  367. /// Medium qualifier 32 bit signed integer vector of 2 components type.
  368. /// @see gtc_type_precision
  369. typedef vec<2, i32, mediump> mediump_i32vec2;
  370. /// Medium qualifier 32 bit signed integer vector of 3 components type.
  371. /// @see gtc_type_precision
  372. typedef vec<3, i32, mediump> mediump_i32vec3;
  373. /// Medium qualifier 32 bit signed integer vector of 4 components type.
  374. /// @see gtc_type_precision
  375. typedef vec<4, i32, mediump> mediump_i32vec4;
  376. /// High qualifier 32 bit signed integer scalar type.
  377. /// @see gtc_type_precision
  378. typedef vec<1, i32, highp> highp_i32vec1;
  379. /// High qualifier 32 bit signed integer vector of 2 components type.
  380. /// @see gtc_type_precision
  381. typedef vec<2, i32, highp> highp_i32vec2;
  382. /// High qualifier 32 bit signed integer vector of 3 components type.
  383. /// @see gtc_type_precision
  384. typedef vec<3, i32, highp> highp_i32vec3;
  385. /// High qualifier 32 bit signed integer vector of 4 components type.
  386. /// @see gtc_type_precision
  387. typedef vec<4, i32, highp> highp_i32vec4;
  388. #if(defined(GLM_PRECISION_LOWP_INT))
  389. typedef lowp_i32vec1 i32vec1;
  390. typedef lowp_i32vec2 i32vec2;
  391. typedef lowp_i32vec3 i32vec3;
  392. typedef lowp_i32vec4 i32vec4;
  393. #elif(defined(GLM_PRECISION_MEDIUMP_INT))
  394. typedef mediump_i32vec1 i32vec1;
  395. typedef mediump_i32vec2 i32vec2;
  396. typedef mediump_i32vec3 i32vec3;
  397. typedef mediump_i32vec4 i32vec4;
  398. #else
  399. /// Default qualifier 32 bit signed integer scalar type.
  400. /// @see gtc_type_precision
  401. typedef highp_i32vec1 i32vec1;
  402. /// Default qualifier 32 bit signed integer vector of 2 components type.
  403. /// @see gtc_type_precision
  404. typedef highp_i32vec2 i32vec2;
  405. /// Default qualifier 32 bit signed integer vector of 3 components type.
  406. /// @see gtc_type_precision
  407. typedef highp_i32vec3 i32vec3;
  408. /// Default qualifier 32 bit signed integer vector of 4 components type.
  409. /// @see gtc_type_precision
  410. typedef highp_i32vec4 i32vec4;
  411. #endif
  412. /// Low qualifier 32 bit signed integer scalar type.
  413. /// @see gtc_type_precision
  414. typedef vec<1, i32, lowp> lowp_i32vec1;
  415. /// Low qualifier 32 bit signed integer vector of 2 components type.
  416. /// @see gtc_type_precision
  417. typedef vec<2, i32, lowp> lowp_i32vec2;
  418. /// Low qualifier 32 bit signed integer vector of 3 components type.
  419. /// @see gtc_type_precision
  420. typedef vec<3, i32, lowp> lowp_i32vec3;
  421. /// Low qualifier 32 bit signed integer vector of 4 components type.
  422. /// @see gtc_type_precision
  423. typedef vec<4, i32, lowp> lowp_i32vec4;
  424. /// Medium qualifier 32 bit signed integer scalar type.
  425. /// @see gtc_type_precision
  426. typedef vec<1, i32, mediump> mediump_i32vec1;
  427. /// Medium qualifier 32 bit signed integer vector of 2 components type.
  428. /// @see gtc_type_precision
  429. typedef vec<2, i32, mediump> mediump_i32vec2;
  430. /// Medium qualifier 32 bit signed integer vector of 3 components type.
  431. /// @see gtc_type_precision
  432. typedef vec<3, i32, mediump> mediump_i32vec3;
  433. /// Medium qualifier 32 bit signed integer vector of 4 components type.
  434. /// @see gtc_type_precision
  435. typedef vec<4, i32, mediump> mediump_i32vec4;
  436. /// High qualifier 32 bit signed integer scalar type.
  437. /// @see gtc_type_precision
  438. typedef vec<1, i32, highp> highp_i32vec1;
  439. /// High qualifier 32 bit signed integer vector of 2 components type.
  440. /// @see gtc_type_precision
  441. typedef vec<2, i32, highp> highp_i32vec2;
  442. /// High qualifier 32 bit signed integer vector of 3 components type.
  443. /// @see gtc_type_precision
  444. typedef vec<3, i32, highp> highp_i32vec3;
  445. /// High qualifier 32 bit signed integer vector of 4 components type.
  446. /// @see gtc_type_precision
  447. typedef vec<4, i32, highp> highp_i32vec4;
  448. #if(defined(GLM_PRECISION_LOWP_INT))
  449. typedef lowp_i32vec1 i32vec1;
  450. typedef lowp_i32vec2 i32vec2;
  451. typedef lowp_i32vec3 i32vec3;
  452. typedef lowp_i32vec4 i32vec4;
  453. #elif(defined(GLM_PRECISION_MEDIUMP_INT))
  454. typedef mediump_i32vec1 i32vec1;
  455. typedef mediump_i32vec2 i32vec2;
  456. typedef mediump_i32vec3 i32vec3;
  457. typedef mediump_i32vec4 i32vec4;
  458. #else
  459. /// Default qualifier 32 bit signed integer scalar type.
  460. /// @see gtc_type_precision
  461. typedef highp_i32vec1 i32vec1;
  462. /// Default qualifier 32 bit signed integer vector of 2 components type.
  463. /// @see gtc_type_precision
  464. typedef highp_i32vec2 i32vec2;
  465. /// Default qualifier 32 bit signed integer vector of 3 components type.
  466. /// @see gtc_type_precision
  467. typedef highp_i32vec3 i32vec3;
  468. /// Default qualifier 32 bit signed integer vector of 4 components type.
  469. /// @see gtc_type_precision
  470. typedef highp_i32vec4 i32vec4;
  471. #endif
  472. /// Low qualifier 64 bit signed integer scalar type.
  473. /// @see gtc_type_precision
  474. typedef vec<1, i64, lowp> lowp_i64vec1;
  475. /// Low qualifier 64 bit signed integer vector of 2 components type.
  476. /// @see gtc_type_precision
  477. typedef vec<2, i64, lowp> lowp_i64vec2;
  478. /// Low qualifier 64 bit signed integer vector of 3 components type.
  479. /// @see gtc_type_precision
  480. typedef vec<3, i64, lowp> lowp_i64vec3;
  481. /// Low qualifier 64 bit signed integer vector of 4 components type.
  482. /// @see gtc_type_precision
  483. typedef vec<4, i64, lowp> lowp_i64vec4;
  484. /// Medium qualifier 64 bit signed integer scalar type.
  485. /// @see gtc_type_precision
  486. typedef vec<1, i64, mediump> mediump_i64vec1;
  487. /// Medium qualifier 64 bit signed integer vector of 2 components type.
  488. /// @see gtc_type_precision
  489. typedef vec<2, i64, mediump> mediump_i64vec2;
  490. /// Medium qualifier 64 bit signed integer vector of 3 components type.
  491. /// @see gtc_type_precision
  492. typedef vec<3, i64, mediump> mediump_i64vec3;
  493. /// Medium qualifier 64 bit signed integer vector of 4 components type.
  494. /// @see gtc_type_precision
  495. typedef vec<4, i64, mediump> mediump_i64vec4;
  496. /// High qualifier 64 bit signed integer scalar type.
  497. /// @see gtc_type_precision
  498. typedef vec<1, i64, highp> highp_i64vec1;
  499. /// High qualifier 64 bit signed integer vector of 2 components type.
  500. /// @see gtc_type_precision
  501. typedef vec<2, i64, highp> highp_i64vec2;
  502. /// High qualifier 64 bit signed integer vector of 3 components type.
  503. /// @see gtc_type_precision
  504. typedef vec<3, i64, highp> highp_i64vec3;
  505. /// High qualifier 64 bit signed integer vector of 4 components type.
  506. /// @see gtc_type_precision
  507. typedef vec<4, i64, highp> highp_i64vec4;
  508. #if(defined(GLM_PRECISION_LOWP_INT))
  509. typedef lowp_i64vec1 i64vec1;
  510. typedef lowp_i64vec2 i64vec2;
  511. typedef lowp_i64vec3 i64vec3;
  512. typedef lowp_i64vec4 i64vec4;
  513. #elif(defined(GLM_PRECISION_MEDIUMP_INT))
  514. typedef mediump_i64vec1 i64vec1;
  515. typedef mediump_i64vec2 i64vec2;
  516. typedef mediump_i64vec3 i64vec3;
  517. typedef mediump_i64vec4 i64vec4;
  518. #else
  519. /// Default qualifier 64 bit signed integer scalar type.
  520. /// @see gtc_type_precision
  521. typedef highp_i64vec1 i64vec1;
  522. /// Default qualifier 64 bit signed integer vector of 2 components type.
  523. /// @see gtc_type_precision
  524. typedef highp_i64vec2 i64vec2;
  525. /// Default qualifier 64 bit signed integer vector of 3 components type.
  526. /// @see gtc_type_precision
  527. typedef highp_i64vec3 i64vec3;
  528. /// Default qualifier 64 bit signed integer vector of 4 components type.
  529. /// @see gtc_type_precision
  530. typedef highp_i64vec4 i64vec4;
  531. #endif
  532. /////////////////////////////
  533. // Unsigned int vector types
  534. /// Low qualifier 8 bit unsigned integer type.
  535. /// @see gtc_type_precision
  536. typedef detail::uint8 lowp_uint8;
  537. /// Low qualifier 16 bit unsigned integer type.
  538. /// @see gtc_type_precision
  539. typedef detail::uint16 lowp_uint16;
  540. /// Low qualifier 32 bit unsigned integer type.
  541. /// @see gtc_type_precision
  542. typedef detail::uint32 lowp_uint32;
  543. /// Low qualifier 64 bit unsigned integer type.
  544. /// @see gtc_type_precision
  545. typedef detail::uint64 lowp_uint64;
  546. /// Low qualifier 8 bit unsigned integer type.
  547. /// @see gtc_type_precision
  548. typedef detail::uint8 lowp_uint8_t;
  549. /// Low qualifier 16 bit unsigned integer type.
  550. /// @see gtc_type_precision
  551. typedef detail::uint16 lowp_uint16_t;
  552. /// Low qualifier 32 bit unsigned integer type.
  553. /// @see gtc_type_precision
  554. typedef detail::uint32 lowp_uint32_t;
  555. /// Low qualifier 64 bit unsigned integer type.
  556. /// @see gtc_type_precision
  557. typedef detail::uint64 lowp_uint64_t;
  558. /// Low qualifier 8 bit unsigned integer type.
  559. /// @see gtc_type_precision
  560. typedef detail::uint8 lowp_u8;
  561. /// Low qualifier 16 bit unsigned integer type.
  562. /// @see gtc_type_precision
  563. typedef detail::uint16 lowp_u16;
  564. /// Low qualifier 32 bit unsigned integer type.
  565. /// @see gtc_type_precision
  566. typedef detail::uint32 lowp_u32;
  567. /// Low qualifier 64 bit unsigned integer type.
  568. /// @see gtc_type_precision
  569. typedef detail::uint64 lowp_u64;
  570. /// Medium qualifier 8 bit unsigned integer type.
  571. /// @see gtc_type_precision
  572. typedef detail::uint8 mediump_uint8;
  573. /// Medium qualifier 16 bit unsigned integer type.
  574. /// @see gtc_type_precision
  575. typedef detail::uint16 mediump_uint16;
  576. /// Medium qualifier 32 bit unsigned integer type.
  577. /// @see gtc_type_precision
  578. typedef detail::uint32 mediump_uint32;
  579. /// Medium qualifier 64 bit unsigned integer type.
  580. /// @see gtc_type_precision
  581. typedef detail::uint64 mediump_uint64;
  582. /// Medium qualifier 8 bit unsigned integer type.
  583. /// @see gtc_type_precision
  584. typedef detail::uint8 mediump_uint8_t;
  585. /// Medium qualifier 16 bit unsigned integer type.
  586. /// @see gtc_type_precision
  587. typedef detail::uint16 mediump_uint16_t;
  588. /// Medium qualifier 32 bit unsigned integer type.
  589. /// @see gtc_type_precision
  590. typedef detail::uint32 mediump_uint32_t;
  591. /// Medium qualifier 64 bit unsigned integer type.
  592. /// @see gtc_type_precision
  593. typedef detail::uint64 mediump_uint64_t;
  594. /// Medium qualifier 8 bit unsigned integer type.
  595. /// @see gtc_type_precision
  596. typedef detail::uint8 mediump_u8;
  597. /// Medium qualifier 16 bit unsigned integer type.
  598. /// @see gtc_type_precision
  599. typedef detail::uint16 mediump_u16;
  600. /// Medium qualifier 32 bit unsigned integer type.
  601. /// @see gtc_type_precision
  602. typedef detail::uint32 mediump_u32;
  603. /// Medium qualifier 64 bit unsigned integer type.
  604. /// @see gtc_type_precision
  605. typedef detail::uint64 mediump_u64;
  606. /// Medium qualifier 8 bit unsigned integer type.
  607. /// @see gtc_type_precision
  608. typedef detail::uint8 highp_uint8;
  609. /// Medium qualifier 16 bit unsigned integer type.
  610. /// @see gtc_type_precision
  611. typedef detail::uint16 highp_uint16;
  612. /// Medium qualifier 32 bit unsigned integer type.
  613. /// @see gtc_type_precision
  614. typedef detail::uint32 highp_uint32;
  615. /// Medium qualifier 64 bit unsigned integer type.
  616. /// @see gtc_type_precision
  617. typedef detail::uint64 highp_uint64;
  618. /// Medium qualifier 8 bit unsigned integer type.
  619. /// @see gtc_type_precision
  620. typedef detail::uint8 highp_uint8_t;
  621. /// Medium qualifier 16 bit unsigned integer type.
  622. /// @see gtc_type_precision
  623. typedef detail::uint16 highp_uint16_t;
  624. /// Medium qualifier 32 bit unsigned integer type.
  625. /// @see gtc_type_precision
  626. typedef detail::uint32 highp_uint32_t;
  627. /// Medium qualifier 64 bit unsigned integer type.
  628. /// @see gtc_type_precision
  629. typedef detail::uint64 highp_uint64_t;
  630. /// Medium qualifier 8 bit unsigned integer type.
  631. /// @see gtc_type_precision
  632. typedef detail::uint8 highp_u8;
  633. /// Medium qualifier 16 bit unsigned integer type.
  634. /// @see gtc_type_precision
  635. typedef detail::uint16 highp_u16;
  636. /// Medium qualifier 32 bit unsigned integer type.
  637. /// @see gtc_type_precision
  638. typedef detail::uint32 highp_u32;
  639. /// Medium qualifier 64 bit unsigned integer type.
  640. /// @see gtc_type_precision
  641. typedef detail::uint64 highp_u64;
  642. /// 8 bit unsigned integer type.
  643. /// @see gtc_type_precision
  644. typedef detail::uint8 uint8;
  645. /// 16 bit unsigned integer type.
  646. /// @see gtc_type_precision
  647. typedef detail::uint16 uint16;
  648. /// 32 bit unsigned integer type.
  649. /// @see gtc_type_precision
  650. typedef detail::uint32 uint32;
  651. /// 64 bit unsigned integer type.
  652. /// @see gtc_type_precision
  653. typedef detail::uint64 uint64;
  654. #if GLM_HAS_EXTENDED_INTEGER_TYPE
  655. using std::uint8_t;
  656. using std::uint16_t;
  657. using std::uint32_t;
  658. using std::uint64_t;
  659. #else
  660. /// 8 bit unsigned integer type.
  661. /// @see gtc_type_precision
  662. typedef detail::uint8 uint8_t;
  663. /// 16 bit unsigned integer type.
  664. /// @see gtc_type_precision
  665. typedef detail::uint16 uint16_t;
  666. /// 32 bit unsigned integer type.
  667. /// @see gtc_type_precision
  668. typedef detail::uint32 uint32_t;
  669. /// 64 bit unsigned integer type.
  670. /// @see gtc_type_precision
  671. typedef detail::uint64 uint64_t;
  672. #endif
  673. /// 8 bit unsigned integer type.
  674. /// @see gtc_type_precision
  675. typedef detail::uint8 u8;
  676. /// 16 bit unsigned integer type.
  677. /// @see gtc_type_precision
  678. typedef detail::uint16 u16;
  679. /// 32 bit unsigned integer type.
  680. /// @see gtc_type_precision
  681. typedef detail::uint32 u32;
  682. /// 64 bit unsigned integer type.
  683. /// @see gtc_type_precision
  684. typedef detail::uint64 u64;
  685. /// Low qualifier 8 bit unsigned integer scalar type.
  686. /// @see gtc_type_precision
  687. typedef vec<1, u8, lowp> lowp_u8vec1;
  688. /// Low qualifier 8 bit unsigned integer vector of 2 components type.
  689. /// @see gtc_type_precision
  690. typedef vec<2, u8, lowp> lowp_u8vec2;
  691. /// Low qualifier 8 bit unsigned integer vector of 3 components type.
  692. /// @see gtc_type_precision
  693. typedef vec<3, u8, lowp> lowp_u8vec3;
  694. /// Low qualifier 8 bit unsigned integer vector of 4 components type.
  695. /// @see gtc_type_precision
  696. typedef vec<4, u8, lowp> lowp_u8vec4;
  697. /// Medium qualifier 8 bit unsigned integer scalar type.
  698. /// @see gtc_type_precision
  699. typedef vec<1, u8, mediump> mediump_u8vec1;
  700. /// Medium qualifier 8 bit unsigned integer vector of 2 components type.
  701. /// @see gtc_type_precision
  702. typedef vec<2, u8, mediump> mediump_u8vec2;
  703. /// Medium qualifier 8 bit unsigned integer vector of 3 components type.
  704. /// @see gtc_type_precision
  705. typedef vec<3, u8, mediump> mediump_u8vec3;
  706. /// Medium qualifier 8 bit unsigned integer vector of 4 components type.
  707. /// @see gtc_type_precision
  708. typedef vec<4, u8, mediump> mediump_u8vec4;
  709. /// High qualifier 8 bit unsigned integer scalar type.
  710. /// @see gtc_type_precision
  711. typedef vec<1, u8, highp> highp_u8vec1;
  712. /// High qualifier 8 bit unsigned integer vector of 2 components type.
  713. /// @see gtc_type_precision
  714. typedef vec<2, u8, highp> highp_u8vec2;
  715. /// High qualifier 8 bit unsigned integer vector of 3 components type.
  716. /// @see gtc_type_precision
  717. typedef vec<3, u8, highp> highp_u8vec3;
  718. /// High qualifier 8 bit unsigned integer vector of 4 components type.
  719. /// @see gtc_type_precision
  720. typedef vec<4, u8, highp> highp_u8vec4;
  721. #if(defined(GLM_PRECISION_LOWP_INT))
  722. typedef lowp_u8vec1 u8vec1;
  723. typedef lowp_u8vec2 u8vec2;
  724. typedef lowp_u8vec3 u8vec3;
  725. typedef lowp_u8vec4 u8vec4;
  726. #elif(defined(GLM_PRECISION_MEDIUMP_INT))
  727. typedef mediump_u8vec1 u8vec1;
  728. typedef mediump_u8vec2 u8vec2;
  729. typedef mediump_u8vec3 u8vec3;
  730. typedef mediump_u8vec4 u8vec4;
  731. #else
  732. /// Default qualifier 8 bit unsigned integer scalar type.
  733. /// @see gtc_type_precision
  734. typedef highp_u8vec1 u8vec1;
  735. /// Default qualifier 8 bit unsigned integer vector of 2 components type.
  736. /// @see gtc_type_precision
  737. typedef highp_u8vec2 u8vec2;
  738. /// Default qualifier 8 bit unsigned integer vector of 3 components type.
  739. /// @see gtc_type_precision
  740. typedef highp_u8vec3 u8vec3;
  741. /// Default qualifier 8 bit unsigned integer vector of 4 components type.
  742. /// @see gtc_type_precision
  743. typedef highp_u8vec4 u8vec4;
  744. #endif
  745. /// Low qualifier 16 bit unsigned integer scalar type.
  746. /// @see gtc_type_precision
  747. typedef vec<1, u16, lowp> lowp_u16vec1;
  748. /// Low qualifier 16 bit unsigned integer vector of 2 components type.
  749. /// @see gtc_type_precision
  750. typedef vec<2, u16, lowp> lowp_u16vec2;
  751. /// Low qualifier 16 bit unsigned integer vector of 3 components type.
  752. /// @see gtc_type_precision
  753. typedef vec<3, u16, lowp> lowp_u16vec3;
  754. /// Low qualifier 16 bit unsigned integer vector of 4 components type.
  755. /// @see gtc_type_precision
  756. typedef vec<4, u16, lowp> lowp_u16vec4;
  757. /// Medium qualifier 16 bit unsigned integer scalar type.
  758. /// @see gtc_type_precision
  759. typedef vec<1, u16, mediump> mediump_u16vec1;
  760. /// Medium qualifier 16 bit unsigned integer vector of 2 components type.
  761. /// @see gtc_type_precision
  762. typedef vec<2, u16, mediump> mediump_u16vec2;
  763. /// Medium qualifier 16 bit unsigned integer vector of 3 components type.
  764. /// @see gtc_type_precision
  765. typedef vec<3, u16, mediump> mediump_u16vec3;
  766. /// Medium qualifier 16 bit unsigned integer vector of 4 components type.
  767. /// @see gtc_type_precision
  768. typedef vec<4, u16, mediump> mediump_u16vec4;
  769. /// High qualifier 16 bit unsigned integer scalar type.
  770. /// @see gtc_type_precision
  771. typedef vec<1, u16, highp> highp_u16vec1;
  772. /// High qualifier 16 bit unsigned integer vector of 2 components type.
  773. /// @see gtc_type_precision
  774. typedef vec<2, u16, highp> highp_u16vec2;
  775. /// High qualifier 16 bit unsigned integer vector of 3 components type.
  776. /// @see gtc_type_precision
  777. typedef vec<3, u16, highp> highp_u16vec3;
  778. /// High qualifier 16 bit unsigned integer vector of 4 components type.
  779. /// @see gtc_type_precision
  780. typedef vec<4, u16, highp> highp_u16vec4;
  781. #if(defined(GLM_PRECISION_LOWP_INT))
  782. typedef lowp_u16vec1 u16vec1;
  783. typedef lowp_u16vec2 u16vec2;
  784. typedef lowp_u16vec3 u16vec3;
  785. typedef lowp_u16vec4 u16vec4;
  786. #elif(defined(GLM_PRECISION_MEDIUMP_INT))
  787. typedef mediump_u16vec1 u16vec1;
  788. typedef mediump_u16vec2 u16vec2;
  789. typedef mediump_u16vec3 u16vec3;
  790. typedef mediump_u16vec4 u16vec4;
  791. #else
  792. /// Default qualifier 16 bit unsigned integer scalar type.
  793. /// @see gtc_type_precision
  794. typedef highp_u16vec1 u16vec1;
  795. /// Default qualifier 16 bit unsigned integer vector of 2 components type.
  796. /// @see gtc_type_precision
  797. typedef highp_u16vec2 u16vec2;
  798. /// Default qualifier 16 bit unsigned integer vector of 3 components type.
  799. /// @see gtc_type_precision
  800. typedef highp_u16vec3 u16vec3;
  801. /// Default qualifier 16 bit unsigned integer vector of 4 components type.
  802. /// @see gtc_type_precision
  803. typedef highp_u16vec4 u16vec4;
  804. #endif
  805. /// Low qualifier 32 bit unsigned integer scalar type.
  806. /// @see gtc_type_precision
  807. typedef vec<1, u32, lowp> lowp_u32vec1;
  808. /// Low qualifier 32 bit unsigned integer vector of 2 components type.
  809. /// @see gtc_type_precision
  810. typedef vec<2, u32, lowp> lowp_u32vec2;
  811. /// Low qualifier 32 bit unsigned integer vector of 3 components type.
  812. /// @see gtc_type_precision
  813. typedef vec<3, u32, lowp> lowp_u32vec3;
  814. /// Low qualifier 32 bit unsigned integer vector of 4 components type.
  815. /// @see gtc_type_precision
  816. typedef vec<4, u32, lowp> lowp_u32vec4;
  817. /// Medium qualifier 32 bit unsigned integer scalar type.
  818. /// @see gtc_type_precision
  819. typedef vec<1, u32, mediump> mediump_u32vec1;
  820. /// Medium qualifier 32 bit unsigned integer vector of 2 components type.
  821. /// @see gtc_type_precision
  822. typedef vec<2, u32, mediump> mediump_u32vec2;
  823. /// Medium qualifier 32 bit unsigned integer vector of 3 components type.
  824. /// @see gtc_type_precision
  825. typedef vec<3, u32, mediump> mediump_u32vec3;
  826. /// Medium qualifier 32 bit unsigned integer vector of 4 components type.
  827. /// @see gtc_type_precision
  828. typedef vec<4, u32, mediump> mediump_u32vec4;
  829. /// High qualifier 32 bit unsigned integer scalar type.
  830. /// @see gtc_type_precision
  831. typedef vec<1, u32, highp> highp_u32vec1;
  832. /// High qualifier 32 bit unsigned integer vector of 2 components type.
  833. /// @see gtc_type_precision
  834. typedef vec<2, u32, highp> highp_u32vec2;
  835. /// High qualifier 32 bit unsigned integer vector of 3 components type.
  836. /// @see gtc_type_precision
  837. typedef vec<3, u32, highp> highp_u32vec3;
  838. /// High qualifier 32 bit unsigned integer vector of 4 components type.
  839. /// @see gtc_type_precision
  840. typedef vec<4, u32, highp> highp_u32vec4;
  841. #if(defined(GLM_PRECISION_LOWP_INT))
  842. typedef lowp_u32vec1 u32vec1;
  843. typedef lowp_u32vec2 u32vec2;
  844. typedef lowp_u32vec3 u32vec3;
  845. typedef lowp_u32vec4 u32vec4;
  846. #elif(defined(GLM_PRECISION_MEDIUMP_INT))
  847. typedef mediump_u32vec1 u32vec1;
  848. typedef mediump_u32vec2 u32vec2;
  849. typedef mediump_u32vec3 u32vec3;
  850. typedef mediump_u32vec4 u32vec4;
  851. #else
  852. /// Default qualifier 32 bit unsigned integer scalar type.
  853. /// @see gtc_type_precision
  854. typedef highp_u32vec1 u32vec1;
  855. /// Default qualifier 32 bit unsigned integer vector of 2 components type.
  856. /// @see gtc_type_precision
  857. typedef highp_u32vec2 u32vec2;
  858. /// Default qualifier 32 bit unsigned integer vector of 3 components type.
  859. /// @see gtc_type_precision
  860. typedef highp_u32vec3 u32vec3;
  861. /// Default qualifier 32 bit unsigned integer vector of 4 components type.
  862. /// @see gtc_type_precision
  863. typedef highp_u32vec4 u32vec4;
  864. #endif
  865. /// Low qualifier 32 bit unsigned integer scalar type.
  866. /// @see gtc_type_precision
  867. typedef vec<1, u32, lowp> lowp_u32vec1;
  868. /// Low qualifier 32 bit unsigned integer vector of 2 components type.
  869. /// @see gtc_type_precision
  870. typedef vec<2, u32, lowp> lowp_u32vec2;
  871. /// Low qualifier 32 bit unsigned integer vector of 3 components type.
  872. /// @see gtc_type_precision
  873. typedef vec<3, u32, lowp> lowp_u32vec3;
  874. /// Low qualifier 32 bit unsigned integer vector of 4 components type.
  875. /// @see gtc_type_precision
  876. typedef vec<4, u32, lowp> lowp_u32vec4;
  877. /// Medium qualifier 32 bit unsigned integer scalar type.
  878. /// @see gtc_type_precision
  879. typedef vec<1, u32, mediump> mediump_u32vec1;
  880. /// Medium qualifier 32 bit unsigned integer vector of 2 components type.
  881. /// @see gtc_type_precision
  882. typedef vec<2, u32, mediump> mediump_u32vec2;
  883. /// Medium qualifier 32 bit unsigned integer vector of 3 components type.
  884. /// @see gtc_type_precision
  885. typedef vec<3, u32, mediump> mediump_u32vec3;
  886. /// Medium qualifier 32 bit unsigned integer vector of 4 components type.
  887. /// @see gtc_type_precision
  888. typedef vec<4, u32, mediump> mediump_u32vec4;
  889. /// High qualifier 32 bit unsigned integer scalar type.
  890. /// @see gtc_type_precision
  891. typedef vec<1, u32, highp> highp_u32vec1;
  892. /// High qualifier 32 bit unsigned integer vector of 2 components type.
  893. /// @see gtc_type_precision
  894. typedef vec<2, u32, highp> highp_u32vec2;
  895. /// High qualifier 32 bit unsigned integer vector of 3 components type.
  896. /// @see gtc_type_precision
  897. typedef vec<3, u32, highp> highp_u32vec3;
  898. /// High qualifier 32 bit unsigned integer vector of 4 components type.
  899. /// @see gtc_type_precision
  900. typedef vec<4, u32, highp> highp_u32vec4;
  901. #if(defined(GLM_PRECISION_LOWP_INT))
  902. typedef lowp_u32vec1 u32vec1;
  903. typedef lowp_u32vec2 u32vec2;
  904. typedef lowp_u32vec3 u32vec3;
  905. typedef lowp_u32vec4 u32vec4;
  906. #elif(defined(GLM_PRECISION_MEDIUMP_INT))
  907. typedef mediump_u32vec1 u32vec1;
  908. typedef mediump_u32vec2 u32vec2;
  909. typedef mediump_u32vec3 u32vec3;
  910. typedef mediump_u32vec4 u32vec4;
  911. #else
  912. /// Default qualifier 32 bit unsigned integer scalar type.
  913. /// @see gtc_type_precision
  914. typedef highp_u32vec1 u32vec1;
  915. /// Default qualifier 32 bit unsigned integer vector of 2 components type.
  916. /// @see gtc_type_precision
  917. typedef highp_u32vec2 u32vec2;
  918. /// Default qualifier 32 bit unsigned integer vector of 3 components type.
  919. /// @see gtc_type_precision
  920. typedef highp_u32vec3 u32vec3;
  921. /// Default qualifier 32 bit unsigned integer vector of 4 components type.
  922. /// @see gtc_type_precision
  923. typedef highp_u32vec4 u32vec4;
  924. #endif
  925. /// Low qualifier 64 bit unsigned integer scalar type.
  926. /// @see gtc_type_precision
  927. typedef vec<1, u64, lowp> lowp_u64vec1;
  928. /// Low qualifier 64 bit unsigned integer vector of 2 components type.
  929. /// @see gtc_type_precision
  930. typedef vec<2, u64, lowp> lowp_u64vec2;
  931. /// Low qualifier 64 bit unsigned integer vector of 3 components type.
  932. /// @see gtc_type_precision
  933. typedef vec<3, u64, lowp> lowp_u64vec3;
  934. /// Low qualifier 64 bit unsigned integer vector of 4 components type.
  935. /// @see gtc_type_precision
  936. typedef vec<4, u64, lowp> lowp_u64vec4;
  937. /// Medium qualifier 64 bit unsigned integer scalar type.
  938. /// @see gtc_type_precision
  939. typedef vec<1, u64, mediump> mediump_u64vec1;
  940. /// Medium qualifier 64 bit unsigned integer vector of 2 components type.
  941. /// @see gtc_type_precision
  942. typedef vec<2, u64, mediump> mediump_u64vec2;
  943. /// Medium qualifier 64 bit unsigned integer vector of 3 components type.
  944. /// @see gtc_type_precision
  945. typedef vec<3, u64, mediump> mediump_u64vec3;
  946. /// Medium qualifier 64 bit unsigned integer vector of 4 components type.
  947. /// @see gtc_type_precision
  948. typedef vec<4, u64, mediump> mediump_u64vec4;
  949. /// High qualifier 64 bit unsigned integer scalar type.
  950. /// @see gtc_type_precision
  951. typedef vec<1, u64, highp> highp_u64vec1;
  952. /// High qualifier 64 bit unsigned integer vector of 2 components type.
  953. /// @see gtc_type_precision
  954. typedef vec<2, u64, highp> highp_u64vec2;
  955. /// High qualifier 64 bit unsigned integer vector of 3 components type.
  956. /// @see gtc_type_precision
  957. typedef vec<3, u64, highp> highp_u64vec3;
  958. /// High qualifier 64 bit unsigned integer vector of 4 components type.
  959. /// @see gtc_type_precision
  960. typedef vec<4, u64, highp> highp_u64vec4;
  961. #if(defined(GLM_PRECISION_LOWP_UINT))
  962. typedef lowp_u64vec1 u64vec1;
  963. typedef lowp_u64vec2 u64vec2;
  964. typedef lowp_u64vec3 u64vec3;
  965. typedef lowp_u64vec4 u64vec4;
  966. #elif(defined(GLM_PRECISION_MEDIUMP_UINT))
  967. typedef mediump_u64vec1 u64vec1;
  968. typedef mediump_u64vec2 u64vec2;
  969. typedef mediump_u64vec3 u64vec3;
  970. typedef mediump_u64vec4 u64vec4;
  971. #else
  972. /// Default qualifier 64 bit unsigned integer scalar type.
  973. /// @see gtc_type_precision
  974. typedef highp_u64vec1 u64vec1;
  975. /// Default qualifier 64 bit unsigned integer vector of 2 components type.
  976. /// @see gtc_type_precision
  977. typedef highp_u64vec2 u64vec2;
  978. /// Default qualifier 64 bit unsigned integer vector of 3 components type.
  979. /// @see gtc_type_precision
  980. typedef highp_u64vec3 u64vec3;
  981. /// Default qualifier 64 bit unsigned integer vector of 4 components type.
  982. /// @see gtc_type_precision
  983. typedef highp_u64vec4 u64vec4;
  984. #endif
  985. //////////////////////
  986. // Float vector types
  987. /// Low 32 bit single-qualifier floating-point scalar.
  988. /// @see gtc_type_precision
  989. typedef detail::float32 lowp_float32;
  990. /// Low 64 bit double-qualifier floating-point scalar.
  991. /// @see gtc_type_precision
  992. typedef detail::float64 lowp_float64;
  993. /// Low 32 bit single-qualifier floating-point scalar.
  994. /// @see gtc_type_precision
  995. typedef detail::float32 lowp_float32_t;
  996. /// Low 64 bit double-qualifier floating-point scalar.
  997. /// @see gtc_type_precision
  998. typedef detail::float64 lowp_float64_t;
  999. /// Low 32 bit single-qualifier floating-point scalar.
  1000. /// @see gtc_type_precision
  1001. typedef float32 lowp_f32;
  1002. /// Low 64 bit double-qualifier floating-point scalar.
  1003. /// @see gtc_type_precision
  1004. typedef float64 lowp_f64;
  1005. /// Low 32 bit single-qualifier floating-point scalar.
  1006. /// @see gtc_type_precision
  1007. typedef detail::float32 lowp_float32;
  1008. /// Low 64 bit double-qualifier floating-point scalar.
  1009. /// @see gtc_type_precision
  1010. typedef detail::float64 lowp_float64;
  1011. /// Low 32 bit single-qualifier floating-point scalar.
  1012. /// @see gtc_type_precision
  1013. typedef detail::float32 lowp_float32_t;
  1014. /// Low 64 bit double-qualifier floating-point scalar.
  1015. /// @see gtc_type_precision
  1016. typedef detail::float64 lowp_float64_t;
  1017. /// Low 32 bit single-qualifier floating-point scalar.
  1018. /// @see gtc_type_precision
  1019. typedef float32 lowp_f32;
  1020. /// Low 64 bit double-qualifier floating-point scalar.
  1021. /// @see gtc_type_precision
  1022. typedef float64 lowp_f64;
  1023. /// Low 32 bit single-qualifier floating-point scalar.
  1024. /// @see gtc_type_precision
  1025. typedef detail::float32 lowp_float32;
  1026. /// Low 64 bit double-qualifier floating-point scalar.
  1027. /// @see gtc_type_precision
  1028. typedef detail::float64 lowp_float64;
  1029. /// Low 32 bit single-qualifier floating-point scalar.
  1030. /// @see gtc_type_precision
  1031. typedef detail::float32 lowp_float32_t;
  1032. /// Low 64 bit double-qualifier floating-point scalar.
  1033. /// @see gtc_type_precision
  1034. typedef detail::float64 lowp_float64_t;
  1035. /// Low 32 bit single-qualifier floating-point scalar.
  1036. /// @see gtc_type_precision
  1037. typedef float32 lowp_f32;
  1038. /// Low 64 bit double-qualifier floating-point scalar.
  1039. /// @see gtc_type_precision
  1040. typedef float64 lowp_f64;
  1041. /// Medium 32 bit single-qualifier floating-point scalar.
  1042. /// @see gtc_type_precision
  1043. typedef detail::float32 mediump_float32;
  1044. /// Medium 64 bit double-qualifier floating-point scalar.
  1045. /// @see gtc_type_precision
  1046. typedef detail::float64 mediump_float64;
  1047. /// Medium 32 bit single-qualifier floating-point scalar.
  1048. /// @see gtc_type_precision
  1049. typedef detail::float32 mediump_float32_t;
  1050. /// Medium 64 bit double-qualifier floating-point scalar.
  1051. /// @see gtc_type_precision
  1052. typedef detail::float64 mediump_float64_t;
  1053. /// Medium 32 bit single-qualifier floating-point scalar.
  1054. /// @see gtc_type_precision
  1055. typedef float32 mediump_f32;
  1056. /// Medium 64 bit double-qualifier floating-point scalar.
  1057. /// @see gtc_type_precision
  1058. typedef float64 mediump_f64;
  1059. /// High 32 bit single-qualifier floating-point scalar.
  1060. /// @see gtc_type_precision
  1061. typedef detail::float32 highp_float32;
  1062. /// High 64 bit double-qualifier floating-point scalar.
  1063. /// @see gtc_type_precision
  1064. typedef detail::float64 highp_float64;
  1065. /// High 32 bit single-qualifier floating-point scalar.
  1066. /// @see gtc_type_precision
  1067. typedef detail::float32 highp_float32_t;
  1068. /// High 64 bit double-qualifier floating-point scalar.
  1069. /// @see gtc_type_precision
  1070. typedef detail::float64 highp_float64_t;
  1071. /// High 32 bit single-qualifier floating-point scalar.
  1072. /// @see gtc_type_precision
  1073. typedef float32 highp_f32;
  1074. /// High 64 bit double-qualifier floating-point scalar.
  1075. /// @see gtc_type_precision
  1076. typedef float64 highp_f64;
  1077. #if(defined(GLM_PRECISION_LOWP_FLOAT))
  1078. /// Default 32 bit single-qualifier floating-point scalar.
  1079. /// @see gtc_type_precision
  1080. typedef lowp_float32 float32;
  1081. /// Default 64 bit double-qualifier floating-point scalar.
  1082. /// @see gtc_type_precision
  1083. typedef lowp_float64 float64;
  1084. /// Default 32 bit single-qualifier floating-point scalar.
  1085. /// @see gtc_type_precision
  1086. typedef lowp_float32_t float32_t;
  1087. /// Default 64 bit double-qualifier floating-point scalar.
  1088. /// @see gtc_type_precision
  1089. typedef lowp_float64_t float64_t;
  1090. /// Default 32 bit single-qualifier floating-point scalar.
  1091. /// @see gtc_type_precision
  1092. typedef lowp_f32 f32;
  1093. /// Default 64 bit double-qualifier floating-point scalar.
  1094. /// @see gtc_type_precision
  1095. typedef lowp_f64 f64;
  1096. #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
  1097. /// Default 32 bit single-qualifier floating-point scalar.
  1098. /// @see gtc_type_precision
  1099. typedef mediump_float32 float32;
  1100. /// Default 64 bit double-qualifier floating-point scalar.
  1101. /// @see gtc_type_precision
  1102. typedef mediump_float64 float64;
  1103. /// Default 32 bit single-qualifier floating-point scalar.
  1104. /// @see gtc_type_precision
  1105. typedef mediump_float32 float32_t;
  1106. /// Default 64 bit double-qualifier floating-point scalar.
  1107. /// @see gtc_type_precision
  1108. typedef mediump_float64 float64_t;
  1109. /// Default 32 bit single-qualifier floating-point scalar.
  1110. /// @see gtc_type_precision
  1111. typedef mediump_float32 f32;
  1112. /// Default 64 bit double-qualifier floating-point scalar.
  1113. /// @see gtc_type_precision
  1114. typedef mediump_float64 f64;
  1115. #else//(defined(GLM_PRECISION_HIGHP_FLOAT))
  1116. /// Default 32 bit single-qualifier floating-point scalar.
  1117. /// @see gtc_type_precision
  1118. typedef highp_float32 float32;
  1119. /// Default 64 bit double-qualifier floating-point scalar.
  1120. /// @see gtc_type_precision
  1121. typedef highp_float64 float64;
  1122. /// Default 32 bit single-qualifier floating-point scalar.
  1123. /// @see gtc_type_precision
  1124. typedef highp_float32_t float32_t;
  1125. /// Default 64 bit double-qualifier floating-point scalar.
  1126. /// @see gtc_type_precision
  1127. typedef highp_float64_t float64_t;
  1128. /// Default 32 bit single-qualifier floating-point scalar.
  1129. /// @see gtc_type_precision
  1130. typedef highp_float32_t f32;
  1131. /// Default 64 bit double-qualifier floating-point scalar.
  1132. /// @see gtc_type_precision
  1133. typedef highp_float64_t f64;
  1134. #endif
  1135. /// Low single-qualifier floating-point vector of 1 component.
  1136. /// @see gtc_type_precision
  1137. typedef vec<1, float, lowp> lowp_vec1;
  1138. /// Low single-qualifier floating-point vector of 2 components.
  1139. /// @see core_precision
  1140. typedef vec<2, float, lowp> lowp_vec2;
  1141. /// Low single-qualifier floating-point vector of 3 components.
  1142. /// @see core_precision
  1143. typedef vec<3, float, lowp> lowp_vec3;
  1144. /// Low single-qualifier floating-point vector of 4 components.
  1145. /// @see core_precision
  1146. typedef vec<4, float, lowp> lowp_vec4;
  1147. /// Low single-qualifier floating-point vector of 1 component.
  1148. /// @see gtc_type_precision
  1149. typedef vec<1, float, lowp> lowp_fvec1;
  1150. /// Low single-qualifier floating-point vector of 2 components.
  1151. /// @see gtc_type_precision
  1152. typedef vec<2, float, lowp> lowp_fvec2;
  1153. /// Low single-qualifier floating-point vector of 3 components.
  1154. /// @see gtc_type_precision
  1155. typedef vec<3, float, lowp> lowp_fvec3;
  1156. /// Low single-qualifier floating-point vector of 4 components.
  1157. /// @see gtc_type_precision
  1158. typedef vec<4, float, lowp> lowp_fvec4;
  1159. /// Medium single-qualifier floating-point vector of 1 component.
  1160. /// @see gtc_type_precision
  1161. typedef vec<1, float, mediump> mediump_vec1;
  1162. /// Medium Single-qualifier floating-point vector of 2 components.
  1163. /// @see core_precision
  1164. typedef vec<2, float, mediump> mediump_vec2;
  1165. /// Medium Single-qualifier floating-point vector of 3 components.
  1166. /// @see core_precision
  1167. typedef vec<3, float, mediump> mediump_vec3;
  1168. /// Medium Single-qualifier floating-point vector of 4 components.
  1169. /// @see core_precision
  1170. typedef vec<4, float, mediump> mediump_vec4;
  1171. /// Medium single-qualifier floating-point vector of 1 component.
  1172. /// @see gtc_type_precision
  1173. typedef vec<1, float, mediump> mediump_fvec1;
  1174. /// Medium Single-qualifier floating-point vector of 2 components.
  1175. /// @see gtc_type_precision
  1176. typedef vec<2, float, mediump> mediump_fvec2;
  1177. /// Medium Single-qualifier floating-point vector of 3 components.
  1178. /// @see gtc_type_precision
  1179. typedef vec<3, float, mediump> mediump_fvec3;
  1180. /// Medium Single-qualifier floating-point vector of 4 components.
  1181. /// @see gtc_type_precision
  1182. typedef vec<4, float, mediump> mediump_fvec4;
  1183. /// High single-qualifier floating-point vector of 1 component.
  1184. /// @see gtc_type_precision
  1185. typedef vec<1, float, highp> highp_vec1;
  1186. /// High Single-qualifier floating-point vector of 2 components.
  1187. /// @see core_precision
  1188. typedef vec<2, float, highp> highp_vec2;
  1189. /// High Single-qualifier floating-point vector of 3 components.
  1190. /// @see core_precision
  1191. typedef vec<3, float, highp> highp_vec3;
  1192. /// High Single-qualifier floating-point vector of 4 components.
  1193. /// @see core_precision
  1194. typedef vec<4, float, highp> highp_vec4;
  1195. /// High single-qualifier floating-point vector of 1 component.
  1196. /// @see gtc_type_precision
  1197. typedef vec<1, float, highp> highp_fvec1;
  1198. /// High Single-qualifier floating-point vector of 2 components.
  1199. /// @see core_precision
  1200. typedef vec<2, float, highp> highp_fvec2;
  1201. /// High Single-qualifier floating-point vector of 3 components.
  1202. /// @see core_precision
  1203. typedef vec<3, float, highp> highp_fvec3;
  1204. /// High Single-qualifier floating-point vector of 4 components.
  1205. /// @see core_precision
  1206. typedef vec<4, float, highp> highp_fvec4;
  1207. /// Low single-qualifier floating-point vector of 1 component.
  1208. /// @see gtc_type_precision
  1209. typedef vec<1, f32, lowp> lowp_f32vec1;
  1210. /// Low single-qualifier floating-point vector of 2 components.
  1211. /// @see core_precision
  1212. typedef vec<2, f32, lowp> lowp_f32vec2;
  1213. /// Low single-qualifier floating-point vector of 3 components.
  1214. /// @see core_precision
  1215. typedef vec<3, f32, lowp> lowp_f32vec3;
  1216. /// Low single-qualifier floating-point vector of 4 components.
  1217. /// @see core_precision
  1218. typedef vec<4, f32, lowp> lowp_f32vec4;
  1219. /// Medium single-qualifier floating-point vector of 1 component.
  1220. /// @see gtc_type_precision
  1221. typedef vec<1, f32, mediump> mediump_f32vec1;
  1222. /// Medium single-qualifier floating-point vector of 2 components.
  1223. /// @see core_precision
  1224. typedef vec<2, f32, mediump> mediump_f32vec2;
  1225. /// Medium single-qualifier floating-point vector of 3 components.
  1226. /// @see core_precision
  1227. typedef vec<3, f32, mediump> mediump_f32vec3;
  1228. /// Medium single-qualifier floating-point vector of 4 components.
  1229. /// @see core_precision
  1230. typedef vec<4, f32, mediump> mediump_f32vec4;
  1231. /// High single-qualifier floating-point vector of 1 component.
  1232. /// @see gtc_type_precision
  1233. typedef vec<1, f32, highp> highp_f32vec1;
  1234. /// High single-qualifier floating-point vector of 2 components.
  1235. /// @see gtc_type_precision
  1236. typedef vec<2, f32, highp> highp_f32vec2;
  1237. /// High single-qualifier floating-point vector of 3 components.
  1238. /// @see gtc_type_precision
  1239. typedef vec<3, f32, highp> highp_f32vec3;
  1240. /// High single-qualifier floating-point vector of 4 components.
  1241. /// @see gtc_type_precision
  1242. typedef vec<4, f32, highp> highp_f32vec4;
  1243. /// Low double-qualifier floating-point vector of 1 component.
  1244. /// @see gtc_type_precision
  1245. typedef vec<1, f64, lowp> lowp_f64vec1;
  1246. /// Low double-qualifier floating-point vector of 2 components.
  1247. /// @see gtc_type_precision
  1248. typedef vec<2, f64, lowp> lowp_f64vec2;
  1249. /// Low double-qualifier floating-point vector of 3 components.
  1250. /// @see gtc_type_precision
  1251. typedef vec<3, f64, lowp> lowp_f64vec3;
  1252. /// Low double-qualifier floating-point vector of 4 components.
  1253. /// @see gtc_type_precision
  1254. typedef vec<4, f64, lowp> lowp_f64vec4;
  1255. /// Medium double-qualifier floating-point vector of 1 component.
  1256. /// @see gtc_type_precision
  1257. typedef vec<1, f64, mediump> mediump_f64vec1;
  1258. /// Medium double-qualifier floating-point vector of 2 components.
  1259. /// @see gtc_type_precision
  1260. typedef vec<2, f64, mediump> mediump_f64vec2;
  1261. /// Medium double-qualifier floating-point vector of 3 components.
  1262. /// @see gtc_type_precision
  1263. typedef vec<3, f64, mediump> mediump_f64vec3;
  1264. /// Medium double-qualifier floating-point vector of 4 components.
  1265. /// @see gtc_type_precision
  1266. typedef vec<4, f64, mediump> mediump_f64vec4;
  1267. /// High double-qualifier floating-point vector of 1 component.
  1268. /// @see gtc_type_precision
  1269. typedef vec<1, f64, highp> highp_f64vec1;
  1270. /// High double-qualifier floating-point vector of 2 components.
  1271. /// @see gtc_type_precision
  1272. typedef vec<2, f64, highp> highp_f64vec2;
  1273. /// High double-qualifier floating-point vector of 3 components.
  1274. /// @see gtc_type_precision
  1275. typedef vec<3, f64, highp> highp_f64vec3;
  1276. /// High double-qualifier floating-point vector of 4 components.
  1277. /// @see gtc_type_precision
  1278. typedef vec<4, f64, highp> highp_f64vec4;
  1279. //////////////////////
  1280. // Float matrix types
  1281. /// Low single-qualifier floating-point 1x1 matrix.
  1282. /// @see gtc_type_precision
  1283. //typedef lowp_f32 lowp_fmat1x1;
  1284. /// Low single-qualifier floating-point 2x2 matrix.
  1285. /// @see gtc_type_precision
  1286. typedef mat<2, 2, f32, lowp> lowp_fmat2x2;
  1287. /// Low single-qualifier floating-point 2x3 matrix.
  1288. /// @see gtc_type_precision
  1289. typedef mat<2, 3, f32, lowp> lowp_fmat2x3;
  1290. /// Low single-qualifier floating-point 2x4 matrix.
  1291. /// @see gtc_type_precision
  1292. typedef mat<2, 4, f32, lowp> lowp_fmat2x4;
  1293. /// Low single-qualifier floating-point 3x2 matrix.
  1294. /// @see gtc_type_precision
  1295. typedef mat<3, 2, f32, lowp> lowp_fmat3x2;
  1296. /// Low single-qualifier floating-point 3x3 matrix.
  1297. /// @see gtc_type_precision
  1298. typedef mat<3, 3, f32, lowp> lowp_fmat3x3;
  1299. /// Low single-qualifier floating-point 3x4 matrix.
  1300. /// @see gtc_type_precision
  1301. typedef mat<3, 4, f32, lowp> lowp_fmat3x4;
  1302. /// Low single-qualifier floating-point 4x2 matrix.
  1303. /// @see gtc_type_precision
  1304. typedef mat<4, 2, f32, lowp> lowp_fmat4x2;
  1305. /// Low single-qualifier floating-point 4x3 matrix.
  1306. /// @see gtc_type_precision
  1307. typedef mat<4, 3, f32, lowp> lowp_fmat4x3;
  1308. /// Low single-qualifier floating-point 4x4 matrix.
  1309. /// @see gtc_type_precision
  1310. typedef mat<4, 4, f32, lowp> lowp_fmat4x4;
  1311. /// Low single-qualifier floating-point 1x1 matrix.
  1312. /// @see gtc_type_precision
  1313. //typedef lowp_fmat1x1 lowp_fmat1;
  1314. /// Low single-qualifier floating-point 2x2 matrix.
  1315. /// @see gtc_type_precision
  1316. typedef lowp_fmat2x2 lowp_fmat2;
  1317. /// Low single-qualifier floating-point 3x3 matrix.
  1318. /// @see gtc_type_precision
  1319. typedef lowp_fmat3x3 lowp_fmat3;
  1320. /// Low single-qualifier floating-point 4x4 matrix.
  1321. /// @see gtc_type_precision
  1322. typedef lowp_fmat4x4 lowp_fmat4;
  1323. /// Medium single-qualifier floating-point 1x1 matrix.
  1324. /// @see gtc_type_precision
  1325. //typedef mediump_f32 mediump_fmat1x1;
  1326. /// Medium single-qualifier floating-point 2x2 matrix.
  1327. /// @see gtc_type_precision
  1328. typedef mat<2, 2, f32, mediump> mediump_fmat2x2;
  1329. /// Medium single-qualifier floating-point 2x3 matrix.
  1330. /// @see gtc_type_precision
  1331. typedef mat<2, 3, f32, mediump> mediump_fmat2x3;
  1332. /// Medium single-qualifier floating-point 2x4 matrix.
  1333. /// @see gtc_type_precision
  1334. typedef mat<2, 4, f32, mediump> mediump_fmat2x4;
  1335. /// Medium single-qualifier floating-point 3x2 matrix.
  1336. /// @see gtc_type_precision
  1337. typedef mat<3, 2, f32, mediump> mediump_fmat3x2;
  1338. /// Medium single-qualifier floating-point 3x3 matrix.
  1339. /// @see gtc_type_precision
  1340. typedef mat<3, 3, f32, mediump> mediump_fmat3x3;
  1341. /// Medium single-qualifier floating-point 3x4 matrix.
  1342. /// @see gtc_type_precision
  1343. typedef mat<3, 4, f32, mediump> mediump_fmat3x4;
  1344. /// Medium single-qualifier floating-point 4x2 matrix.
  1345. /// @see gtc_type_precision
  1346. typedef mat<4, 2, f32, mediump> mediump_fmat4x2;
  1347. /// Medium single-qualifier floating-point 4x3 matrix.
  1348. /// @see gtc_type_precision
  1349. typedef mat<4, 3, f32, mediump> mediump_fmat4x3;
  1350. /// Medium single-qualifier floating-point 4x4 matrix.
  1351. /// @see gtc_type_precision
  1352. typedef mat<4, 4, f32, mediump> mediump_fmat4x4;
  1353. /// Medium single-qualifier floating-point 1x1 matrix.
  1354. /// @see gtc_type_precision
  1355. //typedef mediump_fmat1x1 mediump_fmat1;
  1356. /// Medium single-qualifier floating-point 2x2 matrix.
  1357. /// @see gtc_type_precision
  1358. typedef mediump_fmat2x2 mediump_fmat2;
  1359. /// Medium single-qualifier floating-point 3x3 matrix.
  1360. /// @see gtc_type_precision
  1361. typedef mediump_fmat3x3 mediump_fmat3;
  1362. /// Medium single-qualifier floating-point 4x4 matrix.
  1363. /// @see gtc_type_precision
  1364. typedef mediump_fmat4x4 mediump_fmat4;
  1365. /// High single-qualifier floating-point 1x1 matrix.
  1366. /// @see gtc_type_precision
  1367. //typedef highp_f32 highp_fmat1x1;
  1368. /// High single-qualifier floating-point 2x2 matrix.
  1369. /// @see gtc_type_precision
  1370. typedef mat<2, 2, f32, highp> highp_fmat2x2;
  1371. /// High single-qualifier floating-point 2x3 matrix.
  1372. /// @see gtc_type_precision
  1373. typedef mat<2, 3, f32, highp> highp_fmat2x3;
  1374. /// High single-qualifier floating-point 2x4 matrix.
  1375. /// @see gtc_type_precision
  1376. typedef mat<2, 4, f32, highp> highp_fmat2x4;
  1377. /// High single-qualifier floating-point 3x2 matrix.
  1378. /// @see gtc_type_precision
  1379. typedef mat<3, 2, f32, highp> highp_fmat3x2;
  1380. /// High single-qualifier floating-point 3x3 matrix.
  1381. /// @see gtc_type_precision
  1382. typedef mat<3, 3, f32, highp> highp_fmat3x3;
  1383. /// High single-qualifier floating-point 3x4 matrix.
  1384. /// @see gtc_type_precision
  1385. typedef mat<3, 4, f32, highp> highp_fmat3x4;
  1386. /// High single-qualifier floating-point 4x2 matrix.
  1387. /// @see gtc_type_precision
  1388. typedef mat<4, 2, f32, highp> highp_fmat4x2;
  1389. /// High single-qualifier floating-point 4x3 matrix.
  1390. /// @see gtc_type_precision
  1391. typedef mat<4, 3, f32, highp> highp_fmat4x3;
  1392. /// High single-qualifier floating-point 4x4 matrix.
  1393. /// @see gtc_type_precision
  1394. typedef mat<4, 4, f32, highp> highp_fmat4x4;
  1395. /// High single-qualifier floating-point 1x1 matrix.
  1396. /// @see gtc_type_precision
  1397. //typedef highp_fmat1x1 highp_fmat1;
  1398. /// High single-qualifier floating-point 2x2 matrix.
  1399. /// @see gtc_type_precision
  1400. typedef highp_fmat2x2 highp_fmat2;
  1401. /// High single-qualifier floating-point 3x3 matrix.
  1402. /// @see gtc_type_precision
  1403. typedef highp_fmat3x3 highp_fmat3;
  1404. /// High single-qualifier floating-point 4x4 matrix.
  1405. /// @see gtc_type_precision
  1406. typedef highp_fmat4x4 highp_fmat4;
  1407. /// Low single-qualifier floating-point 1x1 matrix.
  1408. /// @see gtc_type_precision
  1409. //typedef f32 lowp_f32mat1x1;
  1410. /// Low single-qualifier floating-point 2x2 matrix.
  1411. /// @see gtc_type_precision
  1412. typedef mat<2, 2, f32, lowp> lowp_f32mat2x2;
  1413. /// Low single-qualifier floating-point 2x3 matrix.
  1414. /// @see gtc_type_precision
  1415. typedef mat<2, 3, f32, lowp> lowp_f32mat2x3;
  1416. /// Low single-qualifier floating-point 2x4 matrix.
  1417. /// @see gtc_type_precision
  1418. typedef mat<2, 4, f32, lowp> lowp_f32mat2x4;
  1419. /// Low single-qualifier floating-point 3x2 matrix.
  1420. /// @see gtc_type_precision
  1421. typedef mat<3, 2, f32, lowp> lowp_f32mat3x2;
  1422. /// Low single-qualifier floating-point 3x3 matrix.
  1423. /// @see gtc_type_precision
  1424. typedef mat<3, 3, f32, lowp> lowp_f32mat3x3;
  1425. /// Low single-qualifier floating-point 3x4 matrix.
  1426. /// @see gtc_type_precision
  1427. typedef mat<3, 4, f32, lowp> lowp_f32mat3x4;
  1428. /// Low single-qualifier floating-point 4x2 matrix.
  1429. /// @see gtc_type_precision
  1430. typedef mat<4, 2, f32, lowp> lowp_f32mat4x2;
  1431. /// Low single-qualifier floating-point 4x3 matrix.
  1432. /// @see gtc_type_precision
  1433. typedef mat<4, 3, f32, lowp> lowp_f32mat4x3;
  1434. /// Low single-qualifier floating-point 4x4 matrix.
  1435. /// @see gtc_type_precision
  1436. typedef mat<4, 4, f32, lowp> lowp_f32mat4x4;
  1437. /// Low single-qualifier floating-point 1x1 matrix.
  1438. /// @see gtc_type_precision
  1439. //typedef detail::tmat1x1<f32, lowp> lowp_f32mat1;
  1440. /// Low single-qualifier floating-point 2x2 matrix.
  1441. /// @see gtc_type_precision
  1442. typedef lowp_f32mat2x2 lowp_f32mat2;
  1443. /// Low single-qualifier floating-point 3x3 matrix.
  1444. /// @see gtc_type_precision
  1445. typedef lowp_f32mat3x3 lowp_f32mat3;
  1446. /// Low single-qualifier floating-point 4x4 matrix.
  1447. /// @see gtc_type_precision
  1448. typedef lowp_f32mat4x4 lowp_f32mat4;
  1449. /// High single-qualifier floating-point 1x1 matrix.
  1450. /// @see gtc_type_precision
  1451. //typedef f32 mediump_f32mat1x1;
  1452. /// Low single-qualifier floating-point 2x2 matrix.
  1453. /// @see gtc_type_precision
  1454. typedef mat<2, 2, f32, mediump> mediump_f32mat2x2;
  1455. /// Medium single-qualifier floating-point 2x3 matrix.
  1456. /// @see gtc_type_precision
  1457. typedef mat<2, 3, f32, mediump> mediump_f32mat2x3;
  1458. /// Medium single-qualifier floating-point 2x4 matrix.
  1459. /// @see gtc_type_precision
  1460. typedef mat<2, 4, f32, mediump> mediump_f32mat2x4;
  1461. /// Medium single-qualifier floating-point 3x2 matrix.
  1462. /// @see gtc_type_precision
  1463. typedef mat<3, 2, f32, mediump> mediump_f32mat3x2;
  1464. /// Medium single-qualifier floating-point 3x3 matrix.
  1465. /// @see gtc_type_precision
  1466. typedef mat<3, 3, f32, mediump> mediump_f32mat3x3;
  1467. /// Medium single-qualifier floating-point 3x4 matrix.
  1468. /// @see gtc_type_precision
  1469. typedef mat<3, 4, f32, mediump> mediump_f32mat3x4;
  1470. /// Medium single-qualifier floating-point 4x2 matrix.
  1471. /// @see gtc_type_precision
  1472. typedef mat<4, 2, f32, mediump> mediump_f32mat4x2;
  1473. /// Medium single-qualifier floating-point 4x3 matrix.
  1474. /// @see gtc_type_precision
  1475. typedef mat<4, 3, f32, mediump> mediump_f32mat4x3;
  1476. /// Medium single-qualifier floating-point 4x4 matrix.
  1477. /// @see gtc_type_precision
  1478. typedef mat<4, 4, f32, mediump> mediump_f32mat4x4;
  1479. /// Medium single-qualifier floating-point 1x1 matrix.
  1480. /// @see gtc_type_precision
  1481. //typedef detail::tmat1x1<f32, mediump> f32mat1;
  1482. /// Medium single-qualifier floating-point 2x2 matrix.
  1483. /// @see gtc_type_precision
  1484. typedef mediump_f32mat2x2 mediump_f32mat2;
  1485. /// Medium single-qualifier floating-point 3x3 matrix.
  1486. /// @see gtc_type_precision
  1487. typedef mediump_f32mat3x3 mediump_f32mat3;
  1488. /// Medium single-qualifier floating-point 4x4 matrix.
  1489. /// @see gtc_type_precision
  1490. typedef mediump_f32mat4x4 mediump_f32mat4;
  1491. /// High single-qualifier floating-point 1x1 matrix.
  1492. /// @see gtc_type_precision
  1493. //typedef f32 highp_f32mat1x1;
  1494. /// High single-qualifier floating-point 2x2 matrix.
  1495. /// @see gtc_type_precision
  1496. typedef mat<2, 2, f32, highp> highp_f32mat2x2;
  1497. /// High single-qualifier floating-point 2x3 matrix.
  1498. /// @see gtc_type_precision
  1499. typedef mat<2, 3, f32, highp> highp_f32mat2x3;
  1500. /// High single-qualifier floating-point 2x4 matrix.
  1501. /// @see gtc_type_precision
  1502. typedef mat<2, 4, f32, highp> highp_f32mat2x4;
  1503. /// High single-qualifier floating-point 3x2 matrix.
  1504. /// @see gtc_type_precision
  1505. typedef mat<3, 2, f32, highp> highp_f32mat3x2;
  1506. /// High single-qualifier floating-point 3x3 matrix.
  1507. /// @see gtc_type_precision
  1508. typedef mat<3, 3, f32, highp> highp_f32mat3x3;
  1509. /// High single-qualifier floating-point 3x4 matrix.
  1510. /// @see gtc_type_precision
  1511. typedef mat<3, 4, f32, highp> highp_f32mat3x4;
  1512. /// High single-qualifier floating-point 4x2 matrix.
  1513. /// @see gtc_type_precision
  1514. typedef mat<4, 2, f32, highp> highp_f32mat4x2;
  1515. /// High single-qualifier floating-point 4x3 matrix.
  1516. /// @see gtc_type_precision
  1517. typedef mat<4, 3, f32, highp> highp_f32mat4x3;
  1518. /// High single-qualifier floating-point 4x4 matrix.
  1519. /// @see gtc_type_precision
  1520. typedef mat<4, 4, f32, highp> highp_f32mat4x4;
  1521. /// High single-qualifier floating-point 1x1 matrix.
  1522. /// @see gtc_type_precision
  1523. //typedef detail::tmat1x1<f32, highp> f32mat1;
  1524. /// High single-qualifier floating-point 2x2 matrix.
  1525. /// @see gtc_type_precision
  1526. typedef highp_f32mat2x2 highp_f32mat2;
  1527. /// High single-qualifier floating-point 3x3 matrix.
  1528. /// @see gtc_type_precision
  1529. typedef highp_f32mat3x3 highp_f32mat3;
  1530. /// High single-qualifier floating-point 4x4 matrix.
  1531. /// @see gtc_type_precision
  1532. typedef highp_f32mat4x4 highp_f32mat4;
  1533. /// Low double-qualifier floating-point 1x1 matrix.
  1534. /// @see gtc_type_precision
  1535. //typedef f64 lowp_f64mat1x1;
  1536. /// Low double-qualifier floating-point 2x2 matrix.
  1537. /// @see gtc_type_precision
  1538. typedef mat<2, 2, f64, lowp> lowp_f64mat2x2;
  1539. /// Low double-qualifier floating-point 2x3 matrix.
  1540. /// @see gtc_type_precision
  1541. typedef mat<2, 3, f64, lowp> lowp_f64mat2x3;
  1542. /// Low double-qualifier floating-point 2x4 matrix.
  1543. /// @see gtc_type_precision
  1544. typedef mat<2, 4, f64, lowp> lowp_f64mat2x4;
  1545. /// Low double-qualifier floating-point 3x2 matrix.
  1546. /// @see gtc_type_precision
  1547. typedef mat<3, 2, f64, lowp> lowp_f64mat3x2;
  1548. /// Low double-qualifier floating-point 3x3 matrix.
  1549. /// @see gtc_type_precision
  1550. typedef mat<3, 3, f64, lowp> lowp_f64mat3x3;
  1551. /// Low double-qualifier floating-point 3x4 matrix.
  1552. /// @see gtc_type_precision
  1553. typedef mat<3, 4, f64, lowp> lowp_f64mat3x4;
  1554. /// Low double-qualifier floating-point 4x2 matrix.
  1555. /// @see gtc_type_precision
  1556. typedef mat<4, 2, f64, lowp> lowp_f64mat4x2;
  1557. /// Low double-qualifier floating-point 4x3 matrix.
  1558. /// @see gtc_type_precision
  1559. typedef mat<4, 3, f64, lowp> lowp_f64mat4x3;
  1560. /// Low double-qualifier floating-point 4x4 matrix.
  1561. /// @see gtc_type_precision
  1562. typedef mat<4, 4, f64, lowp> lowp_f64mat4x4;
  1563. /// Low double-qualifier floating-point 1x1 matrix.
  1564. /// @see gtc_type_precision
  1565. //typedef lowp_f64mat1x1 lowp_f64mat1;
  1566. /// Low double-qualifier floating-point 2x2 matrix.
  1567. /// @see gtc_type_precision
  1568. typedef lowp_f64mat2x2 lowp_f64mat2;
  1569. /// Low double-qualifier floating-point 3x3 matrix.
  1570. /// @see gtc_type_precision
  1571. typedef lowp_f64mat3x3 lowp_f64mat3;
  1572. /// Low double-qualifier floating-point 4x4 matrix.
  1573. /// @see gtc_type_precision
  1574. typedef lowp_f64mat4x4 lowp_f64mat4;
  1575. /// Medium double-qualifier floating-point 1x1 matrix.
  1576. /// @see gtc_type_precision
  1577. //typedef f64 Highp_f64mat1x1;
  1578. /// Medium double-qualifier floating-point 2x2 matrix.
  1579. /// @see gtc_type_precision
  1580. typedef mat<2, 2, f64, mediump> mediump_f64mat2x2;
  1581. /// Medium double-qualifier floating-point 2x3 matrix.
  1582. /// @see gtc_type_precision
  1583. typedef mat<2, 3, f64, mediump> mediump_f64mat2x3;
  1584. /// Medium double-qualifier floating-point 2x4 matrix.
  1585. /// @see gtc_type_precision
  1586. typedef mat<2, 4, f64, mediump> mediump_f64mat2x4;
  1587. /// Medium double-qualifier floating-point 3x2 matrix.
  1588. /// @see gtc_type_precision
  1589. typedef mat<3, 2, f64, mediump> mediump_f64mat3x2;
  1590. /// Medium double-qualifier floating-point 3x3 matrix.
  1591. /// @see gtc_type_precision
  1592. typedef mat<3, 3, f64, mediump> mediump_f64mat3x3;
  1593. /// Medium double-qualifier floating-point 3x4 matrix.
  1594. /// @see gtc_type_precision
  1595. typedef mat<3, 4, f64, mediump> mediump_f64mat3x4;
  1596. /// Medium double-qualifier floating-point 4x2 matrix.
  1597. /// @see gtc_type_precision
  1598. typedef mat<4, 2, f64, mediump> mediump_f64mat4x2;
  1599. /// Medium double-qualifier floating-point 4x3 matrix.
  1600. /// @see gtc_type_precision
  1601. typedef mat<4, 3, f64, mediump> mediump_f64mat4x3;
  1602. /// Medium double-qualifier floating-point 4x4 matrix.
  1603. /// @see gtc_type_precision
  1604. typedef mat<4, 4, f64, mediump> mediump_f64mat4x4;
  1605. /// Medium double-qualifier floating-point 1x1 matrix.
  1606. /// @see gtc_type_precision
  1607. //typedef mediump_f64mat1x1 mediump_f64mat1;
  1608. /// Medium double-qualifier floating-point 2x2 matrix.
  1609. /// @see gtc_type_precision
  1610. typedef mediump_f64mat2x2 mediump_f64mat2;
  1611. /// Medium double-qualifier floating-point 3x3 matrix.
  1612. /// @see gtc_type_precision
  1613. typedef mediump_f64mat3x3 mediump_f64mat3;
  1614. /// Medium double-qualifier floating-point 4x4 matrix.
  1615. /// @see gtc_type_precision
  1616. typedef mediump_f64mat4x4 mediump_f64mat4;
  1617. /// High double-qualifier floating-point 1x1 matrix.
  1618. /// @see gtc_type_precision
  1619. //typedef f64 highp_f64mat1x1;
  1620. /// High double-qualifier floating-point 2x2 matrix.
  1621. /// @see gtc_type_precision
  1622. typedef mat<2, 2, f64, highp> highp_f64mat2x2;
  1623. /// High double-qualifier floating-point 2x3 matrix.
  1624. /// @see gtc_type_precision
  1625. typedef mat<2, 3, f64, highp> highp_f64mat2x3;
  1626. /// High double-qualifier floating-point 2x4 matrix.
  1627. /// @see gtc_type_precision
  1628. typedef mat<2, 4, f64, highp> highp_f64mat2x4;
  1629. /// High double-qualifier floating-point 3x2 matrix.
  1630. /// @see gtc_type_precision
  1631. typedef mat<3, 2, f64, highp> highp_f64mat3x2;
  1632. /// High double-qualifier floating-point 3x3 matrix.
  1633. /// @see gtc_type_precision
  1634. typedef mat<3, 3, f64, highp> highp_f64mat3x3;
  1635. /// High double-qualifier floating-point 3x4 matrix.
  1636. /// @see gtc_type_precision
  1637. typedef mat<3, 4, f64, highp> highp_f64mat3x4;
  1638. /// High double-qualifier floating-point 4x2 matrix.
  1639. /// @see gtc_type_precision
  1640. typedef mat<4, 2, f64, highp> highp_f64mat4x2;
  1641. /// High double-qualifier floating-point 4x3 matrix.
  1642. /// @see gtc_type_precision
  1643. typedef mat<4, 3, f64, highp> highp_f64mat4x3;
  1644. /// High double-qualifier floating-point 4x4 matrix.
  1645. /// @see gtc_type_precision
  1646. typedef mat<4, 4, f64, highp> highp_f64mat4x4;
  1647. /// High double-qualifier floating-point 1x1 matrix.
  1648. /// @see gtc_type_precision
  1649. //typedef highp_f64mat1x1 highp_f64mat1;
  1650. /// High double-qualifier floating-point 2x2 matrix.
  1651. /// @see gtc_type_precision
  1652. typedef highp_f64mat2x2 highp_f64mat2;
  1653. /// High double-qualifier floating-point 3x3 matrix.
  1654. /// @see gtc_type_precision
  1655. typedef highp_f64mat3x3 highp_f64mat3;
  1656. /// High double-qualifier floating-point 4x4 matrix.
  1657. /// @see gtc_type_precision
  1658. typedef highp_f64mat4x4 highp_f64mat4;
  1659. //////////////////////////
  1660. // Quaternion types
  1661. /// Low single-qualifier floating-point quaternion.
  1662. /// @see gtc_type_precision
  1663. typedef tquat<f32, lowp> lowp_f32quat;
  1664. /// Low double-qualifier floating-point quaternion.
  1665. /// @see gtc_type_precision
  1666. typedef tquat<f64, lowp> lowp_f64quat;
  1667. /// Medium single-qualifier floating-point quaternion.
  1668. /// @see gtc_type_precision
  1669. typedef tquat<f32, mediump> mediump_f32quat;
  1670. /// Medium double-qualifier floating-point quaternion.
  1671. /// @see gtc_type_precision
  1672. typedef tquat<f64, mediump> mediump_f64quat;
  1673. /// High single-qualifier floating-point quaternion.
  1674. /// @see gtc_type_precision
  1675. typedef tquat<f32, highp> highp_f32quat;
  1676. /// High double-qualifier floating-point quaternion.
  1677. /// @see gtc_type_precision
  1678. typedef tquat<f64, highp> highp_f64quat;
  1679. #if(defined(GLM_PRECISION_LOWP_FLOAT))
  1680. typedef lowp_f32vec1 fvec1;
  1681. typedef lowp_f32vec2 fvec2;
  1682. typedef lowp_f32vec3 fvec3;
  1683. typedef lowp_f32vec4 fvec4;
  1684. typedef lowp_f32mat2 fmat2;
  1685. typedef lowp_f32mat3 fmat3;
  1686. typedef lowp_f32mat4 fmat4;
  1687. typedef lowp_f32mat2x2 fmat2x2;
  1688. typedef lowp_f32mat3x2 fmat3x2;
  1689. typedef lowp_f32mat4x2 fmat4x2;
  1690. typedef lowp_f32mat2x3 fmat2x3;
  1691. typedef lowp_f32mat3x3 fmat3x3;
  1692. typedef lowp_f32mat4x3 fmat4x3;
  1693. typedef lowp_f32mat2x4 fmat2x4;
  1694. typedef lowp_f32mat3x4 fmat3x4;
  1695. typedef lowp_f32mat4x4 fmat4x4;
  1696. typedef lowp_f32quat fquat;
  1697. typedef lowp_f32vec1 f32vec1;
  1698. typedef lowp_f32vec2 f32vec2;
  1699. typedef lowp_f32vec3 f32vec3;
  1700. typedef lowp_f32vec4 f32vec4;
  1701. typedef lowp_f32mat2 f32mat2;
  1702. typedef lowp_f32mat3 f32mat3;
  1703. typedef lowp_f32mat4 f32mat4;
  1704. typedef lowp_f32mat2x2 f32mat2x2;
  1705. typedef lowp_f32mat3x2 f32mat3x2;
  1706. typedef lowp_f32mat4x2 f32mat4x2;
  1707. typedef lowp_f32mat2x3 f32mat2x3;
  1708. typedef lowp_f32mat3x3 f32mat3x3;
  1709. typedef lowp_f32mat4x3 f32mat4x3;
  1710. typedef lowp_f32mat2x4 f32mat2x4;
  1711. typedef lowp_f32mat3x4 f32mat3x4;
  1712. typedef lowp_f32mat4x4 f32mat4x4;
  1713. typedef lowp_f32quat f32quat;
  1714. #elif(defined(GLM_PRECISION_MEDIUMP_FLOAT))
  1715. typedef mediump_f32vec1 fvec1;
  1716. typedef mediump_f32vec2 fvec2;
  1717. typedef mediump_f32vec3 fvec3;
  1718. typedef mediump_f32vec4 fvec4;
  1719. typedef mediump_f32mat2 fmat2;
  1720. typedef mediump_f32mat3 fmat3;
  1721. typedef mediump_f32mat4 fmat4;
  1722. typedef mediump_f32mat2x2 fmat2x2;
  1723. typedef mediump_f32mat3x2 fmat3x2;
  1724. typedef mediump_f32mat4x2 fmat4x2;
  1725. typedef mediump_f32mat2x3 fmat2x3;
  1726. typedef mediump_f32mat3x3 fmat3x3;
  1727. typedef mediump_f32mat4x3 fmat4x3;
  1728. typedef mediump_f32mat2x4 fmat2x4;
  1729. typedef mediump_f32mat3x4 fmat3x4;
  1730. typedef mediump_f32mat4x4 fmat4x4;
  1731. typedef mediump_f32quat fquat;
  1732. typedef mediump_f32vec1 f32vec1;
  1733. typedef mediump_f32vec2 f32vec2;
  1734. typedef mediump_f32vec3 f32vec3;
  1735. typedef mediump_f32vec4 f32vec4;
  1736. typedef mediump_f32mat2 f32mat2;
  1737. typedef mediump_f32mat3 f32mat3;
  1738. typedef mediump_f32mat4 f32mat4;
  1739. typedef mediump_f32mat2x2 f32mat2x2;
  1740. typedef mediump_f32mat3x2 f32mat3x2;
  1741. typedef mediump_f32mat4x2 f32mat4x2;
  1742. typedef mediump_f32mat2x3 f32mat2x3;
  1743. typedef mediump_f32mat3x3 f32mat3x3;
  1744. typedef mediump_f32mat4x3 f32mat4x3;
  1745. typedef mediump_f32mat2x4 f32mat2x4;
  1746. typedef mediump_f32mat3x4 f32mat3x4;
  1747. typedef mediump_f32mat4x4 f32mat4x4;
  1748. typedef mediump_f32quat f32quat;
  1749. #else//if(defined(GLM_PRECISION_HIGHP_FLOAT))
  1750. /// Default single-qualifier floating-point vector of 1 components.
  1751. /// @see gtc_type_precision
  1752. typedef highp_f32vec1 fvec1;
  1753. /// Default single-qualifier floating-point vector of 2 components.
  1754. /// @see gtc_type_precision
  1755. typedef highp_f32vec2 fvec2;
  1756. /// Default single-qualifier floating-point vector of 3 components.
  1757. /// @see gtc_type_precision
  1758. typedef highp_f32vec3 fvec3;
  1759. /// Default single-qualifier floating-point vector of 4 components.
  1760. /// @see gtc_type_precision
  1761. typedef highp_f32vec4 fvec4;
  1762. /// Default single-qualifier floating-point 2x2 matrix.
  1763. /// @see gtc_type_precision
  1764. typedef highp_f32mat2x2 fmat2x2;
  1765. /// Default single-qualifier floating-point 2x3 matrix.
  1766. /// @see gtc_type_precision
  1767. typedef highp_f32mat2x3 fmat2x3;
  1768. /// Default single-qualifier floating-point 2x4 matrix.
  1769. /// @see gtc_type_precision
  1770. typedef highp_f32mat2x4 fmat2x4;
  1771. /// Default single-qualifier floating-point 3x2 matrix.
  1772. /// @see gtc_type_precision
  1773. typedef highp_f32mat3x2 fmat3x2;
  1774. /// Default single-qualifier floating-point 3x3 matrix.
  1775. /// @see gtc_type_precision
  1776. typedef highp_f32mat3x3 fmat3x3;
  1777. /// Default single-qualifier floating-point 3x4 matrix.
  1778. /// @see gtc_type_precision
  1779. typedef highp_f32mat3x4 fmat3x4;
  1780. /// Default single-qualifier floating-point 4x2 matrix.
  1781. /// @see gtc_type_precision
  1782. typedef highp_f32mat4x2 fmat4x2;
  1783. /// Default single-qualifier floating-point 4x3 matrix.
  1784. /// @see gtc_type_precision
  1785. typedef highp_f32mat4x3 fmat4x3;
  1786. /// Default single-qualifier floating-point 4x4 matrix.
  1787. /// @see gtc_type_precision
  1788. typedef highp_f32mat4x4 fmat4x4;
  1789. /// Default single-qualifier floating-point 2x2 matrix.
  1790. /// @see gtc_type_precision
  1791. typedef fmat2x2 fmat2;
  1792. /// Default single-qualifier floating-point 3x3 matrix.
  1793. /// @see gtc_type_precision
  1794. typedef fmat3x3 fmat3;
  1795. /// Default single-qualifier floating-point 4x4 matrix.
  1796. /// @see gtc_type_precision
  1797. typedef fmat4x4 fmat4;
  1798. /// Default single-qualifier floating-point quaternion.
  1799. /// @see gtc_type_precision
  1800. typedef highp_fquat fquat;
  1801. /// Default single-qualifier floating-point vector of 1 components.
  1802. /// @see gtc_type_precision
  1803. typedef highp_f32vec1 f32vec1;
  1804. /// Default single-qualifier floating-point vector of 2 components.
  1805. /// @see gtc_type_precision
  1806. typedef highp_f32vec2 f32vec2;
  1807. /// Default single-qualifier floating-point vector of 3 components.
  1808. /// @see gtc_type_precision
  1809. typedef highp_f32vec3 f32vec3;
  1810. /// Default single-qualifier floating-point vector of 4 components.
  1811. /// @see gtc_type_precision
  1812. typedef highp_f32vec4 f32vec4;
  1813. /// Default single-qualifier floating-point 2x2 matrix.
  1814. /// @see gtc_type_precision
  1815. typedef highp_f32mat2x2 f32mat2x2;
  1816. /// Default single-qualifier floating-point 2x3 matrix.
  1817. /// @see gtc_type_precision
  1818. typedef highp_f32mat2x3 f32mat2x3;
  1819. /// Default single-qualifier floating-point 2x4 matrix.
  1820. /// @see gtc_type_precision
  1821. typedef highp_f32mat2x4 f32mat2x4;
  1822. /// Default single-qualifier floating-point 3x2 matrix.
  1823. /// @see gtc_type_precision
  1824. typedef highp_f32mat3x2 f32mat3x2;
  1825. /// Default single-qualifier floating-point 3x3 matrix.
  1826. /// @see gtc_type_precision
  1827. typedef highp_f32mat3x3 f32mat3x3;
  1828. /// Default single-qualifier floating-point 3x4 matrix.
  1829. /// @see gtc_type_precision
  1830. typedef highp_f32mat3x4 f32mat3x4;
  1831. /// Default single-qualifier floating-point 4x2 matrix.
  1832. /// @see gtc_type_precision
  1833. typedef highp_f32mat4x2 f32mat4x2;
  1834. /// Default single-qualifier floating-point 4x3 matrix.
  1835. /// @see gtc_type_precision
  1836. typedef highp_f32mat4x3 f32mat4x3;
  1837. /// Default single-qualifier floating-point 4x4 matrix.
  1838. /// @see gtc_type_precision
  1839. typedef highp_f32mat4x4 f32mat4x4;
  1840. /// Default single-qualifier floating-point 2x2 matrix.
  1841. /// @see gtc_type_precision
  1842. typedef f32mat2x2 f32mat2;
  1843. /// Default single-qualifier floating-point 3x3 matrix.
  1844. /// @see gtc_type_precision
  1845. typedef f32mat3x3 f32mat3;
  1846. /// Default single-qualifier floating-point 4x4 matrix.
  1847. /// @see gtc_type_precision
  1848. typedef f32mat4x4 f32mat4;
  1849. /// Default single-qualifier floating-point quaternion.
  1850. /// @see gtc_type_precision
  1851. typedef highp_f32quat f32quat;
  1852. #endif
  1853. #if(defined(GLM_PRECISION_LOWP_DOUBLE))
  1854. typedef lowp_f64vec1 f64vec1;
  1855. typedef lowp_f64vec2 f64vec2;
  1856. typedef lowp_f64vec3 f64vec3;
  1857. typedef lowp_f64vec4 f64vec4;
  1858. typedef lowp_f64mat2 f64mat2;
  1859. typedef lowp_f64mat3 f64mat3;
  1860. typedef lowp_f64mat4 f64mat4;
  1861. typedef lowp_f64mat2x2 f64mat2x2;
  1862. typedef lowp_f64mat3x2 f64mat3x2;
  1863. typedef lowp_f64mat4x2 f64mat4x2;
  1864. typedef lowp_f64mat2x3 f64mat2x3;
  1865. typedef lowp_f64mat3x3 f64mat3x3;
  1866. typedef lowp_f64mat4x3 f64mat4x3;
  1867. typedef lowp_f64mat2x4 f64mat2x4;
  1868. typedef lowp_f64mat3x4 f64mat3x4;
  1869. typedef lowp_f64mat4x4 f64mat4x4;
  1870. typedef lowp_f64quat f64quat;
  1871. #elif(defined(GLM_PRECISION_MEDIUMP_DOUBLE))
  1872. typedef mediump_f64vec1 f64vec1;
  1873. typedef mediump_f64vec2 f64vec2;
  1874. typedef mediump_f64vec3 f64vec3;
  1875. typedef mediump_f64vec4 f64vec4;
  1876. typedef mediump_f64mat2 f64mat2;
  1877. typedef mediump_f64mat3 f64mat3;
  1878. typedef mediump_f64mat4 f64mat4;
  1879. typedef mediump_f64mat2x2 f64mat2x2;
  1880. typedef mediump_f64mat3x2 f64mat3x2;
  1881. typedef mediump_f64mat4x2 f64mat4x2;
  1882. typedef mediump_f64mat2x3 f64mat2x3;
  1883. typedef mediump_f64mat3x3 f64mat3x3;
  1884. typedef mediump_f64mat4x3 f64mat4x3;
  1885. typedef mediump_f64mat2x4 f64mat2x4;
  1886. typedef mediump_f64mat3x4 f64mat3x4;
  1887. typedef mediump_f64mat4x4 f64mat4x4;
  1888. typedef mediump_f64quat f64quat;
  1889. #else
  1890. /// Default double-qualifier floating-point vector of 1 components.
  1891. /// @see gtc_type_precision
  1892. typedef highp_f64vec1 f64vec1;
  1893. /// Default double-qualifier floating-point vector of 2 components.
  1894. /// @see gtc_type_precision
  1895. typedef highp_f64vec2 f64vec2;
  1896. /// Default double-qualifier floating-point vector of 3 components.
  1897. /// @see gtc_type_precision
  1898. typedef highp_f64vec3 f64vec3;
  1899. /// Default double-qualifier floating-point vector of 4 components.
  1900. /// @see gtc_type_precision
  1901. typedef highp_f64vec4 f64vec4;
  1902. /// Default double-qualifier floating-point 2x2 matrix.
  1903. /// @see gtc_type_precision
  1904. typedef highp_f64mat2x2 f64mat2x2;
  1905. /// Default double-qualifier floating-point 2x3 matrix.
  1906. /// @see gtc_type_precision
  1907. typedef highp_f64mat2x3 f64mat2x3;
  1908. /// Default double-qualifier floating-point 2x4 matrix.
  1909. /// @see gtc_type_precision
  1910. typedef highp_f64mat2x4 f64mat2x4;
  1911. /// Default double-qualifier floating-point 3x2 matrix.
  1912. /// @see gtc_type_precision
  1913. typedef highp_f64mat3x2 f64mat3x2;
  1914. /// Default double-qualifier floating-point 3x3 matrix.
  1915. /// @see gtc_type_precision
  1916. typedef highp_f64mat3x3 f64mat3x3;
  1917. /// Default double-qualifier floating-point 3x4 matrix.
  1918. /// @see gtc_type_precision
  1919. typedef highp_f64mat3x4 f64mat3x4;
  1920. /// Default double-qualifier floating-point 4x2 matrix.
  1921. /// @see gtc_type_precision
  1922. typedef highp_f64mat4x2 f64mat4x2;
  1923. /// Default double-qualifier floating-point 4x3 matrix.
  1924. /// @see gtc_type_precision
  1925. typedef highp_f64mat4x3 f64mat4x3;
  1926. /// Default double-qualifier floating-point 4x4 matrix.
  1927. /// @see gtc_type_precision
  1928. typedef highp_f64mat4x4 f64mat4x4;
  1929. /// Default double-qualifier floating-point 2x2 matrix.
  1930. /// @see gtc_type_precision
  1931. typedef f64mat2x2 f64mat2;
  1932. /// Default double-qualifier floating-point 3x3 matrix.
  1933. /// @see gtc_type_precision
  1934. typedef f64mat3x3 f64mat3;
  1935. /// Default double-qualifier floating-point 4x4 matrix.
  1936. /// @see gtc_type_precision
  1937. typedef f64mat4x4 f64mat4;
  1938. /// Default double-qualifier floating-point quaternion.
  1939. /// @see gtc_type_precision
  1940. typedef highp_f64quat f64quat;
  1941. #endif
  1942. }//namespace glm