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