00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 #ifndef GLM_GTC_matrix_integer 00038 #define GLM_GTC_matrix_integer GLM_VERSION 00039 00040 // Dependency: 00041 #include "../glm.hpp" 00042 00043 #if(defined(GLM_MESSAGES) && !defined(glm_ext)) 00044 # pragma message("GLM: GLM_GTC_matrix_integer extension included") 00045 #endif 00046 00047 namespace glm 00048 { 00051 00054 typedef detail::tmat2x2<highp_int> highp_imat2; 00055 00058 typedef detail::tmat3x3<highp_int> highp_imat3; 00059 00062 typedef detail::tmat4x4<highp_int> highp_imat4; 00063 00066 typedef detail::tmat2x2<highp_int> highp_imat2x2; 00067 00070 typedef detail::tmat2x3<highp_int> highp_imat2x3; 00071 00074 typedef detail::tmat2x4<highp_int> highp_imat2x4; 00075 00078 typedef detail::tmat3x2<highp_int> highp_imat3x2; 00079 00082 typedef detail::tmat3x3<highp_int> highp_imat3x3; 00083 00086 typedef detail::tmat3x4<highp_int> highp_imat3x4; 00087 00090 typedef detail::tmat4x2<highp_int> highp_imat4x2; 00091 00094 typedef detail::tmat4x3<highp_int> highp_imat4x3; 00095 00098 typedef detail::tmat4x4<highp_int> highp_imat4x4; 00099 00100 00103 typedef detail::tmat2x2<mediump_int> mediump_imat2; 00104 00107 typedef detail::tmat3x3<mediump_int> mediump_imat3; 00108 00111 typedef detail::tmat4x4<mediump_int> mediump_imat4; 00112 00113 00116 typedef detail::tmat2x2<mediump_int> mediump_imat2x2; 00117 00120 typedef detail::tmat2x3<mediump_int> mediump_imat2x3; 00121 00124 typedef detail::tmat2x4<mediump_int> mediump_imat2x4; 00125 00128 typedef detail::tmat3x2<mediump_int> mediump_imat3x2; 00129 00132 typedef detail::tmat3x3<mediump_int> mediump_imat3x3; 00133 00136 typedef detail::tmat3x4<mediump_int> mediump_imat3x4; 00137 00140 typedef detail::tmat4x2<mediump_int> mediump_imat4x2; 00141 00144 typedef detail::tmat4x3<mediump_int> mediump_imat4x3; 00145 00148 typedef detail::tmat4x4<mediump_int> mediump_imat4x4; 00149 00150 00153 typedef detail::tmat2x2<lowp_int> lowp_imat2; 00154 00157 typedef detail::tmat3x3<lowp_int> lowp_imat3; 00158 00161 typedef detail::tmat4x4<lowp_int> lowp_imat4; 00162 00163 00166 typedef detail::tmat2x2<lowp_int> lowp_imat2x2; 00167 00170 typedef detail::tmat2x3<lowp_int> lowp_imat2x3; 00171 00174 typedef detail::tmat2x4<lowp_int> lowp_imat2x4; 00175 00178 typedef detail::tmat3x2<lowp_int> lowp_imat3x2; 00179 00182 typedef detail::tmat3x3<lowp_int> lowp_imat3x3; 00183 00186 typedef detail::tmat3x4<lowp_int> lowp_imat3x4; 00187 00190 typedef detail::tmat4x2<lowp_int> lowp_imat4x2; 00191 00194 typedef detail::tmat4x3<lowp_int> lowp_imat4x3; 00195 00198 typedef detail::tmat4x4<lowp_int> lowp_imat4x4; 00199 00200 00203 typedef detail::tmat2x2<highp_uint> highp_umat2; 00204 00207 typedef detail::tmat3x3<highp_uint> highp_umat3; 00208 00211 typedef detail::tmat4x4<highp_uint> highp_umat4; 00212 00215 typedef detail::tmat2x2<highp_uint> highp_umat2x2; 00216 00219 typedef detail::tmat2x3<highp_uint> highp_umat2x3; 00220 00223 typedef detail::tmat2x4<highp_uint> highp_umat2x4; 00224 00227 typedef detail::tmat3x2<highp_uint> highp_umat3x2; 00228 00231 typedef detail::tmat3x3<highp_uint> highp_umat3x3; 00232 00235 typedef detail::tmat3x4<highp_uint> highp_umat3x4; 00236 00239 typedef detail::tmat4x2<highp_uint> highp_umat4x2; 00240 00243 typedef detail::tmat4x3<highp_uint> highp_umat4x3; 00244 00247 typedef detail::tmat4x4<highp_uint> highp_umat4x4; 00248 00249 00252 typedef detail::tmat2x2<mediump_uint> mediump_umat2; 00253 00256 typedef detail::tmat3x3<mediump_uint> mediump_umat3; 00257 00260 typedef detail::tmat4x4<mediump_uint> mediump_umat4; 00261 00262 00265 typedef detail::tmat2x2<mediump_uint> mediump_umat2x2; 00266 00269 typedef detail::tmat2x3<mediump_uint> mediump_umat2x3; 00270 00273 typedef detail::tmat2x4<mediump_uint> mediump_umat2x4; 00274 00277 typedef detail::tmat3x2<mediump_uint> mediump_umat3x2; 00278 00281 typedef detail::tmat3x3<mediump_uint> mediump_umat3x3; 00282 00285 typedef detail::tmat3x4<mediump_uint> mediump_umat3x4; 00286 00289 typedef detail::tmat4x2<mediump_uint> mediump_umat4x2; 00290 00293 typedef detail::tmat4x3<mediump_uint> mediump_umat4x3; 00294 00297 typedef detail::tmat4x4<mediump_uint> mediump_umat4x4; 00298 00299 00302 typedef detail::tmat2x2<lowp_uint> lowp_umat2; 00303 00306 typedef detail::tmat3x3<lowp_uint> lowp_umat3; 00307 00310 typedef detail::tmat4x4<lowp_uint> lowp_umat4; 00311 00312 00315 typedef detail::tmat2x2<lowp_uint> lowp_umat2x2; 00316 00319 typedef detail::tmat2x3<lowp_uint> lowp_umat2x3; 00320 00323 typedef detail::tmat2x4<lowp_uint> lowp_umat2x4; 00324 00327 typedef detail::tmat3x2<lowp_uint> lowp_umat3x2; 00328 00331 typedef detail::tmat3x3<lowp_uint> lowp_umat3x3; 00332 00335 typedef detail::tmat3x4<lowp_uint> lowp_umat3x4; 00336 00339 typedef detail::tmat4x2<lowp_uint> lowp_umat4x2; 00340 00343 typedef detail::tmat4x3<lowp_uint> lowp_umat4x3; 00344 00347 typedef detail::tmat4x4<lowp_uint> lowp_umat4x4; 00348 00349 #if(defined(GLM_PRECISION_HIGHP_INT)) 00350 typedef highp_imat2 imat2; 00351 typedef highp_imat3 imat3; 00352 typedef highp_imat4 imat4; 00353 typedef highp_imat2x2 imat2x2; 00354 typedef highp_imat2x3 imat2x3; 00355 typedef highp_imat2x4 imat2x4; 00356 typedef highp_imat3x2 imat3x2; 00357 typedef highp_imat3x3 imat3x3; 00358 typedef highp_imat3x4 imat3x4; 00359 typedef highp_imat4x2 imat4x2; 00360 typedef highp_imat4x3 imat4x3; 00361 typedef highp_imat4x4 imat4x4; 00362 #elif(defined(GLM_PRECISION_LOWP_INT)) 00363 typedef lowp_imat2 imat2; 00364 typedef lowp_imat3 imat3; 00365 typedef lowp_imat4 imat4; 00366 typedef lowp_imat2x2 imat2x2; 00367 typedef lowp_imat2x3 imat2x3; 00368 typedef lowp_imat2x4 imat2x4; 00369 typedef lowp_imat3x2 imat3x2; 00370 typedef lowp_imat3x3 imat3x3; 00371 typedef lowp_imat3x4 imat3x4; 00372 typedef lowp_imat4x2 imat4x2; 00373 typedef lowp_imat4x3 imat4x3; 00374 typedef lowp_imat4x4 imat4x4; 00375 #else //if(defined(GLM_PRECISION_MEDIUMP_INT)) 00376 00379 typedef mediump_imat2 imat2; 00380 00383 typedef mediump_imat3 imat3; 00384 00387 typedef mediump_imat4 imat4; 00388 00391 typedef mediump_imat2x2 imat2x2; 00392 00395 typedef mediump_imat2x3 imat2x3; 00396 00399 typedef mediump_imat2x4 imat2x4; 00400 00403 typedef mediump_imat3x2 imat3x2; 00404 00407 typedef mediump_imat3x3 imat3x3; 00408 00411 typedef mediump_imat3x4 imat3x4; 00412 00415 typedef mediump_imat4x2 imat4x2; 00416 00419 typedef mediump_imat4x3 imat4x3; 00420 00423 typedef mediump_imat4x4 imat4x4; 00424 #endif//GLM_PRECISION 00425 00426 #if(defined(GLM_PRECISION_HIGHP_UINT)) 00427 typedef highp_umat2 umat2; 00428 typedef highp_umat3 umat3; 00429 typedef highp_umat4 umat4; 00430 typedef highp_umat2x2 umat2x2; 00431 typedef highp_umat2x3 umat2x3; 00432 typedef highp_umat2x4 umat2x4; 00433 typedef highp_umat3x2 umat3x2; 00434 typedef highp_umat3x3 umat3x3; 00435 typedef highp_umat3x4 umat3x4; 00436 typedef highp_umat4x2 umat4x2; 00437 typedef highp_umat4x3 umat4x3; 00438 typedef highp_umat4x4 umat4x4; 00439 #elif(defined(GLM_PRECISION_LOWP_UINT)) 00440 typedef lowp_umat2 umat2; 00441 typedef lowp_umat3 umat3; 00442 typedef lowp_umat4 umat4; 00443 typedef lowp_umat2x2 umat2x2; 00444 typedef lowp_umat2x3 umat2x3; 00445 typedef lowp_umat2x4 umat2x4; 00446 typedef lowp_umat3x2 umat3x2; 00447 typedef lowp_umat3x3 umat3x3; 00448 typedef lowp_umat3x4 umat3x4; 00449 typedef lowp_umat4x2 umat4x2; 00450 typedef lowp_umat4x3 umat4x3; 00451 typedef lowp_umat4x4 umat4x4; 00452 #else //if(defined(GLM_PRECISION_MEDIUMP_UINT)) 00453 00454 00455 typedef mediump_umat2 umat2; 00456 00459 typedef mediump_umat3 umat3; 00460 00463 typedef mediump_umat4 umat4; 00464 00467 typedef mediump_umat2x2 umat2x2; 00468 00471 typedef mediump_umat2x3 umat2x3; 00472 00475 typedef mediump_umat2x4 umat2x4; 00476 00479 typedef mediump_umat3x2 umat3x2; 00480 00483 typedef mediump_umat3x3 umat3x3; 00484 00487 typedef mediump_umat3x4 umat3x4; 00488 00491 typedef mediump_umat4x2 umat4x2; 00492 00495 typedef mediump_umat4x3 umat4x3; 00496 00499 typedef mediump_umat4x4 umat4x4; 00500 #endif//GLM_PRECISION 00501 00503 }//namespace glm 00504 00505 #endif//GLM_GTC_matrix_integer