From f2d8503c559aee5eea8f3c06244c5612cf3de88c Mon Sep 17 00:00:00 2001 From: Lucy Xiao Date: Fri, 25 Oct 2013 05:38:49 -0400 Subject: [PATCH 1/7] merged new changes with master branch --- Images/Cloth1.PNG | Bin 0 -> 26231 bytes Images/Cloth2.PNG | Bin 0 -> 531175 bytes Images/NBody.PNG | Bin 0 -> 425470 bytes Part1/PROJ_WIN/Project3/Project3.vcxproj | 8 +- Part1/PROJ_WIN/Project3/shaders/heightFS.glsl | 13 +- Part1/PROJ_WIN/Project3/shaders/heightVS.glsl | 17 +- Part1/PROJ_WIN/Project3/shaders/planetFS.glsl | 30 +- Part1/PROJ_WIN/Project3/shaders/planetGS.glsl | 42 +- Part1/PROJ_WIN/src/kernel.cu.deps | 517 +- Part1/src/kernel.cu | 35 +- Part1/src/kernel.h | 2 +- Part1/src/main.cpp | 4 +- Part2/PROJ_NIX/makefile | 33 + Part2/PROJ_NIX/shaders/heightFS.glsl | 4 + Part2/PROJ_NIX/shaders/heightVS.glsl | 9 + Part2/PROJ_NIX/shaders/planetFS.glsl | 4 + Part2/PROJ_NIX/shaders/planetGS.glsl | 15 + Part2/PROJ_NIX/shaders/planetVS.glsl | 8 + Part2/PROJ_WIN/Project3.sln | 20 + Part2/PROJ_WIN/Project3/Project3.vcxproj | 115 + .../Project3/Project3.vcxproj.filters | 61 + Part2/PROJ_WIN/Project3/shaders/planeFS.glsl | 7 + Part2/PROJ_WIN/Project3/shaders/planeVS.glsl | 13 + Part2/PROJ_WIN/shared/freeglut/Copying.txt | 27 + Part2/PROJ_WIN/shared/freeglut/Readme.txt | 96 + Part2/PROJ_WIN/shared/freeglut/freeglut.dll | Bin 0 -> 197120 bytes .../shared/freeglut/include/GL/freeglut.h | 22 + .../shared/freeglut/include/GL/freeglut_ext.h | 212 + .../shared/freeglut/include/GL/freeglut_std.h | 626 + .../shared/freeglut/include/GL/glut.h | 716 + .../PROJ_WIN/shared/freeglut/lib/freeglut.lib | Bin 0 -> 34970 bytes Part2/PROJ_WIN/shared/freeglut/lib/glut32.lib | Bin 0 -> 28728 bytes Part2/PROJ_WIN/shared/glew/LICENSE.txt | 73 + Part2/PROJ_WIN/shared/glew/README.txt | 18 + Part2/PROJ_WIN/shared/glew/TODO.txt | 12 + Part2/PROJ_WIN/shared/glew/doc/advanced.html | 278 + Part2/PROJ_WIN/shared/glew/doc/basic.html | 282 + Part2/PROJ_WIN/shared/glew/doc/credits.html | 127 + Part2/PROJ_WIN/shared/glew/doc/glew.css | 187 + Part2/PROJ_WIN/shared/glew/doc/glew.html | 530 + Part2/PROJ_WIN/shared/glew/doc/glew.png | Bin 0 -> 9298 bytes Part2/PROJ_WIN/shared/glew/doc/glew.txt | 28 + Part2/PROJ_WIN/shared/glew/doc/glxew.html | 171 + Part2/PROJ_WIN/shared/glew/doc/gpl.txt | 340 + Part2/PROJ_WIN/shared/glew/doc/index.html | 205 + Part2/PROJ_WIN/shared/glew/doc/install.html | 228 + Part2/PROJ_WIN/shared/glew/doc/khronos.txt | 20 + Part2/PROJ_WIN/shared/glew/doc/log.html | 776 + Part2/PROJ_WIN/shared/glew/doc/mesa.txt | 21 + Part2/PROJ_WIN/shared/glew/doc/new.png | Bin 0 -> 1180 bytes Part2/PROJ_WIN/shared/glew/doc/ogl_sm.jpg | Bin 0 -> 1617 bytes Part2/PROJ_WIN/shared/glew/doc/wglew.html | 159 + Part2/PROJ_WIN/shared/glew/include/GL/glew.h | 15304 ++++++++++++++++ Part2/PROJ_WIN/shared/glew/include/GL/glxew.h | 1537 ++ Part2/PROJ_WIN/shared/glew/include/GL/wglew.h | 1287 ++ Part2/PROJ_WIN/shared/glew/lib/glew32.lib | Bin 0 -> 487006 bytes Part2/PROJ_WIN/shared/glew/lib/glew32s.lib | Bin 0 -> 1223886 bytes Part2/PROJ_WIN/src/kernel.cu.deps | 483 + Part2/resources/000.png | Bin 0 -> 43241 bytes Part2/resources/001.png | Bin 0 -> 66064 bytes Part2/resources/002.png | Bin 0 -> 81025 bytes Part2/resources/003.png | Bin 0 -> 87131 bytes Part2/resources/004.png | Bin 0 -> 126700 bytes Part2/src/constraints.h | 53 + Part2/src/cudaMat4.h | 25 + Part2/src/glm/CMakeLists.txt | 43 + Part2/src/glm/core/_detail.hpp | 482 + Part2/src/glm/core/_fixes.hpp | 55 + Part2/src/glm/core/_swizzle.hpp | 861 + Part2/src/glm/core/_swizzle_func.hpp | 787 + Part2/src/glm/core/_vectorize.hpp | 159 + Part2/src/glm/core/dummy.cpp | 40 + Part2/src/glm/core/func_common.hpp | 430 + Part2/src/glm/core/func_common.inl | 1226 ++ Part2/src/glm/core/func_exponential.hpp | 123 + Part2/src/glm/core/func_exponential.inl | 156 + Part2/src/glm/core/func_geometric.hpp | 138 + Part2/src/glm/core/func_geometric.inl | 321 + Part2/src/glm/core/func_integer.hpp | 201 + Part2/src/glm/core/func_integer.inl | 648 + Part2/src/glm/core/func_matrix.hpp | 150 + Part2/src/glm/core/func_matrix.inl | 582 + Part2/src/glm/core/func_noise.hpp | 87 + Part2/src/glm/core/func_noise.inl | 364 + Part2/src/glm/core/func_packing.hpp | 193 + Part2/src/glm/core/func_packing.inl | 208 + Part2/src/glm/core/func_trigonometric.hpp | 203 + Part2/src/glm/core/func_trigonometric.inl | 244 + Part2/src/glm/core/func_vector_relational.hpp | 138 + Part2/src/glm/core/func_vector_relational.inl | 178 + Part2/src/glm/core/hint.hpp | 40 + Part2/src/glm/core/intrinsic_common.hpp | 89 + Part2/src/glm/core/intrinsic_common.inl | 313 + Part2/src/glm/core/intrinsic_exponential.hpp | 79 + Part2/src/glm/core/intrinsic_exponential.inl | 27 + Part2/src/glm/core/intrinsic_geometric.hpp | 76 + Part2/src/glm/core/intrinsic_geometric.inl | 146 + Part2/src/glm/core/intrinsic_matrix.hpp | 69 + Part2/src/glm/core/intrinsic_matrix.inl | 1070 ++ .../src/glm/core/intrinsic_trigonometric.hpp | 48 + .../src/glm/core/intrinsic_trigonometric.inl | 27 + .../glm/core/intrinsic_vector_relational.hpp | 48 + .../glm/core/intrinsic_vector_relational.inl | 366 + Part2/src/glm/core/setup.hpp | 694 + Part2/src/glm/core/type.hpp | 341 + Part2/src/glm/core/type_float.hpp | 84 + Part2/src/glm/core/type_gentype.hpp | 169 + Part2/src/glm/core/type_gentype.inl | 366 + Part2/src/glm/core/type_half.hpp | 118 + Part2/src/glm/core/type_half.inl | 421 + Part2/src/glm/core/type_int.hpp | 142 + Part2/src/glm/core/type_mat.hpp | 41 + Part2/src/glm/core/type_mat.inl | 27 + Part2/src/glm/core/type_mat2x2.hpp | 314 + Part2/src/glm/core/type_mat2x2.inl | 688 + Part2/src/glm/core/type_mat2x3.hpp | 258 + Part2/src/glm/core/type_mat2x3.inl | 633 + Part2/src/glm/core/type_mat2x4.hpp | 260 + Part2/src/glm/core/type_mat2x4.inl | 652 + Part2/src/glm/core/type_mat3x2.hpp | 265 + Part2/src/glm/core/type_mat3x2.inl | 670 + Part2/src/glm/core/type_mat3x3.hpp | 318 + Part2/src/glm/core/type_mat3x3.inl | 800 + Part2/src/glm/core/type_mat3x4.hpp | 266 + Part2/src/glm/core/type_mat3x4.inl | 700 + Part2/src/glm/core/type_mat4x2.hpp | 270 + Part2/src/glm/core/type_mat4x2.inl | 716 + Part2/src/glm/core/type_mat4x3.hpp | 268 + Part2/src/glm/core/type_mat4x3.inl | 725 + Part2/src/glm/core/type_mat4x4.hpp | 320 + Part2/src/glm/core/type_mat4x4.inl | 893 + Part2/src/glm/core/type_size.hpp | 43 + Part2/src/glm/core/type_vec.hpp | 41 + Part2/src/glm/core/type_vec.inl | 27 + Part2/src/glm/core/type_vec1.hpp | 212 + Part2/src/glm/core/type_vec1.inl | 928 + Part2/src/glm/core/type_vec2.hpp | 317 + Part2/src/glm/core/type_vec2.inl | 998 + Part2/src/glm/core/type_vec3.hpp | 342 + Part2/src/glm/core/type_vec3.inl | 1122 ++ Part2/src/glm/core/type_vec4.hpp | 399 + Part2/src/glm/core/type_vec4.inl | 1348 ++ Part2/src/glm/ext.hpp | 145 + Part2/src/glm/glm.hpp | 129 + Part2/src/glm/gtc/constants.hpp | 186 + Part2/src/glm/gtc/constants.inl | 186 + Part2/src/glm/gtc/epsilon.hpp | 94 + Part2/src/glm/gtc/epsilon.inl | 286 + Part2/src/glm/gtc/half_float.hpp | 454 + Part2/src/glm/gtc/half_float.inl | 1050 ++ Part2/src/glm/gtc/matrix_access.hpp | 87 + Part2/src/glm/gtc/matrix_access.inl | 80 + Part2/src/glm/gtc/matrix_integer.hpp | 506 + Part2/src/glm/gtc/matrix_inverse.hpp | 74 + Part2/src/glm/gtc/matrix_inverse.inl | 159 + Part2/src/glm/gtc/matrix_transform.hpp | 291 + Part2/src/glm/gtc/matrix_transform.inl | 434 + Part2/src/glm/gtc/noise.hpp | 80 + Part2/src/glm/gtc/noise.inl | 867 + Part2/src/glm/gtc/quaternion.hpp | 381 + Part2/src/glm/gtc/quaternion.inl | 792 + Part2/src/glm/gtc/random.hpp | 114 + Part2/src/glm/gtc/random.inl | 170 + Part2/src/glm/gtc/reciprocal.hpp | 133 + Part2/src/glm/gtc/reciprocal.inl | 199 + Part2/src/glm/gtc/swizzle.hpp | 375 + Part2/src/glm/gtc/swizzle.inl | 116 + Part2/src/glm/gtc/type_precision.hpp | 669 + Part2/src/glm/gtc/type_precision.inl | 32 + Part2/src/glm/gtc/type_ptr.hpp | 169 + Part2/src/glm/gtc/type_ptr.inl | 473 + Part2/src/glm/gtc/ulp.hpp | 90 + Part2/src/glm/gtc/ulp.inl | 318 + Part2/src/glm/gtx/associated_min_max.hpp | 106 + Part2/src/glm/gtx/associated_min_max.inl | 912 + Part2/src/glm/gtx/bit.hpp | 140 + Part2/src/glm/gtx/bit.inl | 600 + Part2/src/glm/gtx/closest_point.hpp | 66 + Part2/src/glm/gtx/closest_point.inl | 36 + Part2/src/glm/gtx/color_cast.hpp | 124 + Part2/src/glm/gtx/color_cast.inl | 733 + Part2/src/glm/gtx/color_space.hpp | 96 + Part2/src/glm/gtx/color_space.inl | 149 + Part2/src/glm/gtx/color_space_YCoCg.hpp | 84 + Part2/src/glm/gtx/color_space_YCoCg.inl | 64 + Part2/src/glm/gtx/compatibility.hpp | 176 + Part2/src/glm/gtx/compatibility.inl | 60 + Part2/src/glm/gtx/component_wise.hpp | 82 + Part2/src/glm/gtx/component_wise.inl | 47 + Part2/src/glm/gtx/constants.hpp | 33 + Part2/src/glm/gtx/epsilon.hpp | 29 + Part2/src/glm/gtx/euler_angles.hpp | 156 + Part2/src/glm/gtx/euler_angles.inl | 244 + Part2/src/glm/gtx/extend.hpp | 66 + Part2/src/glm/gtx/extend.inl | 55 + Part2/src/glm/gtx/extented_min_max.hpp | 194 + Part2/src/glm/gtx/extented_min_max.inl | 178 + Part2/src/glm/gtx/fast_exponential.hpp | 99 + Part2/src/glm/gtx/fast_exponential.inl | 148 + Part2/src/glm/gtx/fast_square_root.hpp | 85 + Part2/src/glm/gtx/fast_square_root.inl | 136 + Part2/src/glm/gtx/fast_trigonometry.hpp | 100 + Part2/src/glm/gtx/fast_trigonometry.inl | 75 + Part2/src/glm/gtx/gradient_paint.hpp | 76 + Part2/src/glm/gtx/gradient_paint.inl | 43 + Part2/src/glm/gtx/handed_coordinate_space.hpp | 74 + Part2/src/glm/gtx/handed_coordinate_space.inl | 33 + Part2/src/glm/gtx/inertia.hpp | 115 + Part2/src/glm/gtx/inertia.inl | 114 + Part2/src/glm/gtx/int_10_10_10_2.hpp | 64 + Part2/src/glm/gtx/int_10_10_10_2.inl | 19 + Part2/src/glm/gtx/integer.hpp | 104 + Part2/src/glm/gtx/integer.inl | 203 + Part2/src/glm/gtx/intersect.hpp | 102 + Part2/src/glm/gtx/intersect.inl | 196 + Part2/src/glm/gtx/log_base.hpp | 65 + Part2/src/glm/gtx/log_base.inl | 24 + Part2/src/glm/gtx/matrix_cross_product.hpp | 71 + Part2/src/glm/gtx/matrix_cross_product.inl | 44 + Part2/src/glm/gtx/matrix_interpolation.hpp | 88 + Part2/src/glm/gtx/matrix_interpolation.inl | 131 + Part2/src/glm/gtx/matrix_major_storage.hpp | 143 + Part2/src/glm/gtx/matrix_major_storage.inl | 173 + Part2/src/glm/gtx/matrix_operation.hpp | 112 + Part2/src/glm/gtx/matrix_operation.inl | 124 + Part2/src/glm/gtx/matrix_query.hpp | 117 + Part2/src/glm/gtx/matrix_query.inl | 154 + Part2/src/glm/gtx/mixed_product.hpp | 65 + Part2/src/glm/gtx/mixed_product.inl | 22 + Part2/src/glm/gtx/multiple.hpp | 73 + Part2/src/glm/gtx/multiple.inl | 128 + Part2/src/glm/gtx/noise.hpp | 29 + Part2/src/glm/gtx/norm.hpp | 133 + Part2/src/glm/gtx/norm.inl | 156 + Part2/src/glm/gtx/normal.hpp | 67 + Part2/src/glm/gtx/normal.inl | 22 + Part2/src/glm/gtx/normalize_dot.hpp | 76 + Part2/src/glm/gtx/normalize_dot.inl | 115 + Part2/src/glm/gtx/number_precision.hpp | 88 + Part2/src/glm/gtx/number_precision.inl | 13 + Part2/src/glm/gtx/ocl_type.hpp | 132 + Part2/src/glm/gtx/ocl_type.inl | 27 + Part2/src/glm/gtx/optimum_pow.hpp | 91 + Part2/src/glm/gtx/optimum_pow.inl | 58 + Part2/src/glm/gtx/orthonormalize.hpp | 72 + Part2/src/glm/gtx/orthonormalize.inl | 43 + Part2/src/glm/gtx/perpendicular.hpp | 67 + Part2/src/glm/gtx/perpendicular.inl | 21 + Part2/src/glm/gtx/polar_coordinates.hpp | 72 + Part2/src/glm/gtx/polar_coordinates.inl | 55 + Part2/src/glm/gtx/projection.hpp | 65 + Part2/src/glm/gtx/projection.inl | 21 + Part2/src/glm/gtx/quaternion.hpp | 195 + Part2/src/glm/gtx/quaternion.inl | 208 + Part2/src/glm/gtx/random.hpp | 29 + Part2/src/glm/gtx/raw_data.hpp | 75 + Part2/src/glm/gtx/raw_data.inl | 11 + Part2/src/glm/gtx/reciprocal.hpp | 26 + Part2/src/glm/gtx/rotate_vector.hpp | 132 + Part2/src/glm/gtx/rotate_vector.inl | 215 + Part2/src/glm/gtx/simd_mat4.hpp | 206 + Part2/src/glm/gtx/simd_mat4.inl | 590 + Part2/src/glm/gtx/simd_vec4.hpp | 517 + Part2/src/glm/gtx/simd_vec4.inl | 727 + Part2/src/glm/gtx/spline.hpp | 90 + Part2/src/glm/gtx/spline.inl | 70 + Part2/src/glm/gtx/std_based_type.hpp | 83 + Part2/src/glm/gtx/std_based_type.inl | 13 + Part2/src/glm/gtx/string_cast.hpp | 70 + Part2/src/glm/gtx/string_cast.inl | 588 + Part2/src/glm/gtx/transform.hpp | 131 + Part2/src/glm/gtx/transform.inl | 90 + Part2/src/glm/gtx/transform2.hpp | 135 + Part2/src/glm/gtx/transform2.inl | 154 + Part2/src/glm/gtx/ulp.hpp | 29 + Part2/src/glm/gtx/unsigned_int.hpp | 26 + Part2/src/glm/gtx/unsigned_int.inl | 13 + Part2/src/glm/gtx/vec1.hpp | 137 + Part2/src/glm/gtx/vec1.inl | 27 + Part2/src/glm/gtx/vector_access.hpp | 85 + Part2/src/glm/gtx/vector_access.inl | 53 + Part2/src/glm/gtx/vector_angle.hpp | 88 + Part2/src/glm/gtx/vector_angle.inl | 57 + Part2/src/glm/gtx/vector_query.hpp | 112 + Part2/src/glm/gtx/vector_query.inl | 164 + Part2/src/glm/gtx/verbose_operator.hpp | 83 + Part2/src/glm/gtx/verbose_operator.inl | 124 + Part2/src/glm/gtx/wrap.hpp | 73 + Part2/src/glm/gtx/wrap.inl | 165 + Part2/src/glm/virtrev/xstream.hpp | 166 + Part2/src/glslUtility.cpp | 189 + Part2/src/glslUtility.h | 21 + Part2/src/kernel.cu | 494 + Part2/src/kernel.h | 24 + Part2/src/main.cpp | 263 + Part2/src/main.h | 106 + Part2/src/utilities.cpp | 154 + Part2/src/utilities.h | 49 + README.md | 255 +- flocking_backup.txt | 38 + 300 files changed, 77498 insertions(+), 575 deletions(-) create mode 100644 Images/Cloth1.PNG create mode 100644 Images/Cloth2.PNG create mode 100644 Images/NBody.PNG create mode 100644 Part2/PROJ_NIX/makefile create mode 100644 Part2/PROJ_NIX/shaders/heightFS.glsl create mode 100644 Part2/PROJ_NIX/shaders/heightVS.glsl create mode 100644 Part2/PROJ_NIX/shaders/planetFS.glsl create mode 100644 Part2/PROJ_NIX/shaders/planetGS.glsl create mode 100644 Part2/PROJ_NIX/shaders/planetVS.glsl create mode 100644 Part2/PROJ_WIN/Project3.sln create mode 100644 Part2/PROJ_WIN/Project3/Project3.vcxproj create mode 100644 Part2/PROJ_WIN/Project3/Project3.vcxproj.filters create mode 100644 Part2/PROJ_WIN/Project3/shaders/planeFS.glsl create mode 100644 Part2/PROJ_WIN/Project3/shaders/planeVS.glsl create mode 100644 Part2/PROJ_WIN/shared/freeglut/Copying.txt create mode 100644 Part2/PROJ_WIN/shared/freeglut/Readme.txt create mode 100644 Part2/PROJ_WIN/shared/freeglut/freeglut.dll create mode 100644 Part2/PROJ_WIN/shared/freeglut/include/GL/freeglut.h create mode 100644 Part2/PROJ_WIN/shared/freeglut/include/GL/freeglut_ext.h create mode 100644 Part2/PROJ_WIN/shared/freeglut/include/GL/freeglut_std.h create mode 100644 Part2/PROJ_WIN/shared/freeglut/include/GL/glut.h create mode 100644 Part2/PROJ_WIN/shared/freeglut/lib/freeglut.lib create mode 100644 Part2/PROJ_WIN/shared/freeglut/lib/glut32.lib create mode 100644 Part2/PROJ_WIN/shared/glew/LICENSE.txt create mode 100644 Part2/PROJ_WIN/shared/glew/README.txt create mode 100644 Part2/PROJ_WIN/shared/glew/TODO.txt create mode 100644 Part2/PROJ_WIN/shared/glew/doc/advanced.html create mode 100644 Part2/PROJ_WIN/shared/glew/doc/basic.html create mode 100644 Part2/PROJ_WIN/shared/glew/doc/credits.html create mode 100644 Part2/PROJ_WIN/shared/glew/doc/glew.css create mode 100644 Part2/PROJ_WIN/shared/glew/doc/glew.html create mode 100644 Part2/PROJ_WIN/shared/glew/doc/glew.png create mode 100644 Part2/PROJ_WIN/shared/glew/doc/glew.txt create mode 100644 Part2/PROJ_WIN/shared/glew/doc/glxew.html create mode 100644 Part2/PROJ_WIN/shared/glew/doc/gpl.txt create mode 100644 Part2/PROJ_WIN/shared/glew/doc/index.html create mode 100644 Part2/PROJ_WIN/shared/glew/doc/install.html create mode 100644 Part2/PROJ_WIN/shared/glew/doc/khronos.txt create mode 100644 Part2/PROJ_WIN/shared/glew/doc/log.html create mode 100644 Part2/PROJ_WIN/shared/glew/doc/mesa.txt create mode 100644 Part2/PROJ_WIN/shared/glew/doc/new.png create mode 100644 Part2/PROJ_WIN/shared/glew/doc/ogl_sm.jpg create mode 100644 Part2/PROJ_WIN/shared/glew/doc/wglew.html create mode 100644 Part2/PROJ_WIN/shared/glew/include/GL/glew.h create mode 100644 Part2/PROJ_WIN/shared/glew/include/GL/glxew.h create mode 100644 Part2/PROJ_WIN/shared/glew/include/GL/wglew.h create mode 100644 Part2/PROJ_WIN/shared/glew/lib/glew32.lib create mode 100644 Part2/PROJ_WIN/shared/glew/lib/glew32s.lib create mode 100644 Part2/PROJ_WIN/src/kernel.cu.deps create mode 100644 Part2/resources/000.png create mode 100644 Part2/resources/001.png create mode 100644 Part2/resources/002.png create mode 100644 Part2/resources/003.png create mode 100644 Part2/resources/004.png create mode 100644 Part2/src/constraints.h create mode 100644 Part2/src/cudaMat4.h create mode 100644 Part2/src/glm/CMakeLists.txt create mode 100644 Part2/src/glm/core/_detail.hpp create mode 100644 Part2/src/glm/core/_fixes.hpp create mode 100644 Part2/src/glm/core/_swizzle.hpp create mode 100644 Part2/src/glm/core/_swizzle_func.hpp create mode 100644 Part2/src/glm/core/_vectorize.hpp create mode 100644 Part2/src/glm/core/dummy.cpp create mode 100644 Part2/src/glm/core/func_common.hpp create mode 100644 Part2/src/glm/core/func_common.inl create mode 100644 Part2/src/glm/core/func_exponential.hpp create mode 100644 Part2/src/glm/core/func_exponential.inl create mode 100644 Part2/src/glm/core/func_geometric.hpp create mode 100644 Part2/src/glm/core/func_geometric.inl create mode 100644 Part2/src/glm/core/func_integer.hpp create mode 100644 Part2/src/glm/core/func_integer.inl create mode 100644 Part2/src/glm/core/func_matrix.hpp create mode 100644 Part2/src/glm/core/func_matrix.inl create mode 100644 Part2/src/glm/core/func_noise.hpp create mode 100644 Part2/src/glm/core/func_noise.inl create mode 100644 Part2/src/glm/core/func_packing.hpp create mode 100644 Part2/src/glm/core/func_packing.inl create mode 100644 Part2/src/glm/core/func_trigonometric.hpp create mode 100644 Part2/src/glm/core/func_trigonometric.inl create mode 100644 Part2/src/glm/core/func_vector_relational.hpp create mode 100644 Part2/src/glm/core/func_vector_relational.inl create mode 100644 Part2/src/glm/core/hint.hpp create mode 100644 Part2/src/glm/core/intrinsic_common.hpp create mode 100644 Part2/src/glm/core/intrinsic_common.inl create mode 100644 Part2/src/glm/core/intrinsic_exponential.hpp create mode 100644 Part2/src/glm/core/intrinsic_exponential.inl create mode 100644 Part2/src/glm/core/intrinsic_geometric.hpp create mode 100644 Part2/src/glm/core/intrinsic_geometric.inl create mode 100644 Part2/src/glm/core/intrinsic_matrix.hpp create mode 100644 Part2/src/glm/core/intrinsic_matrix.inl create mode 100644 Part2/src/glm/core/intrinsic_trigonometric.hpp create mode 100644 Part2/src/glm/core/intrinsic_trigonometric.inl create mode 100644 Part2/src/glm/core/intrinsic_vector_relational.hpp create mode 100644 Part2/src/glm/core/intrinsic_vector_relational.inl create mode 100644 Part2/src/glm/core/setup.hpp create mode 100644 Part2/src/glm/core/type.hpp create mode 100644 Part2/src/glm/core/type_float.hpp create mode 100644 Part2/src/glm/core/type_gentype.hpp create mode 100644 Part2/src/glm/core/type_gentype.inl create mode 100644 Part2/src/glm/core/type_half.hpp create mode 100644 Part2/src/glm/core/type_half.inl create mode 100644 Part2/src/glm/core/type_int.hpp create mode 100644 Part2/src/glm/core/type_mat.hpp create mode 100644 Part2/src/glm/core/type_mat.inl create mode 100644 Part2/src/glm/core/type_mat2x2.hpp create mode 100644 Part2/src/glm/core/type_mat2x2.inl create mode 100644 Part2/src/glm/core/type_mat2x3.hpp create mode 100644 Part2/src/glm/core/type_mat2x3.inl create mode 100644 Part2/src/glm/core/type_mat2x4.hpp create mode 100644 Part2/src/glm/core/type_mat2x4.inl create mode 100644 Part2/src/glm/core/type_mat3x2.hpp create mode 100644 Part2/src/glm/core/type_mat3x2.inl create mode 100644 Part2/src/glm/core/type_mat3x3.hpp create mode 100644 Part2/src/glm/core/type_mat3x3.inl create mode 100644 Part2/src/glm/core/type_mat3x4.hpp create mode 100644 Part2/src/glm/core/type_mat3x4.inl create mode 100644 Part2/src/glm/core/type_mat4x2.hpp create mode 100644 Part2/src/glm/core/type_mat4x2.inl create mode 100644 Part2/src/glm/core/type_mat4x3.hpp create mode 100644 Part2/src/glm/core/type_mat4x3.inl create mode 100644 Part2/src/glm/core/type_mat4x4.hpp create mode 100644 Part2/src/glm/core/type_mat4x4.inl create mode 100644 Part2/src/glm/core/type_size.hpp create mode 100644 Part2/src/glm/core/type_vec.hpp create mode 100644 Part2/src/glm/core/type_vec.inl create mode 100644 Part2/src/glm/core/type_vec1.hpp create mode 100644 Part2/src/glm/core/type_vec1.inl create mode 100644 Part2/src/glm/core/type_vec2.hpp create mode 100644 Part2/src/glm/core/type_vec2.inl create mode 100644 Part2/src/glm/core/type_vec3.hpp create mode 100644 Part2/src/glm/core/type_vec3.inl create mode 100644 Part2/src/glm/core/type_vec4.hpp create mode 100644 Part2/src/glm/core/type_vec4.inl create mode 100644 Part2/src/glm/ext.hpp create mode 100644 Part2/src/glm/glm.hpp create mode 100644 Part2/src/glm/gtc/constants.hpp create mode 100644 Part2/src/glm/gtc/constants.inl create mode 100644 Part2/src/glm/gtc/epsilon.hpp create mode 100644 Part2/src/glm/gtc/epsilon.inl create mode 100644 Part2/src/glm/gtc/half_float.hpp create mode 100644 Part2/src/glm/gtc/half_float.inl create mode 100644 Part2/src/glm/gtc/matrix_access.hpp create mode 100644 Part2/src/glm/gtc/matrix_access.inl create mode 100644 Part2/src/glm/gtc/matrix_integer.hpp create mode 100644 Part2/src/glm/gtc/matrix_inverse.hpp create mode 100644 Part2/src/glm/gtc/matrix_inverse.inl create mode 100644 Part2/src/glm/gtc/matrix_transform.hpp create mode 100644 Part2/src/glm/gtc/matrix_transform.inl create mode 100644 Part2/src/glm/gtc/noise.hpp create mode 100644 Part2/src/glm/gtc/noise.inl create mode 100644 Part2/src/glm/gtc/quaternion.hpp create mode 100644 Part2/src/glm/gtc/quaternion.inl create mode 100644 Part2/src/glm/gtc/random.hpp create mode 100644 Part2/src/glm/gtc/random.inl create mode 100644 Part2/src/glm/gtc/reciprocal.hpp create mode 100644 Part2/src/glm/gtc/reciprocal.inl create mode 100644 Part2/src/glm/gtc/swizzle.hpp create mode 100644 Part2/src/glm/gtc/swizzle.inl create mode 100644 Part2/src/glm/gtc/type_precision.hpp create mode 100644 Part2/src/glm/gtc/type_precision.inl create mode 100644 Part2/src/glm/gtc/type_ptr.hpp create mode 100644 Part2/src/glm/gtc/type_ptr.inl create mode 100644 Part2/src/glm/gtc/ulp.hpp create mode 100644 Part2/src/glm/gtc/ulp.inl create mode 100644 Part2/src/glm/gtx/associated_min_max.hpp create mode 100644 Part2/src/glm/gtx/associated_min_max.inl create mode 100644 Part2/src/glm/gtx/bit.hpp create mode 100644 Part2/src/glm/gtx/bit.inl create mode 100644 Part2/src/glm/gtx/closest_point.hpp create mode 100644 Part2/src/glm/gtx/closest_point.inl create mode 100644 Part2/src/glm/gtx/color_cast.hpp create mode 100644 Part2/src/glm/gtx/color_cast.inl create mode 100644 Part2/src/glm/gtx/color_space.hpp create mode 100644 Part2/src/glm/gtx/color_space.inl create mode 100644 Part2/src/glm/gtx/color_space_YCoCg.hpp create mode 100644 Part2/src/glm/gtx/color_space_YCoCg.inl create mode 100644 Part2/src/glm/gtx/compatibility.hpp create mode 100644 Part2/src/glm/gtx/compatibility.inl create mode 100644 Part2/src/glm/gtx/component_wise.hpp create mode 100644 Part2/src/glm/gtx/component_wise.inl create mode 100644 Part2/src/glm/gtx/constants.hpp create mode 100644 Part2/src/glm/gtx/epsilon.hpp create mode 100644 Part2/src/glm/gtx/euler_angles.hpp create mode 100644 Part2/src/glm/gtx/euler_angles.inl create mode 100644 Part2/src/glm/gtx/extend.hpp create mode 100644 Part2/src/glm/gtx/extend.inl create mode 100644 Part2/src/glm/gtx/extented_min_max.hpp create mode 100644 Part2/src/glm/gtx/extented_min_max.inl create mode 100644 Part2/src/glm/gtx/fast_exponential.hpp create mode 100644 Part2/src/glm/gtx/fast_exponential.inl create mode 100644 Part2/src/glm/gtx/fast_square_root.hpp create mode 100644 Part2/src/glm/gtx/fast_square_root.inl create mode 100644 Part2/src/glm/gtx/fast_trigonometry.hpp create mode 100644 Part2/src/glm/gtx/fast_trigonometry.inl create mode 100644 Part2/src/glm/gtx/gradient_paint.hpp create mode 100644 Part2/src/glm/gtx/gradient_paint.inl create mode 100644 Part2/src/glm/gtx/handed_coordinate_space.hpp create mode 100644 Part2/src/glm/gtx/handed_coordinate_space.inl create mode 100644 Part2/src/glm/gtx/inertia.hpp create mode 100644 Part2/src/glm/gtx/inertia.inl create mode 100644 Part2/src/glm/gtx/int_10_10_10_2.hpp create mode 100644 Part2/src/glm/gtx/int_10_10_10_2.inl create mode 100644 Part2/src/glm/gtx/integer.hpp create mode 100644 Part2/src/glm/gtx/integer.inl create mode 100644 Part2/src/glm/gtx/intersect.hpp create mode 100644 Part2/src/glm/gtx/intersect.inl create mode 100644 Part2/src/glm/gtx/log_base.hpp create mode 100644 Part2/src/glm/gtx/log_base.inl create mode 100644 Part2/src/glm/gtx/matrix_cross_product.hpp create mode 100644 Part2/src/glm/gtx/matrix_cross_product.inl create mode 100644 Part2/src/glm/gtx/matrix_interpolation.hpp create mode 100644 Part2/src/glm/gtx/matrix_interpolation.inl create mode 100644 Part2/src/glm/gtx/matrix_major_storage.hpp create mode 100644 Part2/src/glm/gtx/matrix_major_storage.inl create mode 100644 Part2/src/glm/gtx/matrix_operation.hpp create mode 100644 Part2/src/glm/gtx/matrix_operation.inl create mode 100644 Part2/src/glm/gtx/matrix_query.hpp create mode 100644 Part2/src/glm/gtx/matrix_query.inl create mode 100644 Part2/src/glm/gtx/mixed_product.hpp create mode 100644 Part2/src/glm/gtx/mixed_product.inl create mode 100644 Part2/src/glm/gtx/multiple.hpp create mode 100644 Part2/src/glm/gtx/multiple.inl create mode 100644 Part2/src/glm/gtx/noise.hpp create mode 100644 Part2/src/glm/gtx/norm.hpp create mode 100644 Part2/src/glm/gtx/norm.inl create mode 100644 Part2/src/glm/gtx/normal.hpp create mode 100644 Part2/src/glm/gtx/normal.inl create mode 100644 Part2/src/glm/gtx/normalize_dot.hpp create mode 100644 Part2/src/glm/gtx/normalize_dot.inl create mode 100644 Part2/src/glm/gtx/number_precision.hpp create mode 100644 Part2/src/glm/gtx/number_precision.inl create mode 100644 Part2/src/glm/gtx/ocl_type.hpp create mode 100644 Part2/src/glm/gtx/ocl_type.inl create mode 100644 Part2/src/glm/gtx/optimum_pow.hpp create mode 100644 Part2/src/glm/gtx/optimum_pow.inl create mode 100644 Part2/src/glm/gtx/orthonormalize.hpp create mode 100644 Part2/src/glm/gtx/orthonormalize.inl create mode 100644 Part2/src/glm/gtx/perpendicular.hpp create mode 100644 Part2/src/glm/gtx/perpendicular.inl create mode 100644 Part2/src/glm/gtx/polar_coordinates.hpp create mode 100644 Part2/src/glm/gtx/polar_coordinates.inl create mode 100644 Part2/src/glm/gtx/projection.hpp create mode 100644 Part2/src/glm/gtx/projection.inl create mode 100644 Part2/src/glm/gtx/quaternion.hpp create mode 100644 Part2/src/glm/gtx/quaternion.inl create mode 100644 Part2/src/glm/gtx/random.hpp create mode 100644 Part2/src/glm/gtx/raw_data.hpp create mode 100644 Part2/src/glm/gtx/raw_data.inl create mode 100644 Part2/src/glm/gtx/reciprocal.hpp create mode 100644 Part2/src/glm/gtx/rotate_vector.hpp create mode 100644 Part2/src/glm/gtx/rotate_vector.inl create mode 100644 Part2/src/glm/gtx/simd_mat4.hpp create mode 100644 Part2/src/glm/gtx/simd_mat4.inl create mode 100644 Part2/src/glm/gtx/simd_vec4.hpp create mode 100644 Part2/src/glm/gtx/simd_vec4.inl create mode 100644 Part2/src/glm/gtx/spline.hpp create mode 100644 Part2/src/glm/gtx/spline.inl create mode 100644 Part2/src/glm/gtx/std_based_type.hpp create mode 100644 Part2/src/glm/gtx/std_based_type.inl create mode 100644 Part2/src/glm/gtx/string_cast.hpp create mode 100644 Part2/src/glm/gtx/string_cast.inl create mode 100644 Part2/src/glm/gtx/transform.hpp create mode 100644 Part2/src/glm/gtx/transform.inl create mode 100644 Part2/src/glm/gtx/transform2.hpp create mode 100644 Part2/src/glm/gtx/transform2.inl create mode 100644 Part2/src/glm/gtx/ulp.hpp create mode 100644 Part2/src/glm/gtx/unsigned_int.hpp create mode 100644 Part2/src/glm/gtx/unsigned_int.inl create mode 100644 Part2/src/glm/gtx/vec1.hpp create mode 100644 Part2/src/glm/gtx/vec1.inl create mode 100644 Part2/src/glm/gtx/vector_access.hpp create mode 100644 Part2/src/glm/gtx/vector_access.inl create mode 100644 Part2/src/glm/gtx/vector_angle.hpp create mode 100644 Part2/src/glm/gtx/vector_angle.inl create mode 100644 Part2/src/glm/gtx/vector_query.hpp create mode 100644 Part2/src/glm/gtx/vector_query.inl create mode 100644 Part2/src/glm/gtx/verbose_operator.hpp create mode 100644 Part2/src/glm/gtx/verbose_operator.inl create mode 100644 Part2/src/glm/gtx/wrap.hpp create mode 100644 Part2/src/glm/gtx/wrap.inl create mode 100644 Part2/src/glm/virtrev/xstream.hpp create mode 100644 Part2/src/glslUtility.cpp create mode 100644 Part2/src/glslUtility.h create mode 100644 Part2/src/kernel.cu create mode 100644 Part2/src/kernel.h create mode 100644 Part2/src/main.cpp create mode 100644 Part2/src/main.h create mode 100644 Part2/src/utilities.cpp create mode 100644 Part2/src/utilities.h create mode 100644 flocking_backup.txt diff --git a/Images/Cloth1.PNG b/Images/Cloth1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..670f32ec24660d3dc97e768e0c377b809b758d52 GIT binary patch literal 26231 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

Z+!0v~orc1E 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 a)hm+Nr+9; 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

;1 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%0A_J+)Ea5MnCz9 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�I_HcLJ#}<7_clbe1mLQQf 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�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

9I`>D_GhLeeCCU9@ty6U_L_ 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 z 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

QbI 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 i|Cd>Application true MultiByte - v100 + v110 Application @@ -71,12 +71,18 @@ MaxSpeed true true + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:/ProgramData/NVIDIA Corporation/CUDA Samples/v5.5/common/inc;../shared/glew/includes;../shared/freeglut/includes true true true + ../shared/glew/lib;../shared/freeglut/lib;%(AdditionalLibraryDirectories) + cudart.lib; glew32.lib;glu32.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:/ProgramData/NVIDIA Corporation/CUDA Samples/v5.5/common/inc;../shared/glew/includes;../shared/freeglut/includes + diff --git a/Part1/PROJ_WIN/Project3/shaders/heightFS.glsl b/Part1/PROJ_WIN/Project3/shaders/heightFS.glsl index e36d53e..baca400 100644 --- a/Part1/PROJ_WIN/Project3/shaders/heightFS.glsl +++ b/Part1/PROJ_WIN/Project3/shaders/heightFS.glsl @@ -1,4 +1,13 @@ +varying vec2 v_Texcoords; +varying float f_height; + void main(void) { - gl_FragColor = vec4(0.05,0.15,0.3,1.0); -} + float shade = (1.0-2.0*sqrt(f_height)); + + float alpha = float(mod(v_Texcoords.x+0.025, 0.05) > 0.046 || + mod(v_Texcoords.y+0.025, 0.05) > 0.046); + vec4 color = mix(vec4(0.05,0.15,0.3,1.0), vec4(0.05, 0.3, 0.4, 1.0), alpha); + + gl_FragColor = shade*color; +} \ No newline at end of file diff --git a/Part1/PROJ_WIN/Project3/shaders/heightVS.glsl b/Part1/PROJ_WIN/Project3/shaders/heightVS.glsl index eda1b93..db82f90 100644 --- a/Part1/PROJ_WIN/Project3/shaders/heightVS.glsl +++ b/Part1/PROJ_WIN/Project3/shaders/heightVS.glsl @@ -1,9 +1,18 @@ uniform mat4 u_projMatrix; +uniform sampler2D u_height; + attribute vec4 Position; +attribute vec2 Texcoords; + +varying vec2 v_Texcoords; +varying float f_height; void main(void) { - vec4 pos = u_projMatrix * Position; - pos.z += 0.01; - gl_Position = pos; -} + v_Texcoords = Texcoords; + vec4 pos = Position; + f_height = texture2D(u_height, Texcoords).w; + pos.z = -0.01-clamp(f_height,0.0,2.0); + pos = u_projMatrix * pos; + gl_Position = pos; +} \ No newline at end of file diff --git a/Part1/PROJ_WIN/Project3/shaders/planetFS.glsl b/Part1/PROJ_WIN/Project3/shaders/planetFS.glsl index e2c1350..33c9ccb 100644 --- a/Part1/PROJ_WIN/Project3/shaders/planetFS.glsl +++ b/Part1/PROJ_WIN/Project3/shaders/planetFS.glsl @@ -1,4 +1,28 @@ -void main(void) +#version 330 + +in vec3 WorldCoord; +in vec3 ToCam; +in vec3 Up; +in vec3 Right; +in vec2 TexCoord; +out vec4 FragColor; + +void main() { - gl_FragColor = vec4(1.0); -} + vec2 coord = 2.01 * (TexCoord - vec2(0.5)); + float r = length(coord); + if (r >= 1.0) { discard; } + + float dist = length(WorldCoord); + if(dist <= 0.01) + { + FragColor = vec4(1.0); + return; + } + + vec3 N = Right*-coord.x + Up*coord.y + ToCam*sqrt(1-r*r); + vec3 L = normalize(-WorldCoord); + float light = 0.1 + 0.9*clamp(dot(N,L),0.0, 1.0)*exp(-dist); + vec3 color = vec3(0.4, 0.1, 0.6); + FragColor = vec4(color*light,1.0); +} \ No newline at end of file diff --git a/Part1/PROJ_WIN/Project3/shaders/planetGS.glsl b/Part1/PROJ_WIN/Project3/shaders/planetGS.glsl index 88027d3..03ff2ae 100644 --- a/Part1/PROJ_WIN/Project3/shaders/planetGS.glsl +++ b/Part1/PROJ_WIN/Project3/shaders/planetGS.glsl @@ -1,15 +1,49 @@ #version 330 uniform mat4 u_projMatrix; +uniform vec3 u_cameraPos; layout (points) in; -layout (points) out; -layout (max_vertices = 1) out; +layout (triangle_strip) out; +layout (max_vertices = 4) out; + +out vec3 WorldCoord; +out vec3 ToCam; +out vec3 Up; +out vec3 Right; +out vec2 TexCoord; + +const float scale = 0.03; void main() { vec3 Position = gl_in[0].gl_Position.xyz; - gl_Position = u_projMatrix * vec4(Position, 1.0); + WorldCoord = Position; + + ToCam = normalize(u_cameraPos - Position); + Up = vec3(0.0, 0.0, 1.0); + Right = cross(ToCam, Up); + Up = cross(Right, ToCam); + + vec3 Pos = Position + scale*Right - scale*Up; + gl_Position = u_projMatrix * vec4(Pos, 1.0); + TexCoord = vec2(0.0, 0.0); + EmitVertex(); + + Pos = Position + scale*Right + scale*Up; + gl_Position = u_projMatrix * vec4(Pos, 1.0); + TexCoord = vec2(0.0, 1.0); EmitVertex(); + + Pos = Position - scale*Right - scale*Up; + gl_Position = u_projMatrix * vec4(Pos, 1.0); + TexCoord = vec2(1.0, 0.0); + EmitVertex(); + + Pos = Position - scale*Right + scale*Up; + gl_Position = u_projMatrix * vec4(Pos, 1.0); + TexCoord = vec2(1.0, 1.0); + EmitVertex(); + EndPrimitive(); -} +} \ No newline at end of file diff --git a/Part1/PROJ_WIN/src/kernel.cu.deps b/Part1/PROJ_WIN/src/kernel.cu.deps index 35aaf16..cb32757 100644 --- a/Part1/PROJ_WIN/src/kernel.cu.deps +++ b/Part1/PROJ_WIN/src/kernel.cu.deps @@ -1,18 +1,18 @@ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_config.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h -c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vadefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\sal.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ConcurrencySal.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\vadefs.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stddef.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\limits.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\stddef.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\driver_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h @@ -68,12 +68,12 @@ c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wtime.inl -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\time.inl +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\string.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\time.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\wtime.inl +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\time.inl c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\math_functions.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h @@ -82,16 +82,19 @@ c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\surface_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\texture_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdlib.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cmath -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\yvals.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\use_ansi.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\math.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdlib +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\math.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\stdlib.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cmath +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\yvals.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xkeycheck.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\use_ansi.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\math.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xtgmath.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xtr1common +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cstdlib c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\cuda_surface_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\builtin_types.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_types.h @@ -239,285 +242,195 @@ c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\host_defines.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_functions.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\device_launch_parameters.h c:\program files\nvidia gpu computing toolkit\cuda\v5.5\include\vector_types.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\swprintf.inl +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\stdio.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\swprintf.inl C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda.h -c:\users\liam\project3-simulation\part1\src\glm/glm.hpp -c:\users\liam\project3-simulation\part1\src\glm\core/_fixes.hpp -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\climits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cfloat -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\float.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtwrn.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\limits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ymath.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wchar.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstddef -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstddef -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio -c:\users\liam\project3-simulation\part1\src\glm\core/setup.hpp -c:\users\liam\project3-simulation\part1\src\glm\./core/_detail.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\setup.hpp -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cassert -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\assert.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -c:\users\liam\project3-simulation\part1\src\glm\./core/_vectorize.hpp -c:\users\liam\project3-simulation\part1\src\glm\./core/type.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_half.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_half.inl -c:\users\liam\project3-simulation\part1\src\glm\core\_detail.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_float.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_half.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\setup.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_int.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\setup.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\_detail.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_gentype.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_size.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec1.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_gentype.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_float.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_int.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_size.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\_swizzle.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\_swizzle_func.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec1.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec2.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_float.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_int.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_size.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\_swizzle.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec2.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec3.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_float.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_int.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_size.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\_swizzle.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec3.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec4.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_float.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_int.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_size.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\_swizzle.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_vec4.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x2.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_gentype.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x2.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x3.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x3.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x4.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat2x4.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x2.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x2.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x3.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x3.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x4.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat3x4.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x2.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x2.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x3.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x3.inl -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x4.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\type_mat4x4.inl -c:\users\liam\project3-simulation\part1\src\glm\./core/func_trigonometric.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\func_trigonometric.inl -c:\users\liam\project3-simulation\part1\src\glm\./core/func_exponential.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\func_exponential.inl -c:\users\liam\project3-simulation\part1\src\glm\./core/func_common.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\_fixes.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\func_common.inl -c:\users\liam\project3-simulation\part1\src\glm\./core/func_packing.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\func_packing.inl -c:\users\liam\project3-simulation\part1\src\glm\./core/func_geometric.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\func_geometric.inl -c:\users\liam\project3-simulation\part1\src\glm\./core/func_matrix.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\func_matrix.inl -c:\users\liam\project3-simulation\part1\src\glm\./core/func_vector_relational.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\_detail.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\func_vector_relational.inl -c:\users\liam\project3-simulation\part1\src\glm\./core/func_integer.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\func_integer.inl -c:\users\liam\project3-simulation\part1\src\glm\./core/func_noise.hpp -c:\users\liam\project3-simulation\part1\src\glm\core\func_noise.inl -c:\users\liam\project3-simulation\part1\src\glm\./core/_swizzle.hpp -c:\users\liam\project3-simulation\part1\src\utilities.h -c:\users\liam\project3-simulation\part1\src\glm/glm.hpp -c:\users\liam\project3-simulation\part1\src\glm\core/_fixes.hpp -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\memory -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmemory -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\new -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\exception -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\eh.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\malloc.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xutility -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\utility -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iosfwd -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdbg.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\type_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xtr1common -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxtype_traits -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\typeinfo -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\setjmp.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\immintrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wmmintrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\nmmintrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\smmintrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\tmmintrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\pmmintrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\emmintrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xmmintrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mm3dnow.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\mmintrin.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfwrap1 -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xxshared -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\istream -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ostream -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ios -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocnum -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\streambuf -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xiosbase -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocale -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdexcept -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xstring -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xlocinfo.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\ctype.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\locale.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xdebug -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cerrno -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\errno.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\crtdefs.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\share.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iterator -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sstream -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\xfunctional -c:\users\liam\project3-simulation\part1\src\cudaMat4.h -c:\users\liam\project3-simulation\part1\src\glm/glm.hpp -c:\users\liam\project3-simulation\part1\src\glm\core/_fixes.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm/glm.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core/_fixes.hpp +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\climits +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cfloat +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\float.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtwrn.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\limits +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ymath.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cwchar +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\wchar.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xstddef +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cstddef +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cstdio +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core/setup.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/_detail.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\setup.hpp +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cassert +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\assert.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/_vectorize.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/type.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_half.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_half.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\_detail.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_float.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_half.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\setup.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_int.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\setup.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\_detail.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_gentype.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_size.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec1.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_gentype.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_float.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_int.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_size.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\_swizzle.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\_swizzle_func.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec1.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec2.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_float.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_int.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_size.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\_swizzle.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec2.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec3.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_float.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_int.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_size.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\_swizzle.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec3.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec4.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_float.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_int.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_size.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\_swizzle.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_vec4.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat2x2.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_gentype.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat2x2.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat2x3.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat2x3.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat2x4.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat2x4.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat3x2.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat3x2.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat3x3.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat3x3.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat3x4.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat3x4.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat4x2.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat4x2.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat4x3.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat4x3.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat4x4.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\type_mat4x4.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/func_trigonometric.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\func_trigonometric.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/func_exponential.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\func_exponential.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/func_common.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\_fixes.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\func_common.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/func_packing.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\func_packing.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/func_geometric.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\func_geometric.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/func_matrix.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\func_matrix.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/func_vector_relational.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\_detail.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\func_vector_relational.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/func_integer.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\func_integer.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/func_noise.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core\func_noise.inl +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\./core/_swizzle.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\utilities.h +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm/glm.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core/_fixes.hpp +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\algorithm +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xmemory +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xmemory0 +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\new +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\exception +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\eh.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\malloc.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xutility +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\utility +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\iosfwd +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cstring +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdbg.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\type_traits +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xrefwrap +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xatomic0.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\intrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\setjmp.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\immintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\wmmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\nmmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\smmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\tmmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\pmmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\emmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xmmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\mmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ammintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\mm3dnow.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\mmintrin.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\istream +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ostream +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ios +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xlocnum +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\streambuf +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xiosbase +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xlocale +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\stdexcept +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xstring +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\typeinfo +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xlocinfo +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xlocinfo.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\ctype.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\locale.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xdebug +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xfacet +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\system_error +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\cerrno +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\errno.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\crtdefs.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\share.h +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\iterator +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\sstream +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\string +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\vector +c:\users\lucy\documents\school\2013fall\cis565\part1\src\cudaMat4.h +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm/glm.hpp +c:\users\lucy\documents\school\2013fall\cis565\part1\src\glm\core/_fixes.hpp C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\cuda_runtime.h -c:\users\liam\project3-simulation\part1\src\kernel.h +c:\users\lucy\documents\school\2013fall\cis565\part1\src\kernel.h C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random.h C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config.h C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/config.h @@ -534,7 +447,7 @@ C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/co C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/config/hd_warning_disable.h C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/detail/cstdint.h C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/discard_block_engine.h -C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream +C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\iostream C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/random_core_access.h C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/detail/discard_block_engine.inl C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include\thrust/random/linear_congruential_engine.h diff --git a/Part1/src/kernel.cu b/Part1/src/kernel.cu index 121db3c..038a144 100644 --- a/Part1/src/kernel.cu +++ b/Part1/src/kernel.cu @@ -118,8 +118,15 @@ glm::vec3 calculateAcceleration(glm::vec4 us, glm::vec4 them) // G*m_us*m_them G*m_them //a = ------------- = -------- // m_us*r^2 r^2 + + glm::vec3 acc(0.0f); + + glm::vec3 dist = glm::vec3(them.x-us.x, them.y-us.y, them.z-us.z); + if (glm::length(dist) > 0.0001) { + acc = ((float)G * them.w / pow(glm::length(dist), 2)) * glm::normalize(dist); + } - return glm::vec3(0.0f); + return acc; } //TODO: Core force calc kernel global memory @@ -127,6 +134,11 @@ __device__ glm::vec3 naiveAcc(int N, glm::vec4 my_pos, glm::vec4 * their_pos) { glm::vec3 acc = calculateAcceleration(my_pos, glm::vec4(0,0,0,starMass)); + + for (int i=0; i>>(1, numObjects, dev_pos, scene_scale, planetMass); checkCUDAErrorWithLine("Kernel failed!"); generateCircularVelArray<<>>(2, numObjects, dev_vel, dev_pos); + //generateRandomVelArray<<>>(2, numObjects, dev_vel, scene_scale); checkCUDAErrorWithLine("Kernel failed!"); cudaThreadSynchronize(); } diff --git a/Part1/src/kernel.h b/Part1/src/kernel.h index 1f8b37a..3b35ace 100644 --- a/Part1/src/kernel.h +++ b/Part1/src/kernel.h @@ -14,7 +14,7 @@ #define blockSize 128 #define checkCUDAErrorWithLine(msg) checkCUDAError(msg, __LINE__) -#define SHARED 0 +#define SHARED 1 void checkCUDAError(const char *msg, int line); void cudaNBodyUpdateWrapper(float dt); diff --git a/Part1/src/main.cpp b/Part1/src/main.cpp index d4c9c5b..d0e5567 100644 --- a/Part1/src/main.cpp +++ b/Part1/src/main.cpp @@ -4,7 +4,7 @@ #include "main.h" -#define N_FOR_VIS 25 +#define N_FOR_VIS 50 #define DT 0.2 #define VISUALIZE 1 //------------------------------- @@ -24,7 +24,7 @@ int main(int argc, char** argv) #if VISUALIZE == 1 initCuda(N_FOR_VIS); #else - initCuda(2*128); + initCuda(128*128); #endif projection = glm::perspective(fovy, float(width)/float(height), zNear, zFar); diff --git a/Part2/PROJ_NIX/makefile b/Part2/PROJ_NIX/makefile new file mode 100644 index 0000000..b162afa --- /dev/null +++ b/Part2/PROJ_NIX/makefile @@ -0,0 +1,33 @@ +#All cuda paths are for v5.0+ + +NVCC = nvcc -m64 +CC = gcc -m64 +CPPC = g++ -m64 + +CUDA_FLAGS = -I/usr/local/cuda/samples/common/inc -I/usr/local/cuda/include + +LFLAGS = -lglut -lGL -lGLEW + +all: 565simulator + +kernel.o: ../src/kernel.cu + $(NVCC) $(CUDA_FLAGS) -c ../src/kernel.cu + +glslUtility.o: ../src/glslUtility.cpp + $(CPPC) $(CUDA_FLAGS) ../src/glslUtility.cpp -c + +utilities.o: ../src/utilities.cpp + $(CPPC) $(CUDA_FLAGS) ../src/utilities.cpp -c + +main.o: ../src/main.cpp ../src/glslUtility.h ../src/kernel.h ../src/utilities.h ../src/main.h + $(CPPC) $(CUDA_FLAGS) ../src/main.cpp -c + +565simulator: main.o kernel.o glslUtility.o utilities.o + $(NVCC) $(LFLAGS) main.o kernel.o glslUtility.o utilities.o -o 565simulator + +clean: + rm *.o + rm 565simulator + +test: 565simulator + ./565simulator diff --git a/Part2/PROJ_NIX/shaders/heightFS.glsl b/Part2/PROJ_NIX/shaders/heightFS.glsl new file mode 100644 index 0000000..e36d53e --- /dev/null +++ b/Part2/PROJ_NIX/shaders/heightFS.glsl @@ -0,0 +1,4 @@ +void main(void) +{ + gl_FragColor = vec4(0.05,0.15,0.3,1.0); +} diff --git a/Part2/PROJ_NIX/shaders/heightVS.glsl b/Part2/PROJ_NIX/shaders/heightVS.glsl new file mode 100644 index 0000000..eda1b93 --- /dev/null +++ b/Part2/PROJ_NIX/shaders/heightVS.glsl @@ -0,0 +1,9 @@ +uniform mat4 u_projMatrix; +attribute vec4 Position; + +void main(void) +{ + vec4 pos = u_projMatrix * Position; + pos.z += 0.01; + gl_Position = pos; +} diff --git a/Part2/PROJ_NIX/shaders/planetFS.glsl b/Part2/PROJ_NIX/shaders/planetFS.glsl new file mode 100644 index 0000000..e2c1350 --- /dev/null +++ b/Part2/PROJ_NIX/shaders/planetFS.glsl @@ -0,0 +1,4 @@ +void main(void) +{ + gl_FragColor = vec4(1.0); +} diff --git a/Part2/PROJ_NIX/shaders/planetGS.glsl b/Part2/PROJ_NIX/shaders/planetGS.glsl new file mode 100644 index 0000000..88027d3 --- /dev/null +++ b/Part2/PROJ_NIX/shaders/planetGS.glsl @@ -0,0 +1,15 @@ +#version 330 + +uniform mat4 u_projMatrix; + +layout (points) in; +layout (points) out; +layout (max_vertices = 1) out; + +void main() +{ + vec3 Position = gl_in[0].gl_Position.xyz; + gl_Position = u_projMatrix * vec4(Position, 1.0); + EmitVertex(); + EndPrimitive(); +} diff --git a/Part2/PROJ_NIX/shaders/planetVS.glsl b/Part2/PROJ_NIX/shaders/planetVS.glsl new file mode 100644 index 0000000..ea3e149 --- /dev/null +++ b/Part2/PROJ_NIX/shaders/planetVS.glsl @@ -0,0 +1,8 @@ +#version 330 + +in vec4 Position; + +void main(void) +{ + gl_Position = Position; +} diff --git a/Part2/PROJ_WIN/Project3.sln b/Part2/PROJ_WIN/Project3.sln new file mode 100644 index 0000000..4bc27f6 --- /dev/null +++ b/Part2/PROJ_WIN/Project3.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project3", "Project3\Project3.vcxproj", "{D7BEFF7A-4902-4B7E-922B-B0417A66864C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D7BEFF7A-4902-4B7E-922B-B0417A66864C}.Debug|Win32.ActiveCfg = Debug|Win32 + {D7BEFF7A-4902-4B7E-922B-B0417A66864C}.Debug|Win32.Build.0 = Debug|Win32 + {D7BEFF7A-4902-4B7E-922B-B0417A66864C}.Release|Win32.ActiveCfg = Release|Win32 + {D7BEFF7A-4902-4B7E-922B-B0417A66864C}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Part2/PROJ_WIN/Project3/Project3.vcxproj b/Part2/PROJ_WIN/Project3/Project3.vcxproj new file mode 100644 index 0000000..0969818 --- /dev/null +++ b/Part2/PROJ_WIN/Project3/Project3.vcxproj @@ -0,0 +1,115 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {D7BEFF7A-4902-4B7E-922B-B0417A66864C} + Project3 + + + + Application + true + MultiByte + v110 + + + Application + false + true + MultiByte + v110 + + + + + + + + + + + + + + false + + + + Level3 + Disabled + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:/ProgramData/NVIDIA Corporation/CUDA Samples/v5.5/common/inc;../shared/glew/includes;../shared/freeglut/includes + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + true + ../shared/glew/lib;../shared/freeglut/lib;%(AdditionalLibraryDirectories) + cudart.lib; glew32.lib;glu32.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Console + mainCRTStartup + + + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:/ProgramData/NVIDIA Corporation/CUDA Samples/v5.5/common/inc;../shared/glew/includes;../shared/freeglut/includes + $(ProjectDir)$(Platform)/$(Configuration)/%(Filename)%(Extension).obj + true + true + true + compute_10,sm_10;compute_20,sm_20;compute_30,sm_30 + + + + + Level3 + MaxSpeed + true + true + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:/ProgramData/NVIDIA Corporation/CUDA Samples/v5.5/common/inc;../shared/glew/includes;../shared/freeglut/includes + + + true + true + true + ../shared/glew/lib;../shared/freeglut/lib;%(AdditionalLibraryDirectories) + cudart.lib; glew32.lib;glu32.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5\include;C:/ProgramData/NVIDIA Corporation/CUDA Samples/v5.5/common/inc;../shared/glew/includes;../shared/freeglut/includes + compute_20,sm_20 + + + + + + + + + + Document + compute_10,sm_10;compute_20,sm_20 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Part2/PROJ_WIN/Project3/Project3.vcxproj.filters b/Part2/PROJ_WIN/Project3/Project3.vcxproj.filters new file mode 100644 index 0000000..74ef2bc --- /dev/null +++ b/Part2/PROJ_WIN/Project3/Project3.vcxproj.filters @@ -0,0 +1,61 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/Part2/PROJ_WIN/Project3/shaders/planeFS.glsl b/Part2/PROJ_WIN/Project3/shaders/planeFS.glsl new file mode 100644 index 0000000..0c56937 --- /dev/null +++ b/Part2/PROJ_WIN/Project3/shaders/planeFS.glsl @@ -0,0 +1,7 @@ +varying vec4 v_Normal; + +void main(void) +{ + vec4 light = vec4(1.0, 1.0, 1.0, 0.0); + gl_FragColor = vec4(0.25,0.65,0.85,1.0) * clamp(abs(dot(v_Normal, light)), 0.0, 1.0); +} \ No newline at end of file diff --git a/Part2/PROJ_WIN/Project3/shaders/planeVS.glsl b/Part2/PROJ_WIN/Project3/shaders/planeVS.glsl new file mode 100644 index 0000000..3453b94 --- /dev/null +++ b/Part2/PROJ_WIN/Project3/shaders/planeVS.glsl @@ -0,0 +1,13 @@ +uniform mat4 u_projMatrix; + +attribute vec4 Position; +attribute vec4 Normal; + +varying vec4 v_Normal; + +void main(void) +{ + v_Normal = Normal; + vec4 pos = u_projMatrix * Position; + gl_Position = pos; +} \ No newline at end of file diff --git a/Part2/PROJ_WIN/shared/freeglut/Copying.txt b/Part2/PROJ_WIN/shared/freeglut/Copying.txt new file mode 100644 index 0000000..fc36ad9 --- /dev/null +++ b/Part2/PROJ_WIN/shared/freeglut/Copying.txt @@ -0,0 +1,27 @@ + + Freeglut Copyright + ------------------ + + Freeglut code without an explicit copyright is covered by the following + copyright: + + Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies or substantial portions of the Software. + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of Pawel W. Olszta shall not be + used in advertising or otherwise to promote the sale, use or other dealings + in this Software without prior written authorization from Pawel W. Olszta. diff --git a/Part2/PROJ_WIN/shared/freeglut/Readme.txt b/Part2/PROJ_WIN/shared/freeglut/Readme.txt new file mode 100644 index 0000000..2a7eeff --- /dev/null +++ b/Part2/PROJ_WIN/shared/freeglut/Readme.txt @@ -0,0 +1,96 @@ +freeglut 2.6.0-3.mp for MSVC + +This package contains a freeglut import library, headers, and a Windows DLL, +allowing GLUT applications to be compiled on Windows using Microsoft Visual C++. + +For more information on freeglut, visit http://freeglut.sourceforge.net/. + + +Installation + +Create a folder on your PC which is readable by all users, for example +“C:\Program Files\Common Files\MSVC\freeglut\” on a typical Windows system. Copy +the “lib\” and “include\” folders from this zip archive to that location. + +The freeglut DLL should either be placed in the same folder as your application, +or can be installed in a system-wide folder which appears in your %PATH% +environment variable. On a 32 bit Windows system this is typically +“C:\Windows\System32\”, and on a 64 bit Windows system this is typically +“C:\Windows\SysWOW64\”. + + +Compiling Applications + +To create a freeglut application, create a new Win32 C++ project in MSVC. From +the “Win32 Application Wizard”, choose a “Windows application”, check the +“Empty project” box, and submit. + +You’ll now need to configure the compiler and linker settings. Open up the +project properties, and select “All Configurations” (this is necessary to ensure +our changes are applied for both debug and release builds). Open up the +“general” section under “C/C++”, and configure the “include\” folder you created +above as an “Additional Include Directory”. If you have more than one GLUT +package which contains a “glut.h” file, it’s important to ensure that the +freeglut include folder appears above all other GLUT include folders. + +Now open up the “general” section under “Linker”, and configure the “lib\” +folder you created above as an “Additional Library Directory”. A freeglut +application depends on the import libraries “freeglut.lib” and “opengl32.lib”, +which can be configured under the “Input” section, however it shouldn’t be +necessary to explicitly state these dependencies, since the freeglut headers +handle this for you. Now open the “Advanced” section, and enter “mainCRTStartup” +as the “Entry Point” for your application. This is necessary because GLUT +applications use “main” as the application entry point, not “WinMain”—without it +you’ll get an undefined reference when you try to link your application. + +That’s all of your project properties configured, so you can now add source +files to your project and build the application. If you want your application to +be compatible with GLUT, you should “#include ”. If you want to use +freeglut specific extensions, you should “#include ” instead. + +Don’t forget to either include the freeglut DLL when distributing applications, +or provide your users with some method of obtaining it if they don’t already +have it! + + +Problems? + +If you have problems using these packages (runtime errors etc.), please contact +me via http://www.transmissionzero.co.uk/contact/, providing as much detail as +you can. Please don’t complain to the freeglut guys unless you’re sure it’s a +freeglut bug, and have reproduced the issue after compiling freeglut from the +latest SVN version—if that’s still the case, I’m sure they would appreciate a +bug report or a patch. + + +Changelog + +2010–01–22: Release 2.6.0-3.mp + + • Rebuilt the DLL with a minimum OS version of 4.00, so it can work under + Windows NT 4 and Windows 98. Previously it required at least Windows 2000. + +2009-12-22: Release 2.6.0-2.mp + + • Updated documentation to take into account the fact that 32 bit DLLs should + be placed in the “SysWOW64” folder on 64 bit Windows versions, rather than + “System32”. + • Some parts of the documentation rewritten to (hopefully) be easier to + follow. + • Updated the “freeglut_std.h” file to stay aligned with my MinGW package. + There were some MinGW cross-compilation issues under Linux related with the + fact that the #include of “Windows.h” didn’t match the case of the header + file “windows.h”. + +2009-11-29: Release 2.6.0-1.mp + + • First 2.6.0 MSVC release. I’ve built the package using Visual Studio 2008, + and the only change I’ve made is to the DLL version resource—I’ve changed + the description so that my MinGW and MSVC builds are distinguishable from + each other (and other builds) using Windows Explorer. + + +Martin Payne +2010–01–22 + +http://www.transmissionzero.co.uk/ diff --git a/Part2/PROJ_WIN/shared/freeglut/freeglut.dll b/Part2/PROJ_WIN/shared/freeglut/freeglut.dll new file mode 100644 index 0000000000000000000000000000000000000000..4ec8893337649be4b2e91c4b5fe937da2578b9ca GIT binary patch literal 197120 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 + * Creation date: Thu Dec 2 1999 + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifdef __cplusplus + extern "C" { +#endif + +/* + * Additional GLUT Key definitions for the Special key function + */ +#define GLUT_KEY_NUM_LOCK 0x006D +#define GLUT_KEY_BEGIN 0x006E +#define GLUT_KEY_DELETE 0x006F + +/* + * GLUT API Extension macro definitions -- behaviour when the user clicks on an "x" to close a window + */ +#define GLUT_ACTION_EXIT 0 +#define GLUT_ACTION_GLUTMAINLOOP_RETURNS 1 +#define GLUT_ACTION_CONTINUE_EXECUTION 2 + +/* + * Create a new rendering context when the user opens a new window? + */ +#define GLUT_CREATE_NEW_CONTEXT 0 +#define GLUT_USE_CURRENT_CONTEXT 1 + +/* + * Direct/Indirect rendering context options (has meaning only in Unix/X11) + */ +#define GLUT_FORCE_INDIRECT_CONTEXT 0 +#define GLUT_ALLOW_DIRECT_CONTEXT 1 +#define GLUT_TRY_DIRECT_CONTEXT 2 +#define GLUT_FORCE_DIRECT_CONTEXT 3 + +/* + * GLUT API Extension macro definitions -- the glutGet parameters + */ +#define GLUT_INIT_STATE 0x007C + +#define GLUT_ACTION_ON_WINDOW_CLOSE 0x01F9 + +#define GLUT_WINDOW_BORDER_WIDTH 0x01FA +#define GLUT_WINDOW_HEADER_HEIGHT 0x01FB + +#define GLUT_VERSION 0x01FC + +#define GLUT_RENDERING_CONTEXT 0x01FD +#define GLUT_DIRECT_RENDERING 0x01FE + +#define GLUT_FULL_SCREEN 0x01FF + +/* + * New tokens for glutInitDisplayMode. + * Only one GLUT_AUXn bit may be used at a time. + * Value 0x0400 is defined in OpenGLUT. + */ +#define GLUT_AUX 0x1000 + +#define GLUT_AUX1 0x1000 +#define GLUT_AUX2 0x2000 +#define GLUT_AUX3 0x4000 +#define GLUT_AUX4 0x8000 + +/* + * Context-related flags, see freeglut_state.c + */ +#define GLUT_INIT_MAJOR_VERSION 0x0200 +#define GLUT_INIT_MINOR_VERSION 0x0201 +#define GLUT_INIT_FLAGS 0x0202 +#define GLUT_INIT_PROFILE 0x0203 + +/* + * Flags for glutInitContextFlags, see freeglut_init.c + */ +#define GLUT_DEBUG 0x0001 +#define GLUT_FORWARD_COMPATIBLE 0x0002 + + +/* + * Flags for glutInitContextProfile, see freeglut_init.c + */ +#define GLUT_CORE_PROFILE 0x0001 +#define GLUT_COMPATIBILITY_PROFILE 0x0002 + +/* + * Process loop function, see freeglut_main.c + */ +FGAPI void FGAPIENTRY glutMainLoopEvent( void ); +FGAPI void FGAPIENTRY glutLeaveMainLoop( void ); +FGAPI void FGAPIENTRY glutExit ( void ); + +/* + * Window management functions, see freeglut_window.c + */ +FGAPI void FGAPIENTRY glutFullScreenToggle( void ); + +/* + * Window-specific callback functions, see freeglut_callbacks.c + */ +FGAPI void FGAPIENTRY glutMouseWheelFunc( void (* callback)( int, int, int, int ) ); +FGAPI void FGAPIENTRY glutCloseFunc( void (* callback)( void ) ); +FGAPI void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) ); +/* A. Donev: Also a destruction callback for menus */ +FGAPI void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) ); + +/* + * State setting and retrieval functions, see freeglut_state.c + */ +FGAPI void FGAPIENTRY glutSetOption ( GLenum option_flag, int value ); +FGAPI int * FGAPIENTRY glutGetModeValues(GLenum mode, int * size); +/* A.Donev: User-data manipulation */ +FGAPI void* FGAPIENTRY glutGetWindowData( void ); +FGAPI void FGAPIENTRY glutSetWindowData(void* data); +FGAPI void* FGAPIENTRY glutGetMenuData( void ); +FGAPI void FGAPIENTRY glutSetMenuData(void* data); + +/* + * Font stuff, see freeglut_font.c + */ +FGAPI int FGAPIENTRY glutBitmapHeight( void* font ); +FGAPI GLfloat FGAPIENTRY glutStrokeHeight( void* font ); +FGAPI void FGAPIENTRY glutBitmapString( void* font, const unsigned char *string ); +FGAPI void FGAPIENTRY glutStrokeString( void* font, const unsigned char *string ); + +/* + * Geometry functions, see freeglut_geometry.c + */ +FGAPI void FGAPIENTRY glutWireRhombicDodecahedron( void ); +FGAPI void FGAPIENTRY glutSolidRhombicDodecahedron( void ); +FGAPI void FGAPIENTRY glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ); +FGAPI void FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ); +FGAPI void FGAPIENTRY glutWireCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); +FGAPI void FGAPIENTRY glutSolidCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); + +/* + * Extension functions, see freeglut_ext.c + */ +typedef void (*GLUTproc)(); +FGAPI GLUTproc FGAPIENTRY glutGetProcAddress( const char *procName ); + +/* + * Joystick functions, see freeglut_joystick.c + */ +/* USE OF THESE FUNCTIONS IS DEPRECATED !!!!! */ +/* If you have a serious need for these functions in your application, please either + * contact the "freeglut" developer community at freeglut-developer@lists.sourceforge.net, + * switch to the OpenGLUT library, or else port your joystick functionality over to PLIB's + * "js" library. + */ +int glutJoystickGetNumAxes( int ident ); +int glutJoystickGetNumButtons( int ident ); +int glutJoystickNotWorking( int ident ); +float glutJoystickGetDeadBand( int ident, int axis ); +void glutJoystickSetDeadBand( int ident, int axis, float db ); +float glutJoystickGetSaturation( int ident, int axis ); +void glutJoystickSetSaturation( int ident, int axis, float st ); +void glutJoystickSetMinRange( int ident, float *axes ); +void glutJoystickSetMaxRange( int ident, float *axes ); +void glutJoystickSetCenter( int ident, float *axes ); +void glutJoystickGetMinRange( int ident, float *axes ); +void glutJoystickGetMaxRange( int ident, float *axes ); +void glutJoystickGetCenter( int ident, float *axes ); + +/* + * Initialization functions, see freeglut_init.c + */ +FGAPI void FGAPIENTRY glutInitContextVersion( int majorVersion, int minorVersion ); +FGAPI void FGAPIENTRY glutInitContextFlags( int flags ); +FGAPI void FGAPIENTRY glutInitContextProfile( int profile ); + +/* + * GLUT API macro definitions -- the display mode definitions + */ +#define GLUT_CAPTIONLESS 0x0400 +#define GLUT_BORDERLESS 0x0800 +#define GLUT_SRGB 0x1000 + +#ifdef __cplusplus + } +#endif + +/*** END OF FILE ***/ + +#endif /* __FREEGLUT_EXT_H__ */ diff --git a/Part2/PROJ_WIN/shared/freeglut/include/GL/freeglut_std.h b/Part2/PROJ_WIN/shared/freeglut/include/GL/freeglut_std.h new file mode 100644 index 0000000..423d1a1 --- /dev/null +++ b/Part2/PROJ_WIN/shared/freeglut/include/GL/freeglut_std.h @@ -0,0 +1,626 @@ +#ifndef __FREEGLUT_STD_H__ +#define __FREEGLUT_STD_H__ + +/* + * freeglut_std.h + * + * The GLUT-compatible part of the freeglut library include file + * + * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. + * Written by Pawel W. Olszta, + * Creation date: Thu Dec 2 1999 + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifdef __cplusplus + extern "C" { +#endif + +/* + * Under windows, we have to differentiate between static and dynamic libraries + */ +#ifdef _WIN32 +/* #pragma may not be supported by some compilers. + * Discussion by FreeGLUT developers suggests that + * Visual C++ specific code involving pragmas may + * need to move to a separate header. 24th Dec 2003 + */ + +/* Define FREEGLUT_LIB_PRAGMAS to 1 to include library + * pragmas or to 1 to exclude library pragmas. + * The default behavior depends on the compiler/platform. + */ +# ifndef FREEGLUT_LIB_PRAGMAS +# if ( defined(_MSC_VER) || defined(__WATCOMC__) ) && !defined(_WIN32_WCE) +# define FREEGLUT_LIB_PRAGMAS 1 +# else +# define FREEGLUT_LIB_PRAGMAS 0 +# endif +# endif + +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN 1 +# endif +# define NOMINMAX +# include + +/* Windows static library */ +# ifdef FREEGLUT_STATIC + +# define FGAPI +# define FGAPIENTRY + + /* Link with Win32 static freeglut lib */ +# if FREEGLUT_LIB_PRAGMAS +# pragma comment (lib, "freeglut_static.lib") +# endif + +/* Windows shared library (DLL) */ +# else + +# define FGAPIENTRY __stdcall +# if defined(FREEGLUT_EXPORTS) +# define FGAPI __declspec(dllexport) +# else +# define FGAPI __declspec(dllimport) + + /* Link with Win32 shared freeglut lib */ +# if FREEGLUT_LIB_PRAGMAS +# pragma comment (lib, "freeglut.lib") +# endif + +# endif + +# endif + +/* Drag in other Windows libraries as required by FreeGLUT */ +# if FREEGLUT_LIB_PRAGMAS +# pragma comment (lib, "glu32.lib") /* link OpenGL Utility lib */ +# pragma comment (lib, "opengl32.lib") /* link Microsoft OpenGL lib */ +# pragma comment (lib, "gdi32.lib") /* link Windows GDI lib */ +# pragma comment (lib, "winmm.lib") /* link Windows MultiMedia lib */ +# pragma comment (lib, "user32.lib") /* link Windows user lib */ +# endif + +#else + +/* Non-Windows definition of FGAPI and FGAPIENTRY */ +# define FGAPI +# define FGAPIENTRY + +#endif + +/* + * The freeglut and GLUT API versions + */ +#define FREEGLUT 1 +#define GLUT_API_VERSION 4 +#define FREEGLUT_VERSION_2_0 1 +#define GLUT_XLIB_IMPLEMENTATION 13 + +/* + * Always include OpenGL and GLU headers + */ +#include +#include + +/* + * GLUT API macro definitions -- the special key codes: + */ +#define GLUT_KEY_F1 0x0001 +#define GLUT_KEY_F2 0x0002 +#define GLUT_KEY_F3 0x0003 +#define GLUT_KEY_F4 0x0004 +#define GLUT_KEY_F5 0x0005 +#define GLUT_KEY_F6 0x0006 +#define GLUT_KEY_F7 0x0007 +#define GLUT_KEY_F8 0x0008 +#define GLUT_KEY_F9 0x0009 +#define GLUT_KEY_F10 0x000A +#define GLUT_KEY_F11 0x000B +#define GLUT_KEY_F12 0x000C +#define GLUT_KEY_LEFT 0x0064 +#define GLUT_KEY_UP 0x0065 +#define GLUT_KEY_RIGHT 0x0066 +#define GLUT_KEY_DOWN 0x0067 +#define GLUT_KEY_PAGE_UP 0x0068 +#define GLUT_KEY_PAGE_DOWN 0x0069 +#define GLUT_KEY_HOME 0x006A +#define GLUT_KEY_END 0x006B +#define GLUT_KEY_INSERT 0x006C + +/* + * GLUT API macro definitions -- mouse state definitions + */ +#define GLUT_LEFT_BUTTON 0x0000 +#define GLUT_MIDDLE_BUTTON 0x0001 +#define GLUT_RIGHT_BUTTON 0x0002 +#define GLUT_DOWN 0x0000 +#define GLUT_UP 0x0001 +#define GLUT_LEFT 0x0000 +#define GLUT_ENTERED 0x0001 + +/* + * GLUT API macro definitions -- the display mode definitions + */ +#define GLUT_RGB 0x0000 +#define GLUT_RGBA 0x0000 +#define GLUT_INDEX 0x0001 +#define GLUT_SINGLE 0x0000 +#define GLUT_DOUBLE 0x0002 +#define GLUT_ACCUM 0x0004 +#define GLUT_ALPHA 0x0008 +#define GLUT_DEPTH 0x0010 +#define GLUT_STENCIL 0x0020 +#define GLUT_MULTISAMPLE 0x0080 +#define GLUT_STEREO 0x0100 +#define GLUT_LUMINANCE 0x0200 + +/* + * GLUT API macro definitions -- windows and menu related definitions + */ +#define GLUT_MENU_NOT_IN_USE 0x0000 +#define GLUT_MENU_IN_USE 0x0001 +#define GLUT_NOT_VISIBLE 0x0000 +#define GLUT_VISIBLE 0x0001 +#define GLUT_HIDDEN 0x0000 +#define GLUT_FULLY_RETAINED 0x0001 +#define GLUT_PARTIALLY_RETAINED 0x0002 +#define GLUT_FULLY_COVERED 0x0003 + +/* + * GLUT API macro definitions -- fonts definitions + * + * Steve Baker suggested to make it binary compatible with GLUT: + */ +#if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__WATCOMC__) +# define GLUT_STROKE_ROMAN ((void *)0x0000) +# define GLUT_STROKE_MONO_ROMAN ((void *)0x0001) +# define GLUT_BITMAP_9_BY_15 ((void *)0x0002) +# define GLUT_BITMAP_8_BY_13 ((void *)0x0003) +# define GLUT_BITMAP_TIMES_ROMAN_10 ((void *)0x0004) +# define GLUT_BITMAP_TIMES_ROMAN_24 ((void *)0x0005) +# define GLUT_BITMAP_HELVETICA_10 ((void *)0x0006) +# define GLUT_BITMAP_HELVETICA_12 ((void *)0x0007) +# define GLUT_BITMAP_HELVETICA_18 ((void *)0x0008) +#else + /* + * I don't really know if it's a good idea... But here it goes: + */ + extern void* glutStrokeRoman; + extern void* glutStrokeMonoRoman; + extern void* glutBitmap9By15; + extern void* glutBitmap8By13; + extern void* glutBitmapTimesRoman10; + extern void* glutBitmapTimesRoman24; + extern void* glutBitmapHelvetica10; + extern void* glutBitmapHelvetica12; + extern void* glutBitmapHelvetica18; + + /* + * Those pointers will be used by following definitions: + */ +# define GLUT_STROKE_ROMAN ((void *) &glutStrokeRoman) +# define GLUT_STROKE_MONO_ROMAN ((void *) &glutStrokeMonoRoman) +# define GLUT_BITMAP_9_BY_15 ((void *) &glutBitmap9By15) +# define GLUT_BITMAP_8_BY_13 ((void *) &glutBitmap8By13) +# define GLUT_BITMAP_TIMES_ROMAN_10 ((void *) &glutBitmapTimesRoman10) +# define GLUT_BITMAP_TIMES_ROMAN_24 ((void *) &glutBitmapTimesRoman24) +# define GLUT_BITMAP_HELVETICA_10 ((void *) &glutBitmapHelvetica10) +# define GLUT_BITMAP_HELVETICA_12 ((void *) &glutBitmapHelvetica12) +# define GLUT_BITMAP_HELVETICA_18 ((void *) &glutBitmapHelvetica18) +#endif + +/* + * GLUT API macro definitions -- the glutGet parameters + */ +#define GLUT_WINDOW_X 0x0064 +#define GLUT_WINDOW_Y 0x0065 +#define GLUT_WINDOW_WIDTH 0x0066 +#define GLUT_WINDOW_HEIGHT 0x0067 +#define GLUT_WINDOW_BUFFER_SIZE 0x0068 +#define GLUT_WINDOW_STENCIL_SIZE 0x0069 +#define GLUT_WINDOW_DEPTH_SIZE 0x006A +#define GLUT_WINDOW_RED_SIZE 0x006B +#define GLUT_WINDOW_GREEN_SIZE 0x006C +#define GLUT_WINDOW_BLUE_SIZE 0x006D +#define GLUT_WINDOW_ALPHA_SIZE 0x006E +#define GLUT_WINDOW_ACCUM_RED_SIZE 0x006F +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 0x0070 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 0x0071 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 0x0072 +#define GLUT_WINDOW_DOUBLEBUFFER 0x0073 +#define GLUT_WINDOW_RGBA 0x0074 +#define GLUT_WINDOW_PARENT 0x0075 +#define GLUT_WINDOW_NUM_CHILDREN 0x0076 +#define GLUT_WINDOW_COLORMAP_SIZE 0x0077 +#define GLUT_WINDOW_NUM_SAMPLES 0x0078 +#define GLUT_WINDOW_STEREO 0x0079 +#define GLUT_WINDOW_CURSOR 0x007A + +#define GLUT_SCREEN_WIDTH 0x00C8 +#define GLUT_SCREEN_HEIGHT 0x00C9 +#define GLUT_SCREEN_WIDTH_MM 0x00CA +#define GLUT_SCREEN_HEIGHT_MM 0x00CB +#define GLUT_MENU_NUM_ITEMS 0x012C +#define GLUT_DISPLAY_MODE_POSSIBLE 0x0190 +#define GLUT_INIT_WINDOW_X 0x01F4 +#define GLUT_INIT_WINDOW_Y 0x01F5 +#define GLUT_INIT_WINDOW_WIDTH 0x01F6 +#define GLUT_INIT_WINDOW_HEIGHT 0x01F7 +#define GLUT_INIT_DISPLAY_MODE 0x01F8 +#define GLUT_ELAPSED_TIME 0x02BC +#define GLUT_WINDOW_FORMAT_ID 0x007B + +/* + * GLUT API macro definitions -- the glutDeviceGet parameters + */ +#define GLUT_HAS_KEYBOARD 0x0258 +#define GLUT_HAS_MOUSE 0x0259 +#define GLUT_HAS_SPACEBALL 0x025A +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 0x025B +#define GLUT_HAS_TABLET 0x025C +#define GLUT_NUM_MOUSE_BUTTONS 0x025D +#define GLUT_NUM_SPACEBALL_BUTTONS 0x025E +#define GLUT_NUM_BUTTON_BOX_BUTTONS 0x025F +#define GLUT_NUM_DIALS 0x0260 +#define GLUT_NUM_TABLET_BUTTONS 0x0261 +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 0x0262 +#define GLUT_DEVICE_KEY_REPEAT 0x0263 +#define GLUT_HAS_JOYSTICK 0x0264 +#define GLUT_OWNS_JOYSTICK 0x0265 +#define GLUT_JOYSTICK_BUTTONS 0x0266 +#define GLUT_JOYSTICK_AXES 0x0267 +#define GLUT_JOYSTICK_POLL_RATE 0x0268 + +/* + * GLUT API macro definitions -- the glutLayerGet parameters + */ +#define GLUT_OVERLAY_POSSIBLE 0x0320 +#define GLUT_LAYER_IN_USE 0x0321 +#define GLUT_HAS_OVERLAY 0x0322 +#define GLUT_TRANSPARENT_INDEX 0x0323 +#define GLUT_NORMAL_DAMAGED 0x0324 +#define GLUT_OVERLAY_DAMAGED 0x0325 + +/* + * GLUT API macro definitions -- the glutVideoResizeGet parameters + */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 0x0384 +#define GLUT_VIDEO_RESIZE_IN_USE 0x0385 +#define GLUT_VIDEO_RESIZE_X_DELTA 0x0386 +#define GLUT_VIDEO_RESIZE_Y_DELTA 0x0387 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 0x0388 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 0x0389 +#define GLUT_VIDEO_RESIZE_X 0x038A +#define GLUT_VIDEO_RESIZE_Y 0x038B +#define GLUT_VIDEO_RESIZE_WIDTH 0x038C +#define GLUT_VIDEO_RESIZE_HEIGHT 0x038D + +/* + * GLUT API macro definitions -- the glutUseLayer parameters + */ +#define GLUT_NORMAL 0x0000 +#define GLUT_OVERLAY 0x0001 + +/* + * GLUT API macro definitions -- the glutGetModifiers parameters + */ +#define GLUT_ACTIVE_SHIFT 0x0001 +#define GLUT_ACTIVE_CTRL 0x0002 +#define GLUT_ACTIVE_ALT 0x0004 + +/* + * GLUT API macro definitions -- the glutSetCursor parameters + */ +#define GLUT_CURSOR_RIGHT_ARROW 0x0000 +#define GLUT_CURSOR_LEFT_ARROW 0x0001 +#define GLUT_CURSOR_INFO 0x0002 +#define GLUT_CURSOR_DESTROY 0x0003 +#define GLUT_CURSOR_HELP 0x0004 +#define GLUT_CURSOR_CYCLE 0x0005 +#define GLUT_CURSOR_SPRAY 0x0006 +#define GLUT_CURSOR_WAIT 0x0007 +#define GLUT_CURSOR_TEXT 0x0008 +#define GLUT_CURSOR_CROSSHAIR 0x0009 +#define GLUT_CURSOR_UP_DOWN 0x000A +#define GLUT_CURSOR_LEFT_RIGHT 0x000B +#define GLUT_CURSOR_TOP_SIDE 0x000C +#define GLUT_CURSOR_BOTTOM_SIDE 0x000D +#define GLUT_CURSOR_LEFT_SIDE 0x000E +#define GLUT_CURSOR_RIGHT_SIDE 0x000F +#define GLUT_CURSOR_TOP_LEFT_CORNER 0x0010 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 0x0011 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 0x0012 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 0x0013 +#define GLUT_CURSOR_INHERIT 0x0064 +#define GLUT_CURSOR_NONE 0x0065 +#define GLUT_CURSOR_FULL_CROSSHAIR 0x0066 + +/* + * GLUT API macro definitions -- RGB color component specification definitions + */ +#define GLUT_RED 0x0000 +#define GLUT_GREEN 0x0001 +#define GLUT_BLUE 0x0002 + +/* + * GLUT API macro definitions -- additional keyboard and joystick definitions + */ +#define GLUT_KEY_REPEAT_OFF 0x0000 +#define GLUT_KEY_REPEAT_ON 0x0001 +#define GLUT_KEY_REPEAT_DEFAULT 0x0002 + +#define GLUT_JOYSTICK_BUTTON_A 0x0001 +#define GLUT_JOYSTICK_BUTTON_B 0x0002 +#define GLUT_JOYSTICK_BUTTON_C 0x0004 +#define GLUT_JOYSTICK_BUTTON_D 0x0008 + +/* + * GLUT API macro definitions -- game mode definitions + */ +#define GLUT_GAME_MODE_ACTIVE 0x0000 +#define GLUT_GAME_MODE_POSSIBLE 0x0001 +#define GLUT_GAME_MODE_WIDTH 0x0002 +#define GLUT_GAME_MODE_HEIGHT 0x0003 +#define GLUT_GAME_MODE_PIXEL_DEPTH 0x0004 +#define GLUT_GAME_MODE_REFRESH_RATE 0x0005 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 0x0006 + +/* + * Initialization functions, see fglut_init.c + */ +FGAPI void FGAPIENTRY glutInit( int* pargc, char** argv ); +FGAPI void FGAPIENTRY glutInitWindowPosition( int x, int y ); +FGAPI void FGAPIENTRY glutInitWindowSize( int width, int height ); +FGAPI void FGAPIENTRY glutInitDisplayMode( unsigned int displayMode ); +FGAPI void FGAPIENTRY glutInitDisplayString( const char* displayMode ); + +/* + * Process loop function, see freeglut_main.c + */ +FGAPI void FGAPIENTRY glutMainLoop( void ); + +/* + * Window management functions, see freeglut_window.c + */ +FGAPI int FGAPIENTRY glutCreateWindow( const char* title ); +FGAPI int FGAPIENTRY glutCreateSubWindow( int window, int x, int y, int width, int height ); +FGAPI void FGAPIENTRY glutDestroyWindow( int window ); +FGAPI void FGAPIENTRY glutSetWindow( int window ); +FGAPI int FGAPIENTRY glutGetWindow( void ); +FGAPI void FGAPIENTRY glutSetWindowTitle( const char* title ); +FGAPI void FGAPIENTRY glutSetIconTitle( const char* title ); +FGAPI void FGAPIENTRY glutReshapeWindow( int width, int height ); +FGAPI void FGAPIENTRY glutPositionWindow( int x, int y ); +FGAPI void FGAPIENTRY glutShowWindow( void ); +FGAPI void FGAPIENTRY glutHideWindow( void ); +FGAPI void FGAPIENTRY glutIconifyWindow( void ); +FGAPI void FGAPIENTRY glutPushWindow( void ); +FGAPI void FGAPIENTRY glutPopWindow( void ); +FGAPI void FGAPIENTRY glutFullScreen( void ); + +/* + * Display-connected functions, see freeglut_display.c + */ +FGAPI void FGAPIENTRY glutPostWindowRedisplay( int window ); +FGAPI void FGAPIENTRY glutPostRedisplay( void ); +FGAPI void FGAPIENTRY glutSwapBuffers( void ); + +/* + * Mouse cursor functions, see freeglut_cursor.c + */ +FGAPI void FGAPIENTRY glutWarpPointer( int x, int y ); +FGAPI void FGAPIENTRY glutSetCursor( int cursor ); + +/* + * Overlay stuff, see freeglut_overlay.c + */ +FGAPI void FGAPIENTRY glutEstablishOverlay( void ); +FGAPI void FGAPIENTRY glutRemoveOverlay( void ); +FGAPI void FGAPIENTRY glutUseLayer( GLenum layer ); +FGAPI void FGAPIENTRY glutPostOverlayRedisplay( void ); +FGAPI void FGAPIENTRY glutPostWindowOverlayRedisplay( int window ); +FGAPI void FGAPIENTRY glutShowOverlay( void ); +FGAPI void FGAPIENTRY glutHideOverlay( void ); + +/* + * Menu stuff, see freeglut_menu.c + */ +FGAPI int FGAPIENTRY glutCreateMenu( void (* callback)( int menu ) ); +FGAPI void FGAPIENTRY glutDestroyMenu( int menu ); +FGAPI int FGAPIENTRY glutGetMenu( void ); +FGAPI void FGAPIENTRY glutSetMenu( int menu ); +FGAPI void FGAPIENTRY glutAddMenuEntry( const char* label, int value ); +FGAPI void FGAPIENTRY glutAddSubMenu( const char* label, int subMenu ); +FGAPI void FGAPIENTRY glutChangeToMenuEntry( int item, const char* label, int value ); +FGAPI void FGAPIENTRY glutChangeToSubMenu( int item, const char* label, int value ); +FGAPI void FGAPIENTRY glutRemoveMenuItem( int item ); +FGAPI void FGAPIENTRY glutAttachMenu( int button ); +FGAPI void FGAPIENTRY glutDetachMenu( int button ); + +/* + * Global callback functions, see freeglut_callbacks.c + */ +FGAPI void FGAPIENTRY glutTimerFunc( unsigned int time, void (* callback)( int ), int value ); +FGAPI void FGAPIENTRY glutIdleFunc( void (* callback)( void ) ); + +/* + * Window-specific callback functions, see freeglut_callbacks.c + */ +FGAPI void FGAPIENTRY glutKeyboardFunc( void (* callback)( unsigned char, int, int ) ); +FGAPI void FGAPIENTRY glutSpecialFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutReshapeFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) ); +FGAPI void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) ); +FGAPI void FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int ) ); +FGAPI void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutEntryFunc( void (* callback)( int ) ); + +FGAPI void FGAPIENTRY glutKeyboardUpFunc( void (* callback)( unsigned char, int, int ) ); +FGAPI void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutJoystickFunc( void (* callback)( unsigned int, int, int, int ), int pollInterval ); +FGAPI void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) ); +FGAPI void FGAPIENTRY glutMenuStatusFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutOverlayDisplayFunc( void (* callback)( void ) ); +FGAPI void FGAPIENTRY glutWindowStatusFunc( void (* callback)( int ) ); + +FGAPI void FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutButtonBoxFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutDialsFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutTabletMotionFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutTabletButtonFunc( void (* callback)( int, int, int, int ) ); + +/* + * State setting and retrieval functions, see freeglut_state.c + */ +FGAPI int FGAPIENTRY glutGet( GLenum query ); +FGAPI int FGAPIENTRY glutDeviceGet( GLenum query ); +FGAPI int FGAPIENTRY glutGetModifiers( void ); +FGAPI int FGAPIENTRY glutLayerGet( GLenum query ); + +/* + * Font stuff, see freeglut_font.c + */ +FGAPI void FGAPIENTRY glutBitmapCharacter( void* font, int character ); +FGAPI int FGAPIENTRY glutBitmapWidth( void* font, int character ); +FGAPI void FGAPIENTRY glutStrokeCharacter( void* font, int character ); +FGAPI int FGAPIENTRY glutStrokeWidth( void* font, int character ); +FGAPI int FGAPIENTRY glutBitmapLength( void* font, const unsigned char* string ); +FGAPI int FGAPIENTRY glutStrokeLength( void* font, const unsigned char* string ); + +/* + * Geometry functions, see freeglut_geometry.c + */ +FGAPI void FGAPIENTRY glutWireCube( GLdouble size ); +FGAPI void FGAPIENTRY glutSolidCube( GLdouble size ); +FGAPI void FGAPIENTRY glutWireSphere( GLdouble radius, GLint slices, GLint stacks ); +FGAPI void FGAPIENTRY glutSolidSphere( GLdouble radius, GLint slices, GLint stacks ); +FGAPI void FGAPIENTRY glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks ); +FGAPI void FGAPIENTRY glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks ); + +FGAPI void FGAPIENTRY glutWireTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings ); +FGAPI void FGAPIENTRY glutSolidTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings ); +FGAPI void FGAPIENTRY glutWireDodecahedron( void ); +FGAPI void FGAPIENTRY glutSolidDodecahedron( void ); +FGAPI void FGAPIENTRY glutWireOctahedron( void ); +FGAPI void FGAPIENTRY glutSolidOctahedron( void ); +FGAPI void FGAPIENTRY glutWireTetrahedron( void ); +FGAPI void FGAPIENTRY glutSolidTetrahedron( void ); +FGAPI void FGAPIENTRY glutWireIcosahedron( void ); +FGAPI void FGAPIENTRY glutSolidIcosahedron( void ); + +/* + * Teapot rendering functions, found in freeglut_teapot.c + */ +FGAPI void FGAPIENTRY glutWireTeapot( GLdouble size ); +FGAPI void FGAPIENTRY glutSolidTeapot( GLdouble size ); + +/* + * Game mode functions, see freeglut_gamemode.c + */ +FGAPI void FGAPIENTRY glutGameModeString( const char* string ); +FGAPI int FGAPIENTRY glutEnterGameMode( void ); +FGAPI void FGAPIENTRY glutLeaveGameMode( void ); +FGAPI int FGAPIENTRY glutGameModeGet( GLenum query ); + +/* + * Video resize functions, see freeglut_videoresize.c + */ +FGAPI int FGAPIENTRY glutVideoResizeGet( GLenum query ); +FGAPI void FGAPIENTRY glutSetupVideoResizing( void ); +FGAPI void FGAPIENTRY glutStopVideoResizing( void ); +FGAPI void FGAPIENTRY glutVideoResize( int x, int y, int width, int height ); +FGAPI void FGAPIENTRY glutVideoPan( int x, int y, int width, int height ); + +/* + * Colormap functions, see freeglut_misc.c + */ +FGAPI void FGAPIENTRY glutSetColor( int color, GLfloat red, GLfloat green, GLfloat blue ); +FGAPI GLfloat FGAPIENTRY glutGetColor( int color, int component ); +FGAPI void FGAPIENTRY glutCopyColormap( int window ); + +/* + * Misc keyboard and joystick functions, see freeglut_misc.c + */ +FGAPI void FGAPIENTRY glutIgnoreKeyRepeat( int ignore ); +FGAPI void FGAPIENTRY glutSetKeyRepeat( int repeatMode ); +FGAPI void FGAPIENTRY glutForceJoystickFunc( void ); + +/* + * Misc functions, see freeglut_misc.c + */ +FGAPI int FGAPIENTRY glutExtensionSupported( const char* extension ); +FGAPI void FGAPIENTRY glutReportErrors( void ); + +/* Comment from glut.h of classic GLUT: + + Win32 has an annoying issue where there are multiple C run-time + libraries (CRTs). If the executable is linked with a different CRT + from the GLUT DLL, the GLUT DLL will not share the same CRT static + data seen by the executable. In particular, atexit callbacks registered + in the executable will not be called if GLUT calls its (different) + exit routine). GLUT is typically built with the + "/MD" option (the CRT with multithreading DLL support), but the Visual + C++ linker default is "/ML" (the single threaded CRT). + + One workaround to this issue is requiring users to always link with + the same CRT as GLUT is compiled with. That requires users supply a + non-standard option. GLUT 3.7 has its own built-in workaround where + the executable's "exit" function pointer is covertly passed to GLUT. + GLUT then calls the executable's exit function pointer to ensure that + any "atexit" calls registered by the application are called if GLUT + needs to exit. + + Note that the __glut*WithExit routines should NEVER be called directly. + To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ + +/* to get the prototype for exit() */ +#include + +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) && !defined(__WATCOMC__) +FGAPI void FGAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); +FGAPI int FGAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); +FGAPI int FGAPIENTRY __glutCreateMenuWithExit(void (* func)(int), void (__cdecl *exitfunc)(int)); +#ifndef FREEGLUT_BUILDING_LIB +#if defined(__GNUC__) +#define FGUNUSED __attribute__((unused)) +#else +#define FGUNUSED +#endif +static void FGAPIENTRY FGUNUSED glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } +#define glutInit glutInit_ATEXIT_HACK +static int FGAPIENTRY FGUNUSED glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } +#define glutCreateWindow glutCreateWindow_ATEXIT_HACK +static int FGAPIENTRY FGUNUSED glutCreateMenu_ATEXIT_HACK(void (* func)(int)) { return __glutCreateMenuWithExit(func, exit); } +#define glutCreateMenu glutCreateMenu_ATEXIT_HACK +#endif +#endif + +#ifdef __cplusplus + } +#endif + +/*** END OF FILE ***/ + +#endif /* __FREEGLUT_STD_H__ */ + diff --git a/Part2/PROJ_WIN/shared/freeglut/include/GL/glut.h b/Part2/PROJ_WIN/shared/freeglut/include/GL/glut.h new file mode 100644 index 0000000..0e6ddfb --- /dev/null +++ b/Part2/PROJ_WIN/shared/freeglut/include/GL/glut.h @@ -0,0 +1,716 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 + /* This would put tons of macros and crap in our clean name space. */ +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# define GLUT_APIENTRY_DEFINED +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif + /* XXX This is from Win32's */ +# ifndef CALLBACK +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) || defined(__LCC__) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX Hack for lcc compiler. It doesn't support __declspec(dllimport), just __stdcall. */ +# if defined( __LCC__ ) +# undef WINGDIAPI +# define WINGDIAPI __stdcall +# else + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define GLUT_WINGDIAPI_DEFINED +# define WINGDIAPI __declspec(dllimport) +# endif +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA + in your compile preprocessor options. */ +# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA) +# pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +/* To enable automatic SGI OpenGL for Windows library usage for GLUT, + define GLUT_USE_SGI_OPENGL in your compile preprocessor options. */ +# ifdef GLUT_USE_SGI_OPENGL +# pragma comment (lib, "opengl.lib") /* link with SGI OpenGL for Windows lib */ +# pragma comment (lib, "glu.lib") /* link with SGI OpenGL Utility lib */ +# pragma comment (lib, "glut.lib") /* link with Win32 GLUT for SGI OpenGL lib */ +# else +# pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +# pragma comment (lib, "glu32.lib") /* link with Microsoft OpenGL Utility lib */ +# pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ +# endif +# endif + +/* To disable supression of annoying warnings about floats being promoted + to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor + options. */ +# ifndef GLUT_NO_WARNING_DISABLE +# pragma warning (disable:4244) /* Disable bogus VC++ 4.2 conversion warnings. */ +# pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +# endif + +/* Win32 has an annoying issue where there are multiple C run-time + libraries (CRTs). If the executable is linked with a different CRT + from the GLUT DLL, the GLUT DLL will not share the same CRT static + data seen by the executable. In particular, atexit callbacks registered + in the executable will not be called if GLUT calls its (different) + exit routine). GLUT is typically built with the + "/MD" option (the CRT with multithreading DLL support), but the Visual + C++ linker default is "/ML" (the single threaded CRT). + + One workaround to this issue is requiring users to always link with + the same CRT as GLUT is compiled with. That requires users supply a + non-standard option. GLUT 3.7 has its own built-in workaround where + the executable's "exit" function pointer is covertly passed to GLUT. + GLUT then calls the executable's exit function pointer to ensure that + any "atexit" calls registered by the application are called if GLUT + needs to exit. + + Note that the __glut*WithExit routines should NEVER be called directly. + To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ + +/* XXX This is from Win32's */ +# if !defined(_MSC_VER) && !defined(__cdecl) + /* Define __cdecl for non-Microsoft compilers. */ +# define __cdecl +# define GLUT_DEFINED___CDECL +# endif +# ifndef _CRTIMP +# ifdef _NTSDK + /* Definition compatible with NT SDK */ +# define _CRTIMP +# else + /* Current definition */ +# ifdef _DLL +# define _CRTIMP __declspec(dllimport) +# else +# define _CRTIMP +# endif +# endif +# define GLUT_DEFINED__CRTIMP +# endif + +/* GLUT API entry point declarations for Win32. */ +# ifdef GLUT_BUILDING_LIB +# define GLUTAPI __declspec(dllexport) +# else +# ifdef _DLL +# define GLUTAPI __declspec(dllimport) +# else +# define GLUTAPI extern +# endif +# endif + +/* GLUT callback calling convention for Win32. */ +# define GLUTCALLBACK __cdecl + +#endif /* _WIN32 */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) +# ifndef GLUT_BUILDING_LIB +extern _CRTIMP void __cdecl exit(int); +# endif +#else +/* non-Win32 case. */ +/* Define APIENTRY and CALLBACK to nothing if we aren't on Win32. */ +# define APIENTRY +# define GLUT_APIENTRY_DEFINED +# define CALLBACK +/* Define GLUTAPI and GLUTCALLBACK as below if we aren't on Win32. */ +# define GLUTAPI extern +# define GLUTCALLBACK +/* Prototype exit for the non-Win32 case (see above). */ +extern void exit(int); +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 3 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 15 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +#if defined(_WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +GLUTAPI void *glutStrokeRoman; +GLUTAPI void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +GLUTAPI void *glutBitmap9By15; +GLUTAPI void *glutBitmap8By13; +GLUTAPI void *glutBitmapTimesRoman10; +GLUTAPI void *glutBitmapTimesRoman24; +GLUTAPI void *glutBitmapHelvetica10; +GLUTAPI void *glutBitmapHelvetica12; +GLUTAPI void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X ((GLenum) 100) +#define GLUT_WINDOW_Y ((GLenum) 101) +#define GLUT_WINDOW_WIDTH ((GLenum) 102) +#define GLUT_WINDOW_HEIGHT ((GLenum) 103) +#define GLUT_WINDOW_BUFFER_SIZE ((GLenum) 104) +#define GLUT_WINDOW_STENCIL_SIZE ((GLenum) 105) +#define GLUT_WINDOW_DEPTH_SIZE ((GLenum) 106) +#define GLUT_WINDOW_RED_SIZE ((GLenum) 107) +#define GLUT_WINDOW_GREEN_SIZE ((GLenum) 108) +#define GLUT_WINDOW_BLUE_SIZE ((GLenum) 109) +#define GLUT_WINDOW_ALPHA_SIZE ((GLenum) 110) +#define GLUT_WINDOW_ACCUM_RED_SIZE ((GLenum) 111) +#define GLUT_WINDOW_ACCUM_GREEN_SIZE ((GLenum) 112) +#define GLUT_WINDOW_ACCUM_BLUE_SIZE ((GLenum) 113) +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE ((GLenum) 114) +#define GLUT_WINDOW_DOUBLEBUFFER ((GLenum) 115) +#define GLUT_WINDOW_RGBA ((GLenum) 116) +#define GLUT_WINDOW_PARENT ((GLenum) 117) +#define GLUT_WINDOW_NUM_CHILDREN ((GLenum) 118) +#define GLUT_WINDOW_COLORMAP_SIZE ((GLenum) 119) +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES ((GLenum) 120) +#define GLUT_WINDOW_STEREO ((GLenum) 121) +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR ((GLenum) 122) +#endif +#define GLUT_SCREEN_WIDTH ((GLenum) 200) +#define GLUT_SCREEN_HEIGHT ((GLenum) 201) +#define GLUT_SCREEN_WIDTH_MM ((GLenum) 202) +#define GLUT_SCREEN_HEIGHT_MM ((GLenum) 203) +#define GLUT_MENU_NUM_ITEMS ((GLenum) 300) +#define GLUT_DISPLAY_MODE_POSSIBLE ((GLenum) 400) +#define GLUT_INIT_WINDOW_X ((GLenum) 500) +#define GLUT_INIT_WINDOW_Y ((GLenum) 501) +#define GLUT_INIT_WINDOW_WIDTH ((GLenum) 502) +#define GLUT_INIT_WINDOW_HEIGHT ((GLenum) 503) +#define GLUT_INIT_DISPLAY_MODE ((GLenum) 504) +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME ((GLenum) 700) +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID ((GLenum) 123) +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD ((GLenum) 600) +#define GLUT_HAS_MOUSE ((GLenum) 601) +#define GLUT_HAS_SPACEBALL ((GLenum) 602) +#define GLUT_HAS_DIAL_AND_BUTTON_BOX ((GLenum) 603) +#define GLUT_HAS_TABLET ((GLenum) 604) +#define GLUT_NUM_MOUSE_BUTTONS ((GLenum) 605) +#define GLUT_NUM_SPACEBALL_BUTTONS ((GLenum) 606) +#define GLUT_NUM_BUTTON_BOX_BUTTONS ((GLenum) 607) +#define GLUT_NUM_DIALS ((GLenum) 608) +#define GLUT_NUM_TABLET_BUTTONS ((GLenum) 609) +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT ((GLenum) 610) +#define GLUT_DEVICE_KEY_REPEAT ((GLenum) 611) +#define GLUT_HAS_JOYSTICK ((GLenum) 612) +#define GLUT_OWNS_JOYSTICK ((GLenum) 613) +#define GLUT_JOYSTICK_BUTTONS ((GLenum) 614) +#define GLUT_JOYSTICK_AXES ((GLenum) 615) +#define GLUT_JOYSTICK_POLL_RATE ((GLenum) 616) +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE ((GLenum) 800) +#define GLUT_LAYER_IN_USE ((GLenum) 801) +#define GLUT_HAS_OVERLAY ((GLenum) 802) +#define GLUT_TRANSPARENT_INDEX ((GLenum) 803) +#define GLUT_NORMAL_DAMAGED ((GLenum) 804) +#define GLUT_OVERLAY_DAMAGED ((GLenum) 805) + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE ((GLenum) 900) +#define GLUT_VIDEO_RESIZE_IN_USE ((GLenum) 901) +#define GLUT_VIDEO_RESIZE_X_DELTA ((GLenum) 902) +#define GLUT_VIDEO_RESIZE_Y_DELTA ((GLenum) 903) +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA ((GLenum) 904) +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA ((GLenum) 905) +#define GLUT_VIDEO_RESIZE_X ((GLenum) 906) +#define GLUT_VIDEO_RESIZE_Y ((GLenum) 907) +#define GLUT_VIDEO_RESIZE_WIDTH ((GLenum) 908) +#define GLUT_VIDEO_RESIZE_HEIGHT ((GLenum) 909) +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL ((GLenum) 0) +#define GLUT_OVERLAY ((GLenum) 1) + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +GLUTAPI void APIENTRY glutInit(int *argcp, char **argv); +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) +GLUTAPI void APIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); +#ifndef GLUT_BUILDING_LIB +static void APIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } +#define glutInit glutInit_ATEXIT_HACK +#endif +#endif +GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI void APIENTRY glutInitDisplayString(const char *string); +#endif +GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y); +GLUTAPI void APIENTRY glutInitWindowSize(int width, int height); +GLUTAPI void APIENTRY glutMainLoop(void); + +/* GLUT window sub-API. */ +GLUTAPI int APIENTRY glutCreateWindow(const char *title); +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) +GLUTAPI int APIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); +#ifndef GLUT_BUILDING_LIB +static int APIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } +#define glutCreateWindow glutCreateWindow_ATEXIT_HACK +#endif +#endif +GLUTAPI int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); +GLUTAPI void APIENTRY glutDestroyWindow(int win); +GLUTAPI void APIENTRY glutPostRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +GLUTAPI void APIENTRY glutPostWindowRedisplay(int win); +#endif +GLUTAPI void APIENTRY glutSwapBuffers(void); +GLUTAPI int APIENTRY glutGetWindow(void); +GLUTAPI void APIENTRY glutSetWindow(int win); +GLUTAPI void APIENTRY glutSetWindowTitle(const char *title); +GLUTAPI void APIENTRY glutSetIconTitle(const char *title); +GLUTAPI void APIENTRY glutPositionWindow(int x, int y); +GLUTAPI void APIENTRY glutReshapeWindow(int width, int height); +GLUTAPI void APIENTRY glutPopWindow(void); +GLUTAPI void APIENTRY glutPushWindow(void); +GLUTAPI void APIENTRY glutIconifyWindow(void); +GLUTAPI void APIENTRY glutShowWindow(void); +GLUTAPI void APIENTRY glutHideWindow(void); +#if (GLUT_API_VERSION >= 3) +GLUTAPI void APIENTRY glutFullScreen(void); +GLUTAPI void APIENTRY glutSetCursor(int cursor); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI void APIENTRY glutWarpPointer(int x, int y); +#endif + +/* GLUT overlay sub-API. */ +GLUTAPI void APIENTRY glutEstablishOverlay(void); +GLUTAPI void APIENTRY glutRemoveOverlay(void); +GLUTAPI void APIENTRY glutUseLayer(GLenum layer); +GLUTAPI void APIENTRY glutPostOverlayRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +GLUTAPI void APIENTRY glutPostWindowOverlayRedisplay(int win); +#endif +GLUTAPI void APIENTRY glutShowOverlay(void); +GLUTAPI void APIENTRY glutHideOverlay(void); +#endif + +/* GLUT menu sub-API. */ +GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int)); +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) +GLUTAPI int APIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int)); +#ifndef GLUT_BUILDING_LIB +static int APIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); } +#define glutCreateMenu glutCreateMenu_ATEXIT_HACK +#endif +#endif +GLUTAPI void APIENTRY glutDestroyMenu(int menu); +GLUTAPI int APIENTRY glutGetMenu(void); +GLUTAPI void APIENTRY glutSetMenu(int menu); +GLUTAPI void APIENTRY glutAddMenuEntry(const char *label, int value); +GLUTAPI void APIENTRY glutAddSubMenu(const char *label, int submenu); +GLUTAPI void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); +GLUTAPI void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); +GLUTAPI void APIENTRY glutRemoveMenuItem(int item); +GLUTAPI void APIENTRY glutAttachMenu(int button); +GLUTAPI void APIENTRY glutDetachMenu(int button); + +/* GLUT window callback sub-API. */ +GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void)); +GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height)); +GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); +GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); +GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); +GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); +GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state)); +GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state)); +GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void)); +GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value); +GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state)); +#if (GLUT_API_VERSION >= 2) +GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); +GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); +GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); +GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state)); +GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state)); +GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value)); +GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); +GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); +#if (GLUT_API_VERSION >= 3) +GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y)); +GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void)); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state)); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +GLUTAPI void APIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); +GLUTAPI void APIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); +GLUTAPI void APIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +GLUTAPI void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); +GLUTAPI GLfloat APIENTRY glutGetColor(int ndx, int component); +GLUTAPI void APIENTRY glutCopyColormap(int win); + +/* GLUT state retrieval sub-API. */ +GLUTAPI int APIENTRY glutGet(GLenum type); +GLUTAPI int APIENTRY glutDeviceGet(GLenum type); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +GLUTAPI int APIENTRY glutExtensionSupported(const char *name); +#endif +#if (GLUT_API_VERSION >= 3) +GLUTAPI int APIENTRY glutGetModifiers(void); +GLUTAPI int APIENTRY glutLayerGet(GLenum type); +#endif + +/* GLUT font sub-API */ +GLUTAPI void APIENTRY glutBitmapCharacter(void *font, int character); +GLUTAPI int APIENTRY glutBitmapWidth(void *font, int character); +GLUTAPI void APIENTRY glutStrokeCharacter(void *font, int character); +GLUTAPI int APIENTRY glutStrokeWidth(void *font, int character); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +GLUTAPI int APIENTRY glutBitmapLength(void *font, const unsigned char *string); +GLUTAPI int APIENTRY glutStrokeLength(void *font, const unsigned char *string); +#endif + +/* GLUT pre-built models sub-API */ +GLUTAPI void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); +GLUTAPI void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); +GLUTAPI void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +GLUTAPI void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +GLUTAPI void APIENTRY glutWireCube(GLdouble size); +GLUTAPI void APIENTRY glutSolidCube(GLdouble size); +GLUTAPI void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +GLUTAPI void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +GLUTAPI void APIENTRY glutWireDodecahedron(void); +GLUTAPI void APIENTRY glutSolidDodecahedron(void); +GLUTAPI void APIENTRY glutWireTeapot(GLdouble size); +GLUTAPI void APIENTRY glutSolidTeapot(GLdouble size); +GLUTAPI void APIENTRY glutWireOctahedron(void); +GLUTAPI void APIENTRY glutSolidOctahedron(void); +GLUTAPI void APIENTRY glutWireTetrahedron(void); +GLUTAPI void APIENTRY glutSolidTetrahedron(void); +GLUTAPI void APIENTRY glutWireIcosahedron(void); +GLUTAPI void APIENTRY glutSolidIcosahedron(void); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +GLUTAPI int APIENTRY glutVideoResizeGet(GLenum param); +GLUTAPI void APIENTRY glutSetupVideoResizing(void); +GLUTAPI void APIENTRY glutStopVideoResizing(void); +GLUTAPI void APIENTRY glutVideoResize(int x, int y, int width, int height); +GLUTAPI void APIENTRY glutVideoPan(int x, int y, int width, int height); + +/* GLUT debugging sub-API. */ +GLUTAPI void APIENTRY glutReportErrors(void); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +GLUTAPI void APIENTRY glutIgnoreKeyRepeat(int ignore); +GLUTAPI void APIENTRY glutSetKeyRepeat(int repeatMode); +GLUTAPI void APIENTRY glutForceJoystickFunc(void); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE ((GLenum) 0) +#define GLUT_GAME_MODE_POSSIBLE ((GLenum) 1) +#define GLUT_GAME_MODE_WIDTH ((GLenum) 2) +#define GLUT_GAME_MODE_HEIGHT ((GLenum) 3) +#define GLUT_GAME_MODE_PIXEL_DEPTH ((GLenum) 4) +#define GLUT_GAME_MODE_REFRESH_RATE ((GLenum) 5) +#define GLUT_GAME_MODE_DISPLAY_CHANGED ((GLenum) 6) + +GLUTAPI void APIENTRY glutGameModeString(const char *string); +GLUTAPI int APIENTRY glutEnterGameMode(void); +GLUTAPI void APIENTRY glutLeaveGameMode(void); +GLUTAPI int APIENTRY glutGameModeGet(GLenum mode); +#endif + +#ifdef __cplusplus +} + +#endif + +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#ifdef GLUT_DEFINED___CDECL +# undef GLUT_DEFINED___CDECL +# undef __cdecl +#endif + +#ifdef GLUT_DEFINED__CRTIMP +# undef GLUT_DEFINED__CRTIMP +# undef _CRTIMP +#endif + +#endif /* __glut_h__ */ diff --git a/Part2/PROJ_WIN/shared/freeglut/lib/freeglut.lib b/Part2/PROJ_WIN/shared/freeglut/lib/freeglut.lib new file mode 100644 index 0000000000000000000000000000000000000000..20b9efed4df70ff629c01a80c3eb66d0b4ce78bc GIT binary patch literal 34970 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 UpGdr1!~Ig$@uvdQYql@_ALctir2qf` literal 0 HcmV?d00001 diff --git a/Part2/PROJ_WIN/shared/freeglut/lib/glut32.lib b/Part2/PROJ_WIN/shared/freeglut/lib/glut32.lib new file mode 100644 index 0000000000000000000000000000000000000000..c25583d44b72d67e32a8bb20bd542bef43d01161 GIT binary patch literal 28728 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 aQ@(70_FJ{ta$aHXXZdbfjGh;mE&l_+^;^^c literal 0 HcmV?d00001 diff --git a/Part2/PROJ_WIN/shared/glew/LICENSE.txt b/Part2/PROJ_WIN/shared/glew/LICENSE.txt new file mode 100644 index 0000000..f707804 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/LICENSE.txt @@ -0,0 +1,73 @@ +The OpenGL Extension Wrangler Library +Copyright (C) 2002-2007, Milan Ikits +Copyright (C) 2002-2007, Marcelo E. Magallon +Copyright (C) 2002, Lev Povalahev +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* The name of the author may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + + +Mesa 3-D graphics library +Version: 7.0 + +Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Copyright (c) 2007 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. diff --git a/Part2/PROJ_WIN/shared/glew/README.txt b/Part2/PROJ_WIN/shared/glew/README.txt new file mode 100644 index 0000000..1b19c53 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/README.txt @@ -0,0 +1,18 @@ +See doc/index.html for more information. + +If you downloaded the tarball from the GLEW website, you just need to: + + Unix: + + make + + Windows: + + use the project file in build/vc6/ + +If you wish to build GLEW from scratch (update the extension data from +the net or add your own extension information), you need a Unix +environment (including wget, perl, and GNU make). The extension data +is regenerated from the top level source directory with: + + make extensions diff --git a/Part2/PROJ_WIN/shared/glew/TODO.txt b/Part2/PROJ_WIN/shared/glew/TODO.txt new file mode 100644 index 0000000..d2701b6 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/TODO.txt @@ -0,0 +1,12 @@ +Major: + - add support for windows mini-client drivers + - add windows installer (msi) + - separate build of static and shared object files (for mingw and + cygwin) + - start designing GLEW 2.0 + +Minor: + - make auto scripts work with text mode cygwin mounts + - add support for all SUN, MTX, and OML extensions + - make auto/Makefile more robust against auto/core/*~ mistakes + - web poll on separating glew, glxew and wglew diff --git a/Part2/PROJ_WIN/shared/glew/doc/advanced.html b/Part2/PROJ_WIN/shared/glew/doc/advanced.html new file mode 100644 index 0000000..4fd94ea --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/advanced.html @@ -0,0 +1,278 @@ + + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 1.5.7

GLEW Logo

+ + + + + + + + + + +
Download
Installation
Basic Usage
Advanced Usage
Credits & Copyright
Change Log
Project Page
Mailing Lists
Bug Tracker
+

+
+ + + + + +
Last Update: 11-03-10
+ OpenGL Logo + SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Automatic Code Generation

+ +

+Starting from release 1.1.0, the source code and parts of the +documentation are automatically generated from the extension +specifications in a two-step process. In the first step, +specification files from the OpenGL registry are downloaded and +parsed. Skeleton descriptors are created for each extension. These +descriptors contain all necessary information for creating the source +code and documentation in a simple and compact format, including the +name of the extension, url link to the specification, tokens, function +declarations, typedefs and struct definitions. In the second step, +the header files as well as the library and glewinfo source are +generated from the descriptor files. The code generation scripts are +located in the auto subdirectory. +

+ +

+The code generation scripts require GNU make, wget, and perl. On +Windows, the simplest way to get access to these tools is to install +Cygwin, but make sure that the +root directory is mounted in binary mode. The makefile in the +auto directory provides the following build targets: +

+ +
+ + + + + + + + + + + + + + + + +
make    Create the source files from the descriptors. If the +descriptors do not exist, create them from the spec files. If the spec +files do not exist, download them from the OpenGL repository.
make clean    Delete the source files.
make clobber    Delete the source files and the descriptors.
make destroy    Delete the source files, the descriptors, and the spec files.
make custom    Create the source files for the extensions +listed in auto/custom.txt. See "Custom Code +Generation" below for more details.
+
+ +

Adding a New Extension

+ +

+To add a new extension, create a descriptor file for the extension in +auto/core and rerun the code generation scripts by typing +make clean; make in the auto directory. +

+ +

+The format of the descriptor file is given below. Items in +brackets are optional. +

+ +

+<Extension Name>
+[<URL of Specification File>]
+    [<Token Name> <Token Value>]
+    [<Token Name> <Token Value>]
+    ...
+    [<Typedef>]
+    [<Typedef>]
+    ...
+    [<Function Signature>]
+    [<Function Signature>]
+    ...
+ +

+ + + +

+Take a look at one of the files in auto/core for an +example. Note that typedefs and function signatures should not be +terminated with a semicolon. +

+ +

Custom Code Generation

+

+Starting from GLEW 1.3.0, it is possible to control which extensions +to include in the libarary by specifying a list in +auto/custom.txt. This is useful when you do not need all the +extensions and would like to reduce the size of the source files. +Type make clean; make custom in the auto directory +to rerun the scripts with the custom list of extensions. +

+ +

+For example, the following is the list of extensions needed to get GLEW and the +utilities to compile. +

+ +

+WGL_ARB_extensions_string
+WGL_ARB_multisample
+WGL_ARB_pixel_format
+WGL_ARB_pbuffer
+WGL_EXT_extensions_string
+WGL_ATI_pixel_format_float
+WGL_NV_float_buffer
+

+ +

Multiple Rendering Contexts (GLEW MX)

+ +

Starting with release 1.2.0, thread-safe support for multiple +rendering contexts, possibly with different capabilities, is +available. Since this is not required by most users, it is not added +to the binary releases to maintain compatibility between different +versions. To include multi-context support, you have to do the +following:

+
    +
  1. Compile and use GLEW with the GLEW_MX preprocessor token +defined.
  2. +
  3. For each rendering context, create a GLEWContext object +that will be available as long as the rendering context exists.
  4. +
  5. Define a macro or function called glewGetContext() that +returns a pointer to the GLEWContext object associated with +the rendering context from which OpenGL/WGL/GLX calls are issued. This +dispatch mechanism is primitive, but generic. +
  6. Make sure that you call glewInit() after creating the +GLEWContext object in each rendering context. Note, that the +GLEWContext pointer returned by glewGetContext() has +to reside in global or thread-local memory. +
+ +

Note that according to the MSDN +WGL documentation, you have to initialize the entry points for +every rendering context that use pixel formats with different +capabilities For example, the pixel formats provided by the generic +software OpenGL implementation by Microsoft vs. the hardware +accelerated pixel formats have different capabilities. GLEW by +default ignores this requirement, and does not define per-context +entry points (you can however do this using the steps described +above). Assuming a global namespace for the entry points works in +most situations, because typically all hardware accelerated pixel +formats provide the same entry points and capabilities. This means +that unless you use the multi-context version of GLEW, you need to +call glewInit() only once in your program, or more precisely, +once per process.

+ +

Separate Namespace

+ +

+To avoid name clashes when linking with libraries that include the +same symbols, extension entry points are declared in a separate +namespace (release 1.1.0 and up). This is achieved by aliasing OpenGL +function names to their GLEW equivalents. For instance, +glFancyFunction is simply an alias to +glewFancyFunction. The separate namespace does not effect +token and function pointer definitions. +

+ +

Known Issues

+ +

+GLEW requires GLX 1.2 for compatibility with GLUT. +

+ + +
+ + diff --git a/Part2/PROJ_WIN/shared/glew/doc/basic.html b/Part2/PROJ_WIN/shared/glew/doc/basic.html new file mode 100644 index 0000000..5fb58f4 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/basic.html @@ -0,0 +1,282 @@ + + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 1.5.7

GLEW Logo

+ + + + + + + + + + +
Download
Installation
Basic Usage
Advanced Usage
Credits & Copyright
Change Log
Project Page
Mailing Lists
Bug Tracker
+

+
+ + + + + +
Last Update: 11-03-10
+ OpenGL Logo + SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Initializing GLEW

+

+First you need to create a valid OpenGL rendering context and call +glewInit() to initialize the extension entry points. If +glewInit() returns GLEW_OK, the initialization +succeeded and you can use the available extensions as well as core +OpenGL functionality. For example: +

+ +

+#include <GL/glew.h>
+#include <GL/glut.h>
+...
+glutInit(&argc, argv);
+glutCreateWindow("GLEW Test");
+GLenum err = glewInit();
+if (GLEW_OK != err)
+{
+  /* Problem: glewInit failed, something is seriously wrong. */
+  fprintf(stderr, "Error: %s\n", glewGetErrorString(err));
+  ...
+}
+fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));
+

+ +

Checking for Extensions

+ +

+Starting from GLEW 1.1.0, you can find out if a particular extension +is available on your platform by querying globally defined variables +of the form GLEW_{extension_name}: +

+ +

+if (GLEW_ARB_vertex_program)
+{
+  /* It is safe to use the ARB_vertex_program extension here. */
+  glGenProgramsARB(...);
+}
+

+ +

+In GLEW 1.0.x, a global structure was used for this task. To ensure +binary compatibility between releases, the struct was replaced with a +set of variables. +

+ +

+You can also check for core OpenGL functionality. For example, to +see if OpenGL 1.3 is supported, do the following: +

+ +

+if (GLEW_VERSION_1_3)
+{
+  /* Yay! OpenGL 1.3 is supported! */
+}
+

+ +

+In general, you can check if GLEW_{extension_name} or +GLEW_VERSION_{version} is true or false. +

+ +

+It is also possible to perform extension checks from string +input. Starting from the 1.3.0 release, use glewIsSupported +to check if the required core or extension functionality is +available: +

+ +

+if (glewIsSupported("GL_VERSION_1_4  GL_ARB_point_sprite"))
+{
+  /* Great, we have OpenGL 1.4 + point sprites. */
+}
+

+ +

+For extensions only, glewGetExtension provides a slower alternative +(GLEW 1.0.x-1.2.x). Note that in the 1.3.0 release +glewGetExtension was replaced with +glewIsSupported. +

+ +

+if (glewGetExtension("GL_ARB_fragment_program"))
+{
+  /* Looks like ARB_fragment_program is supported. */
+}
+

+ +

Experimental Drivers

+ +

+GLEW obtains information on the supported extensions from the graphics +driver. Experimental or pre-release drivers, however, might not +report every available extension through the standard mechanism, in +which case GLEW will report it unsupported. To circumvent this +situation, the glewExperimental global switch can be turned +on by setting it to GL_TRUE before calling +glewInit(), which ensures that all extensions with valid +entry points will be exposed. +

+ +

Platform Specific Extensions

+ +

+Platform specific extensions are separated into two header files: +wglew.h and glxew.h, which define the available +WGL and GLX extensions. To determine if a certain +extension is supported, query WGLEW_{extension name} or +GLXEW_{extension_name}. For example: +

+ +

+#include <GL/wglew.h>
+
+if (WGLEW_ARB_pbuffer)
+{
+  /* OK, we can use pbuffers. */
+}
+else
+{
+  /* Sorry, pbuffers will not work on this platform. */
+}
+

+ +

+Alternatively, use wglewIsSupported or +glxewIsSupported to check for extensions from a string: +

+ +

+if (wglewIsSupported("WGL_ARB_pbuffer"))
+{
+  /* OK, we can use pbuffers. */
+}
+

+ +

Utilities

+ +

+GLEW provides two command-line utilities: one for creating a list of +available extensions and visuals; and another for verifying extension +entry points. +

+ +

visualinfo: extensions and visuals

+ +

+visualinfo is an extended version of glxinfo. The +Windows version creates a file called visualinfo.txt, which +contains a list of available OpenGL, WGL, and GLU extensions as well +as a table of visuals aka. pixel formats. Pbuffer and MRT capable +visuals are also included. For additional usage information, type +visualinfo -h. +

+ +

glewinfo: extension verification utility

+ +

+glewinfo allows you to verify the entry points for the +extensions supported on your platform. The Windows version +reports the results to a text file called glewinfo.txt. The +Unix version prints the results to stdout. +

+ +

Windows usage:

+
glewinfo [-pf <id>]
+ +

where <id> is the pixel format id for which the +capabilities are displayed.

+ +

Unix usage:

+
glewinfo [-display <dpy>] [-visual <id>]
+ +

where <dpy> is the X11 display and <id> is +the visual id for which the capabilities are displayed.

+ + +
+ + diff --git a/Part2/PROJ_WIN/shared/glew/doc/credits.html b/Part2/PROJ_WIN/shared/glew/doc/credits.html new file mode 100644 index 0000000..2fd7ab7 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/credits.html @@ -0,0 +1,127 @@ + + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 1.5.7

GLEW Logo

+ + + + + + + + + + +
Download
Installation
Basic Usage
Advanced Usage
Credits & Copyright
Change Log
Project Page
Mailing Lists
Bug Tracker
+

+
+ + + + + +
Last Update: 11-03-10
+ OpenGL Logo + SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Credits

+ +

+GLEW was developed by Milan +Ikits and Marcelo +Magallon. They also perform occasional maintainance to make sure +that GLEW stays in mint condition. Aaron Lefohn, Joe Kniss, and Chris +Wyman were the first users and also assisted with the design and +debugging process. The acronym GLEW originates from Aaron Lefohn. +Pasi Kärkkäinen identified and fixed several problems with +GLX and SDL. Nate Robins created the wglinfo utility, to +which modifications were made by Michael Wimmer. +

+ +

Copyright

+ +

+GLEW is originally derived from the EXTGL project by Lev Povalahev. +The source code is licensed under the Modified BSD +License, the Mesa 3-D License (MIT +License), and the Khronos License (MIT +License). The automatic code generation scripts are released under +the GNU GPL. +

+ +
+ + diff --git a/Part2/PROJ_WIN/shared/glew/doc/glew.css b/Part2/PROJ_WIN/shared/glew/doc/glew.css new file mode 100644 index 0000000..1bb7dd1 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/glew.css @@ -0,0 +1,187 @@ +h1 +{ + color: black; + font: 23px "Verdana", "Arial", "Helvetica", sans-serif; + font-weight: bold; + text-align: center; + margin-top: 12px; + margin-bottom: 18px; +} + +h2 +{ + color: black; + font: 18px "Verdana", "Arial", "Helvetica", sans-serif; + font-weight: bold; + text-align: left; + padding-top: 0px; + padding-bottom: 0px; + margin-top: 18px; + margin-bottom: 12px; +} + +h3 +{ + color: black; + font: 17px "Verdana", "Arial", "Helvetica", sans-serif; + text-align: left; + padding-top: 0px; + padding-bottom: 0px; + margin-top: 12px; + margin-bottom: 12px; +} + +small +{ + font: 8pt "Verdana", "Arial", "Helvetica", sans-serif; +} + +body +{ + color: black; + font: 10pt "Verdana", "Arial", "Helvetica", sans-serif; + text-align: left; +} + +td +{ + color: black; + font: 10pt "Verdana", "Arial", "Helvetica", sans-serif; +} + +tt +{ + color: rgb(0,120,0); +} +/* color: maroon; */ + +td.num +{ + color: lightgrey; + font: 10pt "Verdana", "Arial", "Helvetica", sans-serif; + text-align: right; +} + +blockquote +{ + color: rgb(0,120,0); + background: #f0f0f0; + text-align: left; + margin-left: 40px; + margin-right: 40px; + margin-bottom: 6px; + padding-bottom: 0px; + margin-top: 0px; + padding-top: 0px; + border-top: 0px; + border-width: 0px; +} + +pre +{ + color: rgb(0,120,0); + background: #f0f0f0; + text-align: left; + margin-left: 40px; + margin-right: 40px; + margin-bottom: 6px; + padding-bottom: 0px; + margin-top: 0px; + padding-top: 0px; + border-top: 0px; + border-width: 0px; +} + +p +{ + color: black; + font: 10pt "Verdana", "Arial", "Helvetica", sans-serif; + text-align: left; + margin-bottom: 0px; + padding-bottom: 6px; + margin-top: 0px; + padding-top: 0px; +} + +p.right +{ + color: black; + font: 10pt "Verdana", "Arial", "Helvetica", sans-serif; + text-align: right; + margin-bottom: 0px; + padding-bottom: 6px; + margin-top: 0px; + padding-top: 0px; +} + +p.pre +{ + color: rgb(0,120,0); + font: 10pt "Courier New", "Courier", monospace; + background: #f0f0f0; + text-align: left; + margin-top: 0px; + margin-bottom: 6px; + margin-left: 40px; + margin-right: 40px; + padding-top: 0px; + padding-bottom: 6px; + padding-left: 6px; + padding-right: 6px; + border-top: 0px; + border-width: 0px; +} + +a:link +{ + color: rgb(0,0,139); + text-decoration: none; +} + +a:visited +{ + color: rgb(220,20,60); + text-decoration: none; +} + +a:hover +{ + color: rgb(220,20,60); + text-decoration: underline; + background: "#e8e8e8"; +} + +ul +{ + list-style-type: disc; + text-align: left; + margin-left: 40px; + margin-top: 0px; + padding-top: 0px; + margin-bottom: 0px; + padding-bottom: 3px; +} + +ul.none +{ + list-style-type: none; +} + +ol +{ + text-align: left; + margin-left: 40px; + margin-top: 0px; + padding-top: 0px; + margin-bottom: 0px; + padding-bottom: 12px; +} + +hr +{ + color: maroon; + background-color: maroon; + height: 1px; + border: 0px; + width: 80%; +} diff --git a/Part2/PROJ_WIN/shared/glew/doc/glew.html b/Part2/PROJ_WIN/shared/glew/doc/glew.html new file mode 100644 index 0000000..6090bfb --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/glew.html @@ -0,0 +1,530 @@ + + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 1.5.7

GLEW Logo

+ + + + + + + + + + +
Download
Installation
Basic Usage
Advanced Usage
Credits & Copyright
Change Log
Project Page
Mailing Lists
Bug Tracker
+

+
+ + + + + +
Last Update: 11-03-10
+ OpenGL Logo + SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Supported OpenGL Extensions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1 3DFX_multisample
2 3DFX_tbuffer
3 3DFX_texture_compression_FXT1

4 AMD_conservative_depth
5 AMD_debug_output
6 AMD_draw_buffers_blend
7 AMD_name_gen_delete
8 AMD_performance_monitor
9 AMD_seamless_cubemap_per_texture
10 AMD_shader_stencil_export
11 AMD_texture_texture4
12 AMD_transform_feedback3_lines_triangles
13 AMD_vertex_shader_tessellator

14 APPLE_aux_depth_stencil
15 APPLE_client_storage
16 APPLE_element_array
17 APPLE_fence
18 APPLE_float_pixels
19 APPLE_flush_buffer_range
20 APPLE_object_purgeable
21 APPLE_pixel_buffer
22 APPLE_rgb_422
23 APPLE_row_bytes
24 APPLE_specular_vector
25 APPLE_texture_range
26 APPLE_transform_hint
27 APPLE_vertex_array_object
28 APPLE_vertex_array_range
29 APPLE_vertex_program_evaluators
30 APPLE_ycbcr_422

31 ARB_ES2_compatibility
32 ARB_blend_func_extended
33 ARB_cl_event
34 ARB_color_buffer_float
35 ARB_compatibility
36 ARB_copy_buffer
37 ARB_debug_output
38 ARB_depth_buffer_float
39 ARB_depth_clamp
40 ARB_depth_texture
41 ARB_draw_buffers
42 ARB_draw_buffers_blend
43 ARB_draw_elements_base_vertex
44 ARB_draw_indirect
45 ARB_draw_instanced
46 ARB_explicit_attrib_location
47 ARB_fragment_coord_conventions
48 ARB_fragment_program
49 ARB_fragment_program_shadow
50 ARB_fragment_shader
51 ARB_framebuffer_object
52 ARB_framebuffer_sRGB
53 ARB_geometry_shader4
54 ARB_get_program_binary
55 ARB_gpu_shader5
56 ARB_gpu_shader_fp64
57 ARB_half_float_pixel
58 ARB_half_float_vertex
59 ARB_imaging
60 ARB_instanced_arrays
61 ARB_map_buffer_range
62 ARB_matrix_palette
63 ARB_multisample
64 ARB_multitexture
65 ARB_occlusion_query
66 ARB_occlusion_query2
67 ARB_pixel_buffer_object
68 ARB_point_parameters
69 ARB_point_sprite
70 ARB_provoking_vertex
71 ARB_robustness
72 ARB_sample_shading
73 ARB_sampler_objects
74 ARB_seamless_cube_map
75 ARB_separate_shader_objects
76 ARB_shader_bit_encoding
77 ARB_shader_objects
78 ARB_shader_precision
79 ARB_shader_stencil_export
80 ARB_shader_subroutine
81 ARB_shader_texture_lod
82 ARB_shading_language_100
83 ARB_shading_language_include
84 ARB_shadow
85 ARB_shadow_ambient
86 ARB_sync
87 ARB_tessellation_shader
88 ARB_texture_border_clamp
89 ARB_texture_buffer_object
90 ARB_texture_buffer_object_rgb32
91 ARB_texture_compression
92 ARB_texture_compression_bptc
93 ARB_texture_compression_rgtc
94 ARB_texture_cube_map
95 ARB_texture_cube_map_array
96 ARB_texture_env_add
97 ARB_texture_env_combine
98 ARB_texture_env_crossbar
99 ARB_texture_env_dot3
100 ARB_texture_float
101 ARB_texture_gather
102 ARB_texture_mirrored_repeat
103 ARB_texture_multisample
104 ARB_texture_non_power_of_two
105 ARB_texture_query_lod
106 ARB_texture_rectangle
107 ARB_texture_rg
108 ARB_texture_rgb10_a2ui
109 ARB_texture_swizzle
110 ARB_timer_query
111 ARB_transform_feedback2
112 ARB_transform_feedback3
113 ARB_transpose_matrix
114 ARB_uniform_buffer_object
115 ARB_vertex_array_bgra
116 ARB_vertex_array_object
117 ARB_vertex_attrib_64bit
118 ARB_vertex_blend
119 ARB_vertex_buffer_object
120 ARB_vertex_program
121 ARB_vertex_shader
122 ARB_vertex_type_2_10_10_10_rev
123 ARB_viewport_array
124 ARB_window_pos

125 ATIX_point_sprites
126 ATIX_texture_env_combine3
127 ATIX_texture_env_route
128 ATIX_vertex_shader_output_point_size

129 ATI_draw_buffers
130 ATI_element_array
131 ATI_envmap_bumpmap
132 ATI_fragment_shader
133 ATI_map_object_buffer
134 ATI_meminfo
135 ATI_pn_triangles
136 ATI_separate_stencil
137 ATI_shader_texture_lod
138 ATI_text_fragment_shader
139 ATI_texture_compression_3dc
140 ATI_texture_env_combine3
141 ATI_texture_float
142 ATI_texture_mirror_once
143 ATI_vertex_array_object
144 ATI_vertex_attrib_array_object
145 ATI_vertex_streams

146 EXT_422_pixels
147 EXT_Cg_shader
148 EXT_abgr
149 EXT_bgra
150 EXT_bindable_uniform
151 EXT_blend_color
152 EXT_blend_equation_separate
153 EXT_blend_func_separate
154 EXT_blend_logic_op
155 EXT_blend_minmax
156 EXT_blend_subtract
157 EXT_clip_volume_hint
158 EXT_cmyka
159 EXT_color_subtable
160 EXT_compiled_vertex_array
161 EXT_convolution
162 EXT_coordinate_frame
163 EXT_copy_texture
164 EXT_cull_vertex
165 EXT_depth_bounds_test
166 EXT_direct_state_access
167 EXT_draw_buffers2
168 EXT_draw_instanced
169 EXT_draw_range_elements
170 EXT_fog_coord
171 EXT_fragment_lighting
172 EXT_framebuffer_blit
173 EXT_framebuffer_multisample
174 EXT_framebuffer_object
175 EXT_framebuffer_sRGB
176 EXT_geometry_shader4
177 EXT_gpu_program_parameters
178 EXT_gpu_shader4
179 EXT_histogram
180 EXT_index_array_formats
181 EXT_index_func
182 EXT_index_material
183 EXT_index_texture
184 EXT_light_texture
185 EXT_misc_attribute
186 EXT_multi_draw_arrays
187 EXT_multisample
188 EXT_packed_depth_stencil
189 EXT_packed_float
190 EXT_packed_pixels
191 EXT_paletted_texture
192 EXT_pixel_buffer_object
193 EXT_pixel_transform
194 EXT_pixel_transform_color_table
195 EXT_point_parameters
196 EXT_polygon_offset
197 EXT_provoking_vertex
198 EXT_rescale_normal
199 EXT_scene_marker
200 EXT_secondary_color
201 EXT_separate_shader_objects
202 EXT_separate_specular_color
203 EXT_shader_image_load_store
204 EXT_shadow_funcs
205 EXT_shared_texture_palette
206 EXT_stencil_clear_tag
207 EXT_stencil_two_side
208 EXT_stencil_wrap
209 EXT_subtexture
210 EXT_texture
211 EXT_texture3D
212 EXT_texture_array
213 EXT_texture_buffer_object
214 EXT_texture_compression_dxt1
215 EXT_texture_compression_latc
216 EXT_texture_compression_rgtc
217 EXT_texture_compression_s3tc
218 EXT_texture_cube_map
219 EXT_texture_edge_clamp
220 EXT_texture_env
221 EXT_texture_env_add
222 EXT_texture_env_combine
223 EXT_texture_env_dot3
224 EXT_texture_filter_anisotropic
225 EXT_texture_integer
226 EXT_texture_lod_bias
227 EXT_texture_mirror_clamp
228 EXT_texture_object
229 EXT_texture_perturb_normal
230 EXT_texture_rectangle
231 EXT_texture_sRGB
232 EXT_texture_shared_exponent
233 EXT_texture_snorm
234 EXT_texture_swizzle
235 EXT_timer_query
236 EXT_transform_feedback
237 EXT_vertex_array
238 EXT_vertex_array_bgra
239 EXT_vertex_attrib_64bit
240 EXT_vertex_shader
241 EXT_vertex_weighting

242 GREMEDY_frame_terminator
243 GREMEDY_string_marker

244 HP_convolution_border_modes
245 HP_image_transform
246 HP_occlusion_test
247 HP_texture_lighting

248 IBM_cull_vertex
249 IBM_multimode_draw_arrays
250 IBM_rasterpos_clip
251 IBM_static_data
252 IBM_texture_mirrored_repeat
253 IBM_vertex_array_lists

254 INGR_color_clamp
255 INGR_interlace_read

256 INTEL_parallel_arrays
257 INTEL_texture_scissor

258 KTX_buffer_region

259 MESAX_texture_stack

260 MESA_pack_invert
261 MESA_resize_buffers
262 MESA_window_pos
263 MESA_ycbcr_texture

264 NVX_gpu_memory_info

265 NV_blend_square
266 NV_conditional_render
267 NV_copy_depth_to_color
268 NV_copy_image
269 NV_depth_buffer_float
270 NV_depth_clamp
271 NV_depth_range_unclamped
272 NV_evaluators
273 NV_explicit_multisample
274 NV_fence
275 NV_float_buffer
276 NV_fog_distance
277 NV_fragment_program
278 NV_fragment_program2
279 NV_fragment_program4
280 NV_fragment_program_option
281 NV_framebuffer_multisample_coverage
282 NV_geometry_program4
283 NV_geometry_shader4
284 NV_gpu_program4
285 NV_gpu_program5
286 NV_gpu_program_fp64
287 NV_gpu_shader5
288 NV_half_float
289 NV_light_max_exponent
290 NV_multisample_coverage
291 NV_multisample_filter_hint
292 NV_occlusion_query
293 NV_packed_depth_stencil
294 NV_parameter_buffer_object
295 NV_parameter_buffer_object2
296 NV_pixel_data_range
297 NV_point_sprite
298 NV_present_video
299 NV_primitive_restart
300 NV_register_combiners
301 NV_register_combiners2
302 NV_shader_buffer_load
303 NV_tessellation_program5
304 NV_texgen_emboss
305 NV_texgen_reflection
306 NV_texture_barrier
307 NV_texture_compression_vtc
308 NV_texture_env_combine4
309 NV_texture_expand_normal
310 NV_texture_rectangle
311 NV_texture_shader
312 NV_texture_shader2
313 NV_texture_shader3
314 NV_transform_feedback
315 NV_transform_feedback2
316 NV_vdpau_interop
317 NV_vertex_array_range
318 NV_vertex_array_range2
319 NV_vertex_attrib_integer_64bit
320 NV_vertex_buffer_unified_memory
321 NV_vertex_program
322 NV_vertex_program1_1
323 NV_vertex_program2
324 NV_vertex_program2_option
325 NV_vertex_program3
326 NV_vertex_program4

327 OES_byte_coordinates
328 OES_compressed_paletted_texture
329 OES_read_format
330 OES_single_precision

331 OML_interlace
332 OML_resample
333 OML_subsample

334 PGI_misc_hints
335 PGI_vertex_hints

336 REND_screen_coordinates

337 S3_s3tc

338 SGIS_color_range
339 SGIS_detail_texture
340 SGIS_fog_function
341 SGIS_generate_mipmap
342 SGIS_multisample
343 SGIS_pixel_texture
344 SGIS_point_line_texgen
345 SGIS_sharpen_texture
346 SGIS_texture4D
347 SGIS_texture_border_clamp
348 SGIS_texture_edge_clamp
349 SGIS_texture_filter4
350 SGIS_texture_lod
351 SGIS_texture_select

352 SGIX_async
353 SGIX_async_histogram
354 SGIX_async_pixel
355 SGIX_blend_alpha_minmax
356 SGIX_clipmap
357 SGIX_convolution_accuracy
358 SGIX_depth_texture
359 SGIX_flush_raster
360 SGIX_fog_offset
361 SGIX_fog_texture
362 SGIX_fragment_specular_lighting
363 SGIX_framezoom
364 SGIX_interlace
365 SGIX_ir_instrument1
366 SGIX_list_priority
367 SGIX_pixel_texture
368 SGIX_pixel_texture_bits
369 SGIX_reference_plane
370 SGIX_resample
371 SGIX_shadow
372 SGIX_shadow_ambient
373 SGIX_sprite
374 SGIX_tag_sample_buffer
375 SGIX_texture_add_env
376 SGIX_texture_coordinate_clamp
377 SGIX_texture_lod_bias
378 SGIX_texture_multi_buffer
379 SGIX_texture_range
380 SGIX_texture_scale_bias
381 SGIX_vertex_preclip
382 SGIX_vertex_preclip_hint
383 SGIX_ycrcb

384 SGI_color_matrix
385 SGI_color_table
386 SGI_texture_color_table

387 SUNX_constant_data

388 SUN_convolution_border_modes
389 SUN_global_alpha
390 SUN_mesh_array
391 SUN_read_video_pixels
392 SUN_slice_accum
393 SUN_triangle_list
394 SUN_vertex

395 WIN_phong_shading
396 WIN_specular_fog
397 WIN_swap_hint
+ +
+ + diff --git a/Part2/PROJ_WIN/shared/glew/doc/glew.png b/Part2/PROJ_WIN/shared/glew/doc/glew.png new file mode 100644 index 0000000000000000000000000000000000000000..d46550f194988fe99362932b29f48aeded97111e GIT binary patch literal 9298 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 SQv}cd07nix*}k?RB>f+9$xcWB literal 0 HcmV?d00001 diff --git a/Part2/PROJ_WIN/shared/glew/doc/glew.txt b/Part2/PROJ_WIN/shared/glew/doc/glew.txt new file mode 100644 index 0000000..31a31d3 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/glew.txt @@ -0,0 +1,28 @@ +The OpenGL Extension Wrangler Library +Copyright (C) 2002-2008, Milan Ikits +Copyright (C) 2002-2008, Marcelo E. Magallon +Copyright (C) 2002, Lev Povalahev +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* The name of the author may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Part2/PROJ_WIN/shared/glew/doc/glxew.html b/Part2/PROJ_WIN/shared/glew/doc/glxew.html new file mode 100644 index 0000000..0f0c340 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/glxew.html @@ -0,0 +1,171 @@ + + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 1.5.7

GLEW Logo

+ + + + + + + + + + +
Download
Installation
Basic Usage
Advanced Usage
Credits & Copyright
Change Log
Project Page
Mailing Lists
Bug Tracker
+

+
+ + + + + +
Last Update: 11-03-10
+ OpenGL Logo + SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Supported GLX Extensions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1 3DFX_multisample

2 AMD_gpu_association

3 ARB_create_context
4 ARB_create_context_profile
5 ARB_create_context_robustness
6 ARB_fbconfig_float
7 ARB_framebuffer_sRGB
8 ARB_get_proc_address
9 ARB_multisample
10 ARB_vertex_buffer_object

11 ATI_pixel_format_float
12 ATI_render_texture

13 EXT_create_context_es2_profile
14 EXT_fbconfig_packed_float
15 EXT_framebuffer_sRGB
16 EXT_import_context
17 EXT_scene_marker
18 EXT_swap_control
19 EXT_texture_from_pixmap
20 EXT_visual_info
21 EXT_visual_rating

22 INTEL_swap_event

23 MESA_agp_offset
24 MESA_copy_sub_buffer
25 MESA_pixmap_colormap
26 MESA_release_buffers
27 MESA_set_3dfx_mode

28 NV_copy_image
29 NV_float_buffer
30 NV_multisample_coverage
31 NV_present_video
32 NV_swap_group
33 NV_vertex_array_range
34 NV_video_output

35 OML_swap_method
36 OML_sync_control

37 SGIS_blended_overlay
38 SGIS_color_range
39 SGIS_multisample
40 SGIS_shared_multisample

41 SGIX_fbconfig
42 SGIX_hyperpipe
43 SGIX_pbuffer
44 SGIX_swap_barrier
45 SGIX_swap_group
46 SGIX_video_resize
47 SGIX_visual_select_group

48 SGI_cushion
49 SGI_make_current_read
50 SGI_swap_control
51 SGI_video_sync

52 SUN_get_transparent_index
53 SUN_video_resize
+ +
+ + diff --git a/Part2/PROJ_WIN/shared/glew/doc/gpl.txt b/Part2/PROJ_WIN/shared/glew/doc/gpl.txt new file mode 100644 index 0000000..b7b5f53 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/gpl.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Part2/PROJ_WIN/shared/glew/doc/index.html b/Part2/PROJ_WIN/shared/glew/doc/index.html new file mode 100644 index 0000000..66ec21d --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/index.html @@ -0,0 +1,205 @@ + + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 1.5.7

GLEW Logo

+ + + + + + + + + + +
Download
Installation
Basic Usage
Advanced Usage
Credits & Copyright
Change Log
Project Page
Mailing Lists
Bug Tracker
+

+
+ + + + + +
Last Update: 11-03-10
+ OpenGL Logo + SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

+The OpenGL Extension Wrangler Library (GLEW) is a cross-platform +open-source C/C++ extension loading library. GLEW provides efficient +run-time mechanisms for determining which OpenGL extensions are +supported on the target platform. OpenGL core and extension +functionality is exposed in a single header file. GLEW has been +tested on a variety of operating systems, including Windows, Linux, +Mac OS X, FreeBSD, Irix, and Solaris. +

+ +

Download Center

+

+GLEW is distributed +as source and precompiled binaries. The latest release is +1.5.7 +[09-07-10]: +

+

+

+

+ + + +
+ + + + + + + + + + + + + + + +
Source +ZIP |  +TGZ
Binaries +Windows 32-bit |  +64-bit  +
+
+

+

+An up-to-date copy is also available from the project +repository: +

+

+svn co https://glew.svn.sourceforge.net/svnroot/glew/trunk/glew glew +

+ +

Supported Extensions

+

+The latest release contains support for OpenGL 3.3, OpenGL 4.1 and the following extensions: +

+ + +

News

+
    +
  • [11-03-10] GLEW 1.5.7 fixes minor bugs and adds one new extension
  • +
  • [09-07-10] GLEW 1.5.6 adds suport for OpenGL 4.1, fixes bugs
  • +
  • [07-13-10] GLEW 1.5.5 fixes minor bugs and adds new extensions
  • +
  • [04-21-10] GLEW 1.5.4 adds support for OpenGL 3.3, OpenGL 4.0 and new extensions, fixes bugs
  • +
  • [02-28-10] GLEW 1.5.3 fixes minor bugs and adds three new extensions
  • +
  • [12-31-09] GLEW 1.5.2 adds support for OpenGL 3.1, OpenGL 3.2 and new extensions
  • +
  • [11-03-08] GLEW 1.5.1 adds support for OpenGL 3.0 and 31 new extensions
  • +
  • [12-27-07] GLEW 1.5.0 is released under less restrictive licenses
  • +
  • [04-27-07] GLEW 1.4.0 is released
  • +
  • [03-08-07] GLEW is included in the NVIDIA OpenGL SDK
  • +
  • [03-04-07] GLEW 1.3.6 is released
  • +
  • [02-28-07] Repository is migrated to SVN
  • +
  • [02-25-07] GLEW is included in the OpenGL SDK
  • +
  • [11-21-06] GLEW 1.3.5 adds OpenGL 2.1 and NVIDIA G80 extensions
  • +
  • [03-04-06] GLEW 1.3.4 adds support for five new extensions
  • +
  • [05-16-05] GLEW 1.3.3 is released
  • +
  • [03-16-05] GLEW 1.3.2 adds support for GL_APPLE_pixel_buffer
  • +
  • [02-11-05] gljava and sdljava provide a Java binding to OpenGL via GLEW
  • +
  • [02-02-05] GLEW 1.3.1 adds support for GL_EXT_framebuffer_object
  • +
  • [01-04-05] GLEW 1.3.0 adds core OpenGL 2.0 support plus many enhancements
  • +
  • [12-22-04] GLEWpy Python wrapper announced
  • +
  • [12-12-04] Mailing lists created on sourceforge
  • +
  • [12-06-04] GLEW 1.2.5 adds new extensions and support for FreeBSD
  • +
+ +

Links

+ + + +
+ + diff --git a/Part2/PROJ_WIN/shared/glew/doc/install.html b/Part2/PROJ_WIN/shared/glew/doc/install.html new file mode 100644 index 0000000..370757d --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/install.html @@ -0,0 +1,228 @@ + + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 1.5.7

GLEW Logo

+ + + + + + + + + + +
Download
Installation
Basic Usage
Advanced Usage
Credits & Copyright
Change Log
Project Page
Mailing Lists
Bug Tracker
+

+
+ + + + + +
Last Update: 11-03-10
+ OpenGL Logo + SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Installation

+ +

+To use the shared library version of GLEW, you need to copy the +headers and libraries into their destination directories. On Windows +this typically boils down to copying: +

+ + + + + + + + + + +
bin/glew32.dll    to    %SystemRoot%/system32
lib/glew32.lib    to    {VC Root}/Lib
include/GL/glew.h    to    {VC Root}/Include/GL
include/GL/wglew.h    to    {VC Root}/Include/GL
+

+

+ +

+where {VC Root} is the Visual C++ root directory, typically +C:/Program Files/Microsoft Visual Studio/VC98 for Visual +Studio 6.0 or C:/Program Files/Microsoft Visual +Studio .NET 2003/Vc7/PlatformSDK for Visual Studio .NET. +

+ +

+On Unix, typing make install will attempt to install GLEW +into /usr/include/GL and /usr/lib. You can +customize the installation target via the GLEW_DEST +environment variable if you do not have write access to these +directories. +

+ +

Building Your Project with GLEW

+

+There are two ways to build your project with GLEW. +

+

Including the source files / project file

+

+The simpler but less flexible way is to include glew.h and +glew.c into your project. On Windows, you also need to +define the GLEW_STATIC preprocessor token when building a +static library or executable, and the GLEW_BUILD preprocessor +token when building a dll. You also need to replace +<GL/gl.h> and <GL/glu.h> with +<glew.h> in your code and set the appropriate include +flag (-I) to tell the compiler where to look for it. For +example: +

+

+#include <glew.h>
+#include <GL/glut.h>
+<gl, glu, and glut functionality is available here>
+

+

+Depending on where you put glew.h you may also need to change +the include directives in glew.c. Note that if you are using +GLEW together with GLUT, you have to include glew.h first. +In addition, glew.h includes glu.h, so you do not +need to include it separately. +

+

+On Windows, you also have the option of adding the supplied project +file glew_static.dsp to your workspace (solution) and compile +it together with your other projects. In this case you also need to +change the GLEW_BUILD preprocessor constant to +GLEW_STATIC when building a static library or executable, +otherwise you get build errors. +

+

+Note that GLEW does not use the C +runtime library, so it does not matter which version (single-threaded, +multi-threaded or multi-threaded DLL) it is linked with (without +debugging information). It is, however, always a good idea to compile all +your projects including GLEW with the same C runtime settings. +

+ +

Using GLEW as a shared library

+ +

+Alternatively, you can use the provided project files / makefile to +build a separate shared library you can link your projects with later. +In this case the best practice is to install glew.h, +glew32.lib, and glew32.dll / libGLEW.so to +where the OpenGL equivalents gl.h, opengl32.lib, and +opengl32.dll / libGL.so are located. Note that you +need administrative privileges to do this. If you do not have +administrator access and your system administrator will not do it for +you, you can install GLEW into your own lib and include subdirectories +and tell the compiler where to find it. Then you can just replace +<GL/gl.h> with <GL/glew.h> in your +program: +

+ +

+#include <GL/glew.h>
+#include <GL/glut.h>
+<gl, glu, and glut functionality is available here>
+

+ +

+or: +

+ +

+#include <GL/glew.h>
+<gl and glu functionality is available here>
+

+ +

+Remember to link your project with glew32.lib, +glu32.lib, and opengl32.lib on Windows and +libGLEW.so, libGLU.so, and libGL.so on +Unix (-lGLEW -lGLU -lGL). +

+ +

+It is important to keep in mind that glew.h includes neither +windows.h nor gl.h. Also, GLEW will warn you by +issuing a preprocessor error in case you have included gl.h, +glext.h, or glATI.h before glew.h. +

+ + +
+ + diff --git a/Part2/PROJ_WIN/shared/glew/doc/khronos.txt b/Part2/PROJ_WIN/shared/glew/doc/khronos.txt new file mode 100644 index 0000000..ffc271c --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/khronos.txt @@ -0,0 +1,20 @@ +Copyright (c) 2007 The Khronos Group Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and/or associated documentation files (the +"Materials"), to deal in the Materials without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Materials, and to +permit persons to whom the Materials are furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Materials. + +THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. diff --git a/Part2/PROJ_WIN/shared/glew/doc/log.html b/Part2/PROJ_WIN/shared/glew/doc/log.html new file mode 100644 index 0000000..2a2d106 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/log.html @@ -0,0 +1,776 @@ + + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 1.5.7

GLEW Logo

+ + + + + + + + + + +
Download
Installation
Basic Usage
Advanced Usage
Credits & Copyright
Change Log
Project Page
Mailing Lists
Bug Tracker
+

+
+ + + + + +
Last Update: 11-03-10
+ OpenGL Logo + SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Change Log

+ +
+
    +
  • 1.5.7 [11-03-10] +
      +
    • New extension: +
        +
      • GL_NVX_gpu_memory_info +
      +
    • Bug fixes: +
        +
      • Improved mingw32 build support +
      • Improved cygwin build support +
      • glGetPointervEXT fix +
      • Add GLEW_VERSION_1_2_1 +
      +
    +
+ +
+
    +
  • 1.5.6 [09-07-10] +
      +
    • New features: +
        +
      • Support for OpenGL 4.1 +
      +
    • New extensions: +
        +
      • GL_ARB_ES2_compatibility +
      • GL_ARB_cl_event +
      • GL_ARB_debug_output +
      • GL_ARB_get_program_binary +
      • GL_ARB_robustness +
      • GL_ARB_separate_shader_objects +
      • GL_ARB_shader_precision +
      • GL_ARB_shader_stencil_export +
      • GL_ARB_vertex_attrib_64bit +
      • GL_ARB_viewport_array +
      • GLX_ARB_create_context_robustness +
      • GLX_EXT_create_context_es2_profile +
      • WGL_ARB_create_context_robustness +
      • WGL_EXT_create_context_es2_profile +
      +
    +
+ +
+
    +
  • 1.5.5 [07-13-10] +
      +
    • New extensions: +
        +
      • GL_AMD_debug_output +
      • GL_AMD_name_gen_delete +
      • GL_AMD_transform_feedback3_lines_triangles +
      • GL_NV_multisample_coverage +
      • GL_NV_vdpau_interop +
      • GLX_AMD_gpu_association +
      • GLX_NV_multisample_coverage +
      • WGL_NV_multisample_coverage +
      +
    • Bug fixes: +
        +
      • Compilation issue with GLX_SGI_video_sync +
      • OpenGL 4.0 double-precision uniform functions added +
      • Constness of glPointParameterfvARB and glPointParameterfvEXT +
      • Added glVertexAttribDivisor +
      • Compilation issue with Nvidia GLX headers +
      +
    +
+ +
+
    +
  • 1.5.4 [04-21-10] +
      +
    • New features: +
        +
      • Support for OpenGL 3.3 +
      • Support for OpenGL 4.0 +
      +
    • New extensions: +
        +
      • GL_AMD_conservative_depth +
      • GL_ARB_blend_func_extended +
      • GL_ARB_draw_indirect +
      • GL_ARB_explicit_attrib_location +
      • GL_ARB_gpu_shader5 +
      • GL_ARB_gpu_shader_fp64 +
      • GL_ARB_occlusion_query2 +
      • GL_ARB_sampler_objects +
      • GL_ARB_shader_bit_encoding +
      • GL_ARB_shader_subroutine +
      • GL_ARB_shading_language_include +
      • GL_ARB_tessellation_shader +
      • GL_ARB_texture_buffer_object_rgb32 +
      • GL_ARB_texture_compression_bptc +
      • GL_ARB_texture_rgb10_a2ui +
      • GL_ARB_texture_swizzle +
      • GL_ARB_timer_query +
      • GL_ARB_transform_feedback2 +
      • GL_ARB_transform_feedback3 +
      • GL_ARB_vertex_type_2_10_10_10_rev +
      • GL_EXT_shader_image_load_store +
      • GL_EXT_vertex_attrib_64bit +
      • GL_NV_gpu_program5 +
      • GL_NV_gpu_program_fp64 +
      • GL_NV_gpu_shader5 +
      • GL_NV_tessellation_program5 +
      • GL_NV_vertex_attrib_integer_64bit +
      • GLX_ARB_vertex_buffer_object +
      +
    • Bug fixes: +
        +
      • Parameter constness fix for glPointParameteriv and glPointParameterfv +
      +
    +
+ +
+
    +
  • 1.5.3 [02-28-10] +
      +
    • New extensions: +
        +
      • GLX_INTEL_swap_event +
      • GL_AMD_seamless_cubemap_per_texture +
      • GL_AMD_shader_stencil_export +
      +
    • Bug fixes: +
        +
      • Correct version detection for GL 3.1 and 3.2 +
      • Missing 3.1 enumerants +
      • Add glew.pc +
      +
    +
+ +
+
    +
  • 1.5.2 [12-31-09] +
      +
    • New features: +
        +
      • Support for OpenGL 3.1 +
      • Support for OpenGL 3.2 +
      +
    • New extensions: +
        +
      • GL_AMD_draw_buffers_blend +
      • GL_AMD_performance_monitor +
      • GL_AMD_texture_texture4 +
      • GL_AMD_vertex_shader_tessellator +
      • GL_APPLE_aux_depth_stencil +
      • GL_APPLE_object_purgeable +
      • GL_APPLE_rgb_422 +
      • GL_APPLE_row_bytes +
      • GL_APPLE_vertex_program_evaluators +
      • GL_ARB_compatibility +
      • GL_ARB_copy_buffer +
      • GL_ARB_depth_clamp +
      • GL_ARB_draw_buffers_blend +
      • GL_ARB_draw_elements_base_vertex +
      • GL_ARB_fragment_coord_conventions +
      • GL_ARB_provoking_vertex +
      • GL_ARB_sample_shading +
      • GL_ARB_seamless_cube_map +
      • GL_ARB_shader_texture_lod +
      • GL_ARB_sync +
      • GL_ARB_texture_cube_map_array +
      • GL_ARB_texture_gather +
      • GL_ARB_texture_multisample +
      • GL_ARB_texture_query_lod +
      • GL_ARB_uniform_buffer_object +
      • GL_ARB_vertex_array_bgra +
      • GL_ATI_meminfo +
      • GL_EXT_provoking_vertex +
      • GL_EXT_separate_shader_objects +
      • GL_EXT_texture_snorm +
      • GL_NV_copy_image +
      • GL_NV_parameter_buffer_object2 +
      • GL_NV_shader_buffer_load +
      • GL_NV_texture_barrier +
      • GL_NV_transform_feedback2 +
      • GL_NV_vertex_buffer_unified_memory +
      • WGL_AMD_gpu_association +
      • WGL_ARB_create_context_profile +
      • WGL_NV_copy_image +
      • GLX_ARB_create_context_profile +
      • GLX_EXT_swap_control +
      • GLX_NV_copy_image +
      +
    • Bug fixes: +
        +
      • DOS line endings for windows .zip archives only. +
      • glTransformFeedbackVaryings arguments. +
      • Resource leak in glewinfo and visualinfo tools. +
      • WIN32_LEAN_AND_MEAN preprocessor pollution. +
      • Fixed version detection for GLEW_VERSION_2_1 and GLEW_VERSION_3_0. +
      • MesaGLUT glut.h GLAPIENTRY dependency. +
      • glFramebufferTextureLayer correction. +
      • OSX compiler warnings resolved. +
      • Cygwin linking to opengl32 by default, rather than X11 OpenGL. +
      • SnowLeopard (OSX 10.6) gl.h detection. +
      • Use $(STRIP) consistently. +
      +
    +
+ +
+
    +
  • 1.5.1 [11-03-08] +
      +
    • New features: +
        +
      • Support for OpenGL 3.0 +
      +
    • New extensions: +
        +
      • GL_ARB_depth_buffer_float +
      • GL_ARB_draw_instance, +
      • GL_ARB_framebuffer_object +
      • GL_ARB_framebuffer_sRGB +
      • GL_ARB_geometry_shader4 +
      • GL_ARB_half_float_pixel +
      • GL_ARB_half_float_vertex +
      • GL_ARB_instanced_arrays +
      • GL_ARB_map_buffer_range +
      • GL_ARB_texture_buffer_object +
      • GL_ARB_texture_compression_rgtc +
      • GL_ARB_vertex_array_object +
      • GL_EXT_direct_state_access +
      • GL_EXT_texture_swizzle +
      • GL_EXT_transform_feedback +
      • GL_EXT_vertex_array_bgra +
      • GL_NV_conditional_render +
      • GL_NV_explicit_multisample +
      • GL_NV_present_video +
      • GL_SGIS_point_line_texgen +
      • GL_SGIX_convolution_accuracy +
      • WGL_ARB_create_context +
      • WGL_ARB_framebuffer_sRGB +
      • WGL_NV_present_video +
      • WGL_NV_swap_group +
      • WGL_NV_video_output +
      • GLX_ARB_create_context +
      • GLX_ARB_framebuffer_sRGB +
      • GLX_NV_present_video +
      • GLX_NV_swap_group +
      • GLX_NV_video_output +
      +
    • Bug fixes: +
        +
      • Licensing issues with documentation +
      • Problems with long long and _MSC_VER on MINGW +
      • Incorrect parameter for glGetUniformLocation +
      • glewGetExtension fails on last entry +
      • Incomplete GL_NV_texture_shader tokens +
      • Scripting problems on Cygwin +
      • Incorrect definition for GLint on OS X +
      +
    +
+ +
+
    +
  • 1.5.0 [12-27-07] +
      +
    • New features: +
        +
      • Licensing change (BSD, Mesa 3-D, Khronos) +
      • Switch to using registry on www.opengl.org +
      • Support for major and minor version strings +
      +
    • New extensions: +
        +
      • GL_APPLE_flush_buffer_range +
      • GL_GREMEDY_frame_terminator +
      • GLX_EXT_texture_from_pixmap +
      +
    • Bug fixes: +
        +
      • Incorrent 64-bit type definitions +
      • Do not strip static library on install +
      • Missing tokens in GL_ATI_fragment_shader and WGL_{ARB,EXT}_make_current_read +
      • Missing tokens in GL_VERSION_2_1 +
      • Missing functions in GL_VERSION_1_4 +
      • Incorrect parameter type for glXCopyContext +
      +
    +
+
+
    +
  • 1.4.0 [04-27-07] +
      +
    • New features: +
        +
      • Extension variables are declared const to avoid possible +corruption of their values +
      +
    • New extensions: +
        +
      • GL_NV_depth_range_unclamped +
      +
    • Bug fixes: +
        +
      • Incorrect tokens in GL_NV_transform_feedback and GL_NV_framebuffer_multisample_coverage +
      • Incorrect function names in GL_EXT_gpu_program_parameters +
      • Missing tokens in GL_EXT_framebuffer_multisample +
      • GLEW_MX initialization problem for WGL_{ARB,EXT}_extensions_string +
      +
    +
+
+
    +
  • 1.3.6 [03-04-07] +
      +
    • New extensions: +
        +
      • GL_ATI_shader_texture_lod +
      • GL_EXT_gpu_program_parameters +
      • GL_NV_geometry_shader4 +
      • WGL_NV_gpu_affinity +
      • GLX_SGIX_hyperpipe +
      +
    • Bug fixes: +
        +
      • Missing include guards in glxew.h +
      • Makefile and install problems for Cygwin builds +
      • Install problem for Linux AMD64 builds +
      • Incorrent token in GL_ATI_texture_compression_3dc +
      • Missing tokens from GL_ATIX_point_sprites +
      +
    +
+
+
    +
  • 1.3.5 [11-21-06] +
      +
    • New features: +
        +
      • Support for core OpenGL 2.1 +
      • Debug support for glewIsSupported +
      +
    • New extensions: +
        +
      • GL_EXT_bindable_uniform +
      • GL_EXT_draw_buffers2 +
      • GL_EXT_draw_instanced +
      • GL_EXT_framebuffer_sRGB +
      • GL_EXT_geometry_shader4 +
      • GL_EXT_gpu_shader4 +
      • GL_EXT_packed_float +
      • GL_EXT_texture_array +
      • GL_EXT_texture_buffer_object +
      • GL_EXT_texture_compression_latc +
      • GL_EXT_texture_compression_rgtc +
      • GL_EXT_texture_integer +
      • GL_EXT_texture_shared_exponent +
      • GL_EXT_timer_query +
      • GL_NV_depth_buffer_float +
      • GL_NV_fragment_program4 +
      • GL_NV_framebuffer_multisample_coverage +
      • GL_NV_geometry_program4 +
      • GL_NV_gpu_program4 +
      • GL_NV_parameter_buffer_object +
      • GL_NV_transform_feedback +
      • GL_NV_vertex_program4 +
      • GL_OES_byte_coordinates +
      • GL_OES_compressed_paletted_texture +
      • GL_OES_read_format +
      • GL_OES_single_precision +
      • WGL_EXT_pixel_format_packed_float +
      • WGL_EXT_framebuffer_sRGB +
      • GLX_EXT_fbconfig_packed_float +
      • GLX_EXT_framebuffer_sRGB +
      +
    • Bug fixes: +
        +
      • Wrong GLXContext definition on Solaris +
      • Makefile problem for parallel builds +
      +
    +
+
+
    +
  • 1.3.4 [03-04-06] +
      +
    • New extensions: +
        +
      • GL_EXT_framebuffer_blit +
      • GL_EXT_framebuffer_multisample +
      • GL_EXT_packed_depth_stencil +
      • GL_MESAX_texture_stack +
      • WGL_3DL_stereo_control +
      +
    +
      +
    • Bug fixes: +
        +
      • glBlendEquation missing from GL_ARB_imaging +
      • Wrong APIENTRY definition for Cygwin +
      • Incorrect OS X OpenGL types +
      • Unix 64-bit installation patch +
      +
    +
+
+
    +
  • 1.3.3 [05-16-05] +
      +
    • New feature: +
        +
      • Code generation option to split source into multiple files +
      +
    +
      +
    • Bug fixes: +
        +
      • OpenGL 2.0 core initialization problems +
      • Wrong value for token GL_SHADER_TYPE +
      • Missing tokens in GL_ATI_fragment_shader +
      • Missing entry points in GL_ARB_transpose_matrix +
      +
    +
+
+
    +
  • 1.3.2 [03-16-05] +
      +
    • New extension: +
        +
      • GL_APPLE_pixel_buffer +
      +
    • Bug fixes: +
        +
      • Missing OpenGL 2.0 entry points +
      • Missing tokens in GL_SGIX_shadow +
      • MinGW makefile problem +
      • Check for incorrect OpenGL version string on SiS hardware +
      • Documentation update to meet the HTML 4.01 Transitional specification +
      +
    +
+
+
    +
  • 1.3.1 [02-02-05] +
      +
    • New features: +
        +
      • Consistent Unix and Windows versioning +
      +
    • New extensions: +
        +
      • GL_EXT_framebuffer_object +
      • GL_ARB_pixel_buffer_object +
      +
    • Bug fixes: +
        +
      • Missing OpenGL 2.0 tokens +
      • Incorrect typedefs (GLhandleARB and GLhalf) +
      • Borland compiler problems +
      +
    +
+
+
    +
  • 1.3.0 [01-04-05] +
      +
    • New features: +
        +
      • Support for core OpenGL 2.0 +
      • glewIsSupported provides efficient string-based extension checks +
      • Custom code generation from a list of extensions +
      • Makefile changes +
      +
    • New extensions: +
        +
      • WGL_ATI_render_texture_rectangle +
      +
    • Bug fixes: +
        +
      • Incorrect function signature in OpenGL 1.5 core +
      +
    +
+
+
    +
  • 1.2.5 [12-06-04] +
      +
    • New extensions: +
        +
      • GL_ATI_texture_compression_3dc +
      • GL_EXT_Cg_shader +
      • GL_EXT_draw_range_elements +
      • GL_KTX_buffer_region +
      +
    • Bug fixes: +
        +
      • OpenGL version detection bug +
      • Problems with wxWindows and MinGW compilation +
      • visualinfo compilation problem with GLEW_MX specified +
      • Wrong token name in OpenGL 1.5 core +
      +
    • Support for FreeBSD +
    +
+
+
    +
  • 1.2.4 [09-06-04] +
      +
    • Added ARB_draw_buffers and ARB_texture_rectangle +
    • Fixed bug in ARB_shader_objects +
    • Replaced wglinfo with visualinfo +
    +
+
+
    +
  • 1.2.3 [06-10-04] +
      +
    • Added GL_NV_fragment_program2, GL_NV_fragment_program_option, GL_NV_vertex_program2_option, GL_NV_vertex_program3 +
    • Bug fix in GL_ARB_vertex_blend +
    +
+
+
    +
  • 1.2.2 [05-08-04] +
      +
    • Added GL_EXT_pixel_buffer_object, removed GL_NV_element_array +
    • Fixed GLEW_MX problems +
    • Bug fix in GL_EXT_texture_rectangle and wglinfo +
    +
+
+
    +
  • 1.2.1 [03-18-04] +
      +
    • Bug fix in OpenGL version query (early release of 1.2.0 contained this bug) +
    • Bug fix in GL_ARB_shader_objects and temporary bug fix in GL_ARB_vertex_shader +
    • Added flags on GDI support and multisampling to wglinfo +
    +
+
+
    +
  • 1.2.0 [02-19-04] +
      +
    • Added full OpenGL 1.5 support +
    • Added support for multiple rendering contexts with different capabilities +
    • Added command line flags to glewinfo for selecting displays and visuals +
    • Added GLX_SGIS_multisample, GLX_SUN_video_resize, and GL_SUN_read_video_pixels +
    • Added MinGW/MSYS support +
    • Bug fixes in GL_ARB_shader_objects and the OS X build +
    +
+
+
    +
  • 1.1.4 [12-15-03] +
      +
    • Added GL_APPLE_float_pixels, GL_APPLE_texture_range, +GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp, +GLX_ATI_pixel_format_float, and GLX_ATI_render_texture +
    • Bug fixes in GL_ATI_map_object_buffer and GL_ATI_fragment_shader +
    +
+
+
    +
  • 1.1.3 [10-28-03] +
      +
    • Added Solaris and Darwin support +
    • Added GL_ARB_fragment_shader, GL_ARB_shader_objects, and GL_ARB_vertex_shader +
    • Fixed bug in GL_WIN_swap_hint +
    • Removed glewinfo's dependency on GLUT +
    +
+
+
    +
  • 1.1.2 [09-15-03] +
      +
    • Removed dependency on WGL_{ARB,EXT}_extensions_string to make GLEW run on Matrox cards +
    • Added glewGetString for querying the GLEW version string +
    +
+
+
    +
  • 1.1.1 [08-11-03] +
      +
    • Added GLX_NV_float_buffer, GL_ARB_shading_language_100, and GL_ARB_texture_non_power_of_two +
    • Fixed bug in GL_ARB_vertex_buffer_object +
    • Minor updates in documentation +
    +
+
+
    +
  • 1.1.0 [07-08-03] +
      +
    • Added automatic code generation +
    • Added almost every extension in the registry +
    • Added separate namespace +
    • Added Irix support +
    • Updated documentation +
    +
+
+
    +
  • 1.0.7 [06-29-03] +
      +
    • Added GL_EXT_depth_bounds_test +
    • Fixed typos +
    +
+
+
    +
  • 1.0.6 [05-05-03] +
      +
    • Added ARB_vertex_buffer_object and NV_half_float +
    • Updated wglinfo +
    • Temporary Linux bug fixes (problems with SDL and MESA) +
    +
+
+
    +
  • 1.0.5 [02-17-03] +
      +
    • Bug fixes +
    • Added wglinfo +
    • Updated documentation +
    +
+
+
    +
  • 1.0.4 [02-02-03] +
      +
    • Added NV_texture_expand_normal +
    • Added mingw support +
    • Updated documentation +
    +
+
+
    +
  • 1.0.3 [01-09-03] +
      +
    • Cleaned up ATI extensions +
    • Changed function prototypes to match glext.h +
    • Added EXT_texture3D +
    • Fixed typos in ATI_vertex_attrib_array_object and ATI_draw_buffers +
    +
+
+
    +
  • 1.0.2 [12-21-02] +
      +
    • Added list of supported extensions to documentation +
    • Added NV_half_float and NV_texgen_emboss +
    +
+
+
    +
  • 1.0.1 [12-17-02] +
      +
    • Bug fixes +
    • Added glewGetExtension +
    +
+
+
    +
  • 1.0.0 [12-12-02] +
      +
    • Initial release +
    +
+
+ + +
+ + diff --git a/Part2/PROJ_WIN/shared/glew/doc/mesa.txt b/Part2/PROJ_WIN/shared/glew/doc/mesa.txt new file mode 100644 index 0000000..a82dd4b --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/mesa.txt @@ -0,0 +1,21 @@ +Mesa 3-D graphics library +Version: 7.0 + +Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Part2/PROJ_WIN/shared/glew/doc/new.png b/Part2/PROJ_WIN/shared/glew/doc/new.png new file mode 100644 index 0000000000000000000000000000000000000000..7ce2b47960a7085d7e599044ae16187cdd79153a GIT binary patch literal 1180 zcmeAS@N?(olHy`uVBq!ia0vp^l0eME!3-o9=sc?gQk(@Ik;M!Q+`=Ht$S`Y;1W=GA z-O<;Pfnj4`&F{d;K)yn~JGFCa<74&D@oYeyX$c9*zYc!<&#ugD zEX;h`K5fE3d!7AtAbrBj%8&UMxaGCg^YE;B^S_bhGyeiTHjt*I2Wij#@s`{#4`Wk1 zcAm$Fr+$BdfkAy*0t1JF+Jam2V}O}iVy5K2zYp1VP2u#YVZOw`c!VS5Vy&Rj?)<-SyMXD!>frJ-_3sASzYj7t}CiK1p=3en~oMXMs0 zp<*ct%eofjl3TJ-(qdI^m2LK5SM7iMo##By?|HxX{oe2Ue&+~!1;YTbG`BDZ5C#BG z^Z|kiKrsvUV21$+U;zMzC^Q9>j6DP0y?|#8ia;VF-fI{{IaegvG-cAr$-% zyi7#UDPi1KI0RrU1%pFmWT|v@8d?~_U@-(7?w?{11_l&a4J!7qoUyIjV@;Yo9g$Iw zwoA&XHPNDe?Ybnep+RT?ECyP2fR@y#5;=^jl5$F?YX$v)1fw(xOhH%vF~{!Kxt)s! z?%_keW6F^I80R_JiZSj!yu+@s%A>_gC*>(!?^49Er%`#T7;Q9&4Uw z-EIlfky)}8LTeJxnIIg-y2UN(Ramxv8>^DkK%xQ=`xS0V{X=6p_H^~XW^`TSKPWN)tgl3YJ<~ubbI;-Vdj4CXCJwVady>xra zWO-bIaf9DJezwZYvKeN{Y>%_OxVSEq)8$u&oGBaVJCs-P>Ev=6UP{|LCtKbuuCsYb zwrcIZCe7;iKX5a-ePBh8!80*>E8H(f2trZ5ZBbvR1FLx?Cep3^o7pM8W1yVqJ;&VP zxuC_&2d{_Lf9$Aww>3yM182byPn0$qh<80wNYD-;>8IAc9ez4u`zii@+Gve>{khq$ z>G5AK9Q|WqyYh4~xi2D*^_k(Ly&s9lqx9v<^(L{2#--+t@6xRN%su9{9W+|Ks91BC z39Sda0z3w;C)+Y^&QP_oJ9s_D{_I%W_<-~mi7|fKMaSdGY~RNL0TNdU75ZmY%lw#( zllY9a?gx1#8^gF2ao%d>e(KHl3ZC>`R^_^cDE>6vm^%2E%kr=g3^8R>YMt0FKHaB1 zW>hs}f-J|pg_)d6Id<;xb&HZ8bqCVG0~J-*Zs(j<#}uTJWY3u*XPYPbpx#jvR$LA4Pc<>()X8nt`|KPF>{P;;dAT~9_is`OE)U>Od*|$Lt~cMlxqRfd zOjS~u*^y%P{tKGi zxAIr+b%`2l7=CRb>V&wl&l$rfPWVM(Q%zny9}ZOaeLHr>CTsVC<=7hmK>1((2_$yc zC?{l=;wf!lLZw(C7DIg`$M^!SzkT$|cdU_yaEySHfAJ9MAl{-{U?PU|tUl?g>!nO-738Ql%gH zTo<-ge()QhXCy`ef zqflsIxci3Yjr@#CFDbs(hM{>8iHSsr9!1Kqd>DF^R2HtmQ+;tPa^*XN(d8o?14x#X&d7--kaK%y3_cy2dRU7~S literal 0 HcmV?d00001 diff --git a/Part2/PROJ_WIN/shared/glew/doc/wglew.html b/Part2/PROJ_WIN/shared/glew/doc/wglew.html new file mode 100644 index 0000000..58231e8 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/doc/wglew.html @@ -0,0 +1,159 @@ + + + + + + +GLEW: The OpenGL Extension Wrangler Library + + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
Latest Release: 1.5.7

GLEW Logo

+ + + + + + + + + + +
Download
Installation
Basic Usage
Advanced Usage
Credits & Copyright
Change Log
Project Page
Mailing Lists
Bug Tracker
+

+
+ + + + + +
Last Update: 11-03-10
+ OpenGL Logo + SourceForge Logo +
+
+
+ +

The OpenGL Extension Wrangler Library

+ + + + +

Supported WGL Extensions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1 3DFX_multisample

2 3DL_stereo_control

3 AMD_gpu_association

4 ARB_buffer_region
5 ARB_create_context
6 ARB_create_context_profile
7 ARB_create_context_robustness
8 ARB_extensions_string
9 ARB_framebuffer_sRGB
10 ARB_make_current_read
11 ARB_multisample
12 ARB_pbuffer
13 ARB_pixel_format
14 ARB_pixel_format_float
15 ARB_render_texture

16 ATI_pixel_format_float
17 ATI_render_texture_rectangle

18 EXT_create_context_es2_profile
19 EXT_depth_float
20 EXT_display_color_table
21 EXT_extensions_string
22 EXT_framebuffer_sRGB
23 EXT_make_current_read
24 EXT_multisample
25 EXT_pbuffer
26 EXT_pixel_format
27 EXT_pixel_format_packed_float
28 EXT_swap_control

29 I3D_digital_video_control
30 I3D_gamma
31 I3D_genlock
32 I3D_image_buffer
33 I3D_swap_frame_lock
34 I3D_swap_frame_usage

35 NV_copy_image
36 NV_float_buffer
37 NV_gpu_affinity
38 NV_multisample_coverage
39 NV_present_video
40 NV_render_depth_texture
41 NV_render_texture_rectangle
42 NV_swap_group
43 NV_vertex_array_range
44 NV_video_output

45 OML_sync_control
+ +
+ + diff --git a/Part2/PROJ_WIN/shared/glew/include/GL/glew.h b/Part2/PROJ_WIN/shared/glew/include/GL/glew.h new file mode 100644 index 0000000..af53170 --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/include/GL/glew.h @@ -0,0 +1,15304 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * Mesa 3-D graphics library + * Version: 7.0 + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __glew_h__ +#define __glew_h__ +#define __GLEW_H__ + +#if defined(__gl_h_) || defined(__GL_H__) || defined(__X_GL_H) +#error gl.h included before glew.h +#endif +#if defined(__glext_h_) || defined(__GLEXT_H_) +#error glext.h included before glew.h +#endif +#if defined(__gl_ATI_h_) +#error glATI.h included before glew.h +#endif + +#define __gl_h_ +#define __GL_H__ +#define __X_GL_H +#define __glext_h_ +#define __GLEXT_H_ +#define __gl_ATI_h_ + +#if defined(_WIN32) + +/* + * GLEW does not include to avoid name space pollution. + * GL needs GLAPI and GLAPIENTRY, GLU needs APIENTRY, CALLBACK, and wchar_t + * defined properly. + */ +/* */ +#ifndef APIENTRY +#define GLEW_APIENTRY_DEFINED +# if defined(__MINGW32__) || defined(__CYGWIN__) +# define APIENTRY __stdcall +# elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +#endif +#ifndef GLAPI +# if defined(__MINGW32__) || defined(__CYGWIN__) +# define GLAPI extern +# endif +#endif +/* */ +#ifndef CALLBACK +#define GLEW_CALLBACK_DEFINED +# if defined(__MINGW32__) || defined(__CYGWIN__) +# define CALLBACK __attribute__ ((__stdcall__)) +# elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +#endif +/* and */ +#ifndef WINGDIAPI +#define GLEW_WINGDIAPI_DEFINED +#define WINGDIAPI __declspec(dllimport) +#endif +/* */ +#if (defined(_MSC_VER) || defined(__BORLANDC__)) && !defined(_WCHAR_T_DEFINED) +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +#endif +/* */ +#if !defined(_W64) +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300 +# define _W64 __w64 +# else +# define _W64 +# endif +#endif +#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__) +# ifdef _WIN64 +typedef __int64 ptrdiff_t; +# else +typedef _W64 int ptrdiff_t; +# endif +# define _PTRDIFF_T_DEFINED +# define _PTRDIFF_T_ +#endif + +#ifndef GLAPI +# if defined(__MINGW32__) || defined(__CYGWIN__) +# define GLAPI extern +# else +# define GLAPI WINGDIAPI +# endif +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY APIENTRY +#endif + +/* + * GLEW_STATIC needs to be set when using the static version. + * GLEW_BUILD is set when building the DLL version. + */ +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# ifdef GLEW_BUILD +# define GLEWAPI extern __declspec(dllexport) +# else +# define GLEWAPI extern __declspec(dllimport) +# endif +#endif + +#else /* _UNIX */ + +/* + * Needed for ptrdiff_t in turn needed by VBO. This is defined by ISO + * C. On my system, this amounts to _3 lines_ of included code, all of + * them pretty much harmless. If you know of a way of detecting 32 vs + * 64 _targets_ at compile time you are free to replace this with + * something that's portable. For now, _this_ is the portable solution. + * (mem, 2004-01-04) + */ + +#include + +/* SGI MIPSPro doesn't like stdint.h in C++ mode */ + +#if defined(__sgi) && !defined(__GNUC__) +#include +#else +#include +#endif + +#define GLEW_APIENTRY_DEFINED +#define APIENTRY +#define GLEWAPI extern + +/* */ +#ifndef GLAPI +#define GLAPI extern +#endif +#ifndef GLAPIENTRY +#define GLAPIENTRY +#endif + +#endif /* _WIN32 */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* ----------------------------- GL_VERSION_1_1 ---------------------------- */ + +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_1 1 + +typedef unsigned int GLenum; +typedef unsigned int GLbitfield; +typedef unsigned int GLuint; +typedef int GLint; +typedef int GLsizei; +typedef unsigned char GLboolean; +typedef signed char GLbyte; +typedef short GLshort; +typedef unsigned char GLubyte; +typedef unsigned short GLushort; +typedef unsigned long GLulong; +typedef float GLfloat; +typedef float GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void GLvoid; +#if defined(_MSC_VER) +# if _MSC_VER < 1400 +typedef __int64 GLint64EXT; +typedef unsigned __int64 GLuint64EXT; +# else +typedef signed long long GLint64EXT; +typedef unsigned long long GLuint64EXT; +# endif +#else +# if defined(__MINGW32__) || defined(__CYGWIN__) +#include +# endif +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif +typedef GLint64EXT GLint64; +typedef GLuint64EXT GLuint64; +typedef struct __GLsync *GLsync; + +typedef char GLchar; +typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id, + GLenum category, + GLenum severity, + GLsizei length, + const GLchar* message, + GLvoid* userParam); + +/* For ARB_debug_output */ + +typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source, + GLenum type, + GLuint id, + GLenum severity, + GLsizei length, + const GLchar* message, + GLvoid* userParam); + +/* For GL_ARB_cl_event */ + +typedef struct _cl_context *cl_context; +typedef struct _cl_event *cl_event; + +#define GL_ACCUM 0x0100 +#define GL_LOAD 0x0101 +#define GL_RETURN 0x0102 +#define GL_MULT 0x0103 +#define GL_ADD 0x0104 +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +#define GL_CURRENT_BIT 0x00000001 +#define GL_POINT_BIT 0x00000002 +#define GL_LINE_BIT 0x00000004 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_HINT_BIT 0x00008000 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000fffff +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON 0x0009 +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +#define GL_TRUE 1 +#define GL_FALSE 0 +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_DOUBLE 0x140A +#define GL_NONE 0 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_LINE_RESET_TOKEN 0x0707 +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_POINT_SMOOTH 0x0B10 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +#define GL_LIST_MODE 0x0B30 +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_SHADE_MODEL 0x0B54 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_FOG 0x0B60 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_NORMALIZE 0x0BA1 +#define GL_VIEWPORT 0x0BA2 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_INDEX_MODE 0x0C30 +#define GL_RGBA_MODE 0x0C31 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_RENDER_MODE 0x0C40 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_FOG_HINT 0x0C54 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_INDEX_BITS 0x0D51 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_BORDER 0x1005 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F +#define GL_EMISSION 0x1600 +#define GL_SHININESS 0x1601 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#define GL_COLOR_INDEX 0x1900 +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_BITMAP 0x1A00 +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#define GL_RENDER 0x1C00 +#define GL_FEEDBACK 0x1C01 +#define GL_SELECT 0x1C02 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 +#define GL_S 0x2000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 +#define GL_MODULATE 0x2100 +#define GL_DECAL 0x2101 +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_ENV_COLOR 0x2201 +#define GL_TEXTURE_ENV 0x2300 +#define GL_EYE_LINEAR 0x2400 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_SPHERE_MAP 0x2402 +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_PLANE 0x2502 +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +#define GL_CLAMP 0x2900 +#define GL_REPEAT 0x2901 +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D +#define GL_LOGIC_OP GL_INDEX_LOGIC_OP +#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 + +GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value); +GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref); +GLAPI GLboolean GLAPIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); +GLAPI void GLAPIENTRY glArrayElement (GLint i); +GLAPI void GLAPIENTRY glBegin (GLenum mode); +GLAPI void GLAPIENTRY glBindTexture (GLenum target, GLuint texture); +GLAPI void GLAPIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +GLAPI void GLAPIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); +GLAPI void GLAPIENTRY glCallList (GLuint list); +GLAPI void GLAPIENTRY glCallLists (GLsizei n, GLenum type, const GLvoid *lists); +GLAPI void GLAPIENTRY glClear (GLbitfield mask); +GLAPI void GLAPIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void GLAPIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +GLAPI void GLAPIENTRY glClearDepth (GLclampd depth); +GLAPI void GLAPIENTRY glClearIndex (GLfloat c); +GLAPI void GLAPIENTRY glClearStencil (GLint s); +GLAPI void GLAPIENTRY glClipPlane (GLenum plane, const GLdouble *equation); +GLAPI void GLAPIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue); +GLAPI void GLAPIENTRY glColor3bv (const GLbyte *v); +GLAPI void GLAPIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue); +GLAPI void GLAPIENTRY glColor3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue); +GLAPI void GLAPIENTRY glColor3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glColor3i (GLint red, GLint green, GLint blue); +GLAPI void GLAPIENTRY glColor3iv (const GLint *v); +GLAPI void GLAPIENTRY glColor3s (GLshort red, GLshort green, GLshort blue); +GLAPI void GLAPIENTRY glColor3sv (const GLshort *v); +GLAPI void GLAPIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue); +GLAPI void GLAPIENTRY glColor3ubv (const GLubyte *v); +GLAPI void GLAPIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue); +GLAPI void GLAPIENTRY glColor3uiv (const GLuint *v); +GLAPI void GLAPIENTRY glColor3us (GLushort red, GLushort green, GLushort blue); +GLAPI void GLAPIENTRY glColor3usv (const GLushort *v); +GLAPI void GLAPIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +GLAPI void GLAPIENTRY glColor4bv (const GLbyte *v); +GLAPI void GLAPIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +GLAPI void GLAPIENTRY glColor4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void GLAPIENTRY glColor4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha); +GLAPI void GLAPIENTRY glColor4iv (const GLint *v); +GLAPI void GLAPIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); +GLAPI void GLAPIENTRY glColor4sv (const GLshort *v); +GLAPI void GLAPIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +GLAPI void GLAPIENTRY glColor4ubv (const GLubyte *v); +GLAPI void GLAPIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); +GLAPI void GLAPIENTRY glColor4uiv (const GLuint *v); +GLAPI void GLAPIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); +GLAPI void GLAPIENTRY glColor4usv (const GLushort *v); +GLAPI void GLAPIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GLAPI void GLAPIENTRY glColorMaterial (GLenum face, GLenum mode); +GLAPI void GLAPIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void GLAPIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +GLAPI void GLAPIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void GLAPIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void GLAPIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void GLAPIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void GLAPIENTRY glCullFace (GLenum mode); +GLAPI void GLAPIENTRY glDeleteLists (GLuint list, GLsizei range); +GLAPI void GLAPIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); +GLAPI void GLAPIENTRY glDepthFunc (GLenum func); +GLAPI void GLAPIENTRY glDepthMask (GLboolean flag); +GLAPI void GLAPIENTRY glDepthRange (GLclampd zNear, GLclampd zFar); +GLAPI void GLAPIENTRY glDisable (GLenum cap); +GLAPI void GLAPIENTRY glDisableClientState (GLenum array); +GLAPI void GLAPIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); +GLAPI void GLAPIENTRY glDrawBuffer (GLenum mode); +GLAPI void GLAPIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +GLAPI void GLAPIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void GLAPIENTRY glEdgeFlag (GLboolean flag); +GLAPI void GLAPIENTRY glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); +GLAPI void GLAPIENTRY glEdgeFlagv (const GLboolean *flag); +GLAPI void GLAPIENTRY glEnable (GLenum cap); +GLAPI void GLAPIENTRY glEnableClientState (GLenum array); +GLAPI void GLAPIENTRY glEnd (void); +GLAPI void GLAPIENTRY glEndList (void); +GLAPI void GLAPIENTRY glEvalCoord1d (GLdouble u); +GLAPI void GLAPIENTRY glEvalCoord1dv (const GLdouble *u); +GLAPI void GLAPIENTRY glEvalCoord1f (GLfloat u); +GLAPI void GLAPIENTRY glEvalCoord1fv (const GLfloat *u); +GLAPI void GLAPIENTRY glEvalCoord2d (GLdouble u, GLdouble v); +GLAPI void GLAPIENTRY glEvalCoord2dv (const GLdouble *u); +GLAPI void GLAPIENTRY glEvalCoord2f (GLfloat u, GLfloat v); +GLAPI void GLAPIENTRY glEvalCoord2fv (const GLfloat *u); +GLAPI void GLAPIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2); +GLAPI void GLAPIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +GLAPI void GLAPIENTRY glEvalPoint1 (GLint i); +GLAPI void GLAPIENTRY glEvalPoint2 (GLint i, GLint j); +GLAPI void GLAPIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); +GLAPI void GLAPIENTRY glFinish (void); +GLAPI void GLAPIENTRY glFlush (void); +GLAPI void GLAPIENTRY glFogf (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glFogfv (GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glFogi (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glFogiv (GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glFrontFace (GLenum mode); +GLAPI void GLAPIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI GLuint GLAPIENTRY glGenLists (GLsizei range); +GLAPI void GLAPIENTRY glGenTextures (GLsizei n, GLuint *textures); +GLAPI void GLAPIENTRY glGetBooleanv (GLenum pname, GLboolean *params); +GLAPI void GLAPIENTRY glGetClipPlane (GLenum plane, GLdouble *equation); +GLAPI void GLAPIENTRY glGetDoublev (GLenum pname, GLdouble *params); +GLAPI GLenum GLAPIENTRY glGetError (void); +GLAPI void GLAPIENTRY glGetFloatv (GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetIntegerv (GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v); +GLAPI void GLAPIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v); +GLAPI void GLAPIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v); +GLAPI void GLAPIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetPixelMapfv (GLenum map, GLfloat *values); +GLAPI void GLAPIENTRY glGetPixelMapuiv (GLenum map, GLuint *values); +GLAPI void GLAPIENTRY glGetPixelMapusv (GLenum map, GLushort *values); +GLAPI void GLAPIENTRY glGetPointerv (GLenum pname, GLvoid* *params); +GLAPI void GLAPIENTRY glGetPolygonStipple (GLubyte *mask); +GLAPI const GLubyte * GLAPIENTRY glGetString (GLenum name); +GLAPI void GLAPIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); +GLAPI void GLAPIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +GLAPI void GLAPIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void GLAPIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void GLAPIENTRY glHint (GLenum target, GLenum mode); +GLAPI void GLAPIENTRY glIndexMask (GLuint mask); +GLAPI void GLAPIENTRY glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void GLAPIENTRY glIndexd (GLdouble c); +GLAPI void GLAPIENTRY glIndexdv (const GLdouble *c); +GLAPI void GLAPIENTRY glIndexf (GLfloat c); +GLAPI void GLAPIENTRY glIndexfv (const GLfloat *c); +GLAPI void GLAPIENTRY glIndexi (GLint c); +GLAPI void GLAPIENTRY glIndexiv (const GLint *c); +GLAPI void GLAPIENTRY glIndexs (GLshort c); +GLAPI void GLAPIENTRY glIndexsv (const GLshort *c); +GLAPI void GLAPIENTRY glIndexub (GLubyte c); +GLAPI void GLAPIENTRY glIndexubv (const GLubyte *c); +GLAPI void GLAPIENTRY glInitNames (void); +GLAPI void GLAPIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); +GLAPI GLboolean GLAPIENTRY glIsEnabled (GLenum cap); +GLAPI GLboolean GLAPIENTRY glIsList (GLuint list); +GLAPI GLboolean GLAPIENTRY glIsTexture (GLuint texture); +GLAPI void GLAPIENTRY glLightModelf (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glLightModelfv (GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glLightModeli (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glLightModeliv (GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glLighti (GLenum light, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glLineStipple (GLint factor, GLushort pattern); +GLAPI void GLAPIENTRY glLineWidth (GLfloat width); +GLAPI void GLAPIENTRY glListBase (GLuint base); +GLAPI void GLAPIENTRY glLoadIdentity (void); +GLAPI void GLAPIENTRY glLoadMatrixd (const GLdouble *m); +GLAPI void GLAPIENTRY glLoadMatrixf (const GLfloat *m); +GLAPI void GLAPIENTRY glLoadName (GLuint name); +GLAPI void GLAPIENTRY glLogicOp (GLenum opcode); +GLAPI void GLAPIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +GLAPI void GLAPIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +GLAPI void GLAPIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +GLAPI void GLAPIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +GLAPI void GLAPIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); +GLAPI void GLAPIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); +GLAPI void GLAPIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +GLAPI void GLAPIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +GLAPI void GLAPIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glMateriali (GLenum face, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glMatrixMode (GLenum mode); +GLAPI void GLAPIENTRY glMultMatrixd (const GLdouble *m); +GLAPI void GLAPIENTRY glMultMatrixf (const GLfloat *m); +GLAPI void GLAPIENTRY glNewList (GLuint list, GLenum mode); +GLAPI void GLAPIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); +GLAPI void GLAPIENTRY glNormal3bv (const GLbyte *v); +GLAPI void GLAPIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); +GLAPI void GLAPIENTRY glNormal3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); +GLAPI void GLAPIENTRY glNormal3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glNormal3i (GLint nx, GLint ny, GLint nz); +GLAPI void GLAPIENTRY glNormal3iv (const GLint *v); +GLAPI void GLAPIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz); +GLAPI void GLAPIENTRY glNormal3sv (const GLshort *v); +GLAPI void GLAPIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void GLAPIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI void GLAPIENTRY glPassThrough (GLfloat token); +GLAPI void GLAPIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); +GLAPI void GLAPIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); +GLAPI void GLAPIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); +GLAPI void GLAPIENTRY glPixelStoref (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glPixelStorei (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glPixelTransferf (GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glPixelTransferi (GLenum pname, GLint param); +GLAPI void GLAPIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor); +GLAPI void GLAPIENTRY glPointSize (GLfloat size); +GLAPI void GLAPIENTRY glPolygonMode (GLenum face, GLenum mode); +GLAPI void GLAPIENTRY glPolygonOffset (GLfloat factor, GLfloat units); +GLAPI void GLAPIENTRY glPolygonStipple (const GLubyte *mask); +GLAPI void GLAPIENTRY glPopAttrib (void); +GLAPI void GLAPIENTRY glPopClientAttrib (void); +GLAPI void GLAPIENTRY glPopMatrix (void); +GLAPI void GLAPIENTRY glPopName (void); +GLAPI void GLAPIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); +GLAPI void GLAPIENTRY glPushAttrib (GLbitfield mask); +GLAPI void GLAPIENTRY glPushClientAttrib (GLbitfield mask); +GLAPI void GLAPIENTRY glPushMatrix (void); +GLAPI void GLAPIENTRY glPushName (GLuint name); +GLAPI void GLAPIENTRY glRasterPos2d (GLdouble x, GLdouble y); +GLAPI void GLAPIENTRY glRasterPos2dv (const GLdouble *v); +GLAPI void GLAPIENTRY glRasterPos2f (GLfloat x, GLfloat y); +GLAPI void GLAPIENTRY glRasterPos2fv (const GLfloat *v); +GLAPI void GLAPIENTRY glRasterPos2i (GLint x, GLint y); +GLAPI void GLAPIENTRY glRasterPos2iv (const GLint *v); +GLAPI void GLAPIENTRY glRasterPos2s (GLshort x, GLshort y); +GLAPI void GLAPIENTRY glRasterPos2sv (const GLshort *v); +GLAPI void GLAPIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glRasterPos3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glRasterPos3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glRasterPos3i (GLint x, GLint y, GLint z); +GLAPI void GLAPIENTRY glRasterPos3iv (const GLint *v); +GLAPI void GLAPIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z); +GLAPI void GLAPIENTRY glRasterPos3sv (const GLshort *v); +GLAPI void GLAPIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void GLAPIENTRY glRasterPos4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void GLAPIENTRY glRasterPos4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w); +GLAPI void GLAPIENTRY glRasterPos4iv (const GLint *v); +GLAPI void GLAPIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void GLAPIENTRY glRasterPos4sv (const GLshort *v); +GLAPI void GLAPIENTRY glReadBuffer (GLenum mode); +GLAPI void GLAPIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +GLAPI void GLAPIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +GLAPI void GLAPIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2); +GLAPI void GLAPIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +GLAPI void GLAPIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2); +GLAPI void GLAPIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2); +GLAPI void GLAPIENTRY glRectiv (const GLint *v1, const GLint *v2); +GLAPI void GLAPIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); +GLAPI void GLAPIENTRY glRectsv (const GLshort *v1, const GLshort *v2); +GLAPI GLint GLAPIENTRY glRenderMode (GLenum mode); +GLAPI void GLAPIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void GLAPIENTRY glSelectBuffer (GLsizei size, GLuint *buffer); +GLAPI void GLAPIENTRY glShadeModel (GLenum mode); +GLAPI void GLAPIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); +GLAPI void GLAPIENTRY glStencilMask (GLuint mask); +GLAPI void GLAPIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +GLAPI void GLAPIENTRY glTexCoord1d (GLdouble s); +GLAPI void GLAPIENTRY glTexCoord1dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord1f (GLfloat s); +GLAPI void GLAPIENTRY glTexCoord1fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord1i (GLint s); +GLAPI void GLAPIENTRY glTexCoord1iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord1s (GLshort s); +GLAPI void GLAPIENTRY glTexCoord1sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoord2d (GLdouble s, GLdouble t); +GLAPI void GLAPIENTRY glTexCoord2dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord2f (GLfloat s, GLfloat t); +GLAPI void GLAPIENTRY glTexCoord2fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord2i (GLint s, GLint t); +GLAPI void GLAPIENTRY glTexCoord2iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord2s (GLshort s, GLshort t); +GLAPI void GLAPIENTRY glTexCoord2sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); +GLAPI void GLAPIENTRY glTexCoord3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); +GLAPI void GLAPIENTRY glTexCoord3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord3i (GLint s, GLint t, GLint r); +GLAPI void GLAPIENTRY glTexCoord3iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r); +GLAPI void GLAPIENTRY glTexCoord3sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI void GLAPIENTRY glTexCoord4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI void GLAPIENTRY glTexCoord4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q); +GLAPI void GLAPIENTRY glTexCoord4iv (const GLint *v); +GLAPI void GLAPIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI void GLAPIENTRY glTexCoord4sv (const GLshort *v); +GLAPI void GLAPIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void GLAPIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param); +GLAPI void GLAPIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); +GLAPI void GLAPIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void GLAPIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void GLAPIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); +GLAPI void GLAPIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void GLAPIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); +GLAPI void GLAPIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +GLAPI void GLAPIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void GLAPIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void GLAPIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glVertex2d (GLdouble x, GLdouble y); +GLAPI void GLAPIENTRY glVertex2dv (const GLdouble *v); +GLAPI void GLAPIENTRY glVertex2f (GLfloat x, GLfloat y); +GLAPI void GLAPIENTRY glVertex2fv (const GLfloat *v); +GLAPI void GLAPIENTRY glVertex2i (GLint x, GLint y); +GLAPI void GLAPIENTRY glVertex2iv (const GLint *v); +GLAPI void GLAPIENTRY glVertex2s (GLshort x, GLshort y); +GLAPI void GLAPIENTRY glVertex2sv (const GLshort *v); +GLAPI void GLAPIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z); +GLAPI void GLAPIENTRY glVertex3dv (const GLdouble *v); +GLAPI void GLAPIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z); +GLAPI void GLAPIENTRY glVertex3fv (const GLfloat *v); +GLAPI void GLAPIENTRY glVertex3i (GLint x, GLint y, GLint z); +GLAPI void GLAPIENTRY glVertex3iv (const GLint *v); +GLAPI void GLAPIENTRY glVertex3s (GLshort x, GLshort y, GLshort z); +GLAPI void GLAPIENTRY glVertex3sv (const GLshort *v); +GLAPI void GLAPIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void GLAPIENTRY glVertex4dv (const GLdouble *v); +GLAPI void GLAPIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void GLAPIENTRY glVertex4fv (const GLfloat *v); +GLAPI void GLAPIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w); +GLAPI void GLAPIENTRY glVertex4iv (const GLint *v); +GLAPI void GLAPIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void GLAPIENTRY glVertex4sv (const GLshort *v); +GLAPI void GLAPIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); + +#define GLEW_VERSION_1_1 GLEW_GET_VAR(__GLEW_VERSION_1_1) + +#endif /* GL_VERSION_1_1 */ + +/* ---------------------------------- GLU ---------------------------------- */ + +/* this is where we can safely include GLU */ +#if defined(__APPLE__) && defined(__MACH__) +#include +#else +#include +#endif + +/* ----------------------------- GL_VERSION_1_2 ---------------------------- */ + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 + +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_RESCALE_NORMAL 0x803A +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E + +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); + +#define glCopyTexSubImage3D GLEW_GET_FUN(__glewCopyTexSubImage3D) +#define glDrawRangeElements GLEW_GET_FUN(__glewDrawRangeElements) +#define glTexImage3D GLEW_GET_FUN(__glewTexImage3D) +#define glTexSubImage3D GLEW_GET_FUN(__glewTexSubImage3D) + +#define GLEW_VERSION_1_2 GLEW_GET_VAR(__GLEW_VERSION_1_2) + +#endif /* GL_VERSION_1_2 */ + +/* ---------------------------- GL_VERSION_1_2_1 --------------------------- */ + +#ifndef GL_VERSION_1_2_1 +#define GL_VERSION_1_2_1 1 + +#define GLEW_VERSION_1_2_1 GLEW_GET_VAR(__GLEW_VERSION_1_2_1) + +#endif /* GL_VERSION_1_2_1 */ + +/* ----------------------------- GL_VERSION_1_3 ---------------------------- */ + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 + +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 +#define GL_SUBTRACT 0x84E7 +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF +#define GL_MULTISAMPLE_BIT 0x20000000 + +typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLvoid *img); +typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); +typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); +typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); +typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); + +#define glActiveTexture GLEW_GET_FUN(__glewActiveTexture) +#define glClientActiveTexture GLEW_GET_FUN(__glewClientActiveTexture) +#define glCompressedTexImage1D GLEW_GET_FUN(__glewCompressedTexImage1D) +#define glCompressedTexImage2D GLEW_GET_FUN(__glewCompressedTexImage2D) +#define glCompressedTexImage3D GLEW_GET_FUN(__glewCompressedTexImage3D) +#define glCompressedTexSubImage1D GLEW_GET_FUN(__glewCompressedTexSubImage1D) +#define glCompressedTexSubImage2D GLEW_GET_FUN(__glewCompressedTexSubImage2D) +#define glCompressedTexSubImage3D GLEW_GET_FUN(__glewCompressedTexSubImage3D) +#define glGetCompressedTexImage GLEW_GET_FUN(__glewGetCompressedTexImage) +#define glLoadTransposeMatrixd GLEW_GET_FUN(__glewLoadTransposeMatrixd) +#define glLoadTransposeMatrixf GLEW_GET_FUN(__glewLoadTransposeMatrixf) +#define glMultTransposeMatrixd GLEW_GET_FUN(__glewMultTransposeMatrixd) +#define glMultTransposeMatrixf GLEW_GET_FUN(__glewMultTransposeMatrixf) +#define glMultiTexCoord1d GLEW_GET_FUN(__glewMultiTexCoord1d) +#define glMultiTexCoord1dv GLEW_GET_FUN(__glewMultiTexCoord1dv) +#define glMultiTexCoord1f GLEW_GET_FUN(__glewMultiTexCoord1f) +#define glMultiTexCoord1fv GLEW_GET_FUN(__glewMultiTexCoord1fv) +#define glMultiTexCoord1i GLEW_GET_FUN(__glewMultiTexCoord1i) +#define glMultiTexCoord1iv GLEW_GET_FUN(__glewMultiTexCoord1iv) +#define glMultiTexCoord1s GLEW_GET_FUN(__glewMultiTexCoord1s) +#define glMultiTexCoord1sv GLEW_GET_FUN(__glewMultiTexCoord1sv) +#define glMultiTexCoord2d GLEW_GET_FUN(__glewMultiTexCoord2d) +#define glMultiTexCoord2dv GLEW_GET_FUN(__glewMultiTexCoord2dv) +#define glMultiTexCoord2f GLEW_GET_FUN(__glewMultiTexCoord2f) +#define glMultiTexCoord2fv GLEW_GET_FUN(__glewMultiTexCoord2fv) +#define glMultiTexCoord2i GLEW_GET_FUN(__glewMultiTexCoord2i) +#define glMultiTexCoord2iv GLEW_GET_FUN(__glewMultiTexCoord2iv) +#define glMultiTexCoord2s GLEW_GET_FUN(__glewMultiTexCoord2s) +#define glMultiTexCoord2sv GLEW_GET_FUN(__glewMultiTexCoord2sv) +#define glMultiTexCoord3d GLEW_GET_FUN(__glewMultiTexCoord3d) +#define glMultiTexCoord3dv GLEW_GET_FUN(__glewMultiTexCoord3dv) +#define glMultiTexCoord3f GLEW_GET_FUN(__glewMultiTexCoord3f) +#define glMultiTexCoord3fv GLEW_GET_FUN(__glewMultiTexCoord3fv) +#define glMultiTexCoord3i GLEW_GET_FUN(__glewMultiTexCoord3i) +#define glMultiTexCoord3iv GLEW_GET_FUN(__glewMultiTexCoord3iv) +#define glMultiTexCoord3s GLEW_GET_FUN(__glewMultiTexCoord3s) +#define glMultiTexCoord3sv GLEW_GET_FUN(__glewMultiTexCoord3sv) +#define glMultiTexCoord4d GLEW_GET_FUN(__glewMultiTexCoord4d) +#define glMultiTexCoord4dv GLEW_GET_FUN(__glewMultiTexCoord4dv) +#define glMultiTexCoord4f GLEW_GET_FUN(__glewMultiTexCoord4f) +#define glMultiTexCoord4fv GLEW_GET_FUN(__glewMultiTexCoord4fv) +#define glMultiTexCoord4i GLEW_GET_FUN(__glewMultiTexCoord4i) +#define glMultiTexCoord4iv GLEW_GET_FUN(__glewMultiTexCoord4iv) +#define glMultiTexCoord4s GLEW_GET_FUN(__glewMultiTexCoord4s) +#define glMultiTexCoord4sv GLEW_GET_FUN(__glewMultiTexCoord4sv) +#define glSampleCoverage GLEW_GET_FUN(__glewSampleCoverage) + +#define GLEW_VERSION_1_3 GLEW_GET_VAR(__GLEW_VERSION_1_3) + +#endif /* GL_VERSION_1_3 */ + +/* ----------------------------- GL_VERSION_1_4 ---------------------------- */ + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 + +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_COMPARE_R_TO_TEXTURE 0x884E + +typedef void (GLAPIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLFOGCOORDDPROC) (GLdouble coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFPROC) (GLfloat coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p); + +#define glBlendColor GLEW_GET_FUN(__glewBlendColor) +#define glBlendEquation GLEW_GET_FUN(__glewBlendEquation) +#define glBlendFuncSeparate GLEW_GET_FUN(__glewBlendFuncSeparate) +#define glFogCoordPointer GLEW_GET_FUN(__glewFogCoordPointer) +#define glFogCoordd GLEW_GET_FUN(__glewFogCoordd) +#define glFogCoorddv GLEW_GET_FUN(__glewFogCoorddv) +#define glFogCoordf GLEW_GET_FUN(__glewFogCoordf) +#define glFogCoordfv GLEW_GET_FUN(__glewFogCoordfv) +#define glMultiDrawArrays GLEW_GET_FUN(__glewMultiDrawArrays) +#define glMultiDrawElements GLEW_GET_FUN(__glewMultiDrawElements) +#define glPointParameterf GLEW_GET_FUN(__glewPointParameterf) +#define glPointParameterfv GLEW_GET_FUN(__glewPointParameterfv) +#define glPointParameteri GLEW_GET_FUN(__glewPointParameteri) +#define glPointParameteriv GLEW_GET_FUN(__glewPointParameteriv) +#define glSecondaryColor3b GLEW_GET_FUN(__glewSecondaryColor3b) +#define glSecondaryColor3bv GLEW_GET_FUN(__glewSecondaryColor3bv) +#define glSecondaryColor3d GLEW_GET_FUN(__glewSecondaryColor3d) +#define glSecondaryColor3dv GLEW_GET_FUN(__glewSecondaryColor3dv) +#define glSecondaryColor3f GLEW_GET_FUN(__glewSecondaryColor3f) +#define glSecondaryColor3fv GLEW_GET_FUN(__glewSecondaryColor3fv) +#define glSecondaryColor3i GLEW_GET_FUN(__glewSecondaryColor3i) +#define glSecondaryColor3iv GLEW_GET_FUN(__glewSecondaryColor3iv) +#define glSecondaryColor3s GLEW_GET_FUN(__glewSecondaryColor3s) +#define glSecondaryColor3sv GLEW_GET_FUN(__glewSecondaryColor3sv) +#define glSecondaryColor3ub GLEW_GET_FUN(__glewSecondaryColor3ub) +#define glSecondaryColor3ubv GLEW_GET_FUN(__glewSecondaryColor3ubv) +#define glSecondaryColor3ui GLEW_GET_FUN(__glewSecondaryColor3ui) +#define glSecondaryColor3uiv GLEW_GET_FUN(__glewSecondaryColor3uiv) +#define glSecondaryColor3us GLEW_GET_FUN(__glewSecondaryColor3us) +#define glSecondaryColor3usv GLEW_GET_FUN(__glewSecondaryColor3usv) +#define glSecondaryColorPointer GLEW_GET_FUN(__glewSecondaryColorPointer) +#define glWindowPos2d GLEW_GET_FUN(__glewWindowPos2d) +#define glWindowPos2dv GLEW_GET_FUN(__glewWindowPos2dv) +#define glWindowPos2f GLEW_GET_FUN(__glewWindowPos2f) +#define glWindowPos2fv GLEW_GET_FUN(__glewWindowPos2fv) +#define glWindowPos2i GLEW_GET_FUN(__glewWindowPos2i) +#define glWindowPos2iv GLEW_GET_FUN(__glewWindowPos2iv) +#define glWindowPos2s GLEW_GET_FUN(__glewWindowPos2s) +#define glWindowPos2sv GLEW_GET_FUN(__glewWindowPos2sv) +#define glWindowPos3d GLEW_GET_FUN(__glewWindowPos3d) +#define glWindowPos3dv GLEW_GET_FUN(__glewWindowPos3dv) +#define glWindowPos3f GLEW_GET_FUN(__glewWindowPos3f) +#define glWindowPos3fv GLEW_GET_FUN(__glewWindowPos3fv) +#define glWindowPos3i GLEW_GET_FUN(__glewWindowPos3i) +#define glWindowPos3iv GLEW_GET_FUN(__glewWindowPos3iv) +#define glWindowPos3s GLEW_GET_FUN(__glewWindowPos3s) +#define glWindowPos3sv GLEW_GET_FUN(__glewWindowPos3sv) + +#define GLEW_VERSION_1_4 GLEW_GET_VAR(__GLEW_VERSION_1_4) + +#endif /* GL_VERSION_1_4 */ + +/* ----------------------------- GL_VERSION_1_5 ---------------------------- */ + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 + +#define GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE +#define GL_FOG_COORD GL_FOG_COORDINATE +#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY +#define GL_SRC0_RGB GL_SOURCE0_RGB +#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER +#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE +#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA +#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE +#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE +#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA +#define GL_SRC1_RGB GL_SOURCE1_RGB +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING +#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA +#define GL_SRC2_RGB GL_SOURCE2_RGB +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 + +typedef ptrdiff_t GLsizeiptr; +typedef ptrdiff_t GLintptr; + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); +typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data); +typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDQUERYPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid** params); +typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERPROC) (GLuint buffer); +typedef GLboolean (GLAPIENTRY * PFNGLISQUERYPROC) (GLuint id); +typedef GLvoid* (GLAPIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target); + +#define glBeginQuery GLEW_GET_FUN(__glewBeginQuery) +#define glBindBuffer GLEW_GET_FUN(__glewBindBuffer) +#define glBufferData GLEW_GET_FUN(__glewBufferData) +#define glBufferSubData GLEW_GET_FUN(__glewBufferSubData) +#define glDeleteBuffers GLEW_GET_FUN(__glewDeleteBuffers) +#define glDeleteQueries GLEW_GET_FUN(__glewDeleteQueries) +#define glEndQuery GLEW_GET_FUN(__glewEndQuery) +#define glGenBuffers GLEW_GET_FUN(__glewGenBuffers) +#define glGenQueries GLEW_GET_FUN(__glewGenQueries) +#define glGetBufferParameteriv GLEW_GET_FUN(__glewGetBufferParameteriv) +#define glGetBufferPointerv GLEW_GET_FUN(__glewGetBufferPointerv) +#define glGetBufferSubData GLEW_GET_FUN(__glewGetBufferSubData) +#define glGetQueryObjectiv GLEW_GET_FUN(__glewGetQueryObjectiv) +#define glGetQueryObjectuiv GLEW_GET_FUN(__glewGetQueryObjectuiv) +#define glGetQueryiv GLEW_GET_FUN(__glewGetQueryiv) +#define glIsBuffer GLEW_GET_FUN(__glewIsBuffer) +#define glIsQuery GLEW_GET_FUN(__glewIsQuery) +#define glMapBuffer GLEW_GET_FUN(__glewMapBuffer) +#define glUnmapBuffer GLEW_GET_FUN(__glewUnmapBuffer) + +#define GLEW_VERSION_1_5 GLEW_GET_VAR(__GLEW_VERSION_1_5) + +#endif /* GL_VERSION_1_5 */ + +/* ----------------------------- GL_VERSION_2_0 ---------------------------- */ + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 + +#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_COORDS 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 + +typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum, GLenum); +typedef void (GLAPIENTRY * PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (GLAPIENTRY * PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROC) (GLenum type); +typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (GLAPIENTRY * PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (GLAPIENTRY * PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum* bufs); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint); +typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders); +typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); +typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLint obj, GLsizei maxLength, GLsizei* length, GLchar* source); +typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param); +typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint, GLenum, GLvoid*); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint, GLenum, GLdouble*); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint, GLenum, GLfloat*); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint, GLenum, GLint*); +typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (GLAPIENTRY * PFNGLISSHADERPROC) (GLuint shader); +typedef void (GLAPIENTRY * PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (GLAPIENTRY * PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar** strings, const GLint* lengths); +typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +typedef void (GLAPIENTRY * PFNGLSTENCILMASKSEPARATEPROC) (GLenum, GLuint); +typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (GLAPIENTRY * PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* pointer); + +#define glAttachShader GLEW_GET_FUN(__glewAttachShader) +#define glBindAttribLocation GLEW_GET_FUN(__glewBindAttribLocation) +#define glBlendEquationSeparate GLEW_GET_FUN(__glewBlendEquationSeparate) +#define glCompileShader GLEW_GET_FUN(__glewCompileShader) +#define glCreateProgram GLEW_GET_FUN(__glewCreateProgram) +#define glCreateShader GLEW_GET_FUN(__glewCreateShader) +#define glDeleteProgram GLEW_GET_FUN(__glewDeleteProgram) +#define glDeleteShader GLEW_GET_FUN(__glewDeleteShader) +#define glDetachShader GLEW_GET_FUN(__glewDetachShader) +#define glDisableVertexAttribArray GLEW_GET_FUN(__glewDisableVertexAttribArray) +#define glDrawBuffers GLEW_GET_FUN(__glewDrawBuffers) +#define glEnableVertexAttribArray GLEW_GET_FUN(__glewEnableVertexAttribArray) +#define glGetActiveAttrib GLEW_GET_FUN(__glewGetActiveAttrib) +#define glGetActiveUniform GLEW_GET_FUN(__glewGetActiveUniform) +#define glGetAttachedShaders GLEW_GET_FUN(__glewGetAttachedShaders) +#define glGetAttribLocation GLEW_GET_FUN(__glewGetAttribLocation) +#define glGetProgramInfoLog GLEW_GET_FUN(__glewGetProgramInfoLog) +#define glGetProgramiv GLEW_GET_FUN(__glewGetProgramiv) +#define glGetShaderInfoLog GLEW_GET_FUN(__glewGetShaderInfoLog) +#define glGetShaderSource GLEW_GET_FUN(__glewGetShaderSource) +#define glGetShaderiv GLEW_GET_FUN(__glewGetShaderiv) +#define glGetUniformLocation GLEW_GET_FUN(__glewGetUniformLocation) +#define glGetUniformfv GLEW_GET_FUN(__glewGetUniformfv) +#define glGetUniformiv GLEW_GET_FUN(__glewGetUniformiv) +#define glGetVertexAttribPointerv GLEW_GET_FUN(__glewGetVertexAttribPointerv) +#define glGetVertexAttribdv GLEW_GET_FUN(__glewGetVertexAttribdv) +#define glGetVertexAttribfv GLEW_GET_FUN(__glewGetVertexAttribfv) +#define glGetVertexAttribiv GLEW_GET_FUN(__glewGetVertexAttribiv) +#define glIsProgram GLEW_GET_FUN(__glewIsProgram) +#define glIsShader GLEW_GET_FUN(__glewIsShader) +#define glLinkProgram GLEW_GET_FUN(__glewLinkProgram) +#define glShaderSource GLEW_GET_FUN(__glewShaderSource) +#define glStencilFuncSeparate GLEW_GET_FUN(__glewStencilFuncSeparate) +#define glStencilMaskSeparate GLEW_GET_FUN(__glewStencilMaskSeparate) +#define glStencilOpSeparate GLEW_GET_FUN(__glewStencilOpSeparate) +#define glUniform1f GLEW_GET_FUN(__glewUniform1f) +#define glUniform1fv GLEW_GET_FUN(__glewUniform1fv) +#define glUniform1i GLEW_GET_FUN(__glewUniform1i) +#define glUniform1iv GLEW_GET_FUN(__glewUniform1iv) +#define glUniform2f GLEW_GET_FUN(__glewUniform2f) +#define glUniform2fv GLEW_GET_FUN(__glewUniform2fv) +#define glUniform2i GLEW_GET_FUN(__glewUniform2i) +#define glUniform2iv GLEW_GET_FUN(__glewUniform2iv) +#define glUniform3f GLEW_GET_FUN(__glewUniform3f) +#define glUniform3fv GLEW_GET_FUN(__glewUniform3fv) +#define glUniform3i GLEW_GET_FUN(__glewUniform3i) +#define glUniform3iv GLEW_GET_FUN(__glewUniform3iv) +#define glUniform4f GLEW_GET_FUN(__glewUniform4f) +#define glUniform4fv GLEW_GET_FUN(__glewUniform4fv) +#define glUniform4i GLEW_GET_FUN(__glewUniform4i) +#define glUniform4iv GLEW_GET_FUN(__glewUniform4iv) +#define glUniformMatrix2fv GLEW_GET_FUN(__glewUniformMatrix2fv) +#define glUniformMatrix3fv GLEW_GET_FUN(__glewUniformMatrix3fv) +#define glUniformMatrix4fv GLEW_GET_FUN(__glewUniformMatrix4fv) +#define glUseProgram GLEW_GET_FUN(__glewUseProgram) +#define glValidateProgram GLEW_GET_FUN(__glewValidateProgram) +#define glVertexAttrib1d GLEW_GET_FUN(__glewVertexAttrib1d) +#define glVertexAttrib1dv GLEW_GET_FUN(__glewVertexAttrib1dv) +#define glVertexAttrib1f GLEW_GET_FUN(__glewVertexAttrib1f) +#define glVertexAttrib1fv GLEW_GET_FUN(__glewVertexAttrib1fv) +#define glVertexAttrib1s GLEW_GET_FUN(__glewVertexAttrib1s) +#define glVertexAttrib1sv GLEW_GET_FUN(__glewVertexAttrib1sv) +#define glVertexAttrib2d GLEW_GET_FUN(__glewVertexAttrib2d) +#define glVertexAttrib2dv GLEW_GET_FUN(__glewVertexAttrib2dv) +#define glVertexAttrib2f GLEW_GET_FUN(__glewVertexAttrib2f) +#define glVertexAttrib2fv GLEW_GET_FUN(__glewVertexAttrib2fv) +#define glVertexAttrib2s GLEW_GET_FUN(__glewVertexAttrib2s) +#define glVertexAttrib2sv GLEW_GET_FUN(__glewVertexAttrib2sv) +#define glVertexAttrib3d GLEW_GET_FUN(__glewVertexAttrib3d) +#define glVertexAttrib3dv GLEW_GET_FUN(__glewVertexAttrib3dv) +#define glVertexAttrib3f GLEW_GET_FUN(__glewVertexAttrib3f) +#define glVertexAttrib3fv GLEW_GET_FUN(__glewVertexAttrib3fv) +#define glVertexAttrib3s GLEW_GET_FUN(__glewVertexAttrib3s) +#define glVertexAttrib3sv GLEW_GET_FUN(__glewVertexAttrib3sv) +#define glVertexAttrib4Nbv GLEW_GET_FUN(__glewVertexAttrib4Nbv) +#define glVertexAttrib4Niv GLEW_GET_FUN(__glewVertexAttrib4Niv) +#define glVertexAttrib4Nsv GLEW_GET_FUN(__glewVertexAttrib4Nsv) +#define glVertexAttrib4Nub GLEW_GET_FUN(__glewVertexAttrib4Nub) +#define glVertexAttrib4Nubv GLEW_GET_FUN(__glewVertexAttrib4Nubv) +#define glVertexAttrib4Nuiv GLEW_GET_FUN(__glewVertexAttrib4Nuiv) +#define glVertexAttrib4Nusv GLEW_GET_FUN(__glewVertexAttrib4Nusv) +#define glVertexAttrib4bv GLEW_GET_FUN(__glewVertexAttrib4bv) +#define glVertexAttrib4d GLEW_GET_FUN(__glewVertexAttrib4d) +#define glVertexAttrib4dv GLEW_GET_FUN(__glewVertexAttrib4dv) +#define glVertexAttrib4f GLEW_GET_FUN(__glewVertexAttrib4f) +#define glVertexAttrib4fv GLEW_GET_FUN(__glewVertexAttrib4fv) +#define glVertexAttrib4iv GLEW_GET_FUN(__glewVertexAttrib4iv) +#define glVertexAttrib4s GLEW_GET_FUN(__glewVertexAttrib4s) +#define glVertexAttrib4sv GLEW_GET_FUN(__glewVertexAttrib4sv) +#define glVertexAttrib4ubv GLEW_GET_FUN(__glewVertexAttrib4ubv) +#define glVertexAttrib4uiv GLEW_GET_FUN(__glewVertexAttrib4uiv) +#define glVertexAttrib4usv GLEW_GET_FUN(__glewVertexAttrib4usv) +#define glVertexAttribPointer GLEW_GET_FUN(__glewVertexAttribPointer) + +#define GLEW_VERSION_2_0 GLEW_GET_VAR(__GLEW_VERSION_2_0) + +#endif /* GL_VERSION_2_0 */ + +/* ----------------------------- GL_VERSION_2_1 ---------------------------- */ + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 + +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B + +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + +#define glUniformMatrix2x3fv GLEW_GET_FUN(__glewUniformMatrix2x3fv) +#define glUniformMatrix2x4fv GLEW_GET_FUN(__glewUniformMatrix2x4fv) +#define glUniformMatrix3x2fv GLEW_GET_FUN(__glewUniformMatrix3x2fv) +#define glUniformMatrix3x4fv GLEW_GET_FUN(__glewUniformMatrix3x4fv) +#define glUniformMatrix4x2fv GLEW_GET_FUN(__glewUniformMatrix4x2fv) +#define glUniformMatrix4x3fv GLEW_GET_FUN(__glewUniformMatrix4x3fv) + +#define GLEW_VERSION_2_1 GLEW_GET_VAR(__GLEW_VERSION_2_1) + +#endif /* GL_VERSION_2_1 */ + +/* ----------------------------- GL_VERSION_3_0 ---------------------------- */ + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 + +#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES +#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 +#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 +#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 +#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB +#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 +#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 +#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 +#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_DEPTH_BUFFER 0x8223 +#define GL_STENCIL_BUFFER 0x8224 +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_ALPHA_INTEGER 0x8D97 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 + +typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint, GLenum); +typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum); +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint, GLuint, const GLchar*); +typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum, GLenum); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum, GLint, GLfloat, GLint); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum, GLint, const GLfloat*); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum, GLint, const GLint*); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum, GLint, const GLuint*); +typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); +typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum, GLuint); +typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum, GLuint); +typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void); +typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum, GLuint, GLboolean*); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint, const GLchar*); +typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum, GLuint); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum, GLenum, GLint*); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum, GLenum, GLuint*); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint, GLuint, GLint*); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint, GLint, GLuint*); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint, GLenum, GLint*); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint, GLenum, GLuint*); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum, GLuint); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum, GLenum, const GLint*); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum, GLenum, const GLuint*); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint, GLsizei, const GLchar **, GLenum); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint, GLuint); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint, GLsizei, const GLuint*); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint, GLsizei, const GLuint*); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint, GLuint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint, GLsizei, const GLuint*); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint, GLuint, GLuint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint, GLsizei, const GLuint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint, GLint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint, const GLint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint, const GLuint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint, GLint, GLint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint, const GLint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint, const GLuint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint, GLint, GLint, GLint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint, const GLint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint, GLuint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint, const GLuint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint, const GLbyte*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint, GLint, GLint, GLint, GLint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint, const GLint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint, const GLshort*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint, const GLubyte*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint, GLuint, GLuint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint, const GLuint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint, const GLushort*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint, GLint, GLenum, GLsizei, const GLvoid*); + +#define glBeginConditionalRender GLEW_GET_FUN(__glewBeginConditionalRender) +#define glBeginTransformFeedback GLEW_GET_FUN(__glewBeginTransformFeedback) +#define glBindFragDataLocation GLEW_GET_FUN(__glewBindFragDataLocation) +#define glClampColor GLEW_GET_FUN(__glewClampColor) +#define glClearBufferfi GLEW_GET_FUN(__glewClearBufferfi) +#define glClearBufferfv GLEW_GET_FUN(__glewClearBufferfv) +#define glClearBufferiv GLEW_GET_FUN(__glewClearBufferiv) +#define glClearBufferuiv GLEW_GET_FUN(__glewClearBufferuiv) +#define glColorMaski GLEW_GET_FUN(__glewColorMaski) +#define glDisablei GLEW_GET_FUN(__glewDisablei) +#define glEnablei GLEW_GET_FUN(__glewEnablei) +#define glEndConditionalRender GLEW_GET_FUN(__glewEndConditionalRender) +#define glEndTransformFeedback GLEW_GET_FUN(__glewEndTransformFeedback) +#define glGetBooleani_v GLEW_GET_FUN(__glewGetBooleani_v) +#define glGetFragDataLocation GLEW_GET_FUN(__glewGetFragDataLocation) +#define glGetStringi GLEW_GET_FUN(__glewGetStringi) +#define glGetTexParameterIiv GLEW_GET_FUN(__glewGetTexParameterIiv) +#define glGetTexParameterIuiv GLEW_GET_FUN(__glewGetTexParameterIuiv) +#define glGetTransformFeedbackVarying GLEW_GET_FUN(__glewGetTransformFeedbackVarying) +#define glGetUniformuiv GLEW_GET_FUN(__glewGetUniformuiv) +#define glGetVertexAttribIiv GLEW_GET_FUN(__glewGetVertexAttribIiv) +#define glGetVertexAttribIuiv GLEW_GET_FUN(__glewGetVertexAttribIuiv) +#define glIsEnabledi GLEW_GET_FUN(__glewIsEnabledi) +#define glTexParameterIiv GLEW_GET_FUN(__glewTexParameterIiv) +#define glTexParameterIuiv GLEW_GET_FUN(__glewTexParameterIuiv) +#define glTransformFeedbackVaryings GLEW_GET_FUN(__glewTransformFeedbackVaryings) +#define glUniform1ui GLEW_GET_FUN(__glewUniform1ui) +#define glUniform1uiv GLEW_GET_FUN(__glewUniform1uiv) +#define glUniform2ui GLEW_GET_FUN(__glewUniform2ui) +#define glUniform2uiv GLEW_GET_FUN(__glewUniform2uiv) +#define glUniform3ui GLEW_GET_FUN(__glewUniform3ui) +#define glUniform3uiv GLEW_GET_FUN(__glewUniform3uiv) +#define glUniform4ui GLEW_GET_FUN(__glewUniform4ui) +#define glUniform4uiv GLEW_GET_FUN(__glewUniform4uiv) +#define glVertexAttribI1i GLEW_GET_FUN(__glewVertexAttribI1i) +#define glVertexAttribI1iv GLEW_GET_FUN(__glewVertexAttribI1iv) +#define glVertexAttribI1ui GLEW_GET_FUN(__glewVertexAttribI1ui) +#define glVertexAttribI1uiv GLEW_GET_FUN(__glewVertexAttribI1uiv) +#define glVertexAttribI2i GLEW_GET_FUN(__glewVertexAttribI2i) +#define glVertexAttribI2iv GLEW_GET_FUN(__glewVertexAttribI2iv) +#define glVertexAttribI2ui GLEW_GET_FUN(__glewVertexAttribI2ui) +#define glVertexAttribI2uiv GLEW_GET_FUN(__glewVertexAttribI2uiv) +#define glVertexAttribI3i GLEW_GET_FUN(__glewVertexAttribI3i) +#define glVertexAttribI3iv GLEW_GET_FUN(__glewVertexAttribI3iv) +#define glVertexAttribI3ui GLEW_GET_FUN(__glewVertexAttribI3ui) +#define glVertexAttribI3uiv GLEW_GET_FUN(__glewVertexAttribI3uiv) +#define glVertexAttribI4bv GLEW_GET_FUN(__glewVertexAttribI4bv) +#define glVertexAttribI4i GLEW_GET_FUN(__glewVertexAttribI4i) +#define glVertexAttribI4iv GLEW_GET_FUN(__glewVertexAttribI4iv) +#define glVertexAttribI4sv GLEW_GET_FUN(__glewVertexAttribI4sv) +#define glVertexAttribI4ubv GLEW_GET_FUN(__glewVertexAttribI4ubv) +#define glVertexAttribI4ui GLEW_GET_FUN(__glewVertexAttribI4ui) +#define glVertexAttribI4uiv GLEW_GET_FUN(__glewVertexAttribI4uiv) +#define glVertexAttribI4usv GLEW_GET_FUN(__glewVertexAttribI4usv) +#define glVertexAttribIPointer GLEW_GET_FUN(__glewVertexAttribIPointer) + +#define GLEW_VERSION_3_0 GLEW_GET_VAR(__GLEW_VERSION_3_0) + +#endif /* GL_VERSION_3_0 */ + +/* ----------------------------- GL_VERSION_3_1 ---------------------------- */ + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 + +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum, GLint, GLsizei, GLsizei); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum, GLsizei, GLenum, const GLvoid*, GLsizei); +typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint); +typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum, GLenum, GLuint); + +#define glDrawArraysInstanced GLEW_GET_FUN(__glewDrawArraysInstanced) +#define glDrawElementsInstanced GLEW_GET_FUN(__glewDrawElementsInstanced) +#define glPrimitiveRestartIndex GLEW_GET_FUN(__glewPrimitiveRestartIndex) +#define glTexBuffer GLEW_GET_FUN(__glewTexBuffer) + +#define GLEW_VERSION_3_1 GLEW_GET_VAR(__GLEW_VERSION_3_1) + +#endif /* GL_VERSION_3_1 */ + +/* ----------------------------- GL_VERSION_3_2 ---------------------------- */ + +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 + +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_CONTEXT_PROFILE_MASK 0x9126 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum, GLenum, GLuint, GLint); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum, GLenum, GLint64 *); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum, GLuint, GLint64 *); + +#define glFramebufferTexture GLEW_GET_FUN(__glewFramebufferTexture) +#define glGetBufferParameteri64v GLEW_GET_FUN(__glewGetBufferParameteri64v) +#define glGetInteger64i_v GLEW_GET_FUN(__glewGetInteger64i_v) + +#define GLEW_VERSION_3_2 GLEW_GET_VAR(__GLEW_VERSION_3_2) + +#endif /* GL_VERSION_3_2 */ + +/* ----------------------------- GL_VERSION_3_3 ---------------------------- */ + +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +#define GL_ANY_SAMPLES_PASSED 0x8C2F +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 +#define GL_RGB10_A2UI 0x906F + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisor GLEW_GET_FUN(__glewVertexAttribDivisor) + +#define GLEW_VERSION_3_3 GLEW_GET_VAR(__GLEW_VERSION_3_3) + +#endif /* GL_VERSION_3_3 */ + +/* ----------------------------- GL_VERSION_4_0 ---------------------------- */ + +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 + +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value); + +#define glBlendEquationSeparatei GLEW_GET_FUN(__glewBlendEquationSeparatei) +#define glBlendEquationi GLEW_GET_FUN(__glewBlendEquationi) +#define glBlendFuncSeparatei GLEW_GET_FUN(__glewBlendFuncSeparatei) +#define glBlendFunci GLEW_GET_FUN(__glewBlendFunci) +#define glMinSampleShading GLEW_GET_FUN(__glewMinSampleShading) + +#define GLEW_VERSION_4_0 GLEW_GET_VAR(__GLEW_VERSION_4_0) + +#endif /* GL_VERSION_4_0 */ + +/* ----------------------------- GL_VERSION_4_1 ---------------------------- */ + +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 + +#define GLEW_VERSION_4_1 GLEW_GET_VAR(__GLEW_VERSION_4_1) + +#endif /* GL_VERSION_4_1 */ + +/* -------------------------- GL_3DFX_multisample -------------------------- */ + +#ifndef GL_3DFX_multisample +#define GL_3DFX_multisample 1 + +#define GL_MULTISAMPLE_3DFX 0x86B2 +#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 +#define GL_SAMPLES_3DFX 0x86B4 +#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 + +#define GLEW_3DFX_multisample GLEW_GET_VAR(__GLEW_3DFX_multisample) + +#endif /* GL_3DFX_multisample */ + +/* ---------------------------- GL_3DFX_tbuffer ---------------------------- */ + +#ifndef GL_3DFX_tbuffer +#define GL_3DFX_tbuffer 1 + +typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); + +#define glTbufferMask3DFX GLEW_GET_FUN(__glewTbufferMask3DFX) + +#define GLEW_3DFX_tbuffer GLEW_GET_VAR(__GLEW_3DFX_tbuffer) + +#endif /* GL_3DFX_tbuffer */ + +/* -------------------- GL_3DFX_texture_compression_FXT1 ------------------- */ + +#ifndef GL_3DFX_texture_compression_FXT1 +#define GL_3DFX_texture_compression_FXT1 1 + +#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 +#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 + +#define GLEW_3DFX_texture_compression_FXT1 GLEW_GET_VAR(__GLEW_3DFX_texture_compression_FXT1) + +#endif /* GL_3DFX_texture_compression_FXT1 */ + +/* ----------------------- GL_AMD_conservative_depth ----------------------- */ + +#ifndef GL_AMD_conservative_depth +#define GL_AMD_conservative_depth 1 + +#define GLEW_AMD_conservative_depth GLEW_GET_VAR(__GLEW_AMD_conservative_depth) + +#endif /* GL_AMD_conservative_depth */ + +/* -------------------------- GL_AMD_debug_output -------------------------- */ + +#ifndef GL_AMD_debug_output +#define GL_AMD_debug_output 1 + +#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 +#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 +#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 +#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 +#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A +#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B +#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C +#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D +#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E +#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F +#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 + +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void* userParam); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const char* buf); +typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, char* message); + +#define glDebugMessageCallbackAMD GLEW_GET_FUN(__glewDebugMessageCallbackAMD) +#define glDebugMessageEnableAMD GLEW_GET_FUN(__glewDebugMessageEnableAMD) +#define glDebugMessageInsertAMD GLEW_GET_FUN(__glewDebugMessageInsertAMD) +#define glGetDebugMessageLogAMD GLEW_GET_FUN(__glewGetDebugMessageLogAMD) + +#define GLEW_AMD_debug_output GLEW_GET_VAR(__GLEW_AMD_debug_output) + +#endif /* GL_AMD_debug_output */ + +/* ----------------------- GL_AMD_draw_buffers_blend ----------------------- */ + +#ifndef GL_AMD_draw_buffers_blend +#define GL_AMD_draw_buffers_blend 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + +#define glBlendEquationIndexedAMD GLEW_GET_FUN(__glewBlendEquationIndexedAMD) +#define glBlendEquationSeparateIndexedAMD GLEW_GET_FUN(__glewBlendEquationSeparateIndexedAMD) +#define glBlendFuncIndexedAMD GLEW_GET_FUN(__glewBlendFuncIndexedAMD) +#define glBlendFuncSeparateIndexedAMD GLEW_GET_FUN(__glewBlendFuncSeparateIndexedAMD) + +#define GLEW_AMD_draw_buffers_blend GLEW_GET_VAR(__GLEW_AMD_draw_buffers_blend) + +#endif /* GL_AMD_draw_buffers_blend */ + +/* ------------------------- GL_AMD_name_gen_delete ------------------------ */ + +#ifndef GL_AMD_name_gen_delete +#define GL_AMD_name_gen_delete 1 + +#define GL_DATA_BUFFER_AMD 0x9151 +#define GL_PERFORMANCE_MONITOR_AMD 0x9152 +#define GL_QUERY_OBJECT_AMD 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 +#define GL_SAMPLER_OBJECT_AMD 0x9155 + +typedef void (GLAPIENTRY * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint* names); +typedef void (GLAPIENTRY * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint* names); +typedef GLboolean (GLAPIENTRY * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); + +#define glDeleteNamesAMD GLEW_GET_FUN(__glewDeleteNamesAMD) +#define glGenNamesAMD GLEW_GET_FUN(__glewGenNamesAMD) +#define glIsNameAMD GLEW_GET_FUN(__glewIsNameAMD) + +#define GLEW_AMD_name_gen_delete GLEW_GET_VAR(__GLEW_AMD_name_gen_delete) + +#endif /* GL_AMD_name_gen_delete */ + +/* ----------------------- GL_AMD_performance_monitor ---------------------- */ + +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 + +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_COUNTER_TYPE_AMD 0x8BC0 +#define GL_COUNTER_RANGE_AMD 0x8BC1 +#define GL_UNSIGNED_INT64_AMD 0x8BC2 +#define GL_PERCENTAGE_AMD 0x8BC3 +#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 +#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 +#define GL_PERFMON_RESULT_AMD 0x8BC6 + +typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); +typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void* data); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char *counterString); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, char *groupString); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups); +typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList); + +#define glBeginPerfMonitorAMD GLEW_GET_FUN(__glewBeginPerfMonitorAMD) +#define glDeletePerfMonitorsAMD GLEW_GET_FUN(__glewDeletePerfMonitorsAMD) +#define glEndPerfMonitorAMD GLEW_GET_FUN(__glewEndPerfMonitorAMD) +#define glGenPerfMonitorsAMD GLEW_GET_FUN(__glewGenPerfMonitorsAMD) +#define glGetPerfMonitorCounterDataAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterDataAMD) +#define glGetPerfMonitorCounterInfoAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterInfoAMD) +#define glGetPerfMonitorCounterStringAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterStringAMD) +#define glGetPerfMonitorCountersAMD GLEW_GET_FUN(__glewGetPerfMonitorCountersAMD) +#define glGetPerfMonitorGroupStringAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupStringAMD) +#define glGetPerfMonitorGroupsAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupsAMD) +#define glSelectPerfMonitorCountersAMD GLEW_GET_FUN(__glewSelectPerfMonitorCountersAMD) + +#define GLEW_AMD_performance_monitor GLEW_GET_VAR(__GLEW_AMD_performance_monitor) + +#endif /* GL_AMD_performance_monitor */ + +/* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */ + +#ifndef GL_AMD_seamless_cubemap_per_texture +#define GL_AMD_seamless_cubemap_per_texture 1 + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS_ARB 0x884F + +#define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture) + +#endif /* GL_AMD_seamless_cubemap_per_texture */ + +/* ---------------------- GL_AMD_shader_stencil_export --------------------- */ + +#ifndef GL_AMD_shader_stencil_export +#define GL_AMD_shader_stencil_export 1 + +#define GLEW_AMD_shader_stencil_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_export) + +#endif /* GL_AMD_shader_stencil_export */ + +/* ------------------------ GL_AMD_texture_texture4 ------------------------ */ + +#ifndef GL_AMD_texture_texture4 +#define GL_AMD_texture_texture4 1 + +#define GLEW_AMD_texture_texture4 GLEW_GET_VAR(__GLEW_AMD_texture_texture4) + +#endif /* GL_AMD_texture_texture4 */ + +/* --------------- GL_AMD_transform_feedback3_lines_triangles -------------- */ + +#ifndef GL_AMD_transform_feedback3_lines_triangles +#define GL_AMD_transform_feedback3_lines_triangles 1 + +#define GLEW_AMD_transform_feedback3_lines_triangles GLEW_GET_VAR(__GLEW_AMD_transform_feedback3_lines_triangles) + +#endif /* GL_AMD_transform_feedback3_lines_triangles */ + +/* -------------------- GL_AMD_vertex_shader_tessellator ------------------- */ + +#ifndef GL_AMD_vertex_shader_tessellator +#define GL_AMD_vertex_shader_tessellator 1 + +#define GL_SAMPLER_BUFFER_AMD 0x9001 +#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 +#define GL_TESSELLATION_MODE_AMD 0x9004 +#define GL_TESSELLATION_FACTOR_AMD 0x9005 +#define GL_DISCRETE_AMD 0x9006 +#define GL_CONTINUOUS_AMD 0x9007 + +typedef void (GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); +typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); + +#define glTessellationFactorAMD GLEW_GET_FUN(__glewTessellationFactorAMD) +#define glTessellationModeAMD GLEW_GET_FUN(__glewTessellationModeAMD) + +#define GLEW_AMD_vertex_shader_tessellator GLEW_GET_VAR(__GLEW_AMD_vertex_shader_tessellator) + +#endif /* GL_AMD_vertex_shader_tessellator */ + +/* ----------------------- GL_APPLE_aux_depth_stencil ---------------------- */ + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_APPLE_aux_depth_stencil 1 + +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 + +#define GLEW_APPLE_aux_depth_stencil GLEW_GET_VAR(__GLEW_APPLE_aux_depth_stencil) + +#endif /* GL_APPLE_aux_depth_stencil */ + +/* ------------------------ GL_APPLE_client_storage ------------------------ */ + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 + +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 + +#define GLEW_APPLE_client_storage GLEW_GET_VAR(__GLEW_APPLE_client_storage) + +#endif /* GL_APPLE_client_storage */ + +/* ------------------------- GL_APPLE_element_array ------------------------ */ + +#ifndef GL_APPLE_element_array +#define GL_APPLE_element_array 1 + +#define GL_ELEMENT_ARRAY_APPLE 0x8A0C +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E + +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void* pointer); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint* first, const GLsizei *count, GLsizei primcount); + +#define glDrawElementArrayAPPLE GLEW_GET_FUN(__glewDrawElementArrayAPPLE) +#define glDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewDrawRangeElementArrayAPPLE) +#define glElementPointerAPPLE GLEW_GET_FUN(__glewElementPointerAPPLE) +#define glMultiDrawElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawElementArrayAPPLE) +#define glMultiDrawRangeElementArrayAPPLE GLEW_GET_FUN(__glewMultiDrawRangeElementArrayAPPLE) + +#define GLEW_APPLE_element_array GLEW_GET_VAR(__GLEW_APPLE_element_array) + +#endif /* GL_APPLE_element_array */ + +/* ----------------------------- GL_APPLE_fence ---------------------------- */ + +#ifndef GL_APPLE_fence +#define GL_APPLE_fence 1 + +#define GL_DRAW_PIXELS_APPLE 0x8A0A +#define GL_FENCE_APPLE 0x8A0B + +typedef void (GLAPIENTRY * PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint* fences); +typedef void (GLAPIENTRY * PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); +typedef void (GLAPIENTRY * PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); +typedef void (GLAPIENTRY * PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint* fences); +typedef GLboolean (GLAPIENTRY * PFNGLISFENCEAPPLEPROC) (GLuint fence); +typedef void (GLAPIENTRY * PFNGLSETFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCEAPPLEPROC) (GLuint fence); +typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); + +#define glDeleteFencesAPPLE GLEW_GET_FUN(__glewDeleteFencesAPPLE) +#define glFinishFenceAPPLE GLEW_GET_FUN(__glewFinishFenceAPPLE) +#define glFinishObjectAPPLE GLEW_GET_FUN(__glewFinishObjectAPPLE) +#define glGenFencesAPPLE GLEW_GET_FUN(__glewGenFencesAPPLE) +#define glIsFenceAPPLE GLEW_GET_FUN(__glewIsFenceAPPLE) +#define glSetFenceAPPLE GLEW_GET_FUN(__glewSetFenceAPPLE) +#define glTestFenceAPPLE GLEW_GET_FUN(__glewTestFenceAPPLE) +#define glTestObjectAPPLE GLEW_GET_FUN(__glewTestObjectAPPLE) + +#define GLEW_APPLE_fence GLEW_GET_VAR(__GLEW_APPLE_fence) + +#endif /* GL_APPLE_fence */ + +/* ------------------------- GL_APPLE_float_pixels ------------------------- */ + +#ifndef GL_APPLE_float_pixels +#define GL_APPLE_float_pixels 1 + +#define GL_HALF_APPLE 0x140B +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#define GL_COLOR_FLOAT_APPLE 0x8A0F + +#define GLEW_APPLE_float_pixels GLEW_GET_VAR(__GLEW_APPLE_float_pixels) + +#endif /* GL_APPLE_float_pixels */ + +/* ---------------------- GL_APPLE_flush_buffer_range ---------------------- */ + +#ifndef GL_APPLE_flush_buffer_range +#define GL_APPLE_flush_buffer_range 1 + +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 + +typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); + +#define glBufferParameteriAPPLE GLEW_GET_FUN(__glewBufferParameteriAPPLE) +#define glFlushMappedBufferRangeAPPLE GLEW_GET_FUN(__glewFlushMappedBufferRangeAPPLE) + +#define GLEW_APPLE_flush_buffer_range GLEW_GET_VAR(__GLEW_APPLE_flush_buffer_range) + +#endif /* GL_APPLE_flush_buffer_range */ + +/* ----------------------- GL_APPLE_object_purgeable ----------------------- */ + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 + +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D + +typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params); +typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); + +#define glGetObjectParameterivAPPLE GLEW_GET_FUN(__glewGetObjectParameterivAPPLE) +#define glObjectPurgeableAPPLE GLEW_GET_FUN(__glewObjectPurgeableAPPLE) +#define glObjectUnpurgeableAPPLE GLEW_GET_FUN(__glewObjectUnpurgeableAPPLE) + +#define GLEW_APPLE_object_purgeable GLEW_GET_VAR(__GLEW_APPLE_object_purgeable) + +#endif /* GL_APPLE_object_purgeable */ + +/* ------------------------- GL_APPLE_pixel_buffer ------------------------- */ + +#ifndef GL_APPLE_pixel_buffer +#define GL_APPLE_pixel_buffer 1 + +#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 + +#define GLEW_APPLE_pixel_buffer GLEW_GET_VAR(__GLEW_APPLE_pixel_buffer) + +#endif /* GL_APPLE_pixel_buffer */ + +/* ---------------------------- GL_APPLE_rgb_422 --------------------------- */ + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 + +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#define GL_RGB_422_APPLE 0x8A1F + +#define GLEW_APPLE_rgb_422 GLEW_GET_VAR(__GLEW_APPLE_rgb_422) + +#endif /* GL_APPLE_rgb_422 */ + +/* --------------------------- GL_APPLE_row_bytes -------------------------- */ + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 + +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 + +#define GLEW_APPLE_row_bytes GLEW_GET_VAR(__GLEW_APPLE_row_bytes) + +#endif /* GL_APPLE_row_bytes */ + +/* ------------------------ GL_APPLE_specular_vector ----------------------- */ + +#ifndef GL_APPLE_specular_vector +#define GL_APPLE_specular_vector 1 + +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 + +#define GLEW_APPLE_specular_vector GLEW_GET_VAR(__GLEW_APPLE_specular_vector) + +#endif /* GL_APPLE_specular_vector */ + +/* ------------------------- GL_APPLE_texture_range ------------------------ */ + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 + +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF + +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params); +typedef void (GLAPIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, GLvoid *pointer); + +#define glGetTexParameterPointervAPPLE GLEW_GET_FUN(__glewGetTexParameterPointervAPPLE) +#define glTextureRangeAPPLE GLEW_GET_FUN(__glewTextureRangeAPPLE) + +#define GLEW_APPLE_texture_range GLEW_GET_VAR(__GLEW_APPLE_texture_range) + +#endif /* GL_APPLE_texture_range */ + +/* ------------------------ GL_APPLE_transform_hint ------------------------ */ + +#ifndef GL_APPLE_transform_hint +#define GL_APPLE_transform_hint 1 + +#define GL_TRANSFORM_HINT_APPLE 0x85B1 + +#define GLEW_APPLE_transform_hint GLEW_GET_VAR(__GLEW_APPLE_transform_hint) + +#endif /* GL_APPLE_transform_hint */ + +/* ---------------------- GL_APPLE_vertex_array_object --------------------- */ + +#ifndef GL_APPLE_vertex_array_object +#define GL_APPLE_vertex_array_object 1 + +#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 + +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); + +#define glBindVertexArrayAPPLE GLEW_GET_FUN(__glewBindVertexArrayAPPLE) +#define glDeleteVertexArraysAPPLE GLEW_GET_FUN(__glewDeleteVertexArraysAPPLE) +#define glGenVertexArraysAPPLE GLEW_GET_FUN(__glewGenVertexArraysAPPLE) +#define glIsVertexArrayAPPLE GLEW_GET_FUN(__glewIsVertexArrayAPPLE) + +#define GLEW_APPLE_vertex_array_object GLEW_GET_VAR(__GLEW_APPLE_vertex_array_object) + +#endif /* GL_APPLE_vertex_array_object */ + +/* ---------------------- GL_APPLE_vertex_array_range ---------------------- */ + +#ifndef GL_APPLE_vertex_array_range +#define GL_APPLE_vertex_array_range 1 + +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_STORAGE_CLIENT_APPLE 0x85B4 +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF + +typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void* pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void* pointer); + +#define glFlushVertexArrayRangeAPPLE GLEW_GET_FUN(__glewFlushVertexArrayRangeAPPLE) +#define glVertexArrayParameteriAPPLE GLEW_GET_FUN(__glewVertexArrayParameteriAPPLE) +#define glVertexArrayRangeAPPLE GLEW_GET_FUN(__glewVertexArrayRangeAPPLE) + +#define GLEW_APPLE_vertex_array_range GLEW_GET_VAR(__GLEW_APPLE_vertex_array_range) + +#endif /* GL_APPLE_vertex_array_range */ + +/* ------------------- GL_APPLE_vertex_program_evaluators ------------------ */ + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_APPLE_vertex_program_evaluators 1 + +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 +#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 + +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points); + +#define glDisableVertexAttribAPPLE GLEW_GET_FUN(__glewDisableVertexAttribAPPLE) +#define glEnableVertexAttribAPPLE GLEW_GET_FUN(__glewEnableVertexAttribAPPLE) +#define glIsVertexAttribEnabledAPPLE GLEW_GET_FUN(__glewIsVertexAttribEnabledAPPLE) +#define glMapVertexAttrib1dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1dAPPLE) +#define glMapVertexAttrib1fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1fAPPLE) +#define glMapVertexAttrib2dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2dAPPLE) +#define glMapVertexAttrib2fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2fAPPLE) + +#define GLEW_APPLE_vertex_program_evaluators GLEW_GET_VAR(__GLEW_APPLE_vertex_program_evaluators) + +#endif /* GL_APPLE_vertex_program_evaluators */ + +/* --------------------------- GL_APPLE_ycbcr_422 -------------------------- */ + +#ifndef GL_APPLE_ycbcr_422 +#define GL_APPLE_ycbcr_422 1 + +#define GL_YCBCR_422_APPLE 0x85B9 +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB + +#define GLEW_APPLE_ycbcr_422 GLEW_GET_VAR(__GLEW_APPLE_ycbcr_422) + +#endif /* GL_APPLE_ycbcr_422 */ + +/* ------------------------ GL_ARB_ES2_compatibility ----------------------- */ + +#ifndef GL_ARB_ES2_compatibility +#define GL_ARB_ES2_compatibility 1 + +#define GL_FIXED 0x140C +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_LOW_FLOAT 0x8DF0 +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_LOW_INT 0x8DF3 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_HIGH_INT 0x8DF5 +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD + +typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); +typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision); +typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void); +typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const GLvoid*binary, GLsizei length); + +#define glClearDepthf GLEW_GET_FUN(__glewClearDepthf) +#define glDepthRangef GLEW_GET_FUN(__glewDepthRangef) +#define glGetShaderPrecisionFormat GLEW_GET_FUN(__glewGetShaderPrecisionFormat) +#define glReleaseShaderCompiler GLEW_GET_FUN(__glewReleaseShaderCompiler) +#define glShaderBinary GLEW_GET_FUN(__glewShaderBinary) + +#define GLEW_ARB_ES2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES2_compatibility) + +#endif /* GL_ARB_ES2_compatibility */ + +/* ----------------------- GL_ARB_blend_func_extended ---------------------- */ + +#ifndef GL_ARB_blend_func_extended +#define GL_ARB_blend_func_extended 1 + +#define GL_SRC1_COLOR 0x88F9 +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC + +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const char * name); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const char * name); + +#define glBindFragDataLocationIndexed GLEW_GET_FUN(__glewBindFragDataLocationIndexed) +#define glGetFragDataIndex GLEW_GET_FUN(__glewGetFragDataIndex) + +#define GLEW_ARB_blend_func_extended GLEW_GET_VAR(__GLEW_ARB_blend_func_extended) + +#endif /* GL_ARB_blend_func_extended */ + +/* ---------------------------- GL_ARB_cl_event ---------------------------- */ + +#ifndef GL_ARB_cl_event +#define GL_ARB_cl_event 1 + +#define GL_SYNC_CL_EVENT_ARB 0x8240 +#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 + +typedef GLsync (GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags); + +#define glCreateSyncFromCLeventARB GLEW_GET_FUN(__glewCreateSyncFromCLeventARB) + +#define GLEW_ARB_cl_event GLEW_GET_VAR(__GLEW_ARB_cl_event) + +#endif /* GL_ARB_cl_event */ + +/* ----------------------- GL_ARB_color_buffer_float ----------------------- */ + +#ifndef GL_ARB_color_buffer_float +#define GL_ARB_color_buffer_float 1 + +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D + +typedef void (GLAPIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); + +#define glClampColorARB GLEW_GET_FUN(__glewClampColorARB) + +#define GLEW_ARB_color_buffer_float GLEW_GET_VAR(__GLEW_ARB_color_buffer_float) + +#endif /* GL_ARB_color_buffer_float */ + +/* -------------------------- GL_ARB_compatibility ------------------------- */ + +#ifndef GL_ARB_compatibility +#define GL_ARB_compatibility 1 + +#define GLEW_ARB_compatibility GLEW_GET_VAR(__GLEW_ARB_compatibility) + +#endif /* GL_ARB_compatibility */ + +/* --------------------------- GL_ARB_copy_buffer -------------------------- */ + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 + +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 + +typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); + +#define glCopyBufferSubData GLEW_GET_FUN(__glewCopyBufferSubData) + +#define GLEW_ARB_copy_buffer GLEW_GET_VAR(__GLEW_ARB_copy_buffer) + +#endif /* GL_ARB_copy_buffer */ + +/* -------------------------- GL_ARB_debug_output -------------------------- */ + +#ifndef GL_ARB_debug_output +#define GL_ARB_debug_output 1 + +#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 +#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 +#define GL_DEBUG_SOURCE_API_ARB 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A +#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B +#define GL_DEBUG_TYPE_ERROR_ARB 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E +#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 +#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 +#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 +#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 +#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 + +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, void* userParam); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* buf); +typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, char* messageLog); + +#define glDebugMessageCallbackARB GLEW_GET_FUN(__glewDebugMessageCallbackARB) +#define glDebugMessageControlARB GLEW_GET_FUN(__glewDebugMessageControlARB) +#define glDebugMessageInsertARB GLEW_GET_FUN(__glewDebugMessageInsertARB) +#define glGetDebugMessageLogARB GLEW_GET_FUN(__glewGetDebugMessageLogARB) + +#define GLEW_ARB_debug_output GLEW_GET_VAR(__GLEW_ARB_debug_output) + +#endif /* GL_ARB_debug_output */ + +/* ----------------------- GL_ARB_depth_buffer_float ----------------------- */ + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 + +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD + +#define GLEW_ARB_depth_buffer_float GLEW_GET_VAR(__GLEW_ARB_depth_buffer_float) + +#endif /* GL_ARB_depth_buffer_float */ + +/* --------------------------- GL_ARB_depth_clamp -------------------------- */ + +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 + +#define GL_DEPTH_CLAMP 0x864F + +#define GLEW_ARB_depth_clamp GLEW_GET_VAR(__GLEW_ARB_depth_clamp) + +#endif /* GL_ARB_depth_clamp */ + +/* -------------------------- GL_ARB_depth_texture ------------------------- */ + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 + +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B + +#define GLEW_ARB_depth_texture GLEW_GET_VAR(__GLEW_ARB_depth_texture) + +#endif /* GL_ARB_depth_texture */ + +/* -------------------------- GL_ARB_draw_buffers -------------------------- */ + +#ifndef GL_ARB_draw_buffers +#define GL_ARB_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 +#define GL_DRAW_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15_ARB 0x8834 + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersARB GLEW_GET_FUN(__glewDrawBuffersARB) + +#define GLEW_ARB_draw_buffers GLEW_GET_VAR(__GLEW_ARB_draw_buffers) + +#endif /* GL_ARB_draw_buffers */ + +/* ----------------------- GL_ARB_draw_buffers_blend ----------------------- */ + +#ifndef GL_ARB_draw_buffers_blend +#define GL_ARB_draw_buffers_blend 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); + +#define glBlendEquationSeparateiARB GLEW_GET_FUN(__glewBlendEquationSeparateiARB) +#define glBlendEquationiARB GLEW_GET_FUN(__glewBlendEquationiARB) +#define glBlendFuncSeparateiARB GLEW_GET_FUN(__glewBlendFuncSeparateiARB) +#define glBlendFunciARB GLEW_GET_FUN(__glewBlendFunciARB) + +#define GLEW_ARB_draw_buffers_blend GLEW_GET_VAR(__GLEW_ARB_draw_buffers_blend) + +#endif /* GL_ARB_draw_buffers_blend */ + +/* -------------------- GL_ARB_draw_elements_base_vertex ------------------- */ + +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 + +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, void* indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void* indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei* count, GLenum type, GLvoid**indices, GLsizei primcount, GLint *basevertex); + +#define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) +#define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) +#define glDrawRangeElementsBaseVertex GLEW_GET_FUN(__glewDrawRangeElementsBaseVertex) +#define glMultiDrawElementsBaseVertex GLEW_GET_FUN(__glewMultiDrawElementsBaseVertex) + +#define GLEW_ARB_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_ARB_draw_elements_base_vertex) + +#endif /* GL_ARB_draw_elements_base_vertex */ + +/* -------------------------- GL_ARB_draw_indirect ------------------------- */ + +#ifndef GL_ARB_draw_indirect +#define GL_ARB_draw_indirect 1 + +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void* indirect); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void* indirect); + +#define glDrawArraysIndirect GLEW_GET_FUN(__glewDrawArraysIndirect) +#define glDrawElementsIndirect GLEW_GET_FUN(__glewDrawElementsIndirect) + +#define GLEW_ARB_draw_indirect GLEW_GET_VAR(__GLEW_ARB_draw_indirect) + +#endif /* GL_ARB_draw_indirect */ + +/* ------------------------- GL_ARB_draw_instanced ------------------------- */ + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); + +#define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB) +#define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB) + +#define GLEW_ARB_draw_instanced GLEW_GET_VAR(__GLEW_ARB_draw_instanced) + +#endif /* GL_ARB_draw_instanced */ + +/* -------------------- GL_ARB_explicit_attrib_location -------------------- */ + +#ifndef GL_ARB_explicit_attrib_location +#define GL_ARB_explicit_attrib_location 1 + +#define GLEW_ARB_explicit_attrib_location GLEW_GET_VAR(__GLEW_ARB_explicit_attrib_location) + +#endif /* GL_ARB_explicit_attrib_location */ + +/* ------------------- GL_ARB_fragment_coord_conventions ------------------- */ + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 + +#define GLEW_ARB_fragment_coord_conventions GLEW_GET_VAR(__GLEW_ARB_fragment_coord_conventions) + +#endif /* GL_ARB_fragment_coord_conventions */ + +/* ------------------------ GL_ARB_fragment_program ------------------------ */ + +#ifndef GL_ARB_fragment_program +#define GL_ARB_fragment_program 1 + +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 + +#define GLEW_ARB_fragment_program GLEW_GET_VAR(__GLEW_ARB_fragment_program) + +#endif /* GL_ARB_fragment_program */ + +/* --------------------- GL_ARB_fragment_program_shadow -------------------- */ + +#ifndef GL_ARB_fragment_program_shadow +#define GL_ARB_fragment_program_shadow 1 + +#define GLEW_ARB_fragment_program_shadow GLEW_GET_VAR(__GLEW_ARB_fragment_program_shadow) + +#endif /* GL_ARB_fragment_program_shadow */ + +/* ------------------------- GL_ARB_fragment_shader ------------------------ */ + +#ifndef GL_ARB_fragment_shader +#define GL_ARB_fragment_shader 1 + +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B + +#define GLEW_ARB_fragment_shader GLEW_GET_VAR(__GLEW_ARB_fragment_shader) + +#endif /* GL_ARB_fragment_shader */ + +/* ----------------------- GL_ARB_framebuffer_object ----------------------- */ + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 + +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_INDEX 0x8222 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_SRGB 0x8C40 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 + +typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer); +typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glBindFramebuffer GLEW_GET_FUN(__glewBindFramebuffer) +#define glBindRenderbuffer GLEW_GET_FUN(__glewBindRenderbuffer) +#define glBlitFramebuffer GLEW_GET_FUN(__glewBlitFramebuffer) +#define glCheckFramebufferStatus GLEW_GET_FUN(__glewCheckFramebufferStatus) +#define glDeleteFramebuffers GLEW_GET_FUN(__glewDeleteFramebuffers) +#define glDeleteRenderbuffers GLEW_GET_FUN(__glewDeleteRenderbuffers) +#define glFramebufferRenderbuffer GLEW_GET_FUN(__glewFramebufferRenderbuffer) +#define glFramebufferTexture1D GLEW_GET_FUN(__glewFramebufferTexture1D) +#define glFramebufferTexture2D GLEW_GET_FUN(__glewFramebufferTexture2D) +#define glFramebufferTexture3D GLEW_GET_FUN(__glewFramebufferTexture3D) +#define glFramebufferTextureLayer GLEW_GET_FUN(__glewFramebufferTextureLayer) +#define glGenFramebuffers GLEW_GET_FUN(__glewGenFramebuffers) +#define glGenRenderbuffers GLEW_GET_FUN(__glewGenRenderbuffers) +#define glGenerateMipmap GLEW_GET_FUN(__glewGenerateMipmap) +#define glGetFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetFramebufferAttachmentParameteriv) +#define glGetRenderbufferParameteriv GLEW_GET_FUN(__glewGetRenderbufferParameteriv) +#define glIsFramebuffer GLEW_GET_FUN(__glewIsFramebuffer) +#define glIsRenderbuffer GLEW_GET_FUN(__glewIsRenderbuffer) +#define glRenderbufferStorage GLEW_GET_FUN(__glewRenderbufferStorage) +#define glRenderbufferStorageMultisample GLEW_GET_FUN(__glewRenderbufferStorageMultisample) + +#define GLEW_ARB_framebuffer_object GLEW_GET_VAR(__GLEW_ARB_framebuffer_object) + +#endif /* GL_ARB_framebuffer_object */ + +/* ------------------------ GL_ARB_framebuffer_sRGB ------------------------ */ + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 + +#define GL_FRAMEBUFFER_SRGB 0x8DB9 + +#define GLEW_ARB_framebuffer_sRGB GLEW_GET_VAR(__GLEW_ARB_framebuffer_sRGB) + +#endif /* GL_ARB_framebuffer_sRGB */ + +/* ------------------------ GL_ARB_geometry_shader4 ------------------------ */ + +#ifndef GL_ARB_geometry_shader4 +#define GL_ARB_geometry_shader4 1 + +#define GL_LINES_ADJACENCY_ARB 0xA +#define GL_LINE_STRIP_ADJACENCY_ARB 0xB +#define GL_TRIANGLES_ADJACENCY_ARB 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0xD +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 +#define GL_GEOMETRY_SHADER_ARB 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); + +#define glFramebufferTextureARB GLEW_GET_FUN(__glewFramebufferTextureARB) +#define glFramebufferTextureFaceARB GLEW_GET_FUN(__glewFramebufferTextureFaceARB) +#define glFramebufferTextureLayerARB GLEW_GET_FUN(__glewFramebufferTextureLayerARB) +#define glProgramParameteriARB GLEW_GET_FUN(__glewProgramParameteriARB) + +#define GLEW_ARB_geometry_shader4 GLEW_GET_VAR(__GLEW_ARB_geometry_shader4) + +#endif /* GL_ARB_geometry_shader4 */ + +/* ----------------------- GL_ARB_get_program_binary ----------------------- */ + +#ifndef GL_ARB_get_program_binary +#define GL_ARB_get_program_binary 1 + +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_PROGRAM_BINARY_FORMATS 0x87FF + +typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, GLvoid*binary); +typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void* binary, GLsizei length); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); + +#define glGetProgramBinary GLEW_GET_FUN(__glewGetProgramBinary) +#define glProgramBinary GLEW_GET_FUN(__glewProgramBinary) +#define glProgramParameteri GLEW_GET_FUN(__glewProgramParameteri) + +#define GLEW_ARB_get_program_binary GLEW_GET_VAR(__GLEW_ARB_get_program_binary) + +#endif /* GL_ARB_get_program_binary */ + +/* --------------------------- GL_ARB_gpu_shader5 -------------------------- */ + +#ifndef GL_ARB_gpu_shader5 +#define GL_ARB_gpu_shader5 1 + +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_MAX_VERTEX_STREAMS 0x8E71 + +#define GLEW_ARB_gpu_shader5 GLEW_GET_VAR(__GLEW_ARB_gpu_shader5) + +#endif /* GL_ARB_gpu_shader5 */ + +/* ------------------------- GL_ARB_gpu_shader_fp64 ------------------------ */ + +#ifndef GL_ARB_gpu_shader_fp64 +#define GL_ARB_gpu_shader_fp64 1 + +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE + +typedef void (GLAPIENTRY * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); + +#define glGetUniformdv GLEW_GET_FUN(__glewGetUniformdv) +#define glProgramUniform1dEXT GLEW_GET_FUN(__glewProgramUniform1dEXT) +#define glProgramUniform1dvEXT GLEW_GET_FUN(__glewProgramUniform1dvEXT) +#define glProgramUniform2dEXT GLEW_GET_FUN(__glewProgramUniform2dEXT) +#define glProgramUniform2dvEXT GLEW_GET_FUN(__glewProgramUniform2dvEXT) +#define glProgramUniform3dEXT GLEW_GET_FUN(__glewProgramUniform3dEXT) +#define glProgramUniform3dvEXT GLEW_GET_FUN(__glewProgramUniform3dvEXT) +#define glProgramUniform4dEXT GLEW_GET_FUN(__glewProgramUniform4dEXT) +#define glProgramUniform4dvEXT GLEW_GET_FUN(__glewProgramUniform4dvEXT) +#define glProgramUniformMatrix2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2dvEXT) +#define glProgramUniformMatrix2x3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3dvEXT) +#define glProgramUniformMatrix2x4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4dvEXT) +#define glProgramUniformMatrix3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3dvEXT) +#define glProgramUniformMatrix3x2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2dvEXT) +#define glProgramUniformMatrix3x4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4dvEXT) +#define glProgramUniformMatrix4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4dvEXT) +#define glProgramUniformMatrix4x2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2dvEXT) +#define glProgramUniformMatrix4x3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3dvEXT) +#define glUniform1d GLEW_GET_FUN(__glewUniform1d) +#define glUniform1dv GLEW_GET_FUN(__glewUniform1dv) +#define glUniform2d GLEW_GET_FUN(__glewUniform2d) +#define glUniform2dv GLEW_GET_FUN(__glewUniform2dv) +#define glUniform3d GLEW_GET_FUN(__glewUniform3d) +#define glUniform3dv GLEW_GET_FUN(__glewUniform3dv) +#define glUniform4d GLEW_GET_FUN(__glewUniform4d) +#define glUniform4dv GLEW_GET_FUN(__glewUniform4dv) +#define glUniformMatrix2dv GLEW_GET_FUN(__glewUniformMatrix2dv) +#define glUniformMatrix2x3dv GLEW_GET_FUN(__glewUniformMatrix2x3dv) +#define glUniformMatrix2x4dv GLEW_GET_FUN(__glewUniformMatrix2x4dv) +#define glUniformMatrix3dv GLEW_GET_FUN(__glewUniformMatrix3dv) +#define glUniformMatrix3x2dv GLEW_GET_FUN(__glewUniformMatrix3x2dv) +#define glUniformMatrix3x4dv GLEW_GET_FUN(__glewUniformMatrix3x4dv) +#define glUniformMatrix4dv GLEW_GET_FUN(__glewUniformMatrix4dv) +#define glUniformMatrix4x2dv GLEW_GET_FUN(__glewUniformMatrix4x2dv) +#define glUniformMatrix4x3dv GLEW_GET_FUN(__glewUniformMatrix4x3dv) + +#define GLEW_ARB_gpu_shader_fp64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_fp64) + +#endif /* GL_ARB_gpu_shader_fp64 */ + +/* ------------------------ GL_ARB_half_float_pixel ------------------------ */ + +#ifndef GL_ARB_half_float_pixel +#define GL_ARB_half_float_pixel 1 + +#define GL_HALF_FLOAT_ARB 0x140B + +#define GLEW_ARB_half_float_pixel GLEW_GET_VAR(__GLEW_ARB_half_float_pixel) + +#endif /* GL_ARB_half_float_pixel */ + +/* ------------------------ GL_ARB_half_float_vertex ----------------------- */ + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 + +#define GL_HALF_FLOAT 0x140B + +#define GLEW_ARB_half_float_vertex GLEW_GET_VAR(__GLEW_ARB_half_float_vertex) + +#endif /* GL_ARB_half_float_vertex */ + +/* ----------------------------- GL_ARB_imaging ---------------------------- */ + +#ifndef GL_ARB_imaging +#define GL_ARB_imaging 1 + +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_IGNORE_BORDER 0x8150 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_WRAP_BORDER 0x8152 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 + +typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (GLAPIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values); +typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef void (GLAPIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (GLAPIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLRESETMINMAXPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); + +#define glColorSubTable GLEW_GET_FUN(__glewColorSubTable) +#define glColorTable GLEW_GET_FUN(__glewColorTable) +#define glColorTableParameterfv GLEW_GET_FUN(__glewColorTableParameterfv) +#define glColorTableParameteriv GLEW_GET_FUN(__glewColorTableParameteriv) +#define glConvolutionFilter1D GLEW_GET_FUN(__glewConvolutionFilter1D) +#define glConvolutionFilter2D GLEW_GET_FUN(__glewConvolutionFilter2D) +#define glConvolutionParameterf GLEW_GET_FUN(__glewConvolutionParameterf) +#define glConvolutionParameterfv GLEW_GET_FUN(__glewConvolutionParameterfv) +#define glConvolutionParameteri GLEW_GET_FUN(__glewConvolutionParameteri) +#define glConvolutionParameteriv GLEW_GET_FUN(__glewConvolutionParameteriv) +#define glCopyColorSubTable GLEW_GET_FUN(__glewCopyColorSubTable) +#define glCopyColorTable GLEW_GET_FUN(__glewCopyColorTable) +#define glCopyConvolutionFilter1D GLEW_GET_FUN(__glewCopyConvolutionFilter1D) +#define glCopyConvolutionFilter2D GLEW_GET_FUN(__glewCopyConvolutionFilter2D) +#define glGetColorTable GLEW_GET_FUN(__glewGetColorTable) +#define glGetColorTableParameterfv GLEW_GET_FUN(__glewGetColorTableParameterfv) +#define glGetColorTableParameteriv GLEW_GET_FUN(__glewGetColorTableParameteriv) +#define glGetConvolutionFilter GLEW_GET_FUN(__glewGetConvolutionFilter) +#define glGetConvolutionParameterfv GLEW_GET_FUN(__glewGetConvolutionParameterfv) +#define glGetConvolutionParameteriv GLEW_GET_FUN(__glewGetConvolutionParameteriv) +#define glGetHistogram GLEW_GET_FUN(__glewGetHistogram) +#define glGetHistogramParameterfv GLEW_GET_FUN(__glewGetHistogramParameterfv) +#define glGetHistogramParameteriv GLEW_GET_FUN(__glewGetHistogramParameteriv) +#define glGetMinmax GLEW_GET_FUN(__glewGetMinmax) +#define glGetMinmaxParameterfv GLEW_GET_FUN(__glewGetMinmaxParameterfv) +#define glGetMinmaxParameteriv GLEW_GET_FUN(__glewGetMinmaxParameteriv) +#define glGetSeparableFilter GLEW_GET_FUN(__glewGetSeparableFilter) +#define glHistogram GLEW_GET_FUN(__glewHistogram) +#define glMinmax GLEW_GET_FUN(__glewMinmax) +#define glResetHistogram GLEW_GET_FUN(__glewResetHistogram) +#define glResetMinmax GLEW_GET_FUN(__glewResetMinmax) +#define glSeparableFilter2D GLEW_GET_FUN(__glewSeparableFilter2D) + +#define GLEW_ARB_imaging GLEW_GET_VAR(__GLEW_ARB_imaging) + +#endif /* GL_ARB_imaging */ + +/* ------------------------ GL_ARB_instanced_arrays ------------------------ */ + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisorARB GLEW_GET_FUN(__glewVertexAttribDivisorARB) + +#define GLEW_ARB_instanced_arrays GLEW_GET_VAR(__GLEW_ARB_instanced_arrays) + +#endif /* GL_ARB_instanced_arrays */ + +/* ------------------------ GL_ARB_map_buffer_range ------------------------ */ + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 + +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 + +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +typedef GLvoid * (GLAPIENTRY * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); + +#define glFlushMappedBufferRange GLEW_GET_FUN(__glewFlushMappedBufferRange) +#define glMapBufferRange GLEW_GET_FUN(__glewMapBufferRange) + +#define GLEW_ARB_map_buffer_range GLEW_GET_VAR(__GLEW_ARB_map_buffer_range) + +#endif /* GL_ARB_map_buffer_range */ + +/* ------------------------- GL_ARB_matrix_palette ------------------------- */ + +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 + +#define GL_MATRIX_PALETTE_ARB 0x8840 +#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 +#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 +#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 +#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 +#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 + +typedef void (GLAPIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, GLubyte *indices); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, GLuint *indices); +typedef void (GLAPIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, GLushort *indices); + +#define glCurrentPaletteMatrixARB GLEW_GET_FUN(__glewCurrentPaletteMatrixARB) +#define glMatrixIndexPointerARB GLEW_GET_FUN(__glewMatrixIndexPointerARB) +#define glMatrixIndexubvARB GLEW_GET_FUN(__glewMatrixIndexubvARB) +#define glMatrixIndexuivARB GLEW_GET_FUN(__glewMatrixIndexuivARB) +#define glMatrixIndexusvARB GLEW_GET_FUN(__glewMatrixIndexusvARB) + +#define GLEW_ARB_matrix_palette GLEW_GET_VAR(__GLEW_ARB_matrix_palette) + +#endif /* GL_ARB_matrix_palette */ + +/* --------------------------- GL_ARB_multisample -------------------------- */ + +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 + +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 + +typedef void (GLAPIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); + +#define glSampleCoverageARB GLEW_GET_FUN(__glewSampleCoverageARB) + +#define GLEW_ARB_multisample GLEW_GET_VAR(__GLEW_ARB_multisample) + +#endif /* GL_ARB_multisample */ + +/* -------------------------- GL_ARB_multitexture -------------------------- */ + +#ifndef GL_ARB_multitexture +#define GL_ARB_multitexture 1 + +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 + +typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); + +#define glActiveTextureARB GLEW_GET_FUN(__glewActiveTextureARB) +#define glClientActiveTextureARB GLEW_GET_FUN(__glewClientActiveTextureARB) +#define glMultiTexCoord1dARB GLEW_GET_FUN(__glewMultiTexCoord1dARB) +#define glMultiTexCoord1dvARB GLEW_GET_FUN(__glewMultiTexCoord1dvARB) +#define glMultiTexCoord1fARB GLEW_GET_FUN(__glewMultiTexCoord1fARB) +#define glMultiTexCoord1fvARB GLEW_GET_FUN(__glewMultiTexCoord1fvARB) +#define glMultiTexCoord1iARB GLEW_GET_FUN(__glewMultiTexCoord1iARB) +#define glMultiTexCoord1ivARB GLEW_GET_FUN(__glewMultiTexCoord1ivARB) +#define glMultiTexCoord1sARB GLEW_GET_FUN(__glewMultiTexCoord1sARB) +#define glMultiTexCoord1svARB GLEW_GET_FUN(__glewMultiTexCoord1svARB) +#define glMultiTexCoord2dARB GLEW_GET_FUN(__glewMultiTexCoord2dARB) +#define glMultiTexCoord2dvARB GLEW_GET_FUN(__glewMultiTexCoord2dvARB) +#define glMultiTexCoord2fARB GLEW_GET_FUN(__glewMultiTexCoord2fARB) +#define glMultiTexCoord2fvARB GLEW_GET_FUN(__glewMultiTexCoord2fvARB) +#define glMultiTexCoord2iARB GLEW_GET_FUN(__glewMultiTexCoord2iARB) +#define glMultiTexCoord2ivARB GLEW_GET_FUN(__glewMultiTexCoord2ivARB) +#define glMultiTexCoord2sARB GLEW_GET_FUN(__glewMultiTexCoord2sARB) +#define glMultiTexCoord2svARB GLEW_GET_FUN(__glewMultiTexCoord2svARB) +#define glMultiTexCoord3dARB GLEW_GET_FUN(__glewMultiTexCoord3dARB) +#define glMultiTexCoord3dvARB GLEW_GET_FUN(__glewMultiTexCoord3dvARB) +#define glMultiTexCoord3fARB GLEW_GET_FUN(__glewMultiTexCoord3fARB) +#define glMultiTexCoord3fvARB GLEW_GET_FUN(__glewMultiTexCoord3fvARB) +#define glMultiTexCoord3iARB GLEW_GET_FUN(__glewMultiTexCoord3iARB) +#define glMultiTexCoord3ivARB GLEW_GET_FUN(__glewMultiTexCoord3ivARB) +#define glMultiTexCoord3sARB GLEW_GET_FUN(__glewMultiTexCoord3sARB) +#define glMultiTexCoord3svARB GLEW_GET_FUN(__glewMultiTexCoord3svARB) +#define glMultiTexCoord4dARB GLEW_GET_FUN(__glewMultiTexCoord4dARB) +#define glMultiTexCoord4dvARB GLEW_GET_FUN(__glewMultiTexCoord4dvARB) +#define glMultiTexCoord4fARB GLEW_GET_FUN(__glewMultiTexCoord4fARB) +#define glMultiTexCoord4fvARB GLEW_GET_FUN(__glewMultiTexCoord4fvARB) +#define glMultiTexCoord4iARB GLEW_GET_FUN(__glewMultiTexCoord4iARB) +#define glMultiTexCoord4ivARB GLEW_GET_FUN(__glewMultiTexCoord4ivARB) +#define glMultiTexCoord4sARB GLEW_GET_FUN(__glewMultiTexCoord4sARB) +#define glMultiTexCoord4svARB GLEW_GET_FUN(__glewMultiTexCoord4svARB) + +#define GLEW_ARB_multitexture GLEW_GET_VAR(__GLEW_ARB_multitexture) + +#endif /* GL_ARB_multitexture */ + +/* ------------------------- GL_ARB_occlusion_query ------------------------ */ + +#ifndef GL_ARB_occlusion_query +#define GL_ARB_occlusion_query 1 + +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#define GL_SAMPLES_PASSED_ARB 0x8914 + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDQUERYARBPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISQUERYARBPROC) (GLuint id); + +#define glBeginQueryARB GLEW_GET_FUN(__glewBeginQueryARB) +#define glDeleteQueriesARB GLEW_GET_FUN(__glewDeleteQueriesARB) +#define glEndQueryARB GLEW_GET_FUN(__glewEndQueryARB) +#define glGenQueriesARB GLEW_GET_FUN(__glewGenQueriesARB) +#define glGetQueryObjectivARB GLEW_GET_FUN(__glewGetQueryObjectivARB) +#define glGetQueryObjectuivARB GLEW_GET_FUN(__glewGetQueryObjectuivARB) +#define glGetQueryivARB GLEW_GET_FUN(__glewGetQueryivARB) +#define glIsQueryARB GLEW_GET_FUN(__glewIsQueryARB) + +#define GLEW_ARB_occlusion_query GLEW_GET_VAR(__GLEW_ARB_occlusion_query) + +#endif /* GL_ARB_occlusion_query */ + +/* ------------------------ GL_ARB_occlusion_query2 ------------------------ */ + +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 + +#define GL_ANY_SAMPLES_PASSED 0x8C2F + +#define GLEW_ARB_occlusion_query2 GLEW_GET_VAR(__GLEW_ARB_occlusion_query2) + +#endif /* GL_ARB_occlusion_query2 */ + +/* ----------------------- GL_ARB_pixel_buffer_object ---------------------- */ + +#ifndef GL_ARB_pixel_buffer_object +#define GL_ARB_pixel_buffer_object 1 + +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF + +#define GLEW_ARB_pixel_buffer_object GLEW_GET_VAR(__GLEW_ARB_pixel_buffer_object) + +#endif /* GL_ARB_pixel_buffer_object */ + +/* ------------------------ GL_ARB_point_parameters ------------------------ */ + +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 + +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 + +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat* params); + +#define glPointParameterfARB GLEW_GET_FUN(__glewPointParameterfARB) +#define glPointParameterfvARB GLEW_GET_FUN(__glewPointParameterfvARB) + +#define GLEW_ARB_point_parameters GLEW_GET_VAR(__GLEW_ARB_point_parameters) + +#endif /* GL_ARB_point_parameters */ + +/* -------------------------- GL_ARB_point_sprite -------------------------- */ + +#ifndef GL_ARB_point_sprite +#define GL_ARB_point_sprite 1 + +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 + +#define GLEW_ARB_point_sprite GLEW_GET_VAR(__GLEW_ARB_point_sprite) + +#endif /* GL_ARB_point_sprite */ + +/* ------------------------ GL_ARB_provoking_vertex ------------------------ */ + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 + +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F + +typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC) (GLenum mode); + +#define glProvokingVertex GLEW_GET_FUN(__glewProvokingVertex) + +#define GLEW_ARB_provoking_vertex GLEW_GET_VAR(__GLEW_ARB_provoking_vertex) + +#endif /* GL_ARB_provoking_vertex */ + +/* --------------------------- GL_ARB_robustness --------------------------- */ + +#ifndef GL_ARB_robustness +#define GL_ARB_robustness 1 + +#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 + +typedef void (GLAPIENTRY * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table); +typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void* img); +typedef void (GLAPIENTRY * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image); +typedef void (GLAPIENTRY * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); +typedef void (GLAPIENTRY * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v); +typedef void (GLAPIENTRY * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v); +typedef void (GLAPIENTRY * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint* v); +typedef void (GLAPIENTRY * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); +typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat* values); +typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint* values); +typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort* values); +typedef void (GLAPIENTRY * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte* pattern); +typedef void (GLAPIENTRY * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, GLvoid*column, GLvoid*span); +typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params); +typedef void (GLAPIENTRY * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data); + +#define glGetnColorTableARB GLEW_GET_FUN(__glewGetnColorTableARB) +#define glGetnCompressedTexImageARB GLEW_GET_FUN(__glewGetnCompressedTexImageARB) +#define glGetnConvolutionFilterARB GLEW_GET_FUN(__glewGetnConvolutionFilterARB) +#define glGetnHistogramARB GLEW_GET_FUN(__glewGetnHistogramARB) +#define glGetnMapdvARB GLEW_GET_FUN(__glewGetnMapdvARB) +#define glGetnMapfvARB GLEW_GET_FUN(__glewGetnMapfvARB) +#define glGetnMapivARB GLEW_GET_FUN(__glewGetnMapivARB) +#define glGetnMinmaxARB GLEW_GET_FUN(__glewGetnMinmaxARB) +#define glGetnPixelMapfvARB GLEW_GET_FUN(__glewGetnPixelMapfvARB) +#define glGetnPixelMapuivARB GLEW_GET_FUN(__glewGetnPixelMapuivARB) +#define glGetnPixelMapusvARB GLEW_GET_FUN(__glewGetnPixelMapusvARB) +#define glGetnPolygonStippleARB GLEW_GET_FUN(__glewGetnPolygonStippleARB) +#define glGetnSeparableFilterARB GLEW_GET_FUN(__glewGetnSeparableFilterARB) +#define glGetnTexImageARB GLEW_GET_FUN(__glewGetnTexImageARB) +#define glGetnUniformdvARB GLEW_GET_FUN(__glewGetnUniformdvARB) +#define glGetnUniformfvARB GLEW_GET_FUN(__glewGetnUniformfvARB) +#define glGetnUniformivARB GLEW_GET_FUN(__glewGetnUniformivARB) +#define glGetnUniformuivARB GLEW_GET_FUN(__glewGetnUniformuivARB) +#define glReadnPixelsARB GLEW_GET_FUN(__glewReadnPixelsARB) + +#define GLEW_ARB_robustness GLEW_GET_VAR(__GLEW_ARB_robustness) + +#endif /* GL_ARB_robustness */ + +/* ------------------------- GL_ARB_sample_shading ------------------------- */ + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 + +#define GL_SAMPLE_SHADING_ARB 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 + +typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); + +#define glMinSampleShadingARB GLEW_GET_FUN(__glewMinSampleShadingARB) + +#define GLEW_ARB_sample_shading GLEW_GET_VAR(__GLEW_ARB_sample_shading) + +#endif /* GL_ARB_sample_shading */ + +/* ------------------------- GL_ARB_sampler_objects ------------------------ */ + +#ifndef GL_ARB_sampler_objects +#define GL_ARB_sampler_objects 1 + +#define GL_SAMPLER_BINDING 0x8919 + +typedef void (GLAPIENTRY * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); +typedef void (GLAPIENTRY * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers); +typedef void (GLAPIENTRY * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISSAMPLERPROC) (GLuint sampler); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint* params); + +#define glBindSampler GLEW_GET_FUN(__glewBindSampler) +#define glDeleteSamplers GLEW_GET_FUN(__glewDeleteSamplers) +#define glGenSamplers GLEW_GET_FUN(__glewGenSamplers) +#define glGetSamplerParameterIiv GLEW_GET_FUN(__glewGetSamplerParameterIiv) +#define glGetSamplerParameterIuiv GLEW_GET_FUN(__glewGetSamplerParameterIuiv) +#define glGetSamplerParameterfv GLEW_GET_FUN(__glewGetSamplerParameterfv) +#define glGetSamplerParameteriv GLEW_GET_FUN(__glewGetSamplerParameteriv) +#define glIsSampler GLEW_GET_FUN(__glewIsSampler) +#define glSamplerParameterIiv GLEW_GET_FUN(__glewSamplerParameterIiv) +#define glSamplerParameterIuiv GLEW_GET_FUN(__glewSamplerParameterIuiv) +#define glSamplerParameterf GLEW_GET_FUN(__glewSamplerParameterf) +#define glSamplerParameterfv GLEW_GET_FUN(__glewSamplerParameterfv) +#define glSamplerParameteri GLEW_GET_FUN(__glewSamplerParameteri) +#define glSamplerParameteriv GLEW_GET_FUN(__glewSamplerParameteriv) + +#define GLEW_ARB_sampler_objects GLEW_GET_VAR(__GLEW_ARB_sampler_objects) + +#endif /* GL_ARB_sampler_objects */ + +/* ------------------------ GL_ARB_seamless_cube_map ----------------------- */ + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F + +#define GLEW_ARB_seamless_cube_map GLEW_GET_VAR(__GLEW_ARB_seamless_cube_map) + +#endif /* GL_ARB_seamless_cube_map */ + +/* --------------------- GL_ARB_separate_shader_objects -------------------- */ + +#ifndef GL_ARB_separate_shader_objects +#define GL_ARB_separate_shader_objects 1 + +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#define GL_ALL_SHADER_BITS 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); +typedef void (GLAPIENTRY * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const char ** strings); +typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines); +typedef void (GLAPIENTRY * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei* length, char *infoLog); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint x, GLuint y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); + +#define glActiveShaderProgram GLEW_GET_FUN(__glewActiveShaderProgram) +#define glBindProgramPipeline GLEW_GET_FUN(__glewBindProgramPipeline) +#define glCreateShaderProgramv GLEW_GET_FUN(__glewCreateShaderProgramv) +#define glDeleteProgramPipelines GLEW_GET_FUN(__glewDeleteProgramPipelines) +#define glGenProgramPipelines GLEW_GET_FUN(__glewGenProgramPipelines) +#define glGetProgramPipelineInfoLog GLEW_GET_FUN(__glewGetProgramPipelineInfoLog) +#define glGetProgramPipelineiv GLEW_GET_FUN(__glewGetProgramPipelineiv) +#define glIsProgramPipeline GLEW_GET_FUN(__glewIsProgramPipeline) +#define glProgramUniform1d GLEW_GET_FUN(__glewProgramUniform1d) +#define glProgramUniform1dv GLEW_GET_FUN(__glewProgramUniform1dv) +#define glProgramUniform1f GLEW_GET_FUN(__glewProgramUniform1f) +#define glProgramUniform1fv GLEW_GET_FUN(__glewProgramUniform1fv) +#define glProgramUniform1i GLEW_GET_FUN(__glewProgramUniform1i) +#define glProgramUniform1iv GLEW_GET_FUN(__glewProgramUniform1iv) +#define glProgramUniform1ui GLEW_GET_FUN(__glewProgramUniform1ui) +#define glProgramUniform1uiv GLEW_GET_FUN(__glewProgramUniform1uiv) +#define glProgramUniform2d GLEW_GET_FUN(__glewProgramUniform2d) +#define glProgramUniform2dv GLEW_GET_FUN(__glewProgramUniform2dv) +#define glProgramUniform2f GLEW_GET_FUN(__glewProgramUniform2f) +#define glProgramUniform2fv GLEW_GET_FUN(__glewProgramUniform2fv) +#define glProgramUniform2i GLEW_GET_FUN(__glewProgramUniform2i) +#define glProgramUniform2iv GLEW_GET_FUN(__glewProgramUniform2iv) +#define glProgramUniform2ui GLEW_GET_FUN(__glewProgramUniform2ui) +#define glProgramUniform2uiv GLEW_GET_FUN(__glewProgramUniform2uiv) +#define glProgramUniform3d GLEW_GET_FUN(__glewProgramUniform3d) +#define glProgramUniform3dv GLEW_GET_FUN(__glewProgramUniform3dv) +#define glProgramUniform3f GLEW_GET_FUN(__glewProgramUniform3f) +#define glProgramUniform3fv GLEW_GET_FUN(__glewProgramUniform3fv) +#define glProgramUniform3i GLEW_GET_FUN(__glewProgramUniform3i) +#define glProgramUniform3iv GLEW_GET_FUN(__glewProgramUniform3iv) +#define glProgramUniform3ui GLEW_GET_FUN(__glewProgramUniform3ui) +#define glProgramUniform3uiv GLEW_GET_FUN(__glewProgramUniform3uiv) +#define glProgramUniform4d GLEW_GET_FUN(__glewProgramUniform4d) +#define glProgramUniform4dv GLEW_GET_FUN(__glewProgramUniform4dv) +#define glProgramUniform4f GLEW_GET_FUN(__glewProgramUniform4f) +#define glProgramUniform4fv GLEW_GET_FUN(__glewProgramUniform4fv) +#define glProgramUniform4i GLEW_GET_FUN(__glewProgramUniform4i) +#define glProgramUniform4iv GLEW_GET_FUN(__glewProgramUniform4iv) +#define glProgramUniform4ui GLEW_GET_FUN(__glewProgramUniform4ui) +#define glProgramUniform4uiv GLEW_GET_FUN(__glewProgramUniform4uiv) +#define glProgramUniformMatrix2dv GLEW_GET_FUN(__glewProgramUniformMatrix2dv) +#define glProgramUniformMatrix2fv GLEW_GET_FUN(__glewProgramUniformMatrix2fv) +#define glProgramUniformMatrix2x3dv GLEW_GET_FUN(__glewProgramUniformMatrix2x3dv) +#define glProgramUniformMatrix2x3fv GLEW_GET_FUN(__glewProgramUniformMatrix2x3fv) +#define glProgramUniformMatrix2x4dv GLEW_GET_FUN(__glewProgramUniformMatrix2x4dv) +#define glProgramUniformMatrix2x4fv GLEW_GET_FUN(__glewProgramUniformMatrix2x4fv) +#define glProgramUniformMatrix3dv GLEW_GET_FUN(__glewProgramUniformMatrix3dv) +#define glProgramUniformMatrix3fv GLEW_GET_FUN(__glewProgramUniformMatrix3fv) +#define glProgramUniformMatrix3x2dv GLEW_GET_FUN(__glewProgramUniformMatrix3x2dv) +#define glProgramUniformMatrix3x2fv GLEW_GET_FUN(__glewProgramUniformMatrix3x2fv) +#define glProgramUniformMatrix3x4dv GLEW_GET_FUN(__glewProgramUniformMatrix3x4dv) +#define glProgramUniformMatrix3x4fv GLEW_GET_FUN(__glewProgramUniformMatrix3x4fv) +#define glProgramUniformMatrix4dv GLEW_GET_FUN(__glewProgramUniformMatrix4dv) +#define glProgramUniformMatrix4fv GLEW_GET_FUN(__glewProgramUniformMatrix4fv) +#define glProgramUniformMatrix4x2dv GLEW_GET_FUN(__glewProgramUniformMatrix4x2dv) +#define glProgramUniformMatrix4x2fv GLEW_GET_FUN(__glewProgramUniformMatrix4x2fv) +#define glProgramUniformMatrix4x3dv GLEW_GET_FUN(__glewProgramUniformMatrix4x3dv) +#define glProgramUniformMatrix4x3fv GLEW_GET_FUN(__glewProgramUniformMatrix4x3fv) +#define glUseProgramStages GLEW_GET_FUN(__glewUseProgramStages) +#define glValidateProgramPipeline GLEW_GET_FUN(__glewValidateProgramPipeline) + +#define GLEW_ARB_separate_shader_objects GLEW_GET_VAR(__GLEW_ARB_separate_shader_objects) + +#endif /* GL_ARB_separate_shader_objects */ + +/* ----------------------- GL_ARB_shader_bit_encoding ---------------------- */ + +#ifndef GL_ARB_shader_bit_encoding +#define GL_ARB_shader_bit_encoding 1 + +#define GLEW_ARB_shader_bit_encoding GLEW_GET_VAR(__GLEW_ARB_shader_bit_encoding) + +#endif /* GL_ARB_shader_bit_encoding */ + +/* ------------------------- GL_ARB_shader_objects ------------------------- */ + +#ifndef GL_ARB_shader_objects +#define GL_ARB_shader_objects 1 + +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 + +typedef char GLcharARB; +typedef unsigned int GLhandleARB; + +typedef void (GLAPIENTRY * PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); +typedef void (GLAPIENTRY * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); +typedef GLhandleARB (GLAPIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC) (void); +typedef GLhandleARB (GLAPIENTRY * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); +typedef void (GLAPIENTRY * PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); +typedef void (GLAPIENTRY * PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); +typedef void (GLAPIENTRY * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei* count, GLhandleARB *obj); +typedef GLhandleARB (GLAPIENTRY * PFNGLGETHANDLEARBPROC) (GLenum pname); +typedef void (GLAPIENTRY * PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *infoLog); +typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei* length, GLcharARB *source); +typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint* params); +typedef void (GLAPIENTRY * PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); +typedef void (GLAPIENTRY * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint *length); +typedef void (GLAPIENTRY * PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); +typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); + +#define glAttachObjectARB GLEW_GET_FUN(__glewAttachObjectARB) +#define glCompileShaderARB GLEW_GET_FUN(__glewCompileShaderARB) +#define glCreateProgramObjectARB GLEW_GET_FUN(__glewCreateProgramObjectARB) +#define glCreateShaderObjectARB GLEW_GET_FUN(__glewCreateShaderObjectARB) +#define glDeleteObjectARB GLEW_GET_FUN(__glewDeleteObjectARB) +#define glDetachObjectARB GLEW_GET_FUN(__glewDetachObjectARB) +#define glGetActiveUniformARB GLEW_GET_FUN(__glewGetActiveUniformARB) +#define glGetAttachedObjectsARB GLEW_GET_FUN(__glewGetAttachedObjectsARB) +#define glGetHandleARB GLEW_GET_FUN(__glewGetHandleARB) +#define glGetInfoLogARB GLEW_GET_FUN(__glewGetInfoLogARB) +#define glGetObjectParameterfvARB GLEW_GET_FUN(__glewGetObjectParameterfvARB) +#define glGetObjectParameterivARB GLEW_GET_FUN(__glewGetObjectParameterivARB) +#define glGetShaderSourceARB GLEW_GET_FUN(__glewGetShaderSourceARB) +#define glGetUniformLocationARB GLEW_GET_FUN(__glewGetUniformLocationARB) +#define glGetUniformfvARB GLEW_GET_FUN(__glewGetUniformfvARB) +#define glGetUniformivARB GLEW_GET_FUN(__glewGetUniformivARB) +#define glLinkProgramARB GLEW_GET_FUN(__glewLinkProgramARB) +#define glShaderSourceARB GLEW_GET_FUN(__glewShaderSourceARB) +#define glUniform1fARB GLEW_GET_FUN(__glewUniform1fARB) +#define glUniform1fvARB GLEW_GET_FUN(__glewUniform1fvARB) +#define glUniform1iARB GLEW_GET_FUN(__glewUniform1iARB) +#define glUniform1ivARB GLEW_GET_FUN(__glewUniform1ivARB) +#define glUniform2fARB GLEW_GET_FUN(__glewUniform2fARB) +#define glUniform2fvARB GLEW_GET_FUN(__glewUniform2fvARB) +#define glUniform2iARB GLEW_GET_FUN(__glewUniform2iARB) +#define glUniform2ivARB GLEW_GET_FUN(__glewUniform2ivARB) +#define glUniform3fARB GLEW_GET_FUN(__glewUniform3fARB) +#define glUniform3fvARB GLEW_GET_FUN(__glewUniform3fvARB) +#define glUniform3iARB GLEW_GET_FUN(__glewUniform3iARB) +#define glUniform3ivARB GLEW_GET_FUN(__glewUniform3ivARB) +#define glUniform4fARB GLEW_GET_FUN(__glewUniform4fARB) +#define glUniform4fvARB GLEW_GET_FUN(__glewUniform4fvARB) +#define glUniform4iARB GLEW_GET_FUN(__glewUniform4iARB) +#define glUniform4ivARB GLEW_GET_FUN(__glewUniform4ivARB) +#define glUniformMatrix2fvARB GLEW_GET_FUN(__glewUniformMatrix2fvARB) +#define glUniformMatrix3fvARB GLEW_GET_FUN(__glewUniformMatrix3fvARB) +#define glUniformMatrix4fvARB GLEW_GET_FUN(__glewUniformMatrix4fvARB) +#define glUseProgramObjectARB GLEW_GET_FUN(__glewUseProgramObjectARB) +#define glValidateProgramARB GLEW_GET_FUN(__glewValidateProgramARB) + +#define GLEW_ARB_shader_objects GLEW_GET_VAR(__GLEW_ARB_shader_objects) + +#endif /* GL_ARB_shader_objects */ + +/* ------------------------ GL_ARB_shader_precision ------------------------ */ + +#ifndef GL_ARB_shader_precision +#define GL_ARB_shader_precision 1 + +#define GLEW_ARB_shader_precision GLEW_GET_VAR(__GLEW_ARB_shader_precision) + +#endif /* GL_ARB_shader_precision */ + +/* ---------------------- GL_ARB_shader_stencil_export --------------------- */ + +#ifndef GL_ARB_shader_stencil_export +#define GL_ARB_shader_stencil_export 1 + +#define GLEW_ARB_shader_stencil_export GLEW_GET_VAR(__GLEW_ARB_shader_stencil_export) + +#endif /* GL_ARB_shader_stencil_export */ + +/* ------------------------ GL_ARB_shader_subroutine ----------------------- */ + +#ifndef GL_ARB_shader_subroutine +#define GL_ARB_shader_subroutine 1 + +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B + +typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, char *name); +typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, char *name); +typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint* values); +typedef GLuint (GLAPIENTRY * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const char* name); +typedef GLint (GLAPIENTRY * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const char* name); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint* params); +typedef void (GLAPIENTRY * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint* indices); + +#define glGetActiveSubroutineName GLEW_GET_FUN(__glewGetActiveSubroutineName) +#define glGetActiveSubroutineUniformName GLEW_GET_FUN(__glewGetActiveSubroutineUniformName) +#define glGetActiveSubroutineUniformiv GLEW_GET_FUN(__glewGetActiveSubroutineUniformiv) +#define glGetProgramStageiv GLEW_GET_FUN(__glewGetProgramStageiv) +#define glGetSubroutineIndex GLEW_GET_FUN(__glewGetSubroutineIndex) +#define glGetSubroutineUniformLocation GLEW_GET_FUN(__glewGetSubroutineUniformLocation) +#define glGetUniformSubroutineuiv GLEW_GET_FUN(__glewGetUniformSubroutineuiv) +#define glUniformSubroutinesuiv GLEW_GET_FUN(__glewUniformSubroutinesuiv) + +#define GLEW_ARB_shader_subroutine GLEW_GET_VAR(__GLEW_ARB_shader_subroutine) + +#endif /* GL_ARB_shader_subroutine */ + +/* ----------------------- GL_ARB_shader_texture_lod ----------------------- */ + +#ifndef GL_ARB_shader_texture_lod +#define GL_ARB_shader_texture_lod 1 + +#define GLEW_ARB_shader_texture_lod GLEW_GET_VAR(__GLEW_ARB_shader_texture_lod) + +#endif /* GL_ARB_shader_texture_lod */ + +/* ---------------------- GL_ARB_shading_language_100 ---------------------- */ + +#ifndef GL_ARB_shading_language_100 +#define GL_ARB_shading_language_100 1 + +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C + +#define GLEW_ARB_shading_language_100 GLEW_GET_VAR(__GLEW_ARB_shading_language_100) + +#endif /* GL_ARB_shading_language_100 */ + +/* -------------------- GL_ARB_shading_language_include -------------------- */ + +#ifndef GL_ARB_shading_language_include +#define GL_ARB_shading_language_include 1 + +#define GL_SHADER_INCLUDE_ARB 0x8DAE +#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 +#define GL_NAMED_STRING_TYPE_ARB 0x8DEA + +typedef void (GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const char ** path, const GLint *length); +typedef void (GLAPIENTRY * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const char* name); +typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const char* name, GLsizei bufSize, GLint *stringlen, char *string); +typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const char* name, GLenum pname, GLint *params); +typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const char* name); +typedef void (GLAPIENTRY * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const char* name, GLint stringlen, const char *string); + +#define glCompileShaderIncludeARB GLEW_GET_FUN(__glewCompileShaderIncludeARB) +#define glDeleteNamedStringARB GLEW_GET_FUN(__glewDeleteNamedStringARB) +#define glGetNamedStringARB GLEW_GET_FUN(__glewGetNamedStringARB) +#define glGetNamedStringivARB GLEW_GET_FUN(__glewGetNamedStringivARB) +#define glIsNamedStringARB GLEW_GET_FUN(__glewIsNamedStringARB) +#define glNamedStringARB GLEW_GET_FUN(__glewNamedStringARB) + +#define GLEW_ARB_shading_language_include GLEW_GET_VAR(__GLEW_ARB_shading_language_include) + +#endif /* GL_ARB_shading_language_include */ + +/* ----------------------------- GL_ARB_shadow ----------------------------- */ + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 + +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E + +#define GLEW_ARB_shadow GLEW_GET_VAR(__GLEW_ARB_shadow) + +#endif /* GL_ARB_shadow */ + +/* ------------------------- GL_ARB_shadow_ambient ------------------------- */ + +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 + +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF + +#define GLEW_ARB_shadow_ambient GLEW_GET_VAR(__GLEW_ARB_shadow_ambient) + +#endif /* GL_ARB_shadow_ambient */ + +/* ------------------------------ GL_ARB_sync ------------------------------ */ + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 + +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF + +typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); +typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync); +typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETSYNCIVPROC) (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values); +typedef GLboolean (GLAPIENTRY * PFNGLISSYNCPROC) (GLsync GLsync); +typedef void (GLAPIENTRY * PFNGLWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); + +#define glClientWaitSync GLEW_GET_FUN(__glewClientWaitSync) +#define glDeleteSync GLEW_GET_FUN(__glewDeleteSync) +#define glFenceSync GLEW_GET_FUN(__glewFenceSync) +#define glGetInteger64v GLEW_GET_FUN(__glewGetInteger64v) +#define glGetSynciv GLEW_GET_FUN(__glewGetSynciv) +#define glIsSync GLEW_GET_FUN(__glewIsSync) +#define glWaitSync GLEW_GET_FUN(__glewWaitSync) + +#define GLEW_ARB_sync GLEW_GET_VAR(__GLEW_ARB_sync) + +#endif /* GL_ARB_sync */ + +/* ----------------------- GL_ARB_tessellation_shader ---------------------- */ + +#ifndef GL_ARB_tessellation_shader +#define GL_ARB_tessellation_shader 1 + +#define GL_PATCHES 0xE +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +#define GL_ISOLINES 0x8E7A +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRACTIONAL_EVEN 0x8E7C +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A + +typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat* values); +typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); + +#define glPatchParameterfv GLEW_GET_FUN(__glewPatchParameterfv) +#define glPatchParameteri GLEW_GET_FUN(__glewPatchParameteri) + +#define GLEW_ARB_tessellation_shader GLEW_GET_VAR(__GLEW_ARB_tessellation_shader) + +#endif /* GL_ARB_tessellation_shader */ + +/* ---------------------- GL_ARB_texture_border_clamp ---------------------- */ + +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 + +#define GL_CLAMP_TO_BORDER_ARB 0x812D + +#define GLEW_ARB_texture_border_clamp GLEW_GET_VAR(__GLEW_ARB_texture_border_clamp) + +#endif /* GL_ARB_texture_border_clamp */ + +/* ---------------------- GL_ARB_texture_buffer_object --------------------- */ + +#ifndef GL_ARB_texture_buffer_object +#define GL_ARB_texture_buffer_object 1 + +#define GL_TEXTURE_BUFFER_ARB 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E + +typedef void (GLAPIENTRY * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); + +#define glTexBufferARB GLEW_GET_FUN(__glewTexBufferARB) + +#define GLEW_ARB_texture_buffer_object GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object) + +#endif /* GL_ARB_texture_buffer_object */ + +/* ------------------- GL_ARB_texture_buffer_object_rgb32 ------------------ */ + +#ifndef GL_ARB_texture_buffer_object_rgb32 +#define GL_ARB_texture_buffer_object_rgb32 1 + +#define GLEW_ARB_texture_buffer_object_rgb32 GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object_rgb32) + +#endif /* GL_ARB_texture_buffer_object_rgb32 */ + +/* ----------------------- GL_ARB_texture_compression ---------------------- */ + +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 + +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 + +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, void* img); + +#define glCompressedTexImage1DARB GLEW_GET_FUN(__glewCompressedTexImage1DARB) +#define glCompressedTexImage2DARB GLEW_GET_FUN(__glewCompressedTexImage2DARB) +#define glCompressedTexImage3DARB GLEW_GET_FUN(__glewCompressedTexImage3DARB) +#define glCompressedTexSubImage1DARB GLEW_GET_FUN(__glewCompressedTexSubImage1DARB) +#define glCompressedTexSubImage2DARB GLEW_GET_FUN(__glewCompressedTexSubImage2DARB) +#define glCompressedTexSubImage3DARB GLEW_GET_FUN(__glewCompressedTexSubImage3DARB) +#define glGetCompressedTexImageARB GLEW_GET_FUN(__glewGetCompressedTexImageARB) + +#define GLEW_ARB_texture_compression GLEW_GET_VAR(__GLEW_ARB_texture_compression) + +#endif /* GL_ARB_texture_compression */ + +/* -------------------- GL_ARB_texture_compression_bptc -------------------- */ + +#ifndef GL_ARB_texture_compression_bptc +#define GL_ARB_texture_compression_bptc 1 + +#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F + +#define GLEW_ARB_texture_compression_bptc GLEW_GET_VAR(__GLEW_ARB_texture_compression_bptc) + +#endif /* GL_ARB_texture_compression_bptc */ + +/* -------------------- GL_ARB_texture_compression_rgtc -------------------- */ + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 + +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE + +#define GLEW_ARB_texture_compression_rgtc GLEW_GET_VAR(__GLEW_ARB_texture_compression_rgtc) + +#endif /* GL_ARB_texture_compression_rgtc */ + +/* ------------------------ GL_ARB_texture_cube_map ------------------------ */ + +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 + +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C + +#define GLEW_ARB_texture_cube_map GLEW_GET_VAR(__GLEW_ARB_texture_cube_map) + +#endif /* GL_ARB_texture_cube_map */ + +/* --------------------- GL_ARB_texture_cube_map_array --------------------- */ + +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 + +#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F + +#define GLEW_ARB_texture_cube_map_array GLEW_GET_VAR(__GLEW_ARB_texture_cube_map_array) + +#endif /* GL_ARB_texture_cube_map_array */ + +/* ------------------------- GL_ARB_texture_env_add ------------------------ */ + +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 + +#define GLEW_ARB_texture_env_add GLEW_GET_VAR(__GLEW_ARB_texture_env_add) + +#endif /* GL_ARB_texture_env_add */ + +/* ----------------------- GL_ARB_texture_env_combine ---------------------- */ + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 + +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A + +#define GLEW_ARB_texture_env_combine GLEW_GET_VAR(__GLEW_ARB_texture_env_combine) + +#endif /* GL_ARB_texture_env_combine */ + +/* ---------------------- GL_ARB_texture_env_crossbar ---------------------- */ + +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 + +#define GLEW_ARB_texture_env_crossbar GLEW_GET_VAR(__GLEW_ARB_texture_env_crossbar) + +#endif /* GL_ARB_texture_env_crossbar */ + +/* ------------------------ GL_ARB_texture_env_dot3 ------------------------ */ + +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 + +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF + +#define GLEW_ARB_texture_env_dot3 GLEW_GET_VAR(__GLEW_ARB_texture_env_dot3) + +#endif /* GL_ARB_texture_env_dot3 */ + +/* -------------------------- GL_ARB_texture_float ------------------------- */ + +#ifndef GL_ARB_texture_float +#define GL_ARB_texture_float 1 + +#define GL_RGBA32F_ARB 0x8814 +#define GL_RGB32F_ARB 0x8815 +#define GL_ALPHA32F_ARB 0x8816 +#define GL_INTENSITY32F_ARB 0x8817 +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_RGBA16F_ARB 0x881A +#define GL_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 +#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 + +#define GLEW_ARB_texture_float GLEW_GET_VAR(__GLEW_ARB_texture_float) + +#endif /* GL_ARB_texture_float */ + +/* ------------------------- GL_ARB_texture_gather ------------------------- */ + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 + +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F + +#define GLEW_ARB_texture_gather GLEW_GET_VAR(__GLEW_ARB_texture_gather) + +#endif /* GL_ARB_texture_gather */ + +/* --------------------- GL_ARB_texture_mirrored_repeat -------------------- */ + +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_ARB_texture_mirrored_repeat 1 + +#define GL_MIRRORED_REPEAT_ARB 0x8370 + +#define GLEW_ARB_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_ARB_texture_mirrored_repeat) + +#endif /* GL_ARB_texture_mirrored_repeat */ + +/* ----------------------- GL_ARB_texture_multisample ---------------------- */ + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 + +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_INTEGER_SAMPLES 0x9110 + +typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val); +typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + +#define glGetMultisamplefv GLEW_GET_FUN(__glewGetMultisamplefv) +#define glSampleMaski GLEW_GET_FUN(__glewSampleMaski) +#define glTexImage2DMultisample GLEW_GET_FUN(__glewTexImage2DMultisample) +#define glTexImage3DMultisample GLEW_GET_FUN(__glewTexImage3DMultisample) + +#define GLEW_ARB_texture_multisample GLEW_GET_VAR(__GLEW_ARB_texture_multisample) + +#endif /* GL_ARB_texture_multisample */ + +/* -------------------- GL_ARB_texture_non_power_of_two -------------------- */ + +#ifndef GL_ARB_texture_non_power_of_two +#define GL_ARB_texture_non_power_of_two 1 + +#define GLEW_ARB_texture_non_power_of_two GLEW_GET_VAR(__GLEW_ARB_texture_non_power_of_two) + +#endif /* GL_ARB_texture_non_power_of_two */ + +/* ------------------------ GL_ARB_texture_query_lod ----------------------- */ + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 + +#define GLEW_ARB_texture_query_lod GLEW_GET_VAR(__GLEW_ARB_texture_query_lod) + +#endif /* GL_ARB_texture_query_lod */ + +/* ------------------------ GL_ARB_texture_rectangle ----------------------- */ + +#ifndef GL_ARB_texture_rectangle +#define GL_ARB_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 + +#define GLEW_ARB_texture_rectangle GLEW_GET_VAR(__GLEW_ARB_texture_rectangle) + +#endif /* GL_ARB_texture_rectangle */ + +/* --------------------------- GL_ARB_texture_rg --------------------------- */ + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 + +#define GL_RED 0x1903 +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C + +#define GLEW_ARB_texture_rg GLEW_GET_VAR(__GLEW_ARB_texture_rg) + +#endif /* GL_ARB_texture_rg */ + +/* ----------------------- GL_ARB_texture_rgb10_a2ui ----------------------- */ + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_ARB_texture_rgb10_a2ui 1 + +#define GL_RGB10_A2UI 0x906F + +#define GLEW_ARB_texture_rgb10_a2ui GLEW_GET_VAR(__GLEW_ARB_texture_rgb10_a2ui) + +#endif /* GL_ARB_texture_rgb10_a2ui */ + +/* ------------------------- GL_ARB_texture_swizzle ------------------------ */ + +#ifndef GL_ARB_texture_swizzle +#define GL_ARB_texture_swizzle 1 + +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 + +#define GLEW_ARB_texture_swizzle GLEW_GET_VAR(__GLEW_ARB_texture_swizzle) + +#endif /* GL_ARB_texture_swizzle */ + +/* --------------------------- GL_ARB_timer_query -------------------------- */ + +#ifndef GL_ARB_timer_query +#define GL_ARB_timer_query 1 + +#define GL_TIME_ELAPSED 0x88BF +#define GL_TIMESTAMP 0x8E28 + +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params); +typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); + +#define glGetQueryObjecti64v GLEW_GET_FUN(__glewGetQueryObjecti64v) +#define glGetQueryObjectui64v GLEW_GET_FUN(__glewGetQueryObjectui64v) +#define glQueryCounter GLEW_GET_FUN(__glewQueryCounter) + +#define GLEW_ARB_timer_query GLEW_GET_VAR(__GLEW_ARB_timer_query) + +#endif /* GL_ARB_timer_query */ + +/* ----------------------- GL_ARB_transform_feedback2 ---------------------- */ + +#ifndef GL_ARB_transform_feedback2 +#define GL_ARB_transform_feedback2 1 + +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 + +typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); +typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids); +typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); +typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); + +#define glBindTransformFeedback GLEW_GET_FUN(__glewBindTransformFeedback) +#define glDeleteTransformFeedbacks GLEW_GET_FUN(__glewDeleteTransformFeedbacks) +#define glDrawTransformFeedback GLEW_GET_FUN(__glewDrawTransformFeedback) +#define glGenTransformFeedbacks GLEW_GET_FUN(__glewGenTransformFeedbacks) +#define glIsTransformFeedback GLEW_GET_FUN(__glewIsTransformFeedback) +#define glPauseTransformFeedback GLEW_GET_FUN(__glewPauseTransformFeedback) +#define glResumeTransformFeedback GLEW_GET_FUN(__glewResumeTransformFeedback) + +#define GLEW_ARB_transform_feedback2 GLEW_GET_VAR(__GLEW_ARB_transform_feedback2) + +#endif /* GL_ARB_transform_feedback2 */ + +/* ----------------------- GL_ARB_transform_feedback3 ---------------------- */ + +#ifndef GL_ARB_transform_feedback3 +#define GL_ARB_transform_feedback3 1 + +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +#define GL_MAX_VERTEX_STREAMS 0x8E71 + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); +typedef void (GLAPIENTRY * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); + +#define glBeginQueryIndexed GLEW_GET_FUN(__glewBeginQueryIndexed) +#define glDrawTransformFeedbackStream GLEW_GET_FUN(__glewDrawTransformFeedbackStream) +#define glEndQueryIndexed GLEW_GET_FUN(__glewEndQueryIndexed) +#define glGetQueryIndexediv GLEW_GET_FUN(__glewGetQueryIndexediv) + +#define GLEW_ARB_transform_feedback3 GLEW_GET_VAR(__GLEW_ARB_transform_feedback3) + +#endif /* GL_ARB_transform_feedback3 */ + +/* ------------------------ GL_ARB_transpose_matrix ------------------------ */ + +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 + +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 + +typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); +typedef void (GLAPIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); +typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) (GLdouble m[16]); +typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); + +#define glLoadTransposeMatrixdARB GLEW_GET_FUN(__glewLoadTransposeMatrixdARB) +#define glLoadTransposeMatrixfARB GLEW_GET_FUN(__glewLoadTransposeMatrixfARB) +#define glMultTransposeMatrixdARB GLEW_GET_FUN(__glewMultTransposeMatrixdARB) +#define glMultTransposeMatrixfARB GLEW_GET_FUN(__glewMultTransposeMatrixfARB) + +#define GLEW_ARB_transpose_matrix GLEW_GET_VAR(__GLEW_ARB_transpose_matrix) + +#endif /* GL_ARB_transpose_matrix */ + +/* ---------------------- GL_ARB_uniform_buffer_object --------------------- */ + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 + +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_INVALID_INDEX 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, char* uniformBlockName); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, char* uniformName); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data); +typedef GLuint (GLAPIENTRY * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const char* uniformBlockName); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const char** uniformNames, GLuint* uniformIndices); +typedef void (GLAPIENTRY * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); + +#define glBindBufferBase GLEW_GET_FUN(__glewBindBufferBase) +#define glBindBufferRange GLEW_GET_FUN(__glewBindBufferRange) +#define glGetActiveUniformBlockName GLEW_GET_FUN(__glewGetActiveUniformBlockName) +#define glGetActiveUniformBlockiv GLEW_GET_FUN(__glewGetActiveUniformBlockiv) +#define glGetActiveUniformName GLEW_GET_FUN(__glewGetActiveUniformName) +#define glGetActiveUniformsiv GLEW_GET_FUN(__glewGetActiveUniformsiv) +#define glGetIntegeri_v GLEW_GET_FUN(__glewGetIntegeri_v) +#define glGetUniformBlockIndex GLEW_GET_FUN(__glewGetUniformBlockIndex) +#define glGetUniformIndices GLEW_GET_FUN(__glewGetUniformIndices) +#define glUniformBlockBinding GLEW_GET_FUN(__glewUniformBlockBinding) + +#define GLEW_ARB_uniform_buffer_object GLEW_GET_VAR(__GLEW_ARB_uniform_buffer_object) + +#endif /* GL_ARB_uniform_buffer_object */ + +/* ------------------------ GL_ARB_vertex_array_bgra ----------------------- */ + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 + +#define GL_BGRA 0x80E1 + +#define GLEW_ARB_vertex_array_bgra GLEW_GET_VAR(__GLEW_ARB_vertex_array_bgra) + +#endif /* GL_ARB_vertex_array_bgra */ + +/* ----------------------- GL_ARB_vertex_array_object ---------------------- */ + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 + +#define GL_VERTEX_ARRAY_BINDING 0x85B5 + +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array); + +#define glBindVertexArray GLEW_GET_FUN(__glewBindVertexArray) +#define glDeleteVertexArrays GLEW_GET_FUN(__glewDeleteVertexArrays) +#define glGenVertexArrays GLEW_GET_FUN(__glewGenVertexArrays) +#define glIsVertexArray GLEW_GET_FUN(__glewIsVertexArray) + +#define GLEW_ARB_vertex_array_object GLEW_GET_VAR(__GLEW_ARB_vertex_array_object) + +#endif /* GL_ARB_vertex_array_object */ + +/* ----------------------- GL_ARB_vertex_attrib_64bit ---------------------- */ + +#ifndef GL_ARB_vertex_attrib_64bit +#define GL_ARB_vertex_attrib_64bit 1 + +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); + +#define glGetVertexAttribLdv GLEW_GET_FUN(__glewGetVertexAttribLdv) +#define glVertexAttribL1d GLEW_GET_FUN(__glewVertexAttribL1d) +#define glVertexAttribL1dv GLEW_GET_FUN(__glewVertexAttribL1dv) +#define glVertexAttribL2d GLEW_GET_FUN(__glewVertexAttribL2d) +#define glVertexAttribL2dv GLEW_GET_FUN(__glewVertexAttribL2dv) +#define glVertexAttribL3d GLEW_GET_FUN(__glewVertexAttribL3d) +#define glVertexAttribL3dv GLEW_GET_FUN(__glewVertexAttribL3dv) +#define glVertexAttribL4d GLEW_GET_FUN(__glewVertexAttribL4d) +#define glVertexAttribL4dv GLEW_GET_FUN(__glewVertexAttribL4dv) +#define glVertexAttribLPointer GLEW_GET_FUN(__glewVertexAttribLPointer) + +#define GLEW_ARB_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_64bit) + +#endif /* GL_ARB_vertex_attrib_64bit */ + +/* -------------------------- GL_ARB_vertex_blend -------------------------- */ + +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 + +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F + +typedef void (GLAPIENTRY * PFNGLVERTEXBLENDARBPROC) (GLint count); +typedef void (GLAPIENTRY * PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLWEIGHTBVARBPROC) (GLint size, GLbyte *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTDVARBPROC) (GLint size, GLdouble *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTFVARBPROC) (GLint size, GLfloat *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTIVARBPROC) (GLint size, GLint *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTSVARBPROC) (GLint size, GLshort *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTUBVARBPROC) (GLint size, GLubyte *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTUIVARBPROC) (GLint size, GLuint *weights); +typedef void (GLAPIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, GLushort *weights); + +#define glVertexBlendARB GLEW_GET_FUN(__glewVertexBlendARB) +#define glWeightPointerARB GLEW_GET_FUN(__glewWeightPointerARB) +#define glWeightbvARB GLEW_GET_FUN(__glewWeightbvARB) +#define glWeightdvARB GLEW_GET_FUN(__glewWeightdvARB) +#define glWeightfvARB GLEW_GET_FUN(__glewWeightfvARB) +#define glWeightivARB GLEW_GET_FUN(__glewWeightivARB) +#define glWeightsvARB GLEW_GET_FUN(__glewWeightsvARB) +#define glWeightubvARB GLEW_GET_FUN(__glewWeightubvARB) +#define glWeightuivARB GLEW_GET_FUN(__glewWeightuivARB) +#define glWeightusvARB GLEW_GET_FUN(__glewWeightusvARB) + +#define GLEW_ARB_vertex_blend GLEW_GET_VAR(__GLEW_ARB_vertex_blend) + +#endif /* GL_ARB_vertex_blend */ + +/* ---------------------- GL_ARB_vertex_buffer_object ---------------------- */ + +#ifndef GL_ARB_vertex_buffer_object +#define GL_ARB_vertex_buffer_object 1 + +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_ARRAY_BUFFER_ARB 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_READ_ONLY_ARB 0x88B8 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_READ_WRITE_ARB 0x88BA +#define GL_BUFFER_ACCESS_ARB 0x88BB +#define GL_BUFFER_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_STREAM_COPY_ARB 0x88E2 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STATIC_COPY_ARB 0x88E6 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_COPY_ARB 0x88EA + +typedef ptrdiff_t GLsizeiptrARB; +typedef ptrdiff_t GLintptrARB; + +typedef void (GLAPIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid* data, GLenum usage); +typedef void (GLAPIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid* data); +typedef void (GLAPIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint* buffers); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid** params); +typedef void (GLAPIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid* data); +typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer); +typedef GLvoid * (GLAPIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target); + +#define glBindBufferARB GLEW_GET_FUN(__glewBindBufferARB) +#define glBufferDataARB GLEW_GET_FUN(__glewBufferDataARB) +#define glBufferSubDataARB GLEW_GET_FUN(__glewBufferSubDataARB) +#define glDeleteBuffersARB GLEW_GET_FUN(__glewDeleteBuffersARB) +#define glGenBuffersARB GLEW_GET_FUN(__glewGenBuffersARB) +#define glGetBufferParameterivARB GLEW_GET_FUN(__glewGetBufferParameterivARB) +#define glGetBufferPointervARB GLEW_GET_FUN(__glewGetBufferPointervARB) +#define glGetBufferSubDataARB GLEW_GET_FUN(__glewGetBufferSubDataARB) +#define glIsBufferARB GLEW_GET_FUN(__glewIsBufferARB) +#define glMapBufferARB GLEW_GET_FUN(__glewMapBufferARB) +#define glUnmapBufferARB GLEW_GET_FUN(__glewUnmapBufferARB) + +#define GLEW_ARB_vertex_buffer_object GLEW_GET_VAR(__GLEW_ARB_vertex_buffer_object) + +#endif /* GL_ARB_vertex_buffer_object */ + +/* ------------------------- GL_ARB_vertex_program ------------------------- */ + +#ifndef GL_ARB_vertex_program +#define GL_ARB_vertex_program 1 + +#define GL_COLOR_SUM_ARB 0x8458 +#define GL_VERTEX_PROGRAM_ARB 0x8620 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_CURRENT_MATRIX_ARB 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_MATRIX0_ARB 0x88C0 +#define GL_MATRIX1_ARB 0x88C1 +#define GL_MATRIX2_ARB 0x88C2 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#define GL_MATRIX10_ARB 0x88CA +#define GL_MATRIX11_ARB 0x88CB +#define GL_MATRIX12_ARB 0x88CC +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF + +typedef void (GLAPIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); +typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint* programs); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint* programs); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void* string); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid** pointer); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void* string); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer); + +#define glBindProgramARB GLEW_GET_FUN(__glewBindProgramARB) +#define glDeleteProgramsARB GLEW_GET_FUN(__glewDeleteProgramsARB) +#define glDisableVertexAttribArrayARB GLEW_GET_FUN(__glewDisableVertexAttribArrayARB) +#define glEnableVertexAttribArrayARB GLEW_GET_FUN(__glewEnableVertexAttribArrayARB) +#define glGenProgramsARB GLEW_GET_FUN(__glewGenProgramsARB) +#define glGetProgramEnvParameterdvARB GLEW_GET_FUN(__glewGetProgramEnvParameterdvARB) +#define glGetProgramEnvParameterfvARB GLEW_GET_FUN(__glewGetProgramEnvParameterfvARB) +#define glGetProgramLocalParameterdvARB GLEW_GET_FUN(__glewGetProgramLocalParameterdvARB) +#define glGetProgramLocalParameterfvARB GLEW_GET_FUN(__glewGetProgramLocalParameterfvARB) +#define glGetProgramStringARB GLEW_GET_FUN(__glewGetProgramStringARB) +#define glGetProgramivARB GLEW_GET_FUN(__glewGetProgramivARB) +#define glGetVertexAttribPointervARB GLEW_GET_FUN(__glewGetVertexAttribPointervARB) +#define glGetVertexAttribdvARB GLEW_GET_FUN(__glewGetVertexAttribdvARB) +#define glGetVertexAttribfvARB GLEW_GET_FUN(__glewGetVertexAttribfvARB) +#define glGetVertexAttribivARB GLEW_GET_FUN(__glewGetVertexAttribivARB) +#define glIsProgramARB GLEW_GET_FUN(__glewIsProgramARB) +#define glProgramEnvParameter4dARB GLEW_GET_FUN(__glewProgramEnvParameter4dARB) +#define glProgramEnvParameter4dvARB GLEW_GET_FUN(__glewProgramEnvParameter4dvARB) +#define glProgramEnvParameter4fARB GLEW_GET_FUN(__glewProgramEnvParameter4fARB) +#define glProgramEnvParameter4fvARB GLEW_GET_FUN(__glewProgramEnvParameter4fvARB) +#define glProgramLocalParameter4dARB GLEW_GET_FUN(__glewProgramLocalParameter4dARB) +#define glProgramLocalParameter4dvARB GLEW_GET_FUN(__glewProgramLocalParameter4dvARB) +#define glProgramLocalParameter4fARB GLEW_GET_FUN(__glewProgramLocalParameter4fARB) +#define glProgramLocalParameter4fvARB GLEW_GET_FUN(__glewProgramLocalParameter4fvARB) +#define glProgramStringARB GLEW_GET_FUN(__glewProgramStringARB) +#define glVertexAttrib1dARB GLEW_GET_FUN(__glewVertexAttrib1dARB) +#define glVertexAttrib1dvARB GLEW_GET_FUN(__glewVertexAttrib1dvARB) +#define glVertexAttrib1fARB GLEW_GET_FUN(__glewVertexAttrib1fARB) +#define glVertexAttrib1fvARB GLEW_GET_FUN(__glewVertexAttrib1fvARB) +#define glVertexAttrib1sARB GLEW_GET_FUN(__glewVertexAttrib1sARB) +#define glVertexAttrib1svARB GLEW_GET_FUN(__glewVertexAttrib1svARB) +#define glVertexAttrib2dARB GLEW_GET_FUN(__glewVertexAttrib2dARB) +#define glVertexAttrib2dvARB GLEW_GET_FUN(__glewVertexAttrib2dvARB) +#define glVertexAttrib2fARB GLEW_GET_FUN(__glewVertexAttrib2fARB) +#define glVertexAttrib2fvARB GLEW_GET_FUN(__glewVertexAttrib2fvARB) +#define glVertexAttrib2sARB GLEW_GET_FUN(__glewVertexAttrib2sARB) +#define glVertexAttrib2svARB GLEW_GET_FUN(__glewVertexAttrib2svARB) +#define glVertexAttrib3dARB GLEW_GET_FUN(__glewVertexAttrib3dARB) +#define glVertexAttrib3dvARB GLEW_GET_FUN(__glewVertexAttrib3dvARB) +#define glVertexAttrib3fARB GLEW_GET_FUN(__glewVertexAttrib3fARB) +#define glVertexAttrib3fvARB GLEW_GET_FUN(__glewVertexAttrib3fvARB) +#define glVertexAttrib3sARB GLEW_GET_FUN(__glewVertexAttrib3sARB) +#define glVertexAttrib3svARB GLEW_GET_FUN(__glewVertexAttrib3svARB) +#define glVertexAttrib4NbvARB GLEW_GET_FUN(__glewVertexAttrib4NbvARB) +#define glVertexAttrib4NivARB GLEW_GET_FUN(__glewVertexAttrib4NivARB) +#define glVertexAttrib4NsvARB GLEW_GET_FUN(__glewVertexAttrib4NsvARB) +#define glVertexAttrib4NubARB GLEW_GET_FUN(__glewVertexAttrib4NubARB) +#define glVertexAttrib4NubvARB GLEW_GET_FUN(__glewVertexAttrib4NubvARB) +#define glVertexAttrib4NuivARB GLEW_GET_FUN(__glewVertexAttrib4NuivARB) +#define glVertexAttrib4NusvARB GLEW_GET_FUN(__glewVertexAttrib4NusvARB) +#define glVertexAttrib4bvARB GLEW_GET_FUN(__glewVertexAttrib4bvARB) +#define glVertexAttrib4dARB GLEW_GET_FUN(__glewVertexAttrib4dARB) +#define glVertexAttrib4dvARB GLEW_GET_FUN(__glewVertexAttrib4dvARB) +#define glVertexAttrib4fARB GLEW_GET_FUN(__glewVertexAttrib4fARB) +#define glVertexAttrib4fvARB GLEW_GET_FUN(__glewVertexAttrib4fvARB) +#define glVertexAttrib4ivARB GLEW_GET_FUN(__glewVertexAttrib4ivARB) +#define glVertexAttrib4sARB GLEW_GET_FUN(__glewVertexAttrib4sARB) +#define glVertexAttrib4svARB GLEW_GET_FUN(__glewVertexAttrib4svARB) +#define glVertexAttrib4ubvARB GLEW_GET_FUN(__glewVertexAttrib4ubvARB) +#define glVertexAttrib4uivARB GLEW_GET_FUN(__glewVertexAttrib4uivARB) +#define glVertexAttrib4usvARB GLEW_GET_FUN(__glewVertexAttrib4usvARB) +#define glVertexAttribPointerARB GLEW_GET_FUN(__glewVertexAttribPointerARB) + +#define GLEW_ARB_vertex_program GLEW_GET_VAR(__GLEW_ARB_vertex_program) + +#endif /* GL_ARB_vertex_program */ + +/* -------------------------- GL_ARB_vertex_shader ------------------------- */ + +#ifndef GL_ARB_vertex_shader +#define GL_ARB_vertex_shader 1 + +#define GL_VERTEX_SHADER_ARB 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D +#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 +#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A + +typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB* name); +typedef void (GLAPIENTRY * PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint *size, GLenum *type, GLcharARB *name); +typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB* name); + +#define glBindAttribLocationARB GLEW_GET_FUN(__glewBindAttribLocationARB) +#define glGetActiveAttribARB GLEW_GET_FUN(__glewGetActiveAttribARB) +#define glGetAttribLocationARB GLEW_GET_FUN(__glewGetAttribLocationARB) + +#define GLEW_ARB_vertex_shader GLEW_GET_VAR(__GLEW_ARB_vertex_shader) + +#endif /* GL_ARB_vertex_shader */ + +/* ------------------- GL_ARB_vertex_type_2_10_10_10_rev ------------------- */ + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +#define GL_ARB_vertex_type_2_10_10_10_rev 1 + +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_INT_2_10_10_10_REV 0x8D9F + +typedef void (GLAPIENTRY * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); +typedef void (GLAPIENTRY * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint* color); +typedef void (GLAPIENTRY * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); +typedef void (GLAPIENTRY * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint* color); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint* color); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint* value); + +#define glColorP3ui GLEW_GET_FUN(__glewColorP3ui) +#define glColorP3uiv GLEW_GET_FUN(__glewColorP3uiv) +#define glColorP4ui GLEW_GET_FUN(__glewColorP4ui) +#define glColorP4uiv GLEW_GET_FUN(__glewColorP4uiv) +#define glMultiTexCoordP1ui GLEW_GET_FUN(__glewMultiTexCoordP1ui) +#define glMultiTexCoordP1uiv GLEW_GET_FUN(__glewMultiTexCoordP1uiv) +#define glMultiTexCoordP2ui GLEW_GET_FUN(__glewMultiTexCoordP2ui) +#define glMultiTexCoordP2uiv GLEW_GET_FUN(__glewMultiTexCoordP2uiv) +#define glMultiTexCoordP3ui GLEW_GET_FUN(__glewMultiTexCoordP3ui) +#define glMultiTexCoordP3uiv GLEW_GET_FUN(__glewMultiTexCoordP3uiv) +#define glMultiTexCoordP4ui GLEW_GET_FUN(__glewMultiTexCoordP4ui) +#define glMultiTexCoordP4uiv GLEW_GET_FUN(__glewMultiTexCoordP4uiv) +#define glNormalP3ui GLEW_GET_FUN(__glewNormalP3ui) +#define glNormalP3uiv GLEW_GET_FUN(__glewNormalP3uiv) +#define glSecondaryColorP3ui GLEW_GET_FUN(__glewSecondaryColorP3ui) +#define glSecondaryColorP3uiv GLEW_GET_FUN(__glewSecondaryColorP3uiv) +#define glTexCoordP1ui GLEW_GET_FUN(__glewTexCoordP1ui) +#define glTexCoordP1uiv GLEW_GET_FUN(__glewTexCoordP1uiv) +#define glTexCoordP2ui GLEW_GET_FUN(__glewTexCoordP2ui) +#define glTexCoordP2uiv GLEW_GET_FUN(__glewTexCoordP2uiv) +#define glTexCoordP3ui GLEW_GET_FUN(__glewTexCoordP3ui) +#define glTexCoordP3uiv GLEW_GET_FUN(__glewTexCoordP3uiv) +#define glTexCoordP4ui GLEW_GET_FUN(__glewTexCoordP4ui) +#define glTexCoordP4uiv GLEW_GET_FUN(__glewTexCoordP4uiv) +#define glVertexAttribP1ui GLEW_GET_FUN(__glewVertexAttribP1ui) +#define glVertexAttribP1uiv GLEW_GET_FUN(__glewVertexAttribP1uiv) +#define glVertexAttribP2ui GLEW_GET_FUN(__glewVertexAttribP2ui) +#define glVertexAttribP2uiv GLEW_GET_FUN(__glewVertexAttribP2uiv) +#define glVertexAttribP3ui GLEW_GET_FUN(__glewVertexAttribP3ui) +#define glVertexAttribP3uiv GLEW_GET_FUN(__glewVertexAttribP3uiv) +#define glVertexAttribP4ui GLEW_GET_FUN(__glewVertexAttribP4ui) +#define glVertexAttribP4uiv GLEW_GET_FUN(__glewVertexAttribP4uiv) +#define glVertexP2ui GLEW_GET_FUN(__glewVertexP2ui) +#define glVertexP2uiv GLEW_GET_FUN(__glewVertexP2uiv) +#define glVertexP3ui GLEW_GET_FUN(__glewVertexP3ui) +#define glVertexP3uiv GLEW_GET_FUN(__glewVertexP3uiv) +#define glVertexP4ui GLEW_GET_FUN(__glewVertexP4ui) +#define glVertexP4uiv GLEW_GET_FUN(__glewVertexP4uiv) + +#define GLEW_ARB_vertex_type_2_10_10_10_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_2_10_10_10_rev) + +#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ + +/* ------------------------- GL_ARB_viewport_array ------------------------- */ + +#ifndef GL_ARB_viewport_array +#define GL_ARB_viewport_array 1 + +#define GL_DEPTH_RANGE 0x0B70 +#define GL_VIEWPORT 0x0BA2 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_MAX_VIEWPORTS 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_UNDEFINED_VERTEX 0x8260 +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F + +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd * v); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); +typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble* data); +typedef void (GLAPIENTRY * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat* data); +typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint * v); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat * v); + +#define glDepthRangeArrayv GLEW_GET_FUN(__glewDepthRangeArrayv) +#define glDepthRangeIndexed GLEW_GET_FUN(__glewDepthRangeIndexed) +#define glGetDoublei_v GLEW_GET_FUN(__glewGetDoublei_v) +#define glGetFloati_v GLEW_GET_FUN(__glewGetFloati_v) +#define glScissorArrayv GLEW_GET_FUN(__glewScissorArrayv) +#define glScissorIndexed GLEW_GET_FUN(__glewScissorIndexed) +#define glScissorIndexedv GLEW_GET_FUN(__glewScissorIndexedv) +#define glViewportArrayv GLEW_GET_FUN(__glewViewportArrayv) +#define glViewportIndexedf GLEW_GET_FUN(__glewViewportIndexedf) +#define glViewportIndexedfv GLEW_GET_FUN(__glewViewportIndexedfv) + +#define GLEW_ARB_viewport_array GLEW_GET_VAR(__GLEW_ARB_viewport_array) + +#endif /* GL_ARB_viewport_array */ + +/* --------------------------- GL_ARB_window_pos --------------------------- */ + +#ifndef GL_ARB_window_pos +#define GL_ARB_window_pos 1 + +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const GLdouble* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const GLfloat* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const GLint* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const GLshort* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const GLdouble* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const GLfloat* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const GLint* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p); + +#define glWindowPos2dARB GLEW_GET_FUN(__glewWindowPos2dARB) +#define glWindowPos2dvARB GLEW_GET_FUN(__glewWindowPos2dvARB) +#define glWindowPos2fARB GLEW_GET_FUN(__glewWindowPos2fARB) +#define glWindowPos2fvARB GLEW_GET_FUN(__glewWindowPos2fvARB) +#define glWindowPos2iARB GLEW_GET_FUN(__glewWindowPos2iARB) +#define glWindowPos2ivARB GLEW_GET_FUN(__glewWindowPos2ivARB) +#define glWindowPos2sARB GLEW_GET_FUN(__glewWindowPos2sARB) +#define glWindowPos2svARB GLEW_GET_FUN(__glewWindowPos2svARB) +#define glWindowPos3dARB GLEW_GET_FUN(__glewWindowPos3dARB) +#define glWindowPos3dvARB GLEW_GET_FUN(__glewWindowPos3dvARB) +#define glWindowPos3fARB GLEW_GET_FUN(__glewWindowPos3fARB) +#define glWindowPos3fvARB GLEW_GET_FUN(__glewWindowPos3fvARB) +#define glWindowPos3iARB GLEW_GET_FUN(__glewWindowPos3iARB) +#define glWindowPos3ivARB GLEW_GET_FUN(__glewWindowPos3ivARB) +#define glWindowPos3sARB GLEW_GET_FUN(__glewWindowPos3sARB) +#define glWindowPos3svARB GLEW_GET_FUN(__glewWindowPos3svARB) + +#define GLEW_ARB_window_pos GLEW_GET_VAR(__GLEW_ARB_window_pos) + +#endif /* GL_ARB_window_pos */ + +/* ------------------------- GL_ATIX_point_sprites ------------------------- */ + +#ifndef GL_ATIX_point_sprites +#define GL_ATIX_point_sprites 1 + +#define GL_TEXTURE_POINT_MODE_ATIX 0x60B0 +#define GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1 +#define GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2 +#define GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3 +#define GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4 +#define GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5 + +#define GLEW_ATIX_point_sprites GLEW_GET_VAR(__GLEW_ATIX_point_sprites) + +#endif /* GL_ATIX_point_sprites */ + +/* ---------------------- GL_ATIX_texture_env_combine3 --------------------- */ + +#ifndef GL_ATIX_texture_env_combine3 +#define GL_ATIX_texture_env_combine3 1 + +#define GL_MODULATE_ADD_ATIX 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATIX 0x8745 +#define GL_MODULATE_SUBTRACT_ATIX 0x8746 + +#define GLEW_ATIX_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATIX_texture_env_combine3) + +#endif /* GL_ATIX_texture_env_combine3 */ + +/* ----------------------- GL_ATIX_texture_env_route ----------------------- */ + +#ifndef GL_ATIX_texture_env_route +#define GL_ATIX_texture_env_route 1 + +#define GL_SECONDARY_COLOR_ATIX 0x8747 +#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748 +#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749 + +#define GLEW_ATIX_texture_env_route GLEW_GET_VAR(__GLEW_ATIX_texture_env_route) + +#endif /* GL_ATIX_texture_env_route */ + +/* ---------------- GL_ATIX_vertex_shader_output_point_size ---------------- */ + +#ifndef GL_ATIX_vertex_shader_output_point_size +#define GL_ATIX_vertex_shader_output_point_size 1 + +#define GL_OUTPUT_POINT_SIZE_ATIX 0x610E + +#define GLEW_ATIX_vertex_shader_output_point_size GLEW_GET_VAR(__GLEW_ATIX_vertex_shader_output_point_size) + +#endif /* GL_ATIX_vertex_shader_output_point_size */ + +/* -------------------------- GL_ATI_draw_buffers -------------------------- */ + +#ifndef GL_ATI_draw_buffers +#define GL_ATI_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 +#define GL_DRAW_BUFFER0_ATI 0x8825 +#define GL_DRAW_BUFFER1_ATI 0x8826 +#define GL_DRAW_BUFFER2_ATI 0x8827 +#define GL_DRAW_BUFFER3_ATI 0x8828 +#define GL_DRAW_BUFFER4_ATI 0x8829 +#define GL_DRAW_BUFFER5_ATI 0x882A +#define GL_DRAW_BUFFER6_ATI 0x882B +#define GL_DRAW_BUFFER7_ATI 0x882C +#define GL_DRAW_BUFFER8_ATI 0x882D +#define GL_DRAW_BUFFER9_ATI 0x882E +#define GL_DRAW_BUFFER10_ATI 0x882F +#define GL_DRAW_BUFFER11_ATI 0x8830 +#define GL_DRAW_BUFFER12_ATI 0x8831 +#define GL_DRAW_BUFFER13_ATI 0x8832 +#define GL_DRAW_BUFFER14_ATI 0x8833 +#define GL_DRAW_BUFFER15_ATI 0x8834 + +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum* bufs); + +#define glDrawBuffersATI GLEW_GET_FUN(__glewDrawBuffersATI) + +#define GLEW_ATI_draw_buffers GLEW_GET_VAR(__GLEW_ATI_draw_buffers) + +#endif /* GL_ATI_draw_buffers */ + +/* -------------------------- GL_ATI_element_array ------------------------- */ + +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 + +#define GL_ELEMENT_ARRAY_ATI 0x8768 +#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A + +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); +typedef void (GLAPIENTRY * PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void* pointer); + +#define glDrawElementArrayATI GLEW_GET_FUN(__glewDrawElementArrayATI) +#define glDrawRangeElementArrayATI GLEW_GET_FUN(__glewDrawRangeElementArrayATI) +#define glElementPointerATI GLEW_GET_FUN(__glewElementPointerATI) + +#define GLEW_ATI_element_array GLEW_GET_VAR(__GLEW_ATI_element_array) + +#endif /* GL_ATI_element_array */ + +/* ------------------------- GL_ATI_envmap_bumpmap ------------------------- */ + +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 + +#define GL_BUMP_ROT_MATRIX_ATI 0x8775 +#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 +#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 +#define GL_BUMP_TEX_UNITS_ATI 0x8778 +#define GL_DUDV_ATI 0x8779 +#define GL_DU8DV8_ATI 0x877A +#define GL_BUMP_ENVMAP_ATI 0x877B +#define GL_BUMP_TARGET_ATI 0x877C + +typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +typedef void (GLAPIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +typedef void (GLAPIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); + +#define glGetTexBumpParameterfvATI GLEW_GET_FUN(__glewGetTexBumpParameterfvATI) +#define glGetTexBumpParameterivATI GLEW_GET_FUN(__glewGetTexBumpParameterivATI) +#define glTexBumpParameterfvATI GLEW_GET_FUN(__glewTexBumpParameterfvATI) +#define glTexBumpParameterivATI GLEW_GET_FUN(__glewTexBumpParameterivATI) + +#define GLEW_ATI_envmap_bumpmap GLEW_GET_VAR(__GLEW_ATI_envmap_bumpmap) + +#endif /* GL_ATI_envmap_bumpmap */ + +/* ------------------------- GL_ATI_fragment_shader ------------------------ */ + +#ifndef GL_ATI_fragment_shader +#define GL_ATI_fragment_shader 1 + +#define GL_RED_BIT_ATI 0x00000001 +#define GL_2X_BIT_ATI 0x00000001 +#define GL_4X_BIT_ATI 0x00000002 +#define GL_GREEN_BIT_ATI 0x00000002 +#define GL_COMP_BIT_ATI 0x00000002 +#define GL_BLUE_BIT_ATI 0x00000004 +#define GL_8X_BIT_ATI 0x00000004 +#define GL_NEGATE_BIT_ATI 0x00000004 +#define GL_BIAS_BIT_ATI 0x00000008 +#define GL_HALF_BIT_ATI 0x00000008 +#define GL_QUARTER_BIT_ATI 0x00000010 +#define GL_EIGHTH_BIT_ATI 0x00000020 +#define GL_SATURATE_BIT_ATI 0x00000040 +#define GL_FRAGMENT_SHADER_ATI 0x8920 +#define GL_REG_0_ATI 0x8921 +#define GL_REG_1_ATI 0x8922 +#define GL_REG_2_ATI 0x8923 +#define GL_REG_3_ATI 0x8924 +#define GL_REG_4_ATI 0x8925 +#define GL_REG_5_ATI 0x8926 +#define GL_CON_0_ATI 0x8941 +#define GL_CON_1_ATI 0x8942 +#define GL_CON_2_ATI 0x8943 +#define GL_CON_3_ATI 0x8944 +#define GL_CON_4_ATI 0x8945 +#define GL_CON_5_ATI 0x8946 +#define GL_CON_6_ATI 0x8947 +#define GL_CON_7_ATI 0x8948 +#define GL_MOV_ATI 0x8961 +#define GL_ADD_ATI 0x8963 +#define GL_MUL_ATI 0x8964 +#define GL_SUB_ATI 0x8965 +#define GL_DOT3_ATI 0x8966 +#define GL_DOT4_ATI 0x8967 +#define GL_MAD_ATI 0x8968 +#define GL_LERP_ATI 0x8969 +#define GL_CND_ATI 0x896A +#define GL_CND0_ATI 0x896B +#define GL_DOT2_ADD_ATI 0x896C +#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D +#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E +#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F +#define GL_NUM_PASSES_ATI 0x8970 +#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 +#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 +#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 +#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 +#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 +#define GL_SWIZZLE_STR_ATI 0x8976 +#define GL_SWIZZLE_STQ_ATI 0x8977 +#define GL_SWIZZLE_STR_DR_ATI 0x8978 +#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 +#define GL_SWIZZLE_STRQ_ATI 0x897A +#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B + +typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (GLAPIENTRY * PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (GLAPIENTRY * PFNGLBEGINFRAGMENTSHADERATIPROC) (void); +typedef void (GLAPIENTRY * PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); +typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); +typedef void (GLAPIENTRY * PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); +typedef void (GLAPIENTRY * PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLENDFRAGMENTSHADERATIPROC) (void); +typedef GLuint (GLAPIENTRY * PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); +typedef void (GLAPIENTRY * PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); +typedef void (GLAPIENTRY * PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); +typedef void (GLAPIENTRY * PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat* value); + +#define glAlphaFragmentOp1ATI GLEW_GET_FUN(__glewAlphaFragmentOp1ATI) +#define glAlphaFragmentOp2ATI GLEW_GET_FUN(__glewAlphaFragmentOp2ATI) +#define glAlphaFragmentOp3ATI GLEW_GET_FUN(__glewAlphaFragmentOp3ATI) +#define glBeginFragmentShaderATI GLEW_GET_FUN(__glewBeginFragmentShaderATI) +#define glBindFragmentShaderATI GLEW_GET_FUN(__glewBindFragmentShaderATI) +#define glColorFragmentOp1ATI GLEW_GET_FUN(__glewColorFragmentOp1ATI) +#define glColorFragmentOp2ATI GLEW_GET_FUN(__glewColorFragmentOp2ATI) +#define glColorFragmentOp3ATI GLEW_GET_FUN(__glewColorFragmentOp3ATI) +#define glDeleteFragmentShaderATI GLEW_GET_FUN(__glewDeleteFragmentShaderATI) +#define glEndFragmentShaderATI GLEW_GET_FUN(__glewEndFragmentShaderATI) +#define glGenFragmentShadersATI GLEW_GET_FUN(__glewGenFragmentShadersATI) +#define glPassTexCoordATI GLEW_GET_FUN(__glewPassTexCoordATI) +#define glSampleMapATI GLEW_GET_FUN(__glewSampleMapATI) +#define glSetFragmentShaderConstantATI GLEW_GET_FUN(__glewSetFragmentShaderConstantATI) + +#define GLEW_ATI_fragment_shader GLEW_GET_VAR(__GLEW_ATI_fragment_shader) + +#endif /* GL_ATI_fragment_shader */ + +/* ------------------------ GL_ATI_map_object_buffer ----------------------- */ + +#ifndef GL_ATI_map_object_buffer +#define GL_ATI_map_object_buffer 1 + +typedef void* (GLAPIENTRY * PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); + +#define glMapObjectBufferATI GLEW_GET_FUN(__glewMapObjectBufferATI) +#define glUnmapObjectBufferATI GLEW_GET_FUN(__glewUnmapObjectBufferATI) + +#define GLEW_ATI_map_object_buffer GLEW_GET_VAR(__GLEW_ATI_map_object_buffer) + +#endif /* GL_ATI_map_object_buffer */ + +/* ----------------------------- GL_ATI_meminfo ---------------------------- */ + +#ifndef GL_ATI_meminfo +#define GL_ATI_meminfo 1 + +#define GL_VBO_FREE_MEMORY_ATI 0x87FB +#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC +#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD + +#define GLEW_ATI_meminfo GLEW_GET_VAR(__GLEW_ATI_meminfo) + +#endif /* GL_ATI_meminfo */ + +/* -------------------------- GL_ATI_pn_triangles -------------------------- */ + +#ifndef GL_ATI_pn_triangles +#define GL_ATI_pn_triangles 1 + +#define GL_PN_TRIANGLES_ATI 0x87F0 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 + +typedef void (GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); + +#define glPNTrianglesfATI GLEW_GET_FUN(__glPNTrianglewesfATI) +#define glPNTrianglesiATI GLEW_GET_FUN(__glPNTrianglewesiATI) + +#define GLEW_ATI_pn_triangles GLEW_GET_VAR(__GLEW_ATI_pn_triangles) + +#endif /* GL_ATI_pn_triangles */ + +/* ------------------------ GL_ATI_separate_stencil ------------------------ */ + +#ifndef GL_ATI_separate_stencil +#define GL_ATI_separate_stencil 1 + +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 + +typedef void (GLAPIENTRY * PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); + +#define glStencilFuncSeparateATI GLEW_GET_FUN(__glewStencilFuncSeparateATI) +#define glStencilOpSeparateATI GLEW_GET_FUN(__glewStencilOpSeparateATI) + +#define GLEW_ATI_separate_stencil GLEW_GET_VAR(__GLEW_ATI_separate_stencil) + +#endif /* GL_ATI_separate_stencil */ + +/* ----------------------- GL_ATI_shader_texture_lod ----------------------- */ + +#ifndef GL_ATI_shader_texture_lod +#define GL_ATI_shader_texture_lod 1 + +#define GLEW_ATI_shader_texture_lod GLEW_GET_VAR(__GLEW_ATI_shader_texture_lod) + +#endif /* GL_ATI_shader_texture_lod */ + +/* ---------------------- GL_ATI_text_fragment_shader ---------------------- */ + +#ifndef GL_ATI_text_fragment_shader +#define GL_ATI_text_fragment_shader 1 + +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 + +#define GLEW_ATI_text_fragment_shader GLEW_GET_VAR(__GLEW_ATI_text_fragment_shader) + +#endif /* GL_ATI_text_fragment_shader */ + +/* --------------------- GL_ATI_texture_compression_3dc -------------------- */ + +#ifndef GL_ATI_texture_compression_3dc +#define GL_ATI_texture_compression_3dc 1 + +#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 + +#define GLEW_ATI_texture_compression_3dc GLEW_GET_VAR(__GLEW_ATI_texture_compression_3dc) + +#endif /* GL_ATI_texture_compression_3dc */ + +/* ---------------------- GL_ATI_texture_env_combine3 ---------------------- */ + +#ifndef GL_ATI_texture_env_combine3 +#define GL_ATI_texture_env_combine3 1 + +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 + +#define GLEW_ATI_texture_env_combine3 GLEW_GET_VAR(__GLEW_ATI_texture_env_combine3) + +#endif /* GL_ATI_texture_env_combine3 */ + +/* -------------------------- GL_ATI_texture_float ------------------------- */ + +#ifndef GL_ATI_texture_float +#define GL_ATI_texture_float 1 + +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F + +#define GLEW_ATI_texture_float GLEW_GET_VAR(__GLEW_ATI_texture_float) + +#endif /* GL_ATI_texture_float */ + +/* ----------------------- GL_ATI_texture_mirror_once ---------------------- */ + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 + +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 + +#define GLEW_ATI_texture_mirror_once GLEW_GET_VAR(__GLEW_ATI_texture_mirror_once) + +#endif /* GL_ATI_texture_mirror_once */ + +/* ----------------------- GL_ATI_vertex_array_object ---------------------- */ + +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 + +#define GL_STATIC_ATI 0x8760 +#define GL_DYNAMIC_ATI 0x8761 +#define GL_PRESERVE_ATI 0x8762 +#define GL_DISCARD_ATI 0x8763 +#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 +#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 +#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 +#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 + +typedef void (GLAPIENTRY * PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); +typedef void (GLAPIENTRY * PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); +typedef GLuint (GLAPIENTRY * PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void* pointer, GLenum usage); +typedef void (GLAPIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void* pointer, GLenum preserve); +typedef void (GLAPIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); + +#define glArrayObjectATI GLEW_GET_FUN(__glewArrayObjectATI) +#define glFreeObjectBufferATI GLEW_GET_FUN(__glewFreeObjectBufferATI) +#define glGetArrayObjectfvATI GLEW_GET_FUN(__glewGetArrayObjectfvATI) +#define glGetArrayObjectivATI GLEW_GET_FUN(__glewGetArrayObjectivATI) +#define glGetObjectBufferfvATI GLEW_GET_FUN(__glewGetObjectBufferfvATI) +#define glGetObjectBufferivATI GLEW_GET_FUN(__glewGetObjectBufferivATI) +#define glGetVariantArrayObjectfvATI GLEW_GET_FUN(__glewGetVariantArrayObjectfvATI) +#define glGetVariantArrayObjectivATI GLEW_GET_FUN(__glewGetVariantArrayObjectivATI) +#define glIsObjectBufferATI GLEW_GET_FUN(__glewIsObjectBufferATI) +#define glNewObjectBufferATI GLEW_GET_FUN(__glewNewObjectBufferATI) +#define glUpdateObjectBufferATI GLEW_GET_FUN(__glewUpdateObjectBufferATI) +#define glVariantArrayObjectATI GLEW_GET_FUN(__glewVariantArrayObjectATI) + +#define GLEW_ATI_vertex_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_array_object) + +#endif /* GL_ATI_vertex_array_object */ + +/* ------------------- GL_ATI_vertex_attrib_array_object ------------------- */ + +#ifndef GL_ATI_vertex_attrib_array_object +#define GL_ATI_vertex_attrib_array_object 1 + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); + +#define glGetVertexAttribArrayObjectfvATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectfvATI) +#define glGetVertexAttribArrayObjectivATI GLEW_GET_FUN(__glewGetVertexAttribArrayObjectivATI) +#define glVertexAttribArrayObjectATI GLEW_GET_FUN(__glewVertexAttribArrayObjectATI) + +#define GLEW_ATI_vertex_attrib_array_object GLEW_GET_VAR(__GLEW_ATI_vertex_attrib_array_object) + +#endif /* GL_ATI_vertex_attrib_array_object */ + +/* ------------------------- GL_ATI_vertex_streams ------------------------- */ + +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 + +#define GL_MAX_VERTEX_STREAMS_ATI 0x876B +#define GL_VERTEX_SOURCE_ATI 0x876C +#define GL_VERTEX_STREAM0_ATI 0x876D +#define GL_VERTEX_STREAM1_ATI 0x876E +#define GL_VERTEX_STREAM2_ATI 0x876F +#define GL_VERTEX_STREAM3_ATI 0x8770 +#define GL_VERTEX_STREAM4_ATI 0x8771 +#define GL_VERTEX_STREAM5_ATI 0x8772 +#define GL_VERTEX_STREAM6_ATI 0x8773 +#define GL_VERTEX_STREAM7_ATI 0x8774 + +typedef void (GLAPIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *v); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *v); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAPIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *v); + +#define glClientActiveVertexStreamATI GLEW_GET_FUN(__glewClientActiveVertexStreamATI) +#define glNormalStream3bATI GLEW_GET_FUN(__glewNormalStream3bATI) +#define glNormalStream3bvATI GLEW_GET_FUN(__glewNormalStream3bvATI) +#define glNormalStream3dATI GLEW_GET_FUN(__glewNormalStream3dATI) +#define glNormalStream3dvATI GLEW_GET_FUN(__glewNormalStream3dvATI) +#define glNormalStream3fATI GLEW_GET_FUN(__glewNormalStream3fATI) +#define glNormalStream3fvATI GLEW_GET_FUN(__glewNormalStream3fvATI) +#define glNormalStream3iATI GLEW_GET_FUN(__glewNormalStream3iATI) +#define glNormalStream3ivATI GLEW_GET_FUN(__glewNormalStream3ivATI) +#define glNormalStream3sATI GLEW_GET_FUN(__glewNormalStream3sATI) +#define glNormalStream3svATI GLEW_GET_FUN(__glewNormalStream3svATI) +#define glVertexBlendEnvfATI GLEW_GET_FUN(__glewVertexBlendEnvfATI) +#define glVertexBlendEnviATI GLEW_GET_FUN(__glewVertexBlendEnviATI) +#define glVertexStream2dATI GLEW_GET_FUN(__glewVertexStream2dATI) +#define glVertexStream2dvATI GLEW_GET_FUN(__glewVertexStream2dvATI) +#define glVertexStream2fATI GLEW_GET_FUN(__glewVertexStream2fATI) +#define glVertexStream2fvATI GLEW_GET_FUN(__glewVertexStream2fvATI) +#define glVertexStream2iATI GLEW_GET_FUN(__glewVertexStream2iATI) +#define glVertexStream2ivATI GLEW_GET_FUN(__glewVertexStream2ivATI) +#define glVertexStream2sATI GLEW_GET_FUN(__glewVertexStream2sATI) +#define glVertexStream2svATI GLEW_GET_FUN(__glewVertexStream2svATI) +#define glVertexStream3dATI GLEW_GET_FUN(__glewVertexStream3dATI) +#define glVertexStream3dvATI GLEW_GET_FUN(__glewVertexStream3dvATI) +#define glVertexStream3fATI GLEW_GET_FUN(__glewVertexStream3fATI) +#define glVertexStream3fvATI GLEW_GET_FUN(__glewVertexStream3fvATI) +#define glVertexStream3iATI GLEW_GET_FUN(__glewVertexStream3iATI) +#define glVertexStream3ivATI GLEW_GET_FUN(__glewVertexStream3ivATI) +#define glVertexStream3sATI GLEW_GET_FUN(__glewVertexStream3sATI) +#define glVertexStream3svATI GLEW_GET_FUN(__glewVertexStream3svATI) +#define glVertexStream4dATI GLEW_GET_FUN(__glewVertexStream4dATI) +#define glVertexStream4dvATI GLEW_GET_FUN(__glewVertexStream4dvATI) +#define glVertexStream4fATI GLEW_GET_FUN(__glewVertexStream4fATI) +#define glVertexStream4fvATI GLEW_GET_FUN(__glewVertexStream4fvATI) +#define glVertexStream4iATI GLEW_GET_FUN(__glewVertexStream4iATI) +#define glVertexStream4ivATI GLEW_GET_FUN(__glewVertexStream4ivATI) +#define glVertexStream4sATI GLEW_GET_FUN(__glewVertexStream4sATI) +#define glVertexStream4svATI GLEW_GET_FUN(__glewVertexStream4svATI) + +#define GLEW_ATI_vertex_streams GLEW_GET_VAR(__GLEW_ATI_vertex_streams) + +#endif /* GL_ATI_vertex_streams */ + +/* --------------------------- GL_EXT_422_pixels --------------------------- */ + +#ifndef GL_EXT_422_pixels +#define GL_EXT_422_pixels 1 + +#define GL_422_EXT 0x80CC +#define GL_422_REV_EXT 0x80CD +#define GL_422_AVERAGE_EXT 0x80CE +#define GL_422_REV_AVERAGE_EXT 0x80CF + +#define GLEW_EXT_422_pixels GLEW_GET_VAR(__GLEW_EXT_422_pixels) + +#endif /* GL_EXT_422_pixels */ + +/* ---------------------------- GL_EXT_Cg_shader --------------------------- */ + +#ifndef GL_EXT_Cg_shader +#define GL_EXT_Cg_shader 1 + +#define GL_CG_VERTEX_SHADER_EXT 0x890E +#define GL_CG_FRAGMENT_SHADER_EXT 0x890F + +#define GLEW_EXT_Cg_shader GLEW_GET_VAR(__GLEW_EXT_Cg_shader) + +#endif /* GL_EXT_Cg_shader */ + +/* ------------------------------ GL_EXT_abgr ------------------------------ */ + +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 + +#define GL_ABGR_EXT 0x8000 + +#define GLEW_EXT_abgr GLEW_GET_VAR(__GLEW_EXT_abgr) + +#endif /* GL_EXT_abgr */ + +/* ------------------------------ GL_EXT_bgra ------------------------------ */ + +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 + +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 + +#define GLEW_EXT_bgra GLEW_GET_VAR(__GLEW_EXT_bgra) + +#endif /* GL_EXT_bgra */ + +/* ------------------------ GL_EXT_bindable_uniform ------------------------ */ + +#ifndef GL_EXT_bindable_uniform +#define GL_EXT_bindable_uniform 1 + +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_EXT 0x8DEE +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF + +typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); +typedef GLintptr (GLAPIENTRY * PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); +typedef void (GLAPIENTRY * PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); + +#define glGetUniformBufferSizeEXT GLEW_GET_FUN(__glewGetUniformBufferSizeEXT) +#define glGetUniformOffsetEXT GLEW_GET_FUN(__glewGetUniformOffsetEXT) +#define glUniformBufferEXT GLEW_GET_FUN(__glewUniformBufferEXT) + +#define GLEW_EXT_bindable_uniform GLEW_GET_VAR(__GLEW_EXT_bindable_uniform) + +#endif /* GL_EXT_bindable_uniform */ + +/* --------------------------- GL_EXT_blend_color -------------------------- */ + +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 + +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 +#define GL_BLEND_COLOR_EXT 0x8005 + +typedef void (GLAPIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); + +#define glBlendColorEXT GLEW_GET_FUN(__glewBlendColorEXT) + +#define GLEW_EXT_blend_color GLEW_GET_VAR(__GLEW_EXT_blend_color) + +#endif /* GL_EXT_blend_color */ + +/* --------------------- GL_EXT_blend_equation_separate -------------------- */ + +#ifndef GL_EXT_blend_equation_separate +#define GL_EXT_blend_equation_separate 1 + +#define GL_BLEND_EQUATION_RGB_EXT 0x8009 +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); + +#define glBlendEquationSeparateEXT GLEW_GET_FUN(__glewBlendEquationSeparateEXT) + +#define GLEW_EXT_blend_equation_separate GLEW_GET_VAR(__GLEW_EXT_blend_equation_separate) + +#endif /* GL_EXT_blend_equation_separate */ + +/* ----------------------- GL_EXT_blend_func_separate ---------------------- */ + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 + +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#define GL_BLEND_DST_ALPHA_EXT 0x80CA +#define GL_BLEND_SRC_ALPHA_EXT 0x80CB + +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); + +#define glBlendFuncSeparateEXT GLEW_GET_FUN(__glewBlendFuncSeparateEXT) + +#define GLEW_EXT_blend_func_separate GLEW_GET_VAR(__GLEW_EXT_blend_func_separate) + +#endif /* GL_EXT_blend_func_separate */ + +/* ------------------------- GL_EXT_blend_logic_op ------------------------- */ + +#ifndef GL_EXT_blend_logic_op +#define GL_EXT_blend_logic_op 1 + +#define GLEW_EXT_blend_logic_op GLEW_GET_VAR(__GLEW_EXT_blend_logic_op) + +#endif /* GL_EXT_blend_logic_op */ + +/* -------------------------- GL_EXT_blend_minmax -------------------------- */ + +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 + +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); + +#define glBlendEquationEXT GLEW_GET_FUN(__glewBlendEquationEXT) + +#define GLEW_EXT_blend_minmax GLEW_GET_VAR(__GLEW_EXT_blend_minmax) + +#endif /* GL_EXT_blend_minmax */ + +/* ------------------------- GL_EXT_blend_subtract ------------------------- */ + +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 + +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B + +#define GLEW_EXT_blend_subtract GLEW_GET_VAR(__GLEW_EXT_blend_subtract) + +#endif /* GL_EXT_blend_subtract */ + +/* ------------------------ GL_EXT_clip_volume_hint ------------------------ */ + +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 + +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 + +#define GLEW_EXT_clip_volume_hint GLEW_GET_VAR(__GLEW_EXT_clip_volume_hint) + +#endif /* GL_EXT_clip_volume_hint */ + +/* ------------------------------ GL_EXT_cmyka ----------------------------- */ + +#ifndef GL_EXT_cmyka +#define GL_EXT_cmyka 1 + +#define GL_CMYK_EXT 0x800C +#define GL_CMYKA_EXT 0x800D +#define GL_PACK_CMYK_HINT_EXT 0x800E +#define GL_UNPACK_CMYK_HINT_EXT 0x800F + +#define GLEW_EXT_cmyka GLEW_GET_VAR(__GLEW_EXT_cmyka) + +#endif /* GL_EXT_cmyka */ + +/* ------------------------- GL_EXT_color_subtable ------------------------- */ + +#ifndef GL_EXT_color_subtable +#define GL_EXT_color_subtable 1 + +typedef void (GLAPIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void* data); +typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); + +#define glColorSubTableEXT GLEW_GET_FUN(__glewColorSubTableEXT) +#define glCopyColorSubTableEXT GLEW_GET_FUN(__glewCopyColorSubTableEXT) + +#define GLEW_EXT_color_subtable GLEW_GET_VAR(__GLEW_EXT_color_subtable) + +#endif /* GL_EXT_color_subtable */ + +/* ---------------------- GL_EXT_compiled_vertex_array --------------------- */ + +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 + +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 + +typedef void (GLAPIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); +typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); + +#define glLockArraysEXT GLEW_GET_FUN(__glewLockArraysEXT) +#define glUnlockArraysEXT GLEW_GET_FUN(__glewUnlockArraysEXT) + +#define GLEW_EXT_compiled_vertex_array GLEW_GET_VAR(__GLEW_EXT_compiled_vertex_array) + +#endif /* GL_EXT_compiled_vertex_array */ + +/* --------------------------- GL_EXT_convolution -------------------------- */ + +#ifndef GL_EXT_convolution +#define GL_EXT_convolution 1 + +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 + +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* image); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* image); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void* image); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void* row, void* column, void* span); +typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* row, const void* column); + +#define glConvolutionFilter1DEXT GLEW_GET_FUN(__glewConvolutionFilter1DEXT) +#define glConvolutionFilter2DEXT GLEW_GET_FUN(__glewConvolutionFilter2DEXT) +#define glConvolutionParameterfEXT GLEW_GET_FUN(__glewConvolutionParameterfEXT) +#define glConvolutionParameterfvEXT GLEW_GET_FUN(__glewConvolutionParameterfvEXT) +#define glConvolutionParameteriEXT GLEW_GET_FUN(__glewConvolutionParameteriEXT) +#define glConvolutionParameterivEXT GLEW_GET_FUN(__glewConvolutionParameterivEXT) +#define glCopyConvolutionFilter1DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter1DEXT) +#define glCopyConvolutionFilter2DEXT GLEW_GET_FUN(__glewCopyConvolutionFilter2DEXT) +#define glGetConvolutionFilterEXT GLEW_GET_FUN(__glewGetConvolutionFilterEXT) +#define glGetConvolutionParameterfvEXT GLEW_GET_FUN(__glewGetConvolutionParameterfvEXT) +#define glGetConvolutionParameterivEXT GLEW_GET_FUN(__glewGetConvolutionParameterivEXT) +#define glGetSeparableFilterEXT GLEW_GET_FUN(__glewGetSeparableFilterEXT) +#define glSeparableFilter2DEXT GLEW_GET_FUN(__glewSeparableFilter2DEXT) + +#define GLEW_EXT_convolution GLEW_GET_VAR(__GLEW_EXT_convolution) + +#endif /* GL_EXT_convolution */ + +/* ------------------------ GL_EXT_coordinate_frame ------------------------ */ + +#ifndef GL_EXT_coordinate_frame +#define GL_EXT_coordinate_frame 1 + +#define GL_TANGENT_ARRAY_EXT 0x8439 +#define GL_BINORMAL_ARRAY_EXT 0x843A +#define GL_CURRENT_TANGENT_EXT 0x843B +#define GL_CURRENT_BINORMAL_EXT 0x843C +#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E +#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F +#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 +#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 +#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 +#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 +#define GL_MAP1_TANGENT_EXT 0x8444 +#define GL_MAP2_TANGENT_EXT 0x8445 +#define GL_MAP1_BINORMAL_EXT 0x8446 +#define GL_MAP2_BINORMAL_EXT 0x8447 + +typedef void (GLAPIENTRY * PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, void* pointer); +typedef void (GLAPIENTRY * PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, void* pointer); + +#define glBinormalPointerEXT GLEW_GET_FUN(__glewBinormalPointerEXT) +#define glTangentPointerEXT GLEW_GET_FUN(__glewTangentPointerEXT) + +#define GLEW_EXT_coordinate_frame GLEW_GET_VAR(__GLEW_EXT_coordinate_frame) + +#endif /* GL_EXT_coordinate_frame */ + +/* -------------------------- GL_EXT_copy_texture -------------------------- */ + +#ifndef GL_EXT_copy_texture +#define GL_EXT_copy_texture 1 + +typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); + +#define glCopyTexImage1DEXT GLEW_GET_FUN(__glewCopyTexImage1DEXT) +#define glCopyTexImage2DEXT GLEW_GET_FUN(__glewCopyTexImage2DEXT) +#define glCopyTexSubImage1DEXT GLEW_GET_FUN(__glewCopyTexSubImage1DEXT) +#define glCopyTexSubImage2DEXT GLEW_GET_FUN(__glewCopyTexSubImage2DEXT) +#define glCopyTexSubImage3DEXT GLEW_GET_FUN(__glewCopyTexSubImage3DEXT) + +#define GLEW_EXT_copy_texture GLEW_GET_VAR(__GLEW_EXT_copy_texture) + +#endif /* GL_EXT_copy_texture */ + +/* --------------------------- GL_EXT_cull_vertex -------------------------- */ + +#ifndef GL_EXT_cull_vertex +#define GL_EXT_cull_vertex 1 + +#define GL_CULL_VERTEX_EXT 0x81AA +#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB +#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC + +typedef void (GLAPIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params); + +#define glCullParameterdvEXT GLEW_GET_FUN(__glewCullParameterdvEXT) +#define glCullParameterfvEXT GLEW_GET_FUN(__glewCullParameterfvEXT) + +#define GLEW_EXT_cull_vertex GLEW_GET_VAR(__GLEW_EXT_cull_vertex) + +#endif /* GL_EXT_cull_vertex */ + +/* ------------------------ GL_EXT_depth_bounds_test ----------------------- */ + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 + +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 + +typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); + +#define glDepthBoundsEXT GLEW_GET_FUN(__glewDepthBoundsEXT) + +#define GLEW_EXT_depth_bounds_test GLEW_GET_VAR(__GLEW_EXT_depth_bounds_test) + +#endif /* GL_EXT_depth_bounds_test */ + +/* ----------------------- GL_EXT_direct_state_access ---------------------- */ + +#ifndef GL_EXT_direct_state_access +#define GL_EXT_direct_state_access 1 + +#define GL_PROGRAM_MATRIX_EXT 0x8E2D +#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E +#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F + +typedef void (GLAPIENTRY * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); +typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); +typedef void (GLAPIENTRY * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); +typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (GLAPIENTRY * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); +typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, void* img); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, void* img); +typedef void (GLAPIENTRY * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void** params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void* data); +typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void* string); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid** params); +typedef void (GLAPIENTRY * PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, GLvoid** params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); +typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLvoid** param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, GLvoid** param); +typedef GLvoid * (GLAPIENTRY * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); +typedef GLvoid * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (GLAPIENTRY * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum matrixMode); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXORTHOEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); +typedef void (GLAPIENTRY * PFNGLMATRIXPOPEXTPROC) (GLenum matrixMode); +typedef void (GLAPIENTRY * PFNGLMATRIXPUSHEXTPROC) (GLenum matrixMode); +typedef void (GLAPIENTRY * PFNGLMATRIXROTATEDEXTPROC) (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLMATRIXROTATEFEXTPROC) (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLMATRIXSCALEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLMATRIXSCALEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void* pointer); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* param); +typedef void (GLAPIENTRY * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void* data, GLenum usage); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void* data); +typedef void (GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void* string); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat* param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* param); +typedef void (GLAPIENTRY * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); + +#define glBindMultiTextureEXT GLEW_GET_FUN(__glewBindMultiTextureEXT) +#define glCheckNamedFramebufferStatusEXT GLEW_GET_FUN(__glewCheckNamedFramebufferStatusEXT) +#define glClientAttribDefaultEXT GLEW_GET_FUN(__glewClientAttribDefaultEXT) +#define glCompressedMultiTexImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage1DEXT) +#define glCompressedMultiTexImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage2DEXT) +#define glCompressedMultiTexImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage3DEXT) +#define glCompressedMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage1DEXT) +#define glCompressedMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage2DEXT) +#define glCompressedMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage3DEXT) +#define glCompressedTextureImage1DEXT GLEW_GET_FUN(__glewCompressedTextureImage1DEXT) +#define glCompressedTextureImage2DEXT GLEW_GET_FUN(__glewCompressedTextureImage2DEXT) +#define glCompressedTextureImage3DEXT GLEW_GET_FUN(__glewCompressedTextureImage3DEXT) +#define glCompressedTextureSubImage1DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage1DEXT) +#define glCompressedTextureSubImage2DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage2DEXT) +#define glCompressedTextureSubImage3DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage3DEXT) +#define glCopyMultiTexImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexImage1DEXT) +#define glCopyMultiTexImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexImage2DEXT) +#define glCopyMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage1DEXT) +#define glCopyMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage2DEXT) +#define glCopyMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage3DEXT) +#define glCopyTextureImage1DEXT GLEW_GET_FUN(__glewCopyTextureImage1DEXT) +#define glCopyTextureImage2DEXT GLEW_GET_FUN(__glewCopyTextureImage2DEXT) +#define glCopyTextureSubImage1DEXT GLEW_GET_FUN(__glewCopyTextureSubImage1DEXT) +#define glCopyTextureSubImage2DEXT GLEW_GET_FUN(__glewCopyTextureSubImage2DEXT) +#define glCopyTextureSubImage3DEXT GLEW_GET_FUN(__glewCopyTextureSubImage3DEXT) +#define glDisableClientStateIndexedEXT GLEW_GET_FUN(__glewDisableClientStateIndexedEXT) +#define glDisableClientStateiEXT GLEW_GET_FUN(__glewDisableClientStateiEXT) +#define glDisableVertexArrayAttribEXT GLEW_GET_FUN(__glewDisableVertexArrayAttribEXT) +#define glDisableVertexArrayEXT GLEW_GET_FUN(__glewDisableVertexArrayEXT) +#define glEnableClientStateIndexedEXT GLEW_GET_FUN(__glewEnableClientStateIndexedEXT) +#define glEnableClientStateiEXT GLEW_GET_FUN(__glewEnableClientStateiEXT) +#define glEnableVertexArrayAttribEXT GLEW_GET_FUN(__glewEnableVertexArrayAttribEXT) +#define glEnableVertexArrayEXT GLEW_GET_FUN(__glewEnableVertexArrayEXT) +#define glFlushMappedNamedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedNamedBufferRangeEXT) +#define glFramebufferDrawBufferEXT GLEW_GET_FUN(__glewFramebufferDrawBufferEXT) +#define glFramebufferDrawBuffersEXT GLEW_GET_FUN(__glewFramebufferDrawBuffersEXT) +#define glFramebufferReadBufferEXT GLEW_GET_FUN(__glewFramebufferReadBufferEXT) +#define glGenerateMultiTexMipmapEXT GLEW_GET_FUN(__glewGenerateMultiTexMipmapEXT) +#define glGenerateTextureMipmapEXT GLEW_GET_FUN(__glewGenerateTextureMipmapEXT) +#define glGetCompressedMultiTexImageEXT GLEW_GET_FUN(__glewGetCompressedMultiTexImageEXT) +#define glGetCompressedTextureImageEXT GLEW_GET_FUN(__glewGetCompressedTextureImageEXT) +#define glGetDoubleIndexedvEXT GLEW_GET_FUN(__glewGetDoubleIndexedvEXT) +#define glGetDoublei_vEXT GLEW_GET_FUN(__glewGetDoublei_vEXT) +#define glGetFloatIndexedvEXT GLEW_GET_FUN(__glewGetFloatIndexedvEXT) +#define glGetFloati_vEXT GLEW_GET_FUN(__glewGetFloati_vEXT) +#define glGetFramebufferParameterivEXT GLEW_GET_FUN(__glewGetFramebufferParameterivEXT) +#define glGetMultiTexEnvfvEXT GLEW_GET_FUN(__glewGetMultiTexEnvfvEXT) +#define glGetMultiTexEnvivEXT GLEW_GET_FUN(__glewGetMultiTexEnvivEXT) +#define glGetMultiTexGendvEXT GLEW_GET_FUN(__glewGetMultiTexGendvEXT) +#define glGetMultiTexGenfvEXT GLEW_GET_FUN(__glewGetMultiTexGenfvEXT) +#define glGetMultiTexGenivEXT GLEW_GET_FUN(__glewGetMultiTexGenivEXT) +#define glGetMultiTexImageEXT GLEW_GET_FUN(__glewGetMultiTexImageEXT) +#define glGetMultiTexLevelParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterfvEXT) +#define glGetMultiTexLevelParameterivEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterivEXT) +#define glGetMultiTexParameterIivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIivEXT) +#define glGetMultiTexParameterIuivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIuivEXT) +#define glGetMultiTexParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexParameterfvEXT) +#define glGetMultiTexParameterivEXT GLEW_GET_FUN(__glewGetMultiTexParameterivEXT) +#define glGetNamedBufferParameterivEXT GLEW_GET_FUN(__glewGetNamedBufferParameterivEXT) +#define glGetNamedBufferPointervEXT GLEW_GET_FUN(__glewGetNamedBufferPointervEXT) +#define glGetNamedBufferSubDataEXT GLEW_GET_FUN(__glewGetNamedBufferSubDataEXT) +#define glGetNamedFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameterivEXT) +#define glGetNamedProgramLocalParameterIivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIivEXT) +#define glGetNamedProgramLocalParameterIuivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIuivEXT) +#define glGetNamedProgramLocalParameterdvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterdvEXT) +#define glGetNamedProgramLocalParameterfvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterfvEXT) +#define glGetNamedProgramStringEXT GLEW_GET_FUN(__glewGetNamedProgramStringEXT) +#define glGetNamedProgramivEXT GLEW_GET_FUN(__glewGetNamedProgramivEXT) +#define glGetNamedRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetNamedRenderbufferParameterivEXT) +#define glGetPointerIndexedvEXT GLEW_GET_FUN(__glewGetPointerIndexedvEXT) +#define glGetPointeri_vEXT GLEW_GET_FUN(__glewGetPointeri_vEXT) +#define glGetTextureImageEXT GLEW_GET_FUN(__glewGetTextureImageEXT) +#define glGetTextureLevelParameterfvEXT GLEW_GET_FUN(__glewGetTextureLevelParameterfvEXT) +#define glGetTextureLevelParameterivEXT GLEW_GET_FUN(__glewGetTextureLevelParameterivEXT) +#define glGetTextureParameterIivEXT GLEW_GET_FUN(__glewGetTextureParameterIivEXT) +#define glGetTextureParameterIuivEXT GLEW_GET_FUN(__glewGetTextureParameterIuivEXT) +#define glGetTextureParameterfvEXT GLEW_GET_FUN(__glewGetTextureParameterfvEXT) +#define glGetTextureParameterivEXT GLEW_GET_FUN(__glewGetTextureParameterivEXT) +#define glGetVertexArrayIntegeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayIntegeri_vEXT) +#define glGetVertexArrayIntegervEXT GLEW_GET_FUN(__glewGetVertexArrayIntegervEXT) +#define glGetVertexArrayPointeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayPointeri_vEXT) +#define glGetVertexArrayPointervEXT GLEW_GET_FUN(__glewGetVertexArrayPointervEXT) +#define glMapNamedBufferEXT GLEW_GET_FUN(__glewMapNamedBufferEXT) +#define glMapNamedBufferRangeEXT GLEW_GET_FUN(__glewMapNamedBufferRangeEXT) +#define glMatrixFrustumEXT GLEW_GET_FUN(__glewMatrixFrustumEXT) +#define glMatrixLoadIdentityEXT GLEW_GET_FUN(__glewMatrixLoadIdentityEXT) +#define glMatrixLoadTransposedEXT GLEW_GET_FUN(__glewMatrixLoadTransposedEXT) +#define glMatrixLoadTransposefEXT GLEW_GET_FUN(__glewMatrixLoadTransposefEXT) +#define glMatrixLoaddEXT GLEW_GET_FUN(__glewMatrixLoaddEXT) +#define glMatrixLoadfEXT GLEW_GET_FUN(__glewMatrixLoadfEXT) +#define glMatrixMultTransposedEXT GLEW_GET_FUN(__glewMatrixMultTransposedEXT) +#define glMatrixMultTransposefEXT GLEW_GET_FUN(__glewMatrixMultTransposefEXT) +#define glMatrixMultdEXT GLEW_GET_FUN(__glewMatrixMultdEXT) +#define glMatrixMultfEXT GLEW_GET_FUN(__glewMatrixMultfEXT) +#define glMatrixOrthoEXT GLEW_GET_FUN(__glewMatrixOrthoEXT) +#define glMatrixPopEXT GLEW_GET_FUN(__glewMatrixPopEXT) +#define glMatrixPushEXT GLEW_GET_FUN(__glewMatrixPushEXT) +#define glMatrixRotatedEXT GLEW_GET_FUN(__glewMatrixRotatedEXT) +#define glMatrixRotatefEXT GLEW_GET_FUN(__glewMatrixRotatefEXT) +#define glMatrixScaledEXT GLEW_GET_FUN(__glewMatrixScaledEXT) +#define glMatrixScalefEXT GLEW_GET_FUN(__glewMatrixScalefEXT) +#define glMatrixTranslatedEXT GLEW_GET_FUN(__glewMatrixTranslatedEXT) +#define glMatrixTranslatefEXT GLEW_GET_FUN(__glewMatrixTranslatefEXT) +#define glMultiTexBufferEXT GLEW_GET_FUN(__glewMultiTexBufferEXT) +#define glMultiTexCoordPointerEXT GLEW_GET_FUN(__glewMultiTexCoordPointerEXT) +#define glMultiTexEnvfEXT GLEW_GET_FUN(__glewMultiTexEnvfEXT) +#define glMultiTexEnvfvEXT GLEW_GET_FUN(__glewMultiTexEnvfvEXT) +#define glMultiTexEnviEXT GLEW_GET_FUN(__glewMultiTexEnviEXT) +#define glMultiTexEnvivEXT GLEW_GET_FUN(__glewMultiTexEnvivEXT) +#define glMultiTexGendEXT GLEW_GET_FUN(__glewMultiTexGendEXT) +#define glMultiTexGendvEXT GLEW_GET_FUN(__glewMultiTexGendvEXT) +#define glMultiTexGenfEXT GLEW_GET_FUN(__glewMultiTexGenfEXT) +#define glMultiTexGenfvEXT GLEW_GET_FUN(__glewMultiTexGenfvEXT) +#define glMultiTexGeniEXT GLEW_GET_FUN(__glewMultiTexGeniEXT) +#define glMultiTexGenivEXT GLEW_GET_FUN(__glewMultiTexGenivEXT) +#define glMultiTexImage1DEXT GLEW_GET_FUN(__glewMultiTexImage1DEXT) +#define glMultiTexImage2DEXT GLEW_GET_FUN(__glewMultiTexImage2DEXT) +#define glMultiTexImage3DEXT GLEW_GET_FUN(__glewMultiTexImage3DEXT) +#define glMultiTexParameterIivEXT GLEW_GET_FUN(__glewMultiTexParameterIivEXT) +#define glMultiTexParameterIuivEXT GLEW_GET_FUN(__glewMultiTexParameterIuivEXT) +#define glMultiTexParameterfEXT GLEW_GET_FUN(__glewMultiTexParameterfEXT) +#define glMultiTexParameterfvEXT GLEW_GET_FUN(__glewMultiTexParameterfvEXT) +#define glMultiTexParameteriEXT GLEW_GET_FUN(__glewMultiTexParameteriEXT) +#define glMultiTexParameterivEXT GLEW_GET_FUN(__glewMultiTexParameterivEXT) +#define glMultiTexRenderbufferEXT GLEW_GET_FUN(__glewMultiTexRenderbufferEXT) +#define glMultiTexSubImage1DEXT GLEW_GET_FUN(__glewMultiTexSubImage1DEXT) +#define glMultiTexSubImage2DEXT GLEW_GET_FUN(__glewMultiTexSubImage2DEXT) +#define glMultiTexSubImage3DEXT GLEW_GET_FUN(__glewMultiTexSubImage3DEXT) +#define glNamedBufferDataEXT GLEW_GET_FUN(__glewNamedBufferDataEXT) +#define glNamedBufferSubDataEXT GLEW_GET_FUN(__glewNamedBufferSubDataEXT) +#define glNamedCopyBufferSubDataEXT GLEW_GET_FUN(__glewNamedCopyBufferSubDataEXT) +#define glNamedFramebufferRenderbufferEXT GLEW_GET_FUN(__glewNamedFramebufferRenderbufferEXT) +#define glNamedFramebufferTexture1DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture1DEXT) +#define glNamedFramebufferTexture2DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture2DEXT) +#define glNamedFramebufferTexture3DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture3DEXT) +#define glNamedFramebufferTextureEXT GLEW_GET_FUN(__glewNamedFramebufferTextureEXT) +#define glNamedFramebufferTextureFaceEXT GLEW_GET_FUN(__glewNamedFramebufferTextureFaceEXT) +#define glNamedFramebufferTextureLayerEXT GLEW_GET_FUN(__glewNamedFramebufferTextureLayerEXT) +#define glNamedProgramLocalParameter4dEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dEXT) +#define glNamedProgramLocalParameter4dvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dvEXT) +#define glNamedProgramLocalParameter4fEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fEXT) +#define glNamedProgramLocalParameter4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fvEXT) +#define glNamedProgramLocalParameterI4iEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4iEXT) +#define glNamedProgramLocalParameterI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4ivEXT) +#define glNamedProgramLocalParameterI4uiEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uiEXT) +#define glNamedProgramLocalParameterI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uivEXT) +#define glNamedProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameters4fvEXT) +#define glNamedProgramLocalParametersI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4ivEXT) +#define glNamedProgramLocalParametersI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4uivEXT) +#define glNamedProgramStringEXT GLEW_GET_FUN(__glewNamedProgramStringEXT) +#define glNamedRenderbufferStorageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageEXT) +#define glNamedRenderbufferStorageMultisampleCoverageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleCoverageEXT) +#define glNamedRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleEXT) +#define glProgramUniform1fEXT GLEW_GET_FUN(__glewProgramUniform1fEXT) +#define glProgramUniform1fvEXT GLEW_GET_FUN(__glewProgramUniform1fvEXT) +#define glProgramUniform1iEXT GLEW_GET_FUN(__glewProgramUniform1iEXT) +#define glProgramUniform1ivEXT GLEW_GET_FUN(__glewProgramUniform1ivEXT) +#define glProgramUniform1uiEXT GLEW_GET_FUN(__glewProgramUniform1uiEXT) +#define glProgramUniform1uivEXT GLEW_GET_FUN(__glewProgramUniform1uivEXT) +#define glProgramUniform2fEXT GLEW_GET_FUN(__glewProgramUniform2fEXT) +#define glProgramUniform2fvEXT GLEW_GET_FUN(__glewProgramUniform2fvEXT) +#define glProgramUniform2iEXT GLEW_GET_FUN(__glewProgramUniform2iEXT) +#define glProgramUniform2ivEXT GLEW_GET_FUN(__glewProgramUniform2ivEXT) +#define glProgramUniform2uiEXT GLEW_GET_FUN(__glewProgramUniform2uiEXT) +#define glProgramUniform2uivEXT GLEW_GET_FUN(__glewProgramUniform2uivEXT) +#define glProgramUniform3fEXT GLEW_GET_FUN(__glewProgramUniform3fEXT) +#define glProgramUniform3fvEXT GLEW_GET_FUN(__glewProgramUniform3fvEXT) +#define glProgramUniform3iEXT GLEW_GET_FUN(__glewProgramUniform3iEXT) +#define glProgramUniform3ivEXT GLEW_GET_FUN(__glewProgramUniform3ivEXT) +#define glProgramUniform3uiEXT GLEW_GET_FUN(__glewProgramUniform3uiEXT) +#define glProgramUniform3uivEXT GLEW_GET_FUN(__glewProgramUniform3uivEXT) +#define glProgramUniform4fEXT GLEW_GET_FUN(__glewProgramUniform4fEXT) +#define glProgramUniform4fvEXT GLEW_GET_FUN(__glewProgramUniform4fvEXT) +#define glProgramUniform4iEXT GLEW_GET_FUN(__glewProgramUniform4iEXT) +#define glProgramUniform4ivEXT GLEW_GET_FUN(__glewProgramUniform4ivEXT) +#define glProgramUniform4uiEXT GLEW_GET_FUN(__glewProgramUniform4uiEXT) +#define glProgramUniform4uivEXT GLEW_GET_FUN(__glewProgramUniform4uivEXT) +#define glProgramUniformMatrix2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2fvEXT) +#define glProgramUniformMatrix2x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3fvEXT) +#define glProgramUniformMatrix2x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4fvEXT) +#define glProgramUniformMatrix3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3fvEXT) +#define glProgramUniformMatrix3x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2fvEXT) +#define glProgramUniformMatrix3x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4fvEXT) +#define glProgramUniformMatrix4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4fvEXT) +#define glProgramUniformMatrix4x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2fvEXT) +#define glProgramUniformMatrix4x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3fvEXT) +#define glPushClientAttribDefaultEXT GLEW_GET_FUN(__glewPushClientAttribDefaultEXT) +#define glTextureBufferEXT GLEW_GET_FUN(__glewTextureBufferEXT) +#define glTextureImage1DEXT GLEW_GET_FUN(__glewTextureImage1DEXT) +#define glTextureImage2DEXT GLEW_GET_FUN(__glewTextureImage2DEXT) +#define glTextureImage3DEXT GLEW_GET_FUN(__glewTextureImage3DEXT) +#define glTextureParameterIivEXT GLEW_GET_FUN(__glewTextureParameterIivEXT) +#define glTextureParameterIuivEXT GLEW_GET_FUN(__glewTextureParameterIuivEXT) +#define glTextureParameterfEXT GLEW_GET_FUN(__glewTextureParameterfEXT) +#define glTextureParameterfvEXT GLEW_GET_FUN(__glewTextureParameterfvEXT) +#define glTextureParameteriEXT GLEW_GET_FUN(__glewTextureParameteriEXT) +#define glTextureParameterivEXT GLEW_GET_FUN(__glewTextureParameterivEXT) +#define glTextureRenderbufferEXT GLEW_GET_FUN(__glewTextureRenderbufferEXT) +#define glTextureSubImage1DEXT GLEW_GET_FUN(__glewTextureSubImage1DEXT) +#define glTextureSubImage2DEXT GLEW_GET_FUN(__glewTextureSubImage2DEXT) +#define glTextureSubImage3DEXT GLEW_GET_FUN(__glewTextureSubImage3DEXT) +#define glUnmapNamedBufferEXT GLEW_GET_FUN(__glewUnmapNamedBufferEXT) +#define glVertexArrayColorOffsetEXT GLEW_GET_FUN(__glewVertexArrayColorOffsetEXT) +#define glVertexArrayEdgeFlagOffsetEXT GLEW_GET_FUN(__glewVertexArrayEdgeFlagOffsetEXT) +#define glVertexArrayFogCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayFogCoordOffsetEXT) +#define glVertexArrayIndexOffsetEXT GLEW_GET_FUN(__glewVertexArrayIndexOffsetEXT) +#define glVertexArrayMultiTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayMultiTexCoordOffsetEXT) +#define glVertexArrayNormalOffsetEXT GLEW_GET_FUN(__glewVertexArrayNormalOffsetEXT) +#define glVertexArraySecondaryColorOffsetEXT GLEW_GET_FUN(__glewVertexArraySecondaryColorOffsetEXT) +#define glVertexArrayTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayTexCoordOffsetEXT) +#define glVertexArrayVertexAttribIOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIOffsetEXT) +#define glVertexArrayVertexAttribOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribOffsetEXT) +#define glVertexArrayVertexOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexOffsetEXT) + +#define GLEW_EXT_direct_state_access GLEW_GET_VAR(__GLEW_EXT_direct_state_access) + +#endif /* GL_EXT_direct_state_access */ + +/* -------------------------- GL_EXT_draw_buffers2 ------------------------- */ + +#ifndef GL_EXT_draw_buffers2 +#define GL_EXT_draw_buffers2 1 + +typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data); +typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); + +#define glColorMaskIndexedEXT GLEW_GET_FUN(__glewColorMaskIndexedEXT) +#define glDisableIndexedEXT GLEW_GET_FUN(__glewDisableIndexedEXT) +#define glEnableIndexedEXT GLEW_GET_FUN(__glewEnableIndexedEXT) +#define glGetBooleanIndexedvEXT GLEW_GET_FUN(__glewGetBooleanIndexedvEXT) +#define glGetIntegerIndexedvEXT GLEW_GET_FUN(__glewGetIntegerIndexedvEXT) +#define glIsEnabledIndexedEXT GLEW_GET_FUN(__glewIsEnabledIndexedEXT) + +#define GLEW_EXT_draw_buffers2 GLEW_GET_VAR(__GLEW_EXT_draw_buffers2) + +#endif /* GL_EXT_draw_buffers2 */ + +/* ------------------------- GL_EXT_draw_instanced ------------------------- */ + +#ifndef GL_EXT_draw_instanced +#define GL_EXT_draw_instanced 1 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); + +#define glDrawArraysInstancedEXT GLEW_GET_FUN(__glewDrawArraysInstancedEXT) +#define glDrawElementsInstancedEXT GLEW_GET_FUN(__glewDrawElementsInstancedEXT) + +#define GLEW_EXT_draw_instanced GLEW_GET_VAR(__GLEW_EXT_draw_instanced) + +#endif /* GL_EXT_draw_instanced */ + +/* ----------------------- GL_EXT_draw_range_elements ---------------------- */ + +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 + +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 + +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); + +#define glDrawRangeElementsEXT GLEW_GET_FUN(__glewDrawRangeElementsEXT) + +#define GLEW_EXT_draw_range_elements GLEW_GET_VAR(__GLEW_EXT_draw_range_elements) + +#endif /* GL_EXT_draw_range_elements */ + +/* ---------------------------- GL_EXT_fog_coord --------------------------- */ + +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 + +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 + +typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); + +#define glFogCoordPointerEXT GLEW_GET_FUN(__glewFogCoordPointerEXT) +#define glFogCoorddEXT GLEW_GET_FUN(__glewFogCoorddEXT) +#define glFogCoorddvEXT GLEW_GET_FUN(__glewFogCoorddvEXT) +#define glFogCoordfEXT GLEW_GET_FUN(__glewFogCoordfEXT) +#define glFogCoordfvEXT GLEW_GET_FUN(__glewFogCoordfvEXT) + +#define GLEW_EXT_fog_coord GLEW_GET_VAR(__GLEW_EXT_fog_coord) + +#endif /* GL_EXT_fog_coord */ + +/* ------------------------ GL_EXT_fragment_lighting ----------------------- */ + +#ifndef GL_EXT_fragment_lighting +#define GL_EXT_fragment_lighting 1 + +#define GL_FRAGMENT_LIGHTING_EXT 0x8400 +#define GL_FRAGMENT_COLOR_MATERIAL_EXT 0x8401 +#define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT 0x8402 +#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT 0x8403 +#define GL_MAX_FRAGMENT_LIGHTS_EXT 0x8404 +#define GL_MAX_ACTIVE_LIGHTS_EXT 0x8405 +#define GL_CURRENT_RASTER_NORMAL_EXT 0x8406 +#define GL_LIGHT_ENV_MODE_EXT 0x8407 +#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT 0x8408 +#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT 0x8409 +#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT 0x840A +#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840B +#define GL_FRAGMENT_LIGHT0_EXT 0x840C +#define GL_FRAGMENT_LIGHT7_EXT 0x8413 + +typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param); + +#define glFragmentColorMaterialEXT GLEW_GET_FUN(__glewFragmentColorMaterialEXT) +#define glFragmentLightModelfEXT GLEW_GET_FUN(__glewFragmentLightModelfEXT) +#define glFragmentLightModelfvEXT GLEW_GET_FUN(__glewFragmentLightModelfvEXT) +#define glFragmentLightModeliEXT GLEW_GET_FUN(__glewFragmentLightModeliEXT) +#define glFragmentLightModelivEXT GLEW_GET_FUN(__glewFragmentLightModelivEXT) +#define glFragmentLightfEXT GLEW_GET_FUN(__glewFragmentLightfEXT) +#define glFragmentLightfvEXT GLEW_GET_FUN(__glewFragmentLightfvEXT) +#define glFragmentLightiEXT GLEW_GET_FUN(__glewFragmentLightiEXT) +#define glFragmentLightivEXT GLEW_GET_FUN(__glewFragmentLightivEXT) +#define glFragmentMaterialfEXT GLEW_GET_FUN(__glewFragmentMaterialfEXT) +#define glFragmentMaterialfvEXT GLEW_GET_FUN(__glewFragmentMaterialfvEXT) +#define glFragmentMaterialiEXT GLEW_GET_FUN(__glewFragmentMaterialiEXT) +#define glFragmentMaterialivEXT GLEW_GET_FUN(__glewFragmentMaterialivEXT) +#define glGetFragmentLightfvEXT GLEW_GET_FUN(__glewGetFragmentLightfvEXT) +#define glGetFragmentLightivEXT GLEW_GET_FUN(__glewGetFragmentLightivEXT) +#define glGetFragmentMaterialfvEXT GLEW_GET_FUN(__glewGetFragmentMaterialfvEXT) +#define glGetFragmentMaterialivEXT GLEW_GET_FUN(__glewGetFragmentMaterialivEXT) +#define glLightEnviEXT GLEW_GET_FUN(__glewLightEnviEXT) + +#define GLEW_EXT_fragment_lighting GLEW_GET_VAR(__GLEW_EXT_fragment_lighting) + +#endif /* GL_EXT_fragment_lighting */ + +/* ------------------------ GL_EXT_framebuffer_blit ------------------------ */ + +#ifndef GL_EXT_framebuffer_blit +#define GL_EXT_framebuffer_blit 1 + +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA + +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + +#define glBlitFramebufferEXT GLEW_GET_FUN(__glewBlitFramebufferEXT) + +#define GLEW_EXT_framebuffer_blit GLEW_GET_VAR(__GLEW_EXT_framebuffer_blit) + +#endif /* GL_EXT_framebuffer_blit */ + +/* --------------------- GL_EXT_framebuffer_multisample -------------------- */ + +#ifndef GL_EXT_framebuffer_multisample +#define GL_EXT_framebuffer_multisample 1 + +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewRenderbufferStorageMultisampleEXT) + +#define GLEW_EXT_framebuffer_multisample GLEW_GET_VAR(__GLEW_EXT_framebuffer_multisample) + +#endif /* GL_EXT_framebuffer_multisample */ + +/* ----------------------- GL_EXT_framebuffer_object ----------------------- */ + +#ifndef GL_EXT_framebuffer_object +#define GL_EXT_framebuffer_object 1 + +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 +#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 +#define GL_FRAMEBUFFER_EXT 0x8D40 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8_EXT 0x8D48 +#define GL_STENCIL_INDEX16_EXT 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 + +typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); +typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); +typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); +typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); + +#define glBindFramebufferEXT GLEW_GET_FUN(__glewBindFramebufferEXT) +#define glBindRenderbufferEXT GLEW_GET_FUN(__glewBindRenderbufferEXT) +#define glCheckFramebufferStatusEXT GLEW_GET_FUN(__glewCheckFramebufferStatusEXT) +#define glDeleteFramebuffersEXT GLEW_GET_FUN(__glewDeleteFramebuffersEXT) +#define glDeleteRenderbuffersEXT GLEW_GET_FUN(__glewDeleteRenderbuffersEXT) +#define glFramebufferRenderbufferEXT GLEW_GET_FUN(__glewFramebufferRenderbufferEXT) +#define glFramebufferTexture1DEXT GLEW_GET_FUN(__glewFramebufferTexture1DEXT) +#define glFramebufferTexture2DEXT GLEW_GET_FUN(__glewFramebufferTexture2DEXT) +#define glFramebufferTexture3DEXT GLEW_GET_FUN(__glewFramebufferTexture3DEXT) +#define glGenFramebuffersEXT GLEW_GET_FUN(__glewGenFramebuffersEXT) +#define glGenRenderbuffersEXT GLEW_GET_FUN(__glewGenRenderbuffersEXT) +#define glGenerateMipmapEXT GLEW_GET_FUN(__glewGenerateMipmapEXT) +#define glGetFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetFramebufferAttachmentParameterivEXT) +#define glGetRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetRenderbufferParameterivEXT) +#define glIsFramebufferEXT GLEW_GET_FUN(__glewIsFramebufferEXT) +#define glIsRenderbufferEXT GLEW_GET_FUN(__glewIsRenderbufferEXT) +#define glRenderbufferStorageEXT GLEW_GET_FUN(__glewRenderbufferStorageEXT) + +#define GLEW_EXT_framebuffer_object GLEW_GET_VAR(__GLEW_EXT_framebuffer_object) + +#endif /* GL_EXT_framebuffer_object */ + +/* ------------------------ GL_EXT_framebuffer_sRGB ------------------------ */ + +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 + +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA + +#define GLEW_EXT_framebuffer_sRGB GLEW_GET_VAR(__GLEW_EXT_framebuffer_sRGB) + +#endif /* GL_EXT_framebuffer_sRGB */ + +/* ------------------------ GL_EXT_geometry_shader4 ------------------------ */ + +#ifndef GL_EXT_geometry_shader4 +#define GL_EXT_geometry_shader4 1 + +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); + +#define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT) +#define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT) +#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT) +#define glProgramParameteriEXT GLEW_GET_FUN(__glewProgramParameteriEXT) + +#define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(__GLEW_EXT_geometry_shader4) + +#endif /* GL_EXT_geometry_shader4 */ + +/* --------------------- GL_EXT_gpu_program_parameters --------------------- */ + +#ifndef GL_EXT_gpu_program_parameters +#define GL_EXT_gpu_program_parameters 1 + +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat* params); + +#define glProgramEnvParameters4fvEXT GLEW_GET_FUN(__glewProgramEnvParameters4fvEXT) +#define glProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewProgramLocalParameters4fvEXT) + +#define GLEW_EXT_gpu_program_parameters GLEW_GET_VAR(__GLEW_EXT_gpu_program_parameters) + +#endif /* GL_EXT_gpu_program_parameters */ + +/* --------------------------- GL_EXT_gpu_shader4 -------------------------- */ + +#ifndef GL_EXT_gpu_shader4 +#define GL_EXT_gpu_shader4 1 + +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 + +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + +#define glBindFragDataLocationEXT GLEW_GET_FUN(__glewBindFragDataLocationEXT) +#define glGetFragDataLocationEXT GLEW_GET_FUN(__glewGetFragDataLocationEXT) +#define glGetUniformuivEXT GLEW_GET_FUN(__glewGetUniformuivEXT) +#define glGetVertexAttribIivEXT GLEW_GET_FUN(__glewGetVertexAttribIivEXT) +#define glGetVertexAttribIuivEXT GLEW_GET_FUN(__glewGetVertexAttribIuivEXT) +#define glUniform1uiEXT GLEW_GET_FUN(__glewUniform1uiEXT) +#define glUniform1uivEXT GLEW_GET_FUN(__glewUniform1uivEXT) +#define glUniform2uiEXT GLEW_GET_FUN(__glewUniform2uiEXT) +#define glUniform2uivEXT GLEW_GET_FUN(__glewUniform2uivEXT) +#define glUniform3uiEXT GLEW_GET_FUN(__glewUniform3uiEXT) +#define glUniform3uivEXT GLEW_GET_FUN(__glewUniform3uivEXT) +#define glUniform4uiEXT GLEW_GET_FUN(__glewUniform4uiEXT) +#define glUniform4uivEXT GLEW_GET_FUN(__glewUniform4uivEXT) +#define glVertexAttribI1iEXT GLEW_GET_FUN(__glewVertexAttribI1iEXT) +#define glVertexAttribI1ivEXT GLEW_GET_FUN(__glewVertexAttribI1ivEXT) +#define glVertexAttribI1uiEXT GLEW_GET_FUN(__glewVertexAttribI1uiEXT) +#define glVertexAttribI1uivEXT GLEW_GET_FUN(__glewVertexAttribI1uivEXT) +#define glVertexAttribI2iEXT GLEW_GET_FUN(__glewVertexAttribI2iEXT) +#define glVertexAttribI2ivEXT GLEW_GET_FUN(__glewVertexAttribI2ivEXT) +#define glVertexAttribI2uiEXT GLEW_GET_FUN(__glewVertexAttribI2uiEXT) +#define glVertexAttribI2uivEXT GLEW_GET_FUN(__glewVertexAttribI2uivEXT) +#define glVertexAttribI3iEXT GLEW_GET_FUN(__glewVertexAttribI3iEXT) +#define glVertexAttribI3ivEXT GLEW_GET_FUN(__glewVertexAttribI3ivEXT) +#define glVertexAttribI3uiEXT GLEW_GET_FUN(__glewVertexAttribI3uiEXT) +#define glVertexAttribI3uivEXT GLEW_GET_FUN(__glewVertexAttribI3uivEXT) +#define glVertexAttribI4bvEXT GLEW_GET_FUN(__glewVertexAttribI4bvEXT) +#define glVertexAttribI4iEXT GLEW_GET_FUN(__glewVertexAttribI4iEXT) +#define glVertexAttribI4ivEXT GLEW_GET_FUN(__glewVertexAttribI4ivEXT) +#define glVertexAttribI4svEXT GLEW_GET_FUN(__glewVertexAttribI4svEXT) +#define glVertexAttribI4ubvEXT GLEW_GET_FUN(__glewVertexAttribI4ubvEXT) +#define glVertexAttribI4uiEXT GLEW_GET_FUN(__glewVertexAttribI4uiEXT) +#define glVertexAttribI4uivEXT GLEW_GET_FUN(__glewVertexAttribI4uivEXT) +#define glVertexAttribI4usvEXT GLEW_GET_FUN(__glewVertexAttribI4usvEXT) +#define glVertexAttribIPointerEXT GLEW_GET_FUN(__glewVertexAttribIPointerEXT) + +#define GLEW_EXT_gpu_shader4 GLEW_GET_VAR(__GLEW_EXT_gpu_shader4) + +#endif /* GL_EXT_gpu_shader4 */ + +/* ---------------------------- GL_EXT_histogram --------------------------- */ + +#ifndef GL_EXT_histogram +#define GL_EXT_histogram 1 + +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 + +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void* values); +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void* values); +typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (GLAPIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (GLAPIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target); + +#define glGetHistogramEXT GLEW_GET_FUN(__glewGetHistogramEXT) +#define glGetHistogramParameterfvEXT GLEW_GET_FUN(__glewGetHistogramParameterfvEXT) +#define glGetHistogramParameterivEXT GLEW_GET_FUN(__glewGetHistogramParameterivEXT) +#define glGetMinmaxEXT GLEW_GET_FUN(__glewGetMinmaxEXT) +#define glGetMinmaxParameterfvEXT GLEW_GET_FUN(__glewGetMinmaxParameterfvEXT) +#define glGetMinmaxParameterivEXT GLEW_GET_FUN(__glewGetMinmaxParameterivEXT) +#define glHistogramEXT GLEW_GET_FUN(__glewHistogramEXT) +#define glMinmaxEXT GLEW_GET_FUN(__glewMinmaxEXT) +#define glResetHistogramEXT GLEW_GET_FUN(__glewResetHistogramEXT) +#define glResetMinmaxEXT GLEW_GET_FUN(__glewResetMinmaxEXT) + +#define GLEW_EXT_histogram GLEW_GET_VAR(__GLEW_EXT_histogram) + +#endif /* GL_EXT_histogram */ + +/* ----------------------- GL_EXT_index_array_formats ---------------------- */ + +#ifndef GL_EXT_index_array_formats +#define GL_EXT_index_array_formats 1 + +#define GLEW_EXT_index_array_formats GLEW_GET_VAR(__GLEW_EXT_index_array_formats) + +#endif /* GL_EXT_index_array_formats */ + +/* --------------------------- GL_EXT_index_func --------------------------- */ + +#ifndef GL_EXT_index_func +#define GL_EXT_index_func 1 + +typedef void (GLAPIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref); + +#define glIndexFuncEXT GLEW_GET_FUN(__glewIndexFuncEXT) + +#define GLEW_EXT_index_func GLEW_GET_VAR(__GLEW_EXT_index_func) + +#endif /* GL_EXT_index_func */ + +/* ------------------------- GL_EXT_index_material ------------------------- */ + +#ifndef GL_EXT_index_material +#define GL_EXT_index_material 1 + +typedef void (GLAPIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); + +#define glIndexMaterialEXT GLEW_GET_FUN(__glewIndexMaterialEXT) + +#define GLEW_EXT_index_material GLEW_GET_VAR(__GLEW_EXT_index_material) + +#endif /* GL_EXT_index_material */ + +/* -------------------------- GL_EXT_index_texture ------------------------- */ + +#ifndef GL_EXT_index_texture +#define GL_EXT_index_texture 1 + +#define GLEW_EXT_index_texture GLEW_GET_VAR(__GLEW_EXT_index_texture) + +#endif /* GL_EXT_index_texture */ + +/* -------------------------- GL_EXT_light_texture ------------------------- */ + +#ifndef GL_EXT_light_texture +#define GL_EXT_light_texture 1 + +#define GL_FRAGMENT_MATERIAL_EXT 0x8349 +#define GL_FRAGMENT_NORMAL_EXT 0x834A +#define GL_FRAGMENT_COLOR_EXT 0x834C +#define GL_ATTENUATION_EXT 0x834D +#define GL_SHADOW_ATTENUATION_EXT 0x834E +#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F +#define GL_TEXTURE_LIGHT_EXT 0x8350 +#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 +#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 + +typedef void (GLAPIENTRY * PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); +typedef void (GLAPIENTRY * PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); +typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); + +#define glApplyTextureEXT GLEW_GET_FUN(__glewApplyTextureEXT) +#define glTextureLightEXT GLEW_GET_FUN(__glewTextureLightEXT) +#define glTextureMaterialEXT GLEW_GET_FUN(__glewTextureMaterialEXT) + +#define GLEW_EXT_light_texture GLEW_GET_VAR(__GLEW_EXT_light_texture) + +#endif /* GL_EXT_light_texture */ + +/* ------------------------- GL_EXT_misc_attribute ------------------------- */ + +#ifndef GL_EXT_misc_attribute +#define GL_EXT_misc_attribute 1 + +#define GLEW_EXT_misc_attribute GLEW_GET_VAR(__GLEW_EXT_misc_attribute) + +#endif /* GL_EXT_misc_attribute */ + +/* ------------------------ GL_EXT_multi_draw_arrays ----------------------- */ + +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 + +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* count, GLenum type, const GLvoid **indices, GLsizei primcount); + +#define glMultiDrawArraysEXT GLEW_GET_FUN(__glewMultiDrawArraysEXT) +#define glMultiDrawElementsEXT GLEW_GET_FUN(__glewMultiDrawElementsEXT) + +#define GLEW_EXT_multi_draw_arrays GLEW_GET_VAR(__GLEW_EXT_multi_draw_arrays) + +#endif /* GL_EXT_multi_draw_arrays */ + +/* --------------------------- GL_EXT_multisample -------------------------- */ + +#ifndef GL_EXT_multisample +#define GL_EXT_multisample 1 + +#define GL_MULTISAMPLE_EXT 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F +#define GL_SAMPLE_MASK_EXT 0x80A0 +#define GL_1PASS_EXT 0x80A1 +#define GL_2PASS_0_EXT 0x80A2 +#define GL_2PASS_1_EXT 0x80A3 +#define GL_4PASS_0_EXT 0x80A4 +#define GL_4PASS_1_EXT 0x80A5 +#define GL_4PASS_2_EXT 0x80A6 +#define GL_4PASS_3_EXT 0x80A7 +#define GL_SAMPLE_BUFFERS_EXT 0x80A8 +#define GL_SAMPLES_EXT 0x80A9 +#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA +#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB +#define GL_SAMPLE_PATTERN_EXT 0x80AC +#define GL_MULTISAMPLE_BIT_EXT 0x20000000 + +typedef void (GLAPIENTRY * PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); +typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); + +#define glSampleMaskEXT GLEW_GET_FUN(__glewSampleMaskEXT) +#define glSamplePatternEXT GLEW_GET_FUN(__glewSamplePatternEXT) + +#define GLEW_EXT_multisample GLEW_GET_VAR(__GLEW_EXT_multisample) + +#endif /* GL_EXT_multisample */ + +/* ---------------------- GL_EXT_packed_depth_stencil ---------------------- */ + +#ifndef GL_EXT_packed_depth_stencil +#define GL_EXT_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 + +#define GLEW_EXT_packed_depth_stencil GLEW_GET_VAR(__GLEW_EXT_packed_depth_stencil) + +#endif /* GL_EXT_packed_depth_stencil */ + +/* -------------------------- GL_EXT_packed_float -------------------------- */ + +#ifndef GL_EXT_packed_float +#define GL_EXT_packed_float 1 + +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C + +#define GLEW_EXT_packed_float GLEW_GET_VAR(__GLEW_EXT_packed_float) + +#endif /* GL_EXT_packed_float */ + +/* -------------------------- GL_EXT_packed_pixels ------------------------- */ + +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 + +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 + +#define GLEW_EXT_packed_pixels GLEW_GET_VAR(__GLEW_EXT_packed_pixels) + +#endif /* GL_EXT_packed_pixels */ + +/* ------------------------ GL_EXT_paletted_texture ------------------------ */ + +#ifndef GL_EXT_paletted_texture +#define GL_EXT_paletted_texture 1 + +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8 +#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B + +typedef void (GLAPIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void* data); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void* data); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint* params); + +#define glColorTableEXT GLEW_GET_FUN(__glewColorTableEXT) +#define glGetColorTableEXT GLEW_GET_FUN(__glewGetColorTableEXT) +#define glGetColorTableParameterfvEXT GLEW_GET_FUN(__glewGetColorTableParameterfvEXT) +#define glGetColorTableParameterivEXT GLEW_GET_FUN(__glewGetColorTableParameterivEXT) + +#define GLEW_EXT_paletted_texture GLEW_GET_VAR(__GLEW_EXT_paletted_texture) + +#endif /* GL_EXT_paletted_texture */ + +/* ----------------------- GL_EXT_pixel_buffer_object ---------------------- */ + +#ifndef GL_EXT_pixel_buffer_object +#define GL_EXT_pixel_buffer_object 1 + +#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF + +#define GLEW_EXT_pixel_buffer_object GLEW_GET_VAR(__GLEW_EXT_pixel_buffer_object) + +#endif /* GL_EXT_pixel_buffer_object */ + +/* ------------------------- GL_EXT_pixel_transform ------------------------ */ + +#ifndef GL_EXT_pixel_transform +#define GL_EXT_pixel_transform 1 + +#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 +#define GL_PIXEL_MAG_FILTER_EXT 0x8331 +#define GL_PIXEL_MIN_FILTER_EXT 0x8332 +#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 +#define GL_CUBIC_EXT 0x8334 +#define GL_AVERAGE_EXT 0x8335 +#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 +#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 +#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 + +typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, const GLfloat param); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, const GLint param); +typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); + +#define glGetPixelTransformParameterfvEXT GLEW_GET_FUN(__glewGetPixelTransformParameterfvEXT) +#define glGetPixelTransformParameterivEXT GLEW_GET_FUN(__glewGetPixelTransformParameterivEXT) +#define glPixelTransformParameterfEXT GLEW_GET_FUN(__glewPixelTransformParameterfEXT) +#define glPixelTransformParameterfvEXT GLEW_GET_FUN(__glewPixelTransformParameterfvEXT) +#define glPixelTransformParameteriEXT GLEW_GET_FUN(__glewPixelTransformParameteriEXT) +#define glPixelTransformParameterivEXT GLEW_GET_FUN(__glewPixelTransformParameterivEXT) + +#define GLEW_EXT_pixel_transform GLEW_GET_VAR(__GLEW_EXT_pixel_transform) + +#endif /* GL_EXT_pixel_transform */ + +/* ------------------- GL_EXT_pixel_transform_color_table ------------------ */ + +#ifndef GL_EXT_pixel_transform_color_table +#define GL_EXT_pixel_transform_color_table 1 + +#define GLEW_EXT_pixel_transform_color_table GLEW_GET_VAR(__GLEW_EXT_pixel_transform_color_table) + +#endif /* GL_EXT_pixel_transform_color_table */ + +/* ------------------------ GL_EXT_point_parameters ------------------------ */ + +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 + +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 +#define GL_DISTANCE_ATTENUATION_EXT 0x8129 + +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat* params); + +#define glPointParameterfEXT GLEW_GET_FUN(__glewPointParameterfEXT) +#define glPointParameterfvEXT GLEW_GET_FUN(__glewPointParameterfvEXT) + +#define GLEW_EXT_point_parameters GLEW_GET_VAR(__GLEW_EXT_point_parameters) + +#endif /* GL_EXT_point_parameters */ + +/* ------------------------- GL_EXT_polygon_offset ------------------------- */ + +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 + +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 + +typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); + +#define glPolygonOffsetEXT GLEW_GET_FUN(__glewPolygonOffsetEXT) + +#define GLEW_EXT_polygon_offset GLEW_GET_VAR(__GLEW_EXT_polygon_offset) + +#endif /* GL_EXT_polygon_offset */ + +/* ------------------------ GL_EXT_provoking_vertex ------------------------ */ + +#ifndef GL_EXT_provoking_vertex +#define GL_EXT_provoking_vertex 1 + +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_PROVOKING_VERTEX_EXT 0x8E4F + +typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); + +#define glProvokingVertexEXT GLEW_GET_FUN(__glewProvokingVertexEXT) + +#define GLEW_EXT_provoking_vertex GLEW_GET_VAR(__GLEW_EXT_provoking_vertex) + +#endif /* GL_EXT_provoking_vertex */ + +/* ------------------------- GL_EXT_rescale_normal ------------------------- */ + +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 + +#define GL_RESCALE_NORMAL_EXT 0x803A + +#define GLEW_EXT_rescale_normal GLEW_GET_VAR(__GLEW_EXT_rescale_normal) + +#endif /* GL_EXT_rescale_normal */ + +/* -------------------------- GL_EXT_scene_marker -------------------------- */ + +#ifndef GL_EXT_scene_marker +#define GL_EXT_scene_marker 1 + +typedef void (GLAPIENTRY * PFNGLBEGINSCENEEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLENDSCENEEXTPROC) (void); + +#define glBeginSceneEXT GLEW_GET_FUN(__glewBeginSceneEXT) +#define glEndSceneEXT GLEW_GET_FUN(__glewEndSceneEXT) + +#define GLEW_EXT_scene_marker GLEW_GET_VAR(__GLEW_EXT_scene_marker) + +#endif /* GL_EXT_scene_marker */ + +/* ------------------------- GL_EXT_secondary_color ------------------------ */ + +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 + +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E + +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); + +#define glSecondaryColor3bEXT GLEW_GET_FUN(__glewSecondaryColor3bEXT) +#define glSecondaryColor3bvEXT GLEW_GET_FUN(__glewSecondaryColor3bvEXT) +#define glSecondaryColor3dEXT GLEW_GET_FUN(__glewSecondaryColor3dEXT) +#define glSecondaryColor3dvEXT GLEW_GET_FUN(__glewSecondaryColor3dvEXT) +#define glSecondaryColor3fEXT GLEW_GET_FUN(__glewSecondaryColor3fEXT) +#define glSecondaryColor3fvEXT GLEW_GET_FUN(__glewSecondaryColor3fvEXT) +#define glSecondaryColor3iEXT GLEW_GET_FUN(__glewSecondaryColor3iEXT) +#define glSecondaryColor3ivEXT GLEW_GET_FUN(__glewSecondaryColor3ivEXT) +#define glSecondaryColor3sEXT GLEW_GET_FUN(__glewSecondaryColor3sEXT) +#define glSecondaryColor3svEXT GLEW_GET_FUN(__glewSecondaryColor3svEXT) +#define glSecondaryColor3ubEXT GLEW_GET_FUN(__glewSecondaryColor3ubEXT) +#define glSecondaryColor3ubvEXT GLEW_GET_FUN(__glewSecondaryColor3ubvEXT) +#define glSecondaryColor3uiEXT GLEW_GET_FUN(__glewSecondaryColor3uiEXT) +#define glSecondaryColor3uivEXT GLEW_GET_FUN(__glewSecondaryColor3uivEXT) +#define glSecondaryColor3usEXT GLEW_GET_FUN(__glewSecondaryColor3usEXT) +#define glSecondaryColor3usvEXT GLEW_GET_FUN(__glewSecondaryColor3usvEXT) +#define glSecondaryColorPointerEXT GLEW_GET_FUN(__glewSecondaryColorPointerEXT) + +#define GLEW_EXT_secondary_color GLEW_GET_VAR(__GLEW_EXT_secondary_color) + +#endif /* GL_EXT_secondary_color */ + +/* --------------------- GL_EXT_separate_shader_objects -------------------- */ + +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 + +#define GL_ACTIVE_PROGRAM_EXT 0x8B8D + +typedef void (GLAPIENTRY * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); +typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const char* string); +typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); + +#define glActiveProgramEXT GLEW_GET_FUN(__glewActiveProgramEXT) +#define glCreateShaderProgramEXT GLEW_GET_FUN(__glewCreateShaderProgramEXT) +#define glUseShaderProgramEXT GLEW_GET_FUN(__glewUseShaderProgramEXT) + +#define GLEW_EXT_separate_shader_objects GLEW_GET_VAR(__GLEW_EXT_separate_shader_objects) + +#endif /* GL_EXT_separate_shader_objects */ + +/* --------------------- GL_EXT_separate_specular_color -------------------- */ + +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 + +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA + +#define GLEW_EXT_separate_specular_color GLEW_GET_VAR(__GLEW_EXT_separate_specular_color) + +#endif /* GL_EXT_separate_specular_color */ + +/* --------------------- GL_EXT_shader_image_load_store -------------------- */ + +#ifndef GL_EXT_shader_image_load_store +#define GL_EXT_shader_image_load_store 1 + +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 +#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 +#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 +#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 +#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 +#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 +#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 +#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 +#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 +#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 +#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 +#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A +#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B +#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C +#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D +#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E +#define GL_IMAGE_1D_EXT 0x904C +#define GL_IMAGE_2D_EXT 0x904D +#define GL_IMAGE_3D_EXT 0x904E +#define GL_IMAGE_2D_RECT_EXT 0x904F +#define GL_IMAGE_CUBE_EXT 0x9050 +#define GL_IMAGE_BUFFER_EXT 0x9051 +#define GL_IMAGE_1D_ARRAY_EXT 0x9052 +#define GL_IMAGE_2D_ARRAY_EXT 0x9053 +#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 +#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 +#define GL_INT_IMAGE_1D_EXT 0x9057 +#define GL_INT_IMAGE_2D_EXT 0x9058 +#define GL_INT_IMAGE_3D_EXT 0x9059 +#define GL_INT_IMAGE_2D_RECT_EXT 0x905A +#define GL_INT_IMAGE_CUBE_EXT 0x905B +#define GL_INT_IMAGE_BUFFER_EXT 0x905C +#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D +#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F +#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 +#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 +#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 +#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 +#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 +#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C +#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D +#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E +#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); +typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); + +#define glBindImageTextureEXT GLEW_GET_FUN(__glewBindImageTextureEXT) +#define glMemoryBarrierEXT GLEW_GET_FUN(__glewMemoryBarrierEXT) + +#define GLEW_EXT_shader_image_load_store GLEW_GET_VAR(__GLEW_EXT_shader_image_load_store) + +#endif /* GL_EXT_shader_image_load_store */ + +/* -------------------------- GL_EXT_shadow_funcs -------------------------- */ + +#ifndef GL_EXT_shadow_funcs +#define GL_EXT_shadow_funcs 1 + +#define GLEW_EXT_shadow_funcs GLEW_GET_VAR(__GLEW_EXT_shadow_funcs) + +#endif /* GL_EXT_shadow_funcs */ + +/* --------------------- GL_EXT_shared_texture_palette --------------------- */ + +#ifndef GL_EXT_shared_texture_palette +#define GL_EXT_shared_texture_palette 1 + +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB + +#define GLEW_EXT_shared_texture_palette GLEW_GET_VAR(__GLEW_EXT_shared_texture_palette) + +#endif /* GL_EXT_shared_texture_palette */ + +/* ------------------------ GL_EXT_stencil_clear_tag ----------------------- */ + +#ifndef GL_EXT_stencil_clear_tag +#define GL_EXT_stencil_clear_tag 1 + +#define GL_STENCIL_TAG_BITS_EXT 0x88F2 +#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 + +#define GLEW_EXT_stencil_clear_tag GLEW_GET_VAR(__GLEW_EXT_stencil_clear_tag) + +#endif /* GL_EXT_stencil_clear_tag */ + +/* ------------------------ GL_EXT_stencil_two_side ------------------------ */ + +#ifndef GL_EXT_stencil_two_side +#define GL_EXT_stencil_two_side 1 + +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 + +typedef void (GLAPIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); + +#define glActiveStencilFaceEXT GLEW_GET_FUN(__glewActiveStencilFaceEXT) + +#define GLEW_EXT_stencil_two_side GLEW_GET_VAR(__GLEW_EXT_stencil_two_side) + +#endif /* GL_EXT_stencil_two_side */ + +/* -------------------------- GL_EXT_stencil_wrap -------------------------- */ + +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 + +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 + +#define GLEW_EXT_stencil_wrap GLEW_GET_VAR(__GLEW_EXT_stencil_wrap) + +#endif /* GL_EXT_stencil_wrap */ + +/* --------------------------- GL_EXT_subtexture --------------------------- */ + +#ifndef GL_EXT_subtexture +#define GL_EXT_subtexture 1 + +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); + +#define glTexSubImage1DEXT GLEW_GET_FUN(__glewTexSubImage1DEXT) +#define glTexSubImage2DEXT GLEW_GET_FUN(__glewTexSubImage2DEXT) +#define glTexSubImage3DEXT GLEW_GET_FUN(__glewTexSubImage3DEXT) + +#define GLEW_EXT_subtexture GLEW_GET_VAR(__GLEW_EXT_subtexture) + +#endif /* GL_EXT_subtexture */ + +/* ----------------------------- GL_EXT_texture ---------------------------- */ + +#ifndef GL_EXT_texture +#define GL_EXT_texture 1 + +#define GL_ALPHA4_EXT 0x803B +#define GL_ALPHA8_EXT 0x803C +#define GL_ALPHA12_EXT 0x803D +#define GL_ALPHA16_EXT 0x803E +#define GL_LUMINANCE4_EXT 0x803F +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE12_EXT 0x8041 +#define GL_LUMINANCE16_EXT 0x8042 +#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 +#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 +#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 +#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 +#define GL_INTENSITY_EXT 0x8049 +#define GL_INTENSITY4_EXT 0x804A +#define GL_INTENSITY8_EXT 0x804B +#define GL_INTENSITY12_EXT 0x804C +#define GL_INTENSITY16_EXT 0x804D +#define GL_RGB2_EXT 0x804E +#define GL_RGB4_EXT 0x804F +#define GL_RGB5_EXT 0x8050 +#define GL_RGB8_EXT 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB12_EXT 0x8053 +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA2_EXT 0x8055 +#define GL_RGBA4_EXT 0x8056 +#define GL_RGB5_A1_EXT 0x8057 +#define GL_RGBA8_EXT 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGBA12_EXT 0x805A +#define GL_RGBA16_EXT 0x805B +#define GL_TEXTURE_RED_SIZE_EXT 0x805C +#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D +#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E +#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 +#define GL_REPLACE_EXT 0x8062 +#define GL_PROXY_TEXTURE_1D_EXT 0x8063 +#define GL_PROXY_TEXTURE_2D_EXT 0x8064 + +#define GLEW_EXT_texture GLEW_GET_VAR(__GLEW_EXT_texture) + +#endif /* GL_EXT_texture */ + +/* ---------------------------- GL_EXT_texture3D --------------------------- */ + +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 + +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 + +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); + +#define glTexImage3DEXT GLEW_GET_FUN(__glewTexImage3DEXT) + +#define GLEW_EXT_texture3D GLEW_GET_VAR(__GLEW_EXT_texture3D) + +#endif /* GL_EXT_texture3D */ + +/* -------------------------- GL_EXT_texture_array ------------------------- */ + +#ifndef GL_EXT_texture_array +#define GL_EXT_texture_array 1 + +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D + +#define GLEW_EXT_texture_array GLEW_GET_VAR(__GLEW_EXT_texture_array) + +#endif /* GL_EXT_texture_array */ + +/* ---------------------- GL_EXT_texture_buffer_object --------------------- */ + +#ifndef GL_EXT_texture_buffer_object +#define GL_EXT_texture_buffer_object 1 + +#define GL_TEXTURE_BUFFER_EXT 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E + +typedef void (GLAPIENTRY * PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); + +#define glTexBufferEXT GLEW_GET_FUN(__glewTexBufferEXT) + +#define GLEW_EXT_texture_buffer_object GLEW_GET_VAR(__GLEW_EXT_texture_buffer_object) + +#endif /* GL_EXT_texture_buffer_object */ + +/* -------------------- GL_EXT_texture_compression_dxt1 -------------------- */ + +#ifndef GL_EXT_texture_compression_dxt1 +#define GL_EXT_texture_compression_dxt1 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 + +#define GLEW_EXT_texture_compression_dxt1 GLEW_GET_VAR(__GLEW_EXT_texture_compression_dxt1) + +#endif /* GL_EXT_texture_compression_dxt1 */ + +/* -------------------- GL_EXT_texture_compression_latc -------------------- */ + +#ifndef GL_EXT_texture_compression_latc +#define GL_EXT_texture_compression_latc 1 + +#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 + +#define GLEW_EXT_texture_compression_latc GLEW_GET_VAR(__GLEW_EXT_texture_compression_latc) + +#endif /* GL_EXT_texture_compression_latc */ + +/* -------------------- GL_EXT_texture_compression_rgtc -------------------- */ + +#ifndef GL_EXT_texture_compression_rgtc +#define GL_EXT_texture_compression_rgtc 1 + +#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC +#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD +#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE + +#define GLEW_EXT_texture_compression_rgtc GLEW_GET_VAR(__GLEW_EXT_texture_compression_rgtc) + +#endif /* GL_EXT_texture_compression_rgtc */ + +/* -------------------- GL_EXT_texture_compression_s3tc -------------------- */ + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 + +#define GLEW_EXT_texture_compression_s3tc GLEW_GET_VAR(__GLEW_EXT_texture_compression_s3tc) + +#endif /* GL_EXT_texture_compression_s3tc */ + +/* ------------------------ GL_EXT_texture_cube_map ------------------------ */ + +#ifndef GL_EXT_texture_cube_map +#define GL_EXT_texture_cube_map 1 + +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C + +#define GLEW_EXT_texture_cube_map GLEW_GET_VAR(__GLEW_EXT_texture_cube_map) + +#endif /* GL_EXT_texture_cube_map */ + +/* ----------------------- GL_EXT_texture_edge_clamp ----------------------- */ + +#ifndef GL_EXT_texture_edge_clamp +#define GL_EXT_texture_edge_clamp 1 + +#define GL_CLAMP_TO_EDGE_EXT 0x812F + +#define GLEW_EXT_texture_edge_clamp GLEW_GET_VAR(__GLEW_EXT_texture_edge_clamp) + +#endif /* GL_EXT_texture_edge_clamp */ + +/* --------------------------- GL_EXT_texture_env -------------------------- */ + +#ifndef GL_EXT_texture_env +#define GL_EXT_texture_env 1 + +#define GL_TEXTURE_ENV0_EXT 0 +#define GL_ENV_BLEND_EXT 0 +#define GL_TEXTURE_ENV_SHIFT_EXT 0 +#define GL_ENV_REPLACE_EXT 0 +#define GL_ENV_ADD_EXT 0 +#define GL_ENV_SUBTRACT_EXT 0 +#define GL_TEXTURE_ENV_MODE_ALPHA_EXT 0 +#define GL_ENV_REVERSE_SUBTRACT_EXT 0 +#define GL_ENV_REVERSE_BLEND_EXT 0 +#define GL_ENV_COPY_EXT 0 +#define GL_ENV_MODULATE_EXT 0 + +#define GLEW_EXT_texture_env GLEW_GET_VAR(__GLEW_EXT_texture_env) + +#endif /* GL_EXT_texture_env */ + +/* ------------------------- GL_EXT_texture_env_add ------------------------ */ + +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 + +#define GLEW_EXT_texture_env_add GLEW_GET_VAR(__GLEW_EXT_texture_env_add) + +#endif /* GL_EXT_texture_env_add */ + +/* ----------------------- GL_EXT_texture_env_combine ---------------------- */ + +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 + +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A + +#define GLEW_EXT_texture_env_combine GLEW_GET_VAR(__GLEW_EXT_texture_env_combine) + +#endif /* GL_EXT_texture_env_combine */ + +/* ------------------------ GL_EXT_texture_env_dot3 ------------------------ */ + +#ifndef GL_EXT_texture_env_dot3 +#define GL_EXT_texture_env_dot3 1 + +#define GL_DOT3_RGB_EXT 0x8740 +#define GL_DOT3_RGBA_EXT 0x8741 + +#define GLEW_EXT_texture_env_dot3 GLEW_GET_VAR(__GLEW_EXT_texture_env_dot3) + +#endif /* GL_EXT_texture_env_dot3 */ + +/* ------------------- GL_EXT_texture_filter_anisotropic ------------------- */ + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 + +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF + +#define GLEW_EXT_texture_filter_anisotropic GLEW_GET_VAR(__GLEW_EXT_texture_filter_anisotropic) + +#endif /* GL_EXT_texture_filter_anisotropic */ + +/* ------------------------- GL_EXT_texture_integer ------------------------ */ + +#ifndef GL_EXT_texture_integer +#define GL_EXT_texture_integer 1 + +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D +#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E + +typedef void (GLAPIENTRY * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); +typedef void (GLAPIENTRY * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); + +#define glClearColorIiEXT GLEW_GET_FUN(__glewClearColorIiEXT) +#define glClearColorIuiEXT GLEW_GET_FUN(__glewClearColorIuiEXT) +#define glGetTexParameterIivEXT GLEW_GET_FUN(__glewGetTexParameterIivEXT) +#define glGetTexParameterIuivEXT GLEW_GET_FUN(__glewGetTexParameterIuivEXT) +#define glTexParameterIivEXT GLEW_GET_FUN(__glewTexParameterIivEXT) +#define glTexParameterIuivEXT GLEW_GET_FUN(__glewTexParameterIuivEXT) + +#define GLEW_EXT_texture_integer GLEW_GET_VAR(__GLEW_EXT_texture_integer) + +#endif /* GL_EXT_texture_integer */ + +/* ------------------------ GL_EXT_texture_lod_bias ------------------------ */ + +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 + +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 + +#define GLEW_EXT_texture_lod_bias GLEW_GET_VAR(__GLEW_EXT_texture_lod_bias) + +#endif /* GL_EXT_texture_lod_bias */ + +/* ---------------------- GL_EXT_texture_mirror_clamp ---------------------- */ + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 + +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 + +#define GLEW_EXT_texture_mirror_clamp GLEW_GET_VAR(__GLEW_EXT_texture_mirror_clamp) + +#endif /* GL_EXT_texture_mirror_clamp */ + +/* ------------------------- GL_EXT_texture_object ------------------------- */ + +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 + +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A + +typedef GLboolean (GLAPIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint* textures, GLboolean* residences); +typedef void (GLAPIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); +typedef void (GLAPIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint* textures); +typedef void (GLAPIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint* textures); +typedef GLboolean (GLAPIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture); +typedef void (GLAPIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint* textures, const GLclampf* priorities); + +#define glAreTexturesResidentEXT GLEW_GET_FUN(__glewAreTexturesResidentEXT) +#define glBindTextureEXT GLEW_GET_FUN(__glewBindTextureEXT) +#define glDeleteTexturesEXT GLEW_GET_FUN(__glewDeleteTexturesEXT) +#define glGenTexturesEXT GLEW_GET_FUN(__glewGenTexturesEXT) +#define glIsTextureEXT GLEW_GET_FUN(__glewIsTextureEXT) +#define glPrioritizeTexturesEXT GLEW_GET_FUN(__glewPrioritizeTexturesEXT) + +#define GLEW_EXT_texture_object GLEW_GET_VAR(__GLEW_EXT_texture_object) + +#endif /* GL_EXT_texture_object */ + +/* --------------------- GL_EXT_texture_perturb_normal --------------------- */ + +#ifndef GL_EXT_texture_perturb_normal +#define GL_EXT_texture_perturb_normal 1 + +#define GL_PERTURB_EXT 0x85AE +#define GL_TEXTURE_NORMAL_EXT 0x85AF + +typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); + +#define glTextureNormalEXT GLEW_GET_FUN(__glewTextureNormalEXT) + +#define GLEW_EXT_texture_perturb_normal GLEW_GET_VAR(__GLEW_EXT_texture_perturb_normal) + +#endif /* GL_EXT_texture_perturb_normal */ + +/* ------------------------ GL_EXT_texture_rectangle ----------------------- */ + +#ifndef GL_EXT_texture_rectangle +#define GL_EXT_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 + +#define GLEW_EXT_texture_rectangle GLEW_GET_VAR(__GLEW_EXT_texture_rectangle) + +#endif /* GL_EXT_texture_rectangle */ + +/* -------------------------- GL_EXT_texture_sRGB -------------------------- */ + +#ifndef GL_EXT_texture_sRGB +#define GL_EXT_texture_sRGB 1 + +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB8_EXT 0x8C41 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 +#define GL_SLUMINANCE_EXT 0x8C46 +#define GL_SLUMINANCE8_EXT 0x8C47 +#define GL_COMPRESSED_SRGB_EXT 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 +#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F + +#define GLEW_EXT_texture_sRGB GLEW_GET_VAR(__GLEW_EXT_texture_sRGB) + +#endif /* GL_EXT_texture_sRGB */ + +/* --------------------- GL_EXT_texture_shared_exponent -------------------- */ + +#ifndef GL_EXT_texture_shared_exponent +#define GL_EXT_texture_shared_exponent 1 + +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F + +#define GLEW_EXT_texture_shared_exponent GLEW_GET_VAR(__GLEW_EXT_texture_shared_exponent) + +#endif /* GL_EXT_texture_shared_exponent */ + +/* -------------------------- GL_EXT_texture_snorm ------------------------- */ + +#ifndef GL_EXT_texture_snorm +#define GL_EXT_texture_snorm 1 + +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_ALPHA_SNORM 0x9010 +#define GL_LUMINANCE_SNORM 0x9011 +#define GL_LUMINANCE_ALPHA_SNORM 0x9012 +#define GL_INTENSITY_SNORM 0x9013 +#define GL_ALPHA8_SNORM 0x9014 +#define GL_LUMINANCE8_SNORM 0x9015 +#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 +#define GL_INTENSITY8_SNORM 0x9017 +#define GL_ALPHA16_SNORM 0x9018 +#define GL_LUMINANCE16_SNORM 0x9019 +#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A +#define GL_INTENSITY16_SNORM 0x901B + +#define GLEW_EXT_texture_snorm GLEW_GET_VAR(__GLEW_EXT_texture_snorm) + +#endif /* GL_EXT_texture_snorm */ + +/* ------------------------- GL_EXT_texture_swizzle ------------------------ */ + +#ifndef GL_EXT_texture_swizzle +#define GL_EXT_texture_swizzle 1 + +#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 +#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 +#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 +#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 + +#define GLEW_EXT_texture_swizzle GLEW_GET_VAR(__GLEW_EXT_texture_swizzle) + +#endif /* GL_EXT_texture_swizzle */ + +/* --------------------------- GL_EXT_timer_query -------------------------- */ + +#ifndef GL_EXT_timer_query +#define GL_EXT_timer_query 1 + +#define GL_TIME_ELAPSED_EXT 0x88BF + +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); + +#define glGetQueryObjecti64vEXT GLEW_GET_FUN(__glewGetQueryObjecti64vEXT) +#define glGetQueryObjectui64vEXT GLEW_GET_FUN(__glewGetQueryObjectui64vEXT) + +#define GLEW_EXT_timer_query GLEW_GET_VAR(__GLEW_EXT_timer_query) + +#endif /* GL_EXT_timer_query */ + +/* ----------------------- GL_EXT_transform_feedback ----------------------- */ + +#ifndef GL_EXT_transform_feedback +#define GL_EXT_transform_feedback 1 + +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F + +typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, char *name); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode); + +#define glBeginTransformFeedbackEXT GLEW_GET_FUN(__glewBeginTransformFeedbackEXT) +#define glBindBufferBaseEXT GLEW_GET_FUN(__glewBindBufferBaseEXT) +#define glBindBufferOffsetEXT GLEW_GET_FUN(__glewBindBufferOffsetEXT) +#define glBindBufferRangeEXT GLEW_GET_FUN(__glewBindBufferRangeEXT) +#define glEndTransformFeedbackEXT GLEW_GET_FUN(__glewEndTransformFeedbackEXT) +#define glGetTransformFeedbackVaryingEXT GLEW_GET_FUN(__glewGetTransformFeedbackVaryingEXT) +#define glTransformFeedbackVaryingsEXT GLEW_GET_FUN(__glewTransformFeedbackVaryingsEXT) + +#define GLEW_EXT_transform_feedback GLEW_GET_VAR(__GLEW_EXT_transform_feedback) + +#endif /* GL_EXT_transform_feedback */ + +/* -------------------------- GL_EXT_vertex_array -------------------------- */ + +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 + +#define GL_DOUBLE_EXT 0x140A +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 + +typedef void (GLAPIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); +typedef void (GLAPIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean* pointer); +typedef void (GLAPIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); +typedef void (GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); +typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); + +#define glArrayElementEXT GLEW_GET_FUN(__glewArrayElementEXT) +#define glColorPointerEXT GLEW_GET_FUN(__glewColorPointerEXT) +#define glDrawArraysEXT GLEW_GET_FUN(__glewDrawArraysEXT) +#define glEdgeFlagPointerEXT GLEW_GET_FUN(__glewEdgeFlagPointerEXT) +#define glIndexPointerEXT GLEW_GET_FUN(__glewIndexPointerEXT) +#define glNormalPointerEXT GLEW_GET_FUN(__glewNormalPointerEXT) +#define glTexCoordPointerEXT GLEW_GET_FUN(__glewTexCoordPointerEXT) +#define glVertexPointerEXT GLEW_GET_FUN(__glewVertexPointerEXT) + +#define GLEW_EXT_vertex_array GLEW_GET_VAR(__GLEW_EXT_vertex_array) + +#endif /* GL_EXT_vertex_array */ + +/* ------------------------ GL_EXT_vertex_array_bgra ----------------------- */ + +#ifndef GL_EXT_vertex_array_bgra +#define GL_EXT_vertex_array_bgra 1 + +#define GL_BGRA 0x80E1 + +#define GLEW_EXT_vertex_array_bgra GLEW_GET_VAR(__GLEW_EXT_vertex_array_bgra) + +#endif /* GL_EXT_vertex_array_bgra */ + +/* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */ + +#ifndef GL_EXT_vertex_attrib_64bit +#define GL_EXT_vertex_attrib_64bit 1 + +#define GL_DOUBLE_MAT2_EXT 0x8F46 +#define GL_DOUBLE_MAT3_EXT 0x8F47 +#define GL_DOUBLE_MAT4_EXT 0x8F48 +#define GL_DOUBLE_VEC2_EXT 0x8FFC +#define GL_DOUBLE_VEC3_EXT 0x8FFD +#define GL_DOUBLE_VEC4_EXT 0x8FFE + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); + +#define glGetVertexAttribLdvEXT GLEW_GET_FUN(__glewGetVertexAttribLdvEXT) +#define glVertexArrayVertexAttribLOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLOffsetEXT) +#define glVertexAttribL1dEXT GLEW_GET_FUN(__glewVertexAttribL1dEXT) +#define glVertexAttribL1dvEXT GLEW_GET_FUN(__glewVertexAttribL1dvEXT) +#define glVertexAttribL2dEXT GLEW_GET_FUN(__glewVertexAttribL2dEXT) +#define glVertexAttribL2dvEXT GLEW_GET_FUN(__glewVertexAttribL2dvEXT) +#define glVertexAttribL3dEXT GLEW_GET_FUN(__glewVertexAttribL3dEXT) +#define glVertexAttribL3dvEXT GLEW_GET_FUN(__glewVertexAttribL3dvEXT) +#define glVertexAttribL4dEXT GLEW_GET_FUN(__glewVertexAttribL4dEXT) +#define glVertexAttribL4dvEXT GLEW_GET_FUN(__glewVertexAttribL4dvEXT) +#define glVertexAttribLPointerEXT GLEW_GET_FUN(__glewVertexAttribLPointerEXT) + +#define GLEW_EXT_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_EXT_vertex_attrib_64bit) + +#endif /* GL_EXT_vertex_attrib_64bit */ + +/* -------------------------- GL_EXT_vertex_shader ------------------------- */ + +#ifndef GL_EXT_vertex_shader +#define GL_EXT_vertex_shader 1 + +#define GL_VERTEX_SHADER_EXT 0x8780 +#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 +#define GL_OP_INDEX_EXT 0x8782 +#define GL_OP_NEGATE_EXT 0x8783 +#define GL_OP_DOT3_EXT 0x8784 +#define GL_OP_DOT4_EXT 0x8785 +#define GL_OP_MUL_EXT 0x8786 +#define GL_OP_ADD_EXT 0x8787 +#define GL_OP_MADD_EXT 0x8788 +#define GL_OP_FRAC_EXT 0x8789 +#define GL_OP_MAX_EXT 0x878A +#define GL_OP_MIN_EXT 0x878B +#define GL_OP_SET_GE_EXT 0x878C +#define GL_OP_SET_LT_EXT 0x878D +#define GL_OP_CLAMP_EXT 0x878E +#define GL_OP_FLOOR_EXT 0x878F +#define GL_OP_ROUND_EXT 0x8790 +#define GL_OP_EXP_BASE_2_EXT 0x8791 +#define GL_OP_LOG_BASE_2_EXT 0x8792 +#define GL_OP_POWER_EXT 0x8793 +#define GL_OP_RECIP_EXT 0x8794 +#define GL_OP_RECIP_SQRT_EXT 0x8795 +#define GL_OP_SUB_EXT 0x8796 +#define GL_OP_CROSS_PRODUCT_EXT 0x8797 +#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 +#define GL_OP_MOV_EXT 0x8799 +#define GL_OUTPUT_VERTEX_EXT 0x879A +#define GL_OUTPUT_COLOR0_EXT 0x879B +#define GL_OUTPUT_COLOR1_EXT 0x879C +#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D +#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E +#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F +#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 +#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 +#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 +#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 +#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 +#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 +#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 +#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 +#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 +#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 +#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA +#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB +#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC +#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD +#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE +#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF +#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 +#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 +#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 +#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 +#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 +#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 +#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 +#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 +#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 +#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 +#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA +#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB +#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC +#define GL_OUTPUT_FOG_EXT 0x87BD +#define GL_SCALAR_EXT 0x87BE +#define GL_VECTOR_EXT 0x87BF +#define GL_MATRIX_EXT 0x87C0 +#define GL_VARIANT_EXT 0x87C1 +#define GL_INVARIANT_EXT 0x87C2 +#define GL_LOCAL_CONSTANT_EXT 0x87C3 +#define GL_LOCAL_EXT 0x87C4 +#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 +#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 +#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 +#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 +#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE +#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF +#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 +#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 +#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 +#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 +#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 +#define GL_X_EXT 0x87D5 +#define GL_Y_EXT 0x87D6 +#define GL_Z_EXT 0x87D7 +#define GL_W_EXT 0x87D8 +#define GL_NEGATIVE_X_EXT 0x87D9 +#define GL_NEGATIVE_Y_EXT 0x87DA +#define GL_NEGATIVE_Z_EXT 0x87DB +#define GL_NEGATIVE_W_EXT 0x87DC +#define GL_ZERO_EXT 0x87DD +#define GL_ONE_EXT 0x87DE +#define GL_NEGATIVE_ONE_EXT 0x87DF +#define GL_NORMALIZED_RANGE_EXT 0x87E0 +#define GL_FULL_RANGE_EXT 0x87E1 +#define GL_CURRENT_VERTEX_EXT 0x87E2 +#define GL_MVP_MATRIX_EXT 0x87E3 +#define GL_VARIANT_VALUE_EXT 0x87E4 +#define GL_VARIANT_DATATYPE_EXT 0x87E5 +#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 +#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 +#define GL_VARIANT_ARRAY_EXT 0x87E8 +#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 +#define GL_INVARIANT_VALUE_EXT 0x87EA +#define GL_INVARIANT_DATATYPE_EXT 0x87EB +#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC +#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED + +typedef void (GLAPIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void); +typedef GLuint (GLAPIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); +typedef GLuint (GLAPIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); +typedef GLuint (GLAPIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value); +typedef GLuint (GLAPIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); +typedef GLuint (GLAPIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); +typedef void (GLAPIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef GLuint (GLAPIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum dataType, GLenum storageType, GLenum range, GLuint components); +typedef GLuint (GLAPIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); +typedef void (GLAPIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (GLAPIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (GLAPIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (GLAPIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (GLAPIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); +typedef void (GLAPIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); +typedef void (GLAPIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); +typedef void (GLAPIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid **data); +typedef void (GLAPIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); +typedef GLboolean (GLAPIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); +typedef void (GLAPIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr); +typedef void (GLAPIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr); +typedef void (GLAPIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); +typedef void (GLAPIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); +typedef void (GLAPIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); +typedef void (GLAPIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); +typedef void (GLAPIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, GLvoid *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, GLbyte *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, GLdouble *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, GLfloat *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, GLint *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, GLshort *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, GLubyte *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, GLuint *addr); +typedef void (GLAPIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, GLushort *addr); +typedef void (GLAPIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); + +#define glBeginVertexShaderEXT GLEW_GET_FUN(__glewBeginVertexShaderEXT) +#define glBindLightParameterEXT GLEW_GET_FUN(__glewBindLightParameterEXT) +#define glBindMaterialParameterEXT GLEW_GET_FUN(__glewBindMaterialParameterEXT) +#define glBindParameterEXT GLEW_GET_FUN(__glewBindParameterEXT) +#define glBindTexGenParameterEXT GLEW_GET_FUN(__glewBindTexGenParameterEXT) +#define glBindTextureUnitParameterEXT GLEW_GET_FUN(__glewBindTextureUnitParameterEXT) +#define glBindVertexShaderEXT GLEW_GET_FUN(__glewBindVertexShaderEXT) +#define glDeleteVertexShaderEXT GLEW_GET_FUN(__glewDeleteVertexShaderEXT) +#define glDisableVariantClientStateEXT GLEW_GET_FUN(__glewDisableVariantClientStateEXT) +#define glEnableVariantClientStateEXT GLEW_GET_FUN(__glewEnableVariantClientStateEXT) +#define glEndVertexShaderEXT GLEW_GET_FUN(__glewEndVertexShaderEXT) +#define glExtractComponentEXT GLEW_GET_FUN(__glewExtractComponentEXT) +#define glGenSymbolsEXT GLEW_GET_FUN(__glewGenSymbolsEXT) +#define glGenVertexShadersEXT GLEW_GET_FUN(__glewGenVertexShadersEXT) +#define glGetInvariantBooleanvEXT GLEW_GET_FUN(__glewGetInvariantBooleanvEXT) +#define glGetInvariantFloatvEXT GLEW_GET_FUN(__glewGetInvariantFloatvEXT) +#define glGetInvariantIntegervEXT GLEW_GET_FUN(__glewGetInvariantIntegervEXT) +#define glGetLocalConstantBooleanvEXT GLEW_GET_FUN(__glewGetLocalConstantBooleanvEXT) +#define glGetLocalConstantFloatvEXT GLEW_GET_FUN(__glewGetLocalConstantFloatvEXT) +#define glGetLocalConstantIntegervEXT GLEW_GET_FUN(__glewGetLocalConstantIntegervEXT) +#define glGetVariantBooleanvEXT GLEW_GET_FUN(__glewGetVariantBooleanvEXT) +#define glGetVariantFloatvEXT GLEW_GET_FUN(__glewGetVariantFloatvEXT) +#define glGetVariantIntegervEXT GLEW_GET_FUN(__glewGetVariantIntegervEXT) +#define glGetVariantPointervEXT GLEW_GET_FUN(__glewGetVariantPointervEXT) +#define glInsertComponentEXT GLEW_GET_FUN(__glewInsertComponentEXT) +#define glIsVariantEnabledEXT GLEW_GET_FUN(__glewIsVariantEnabledEXT) +#define glSetInvariantEXT GLEW_GET_FUN(__glewSetInvariantEXT) +#define glSetLocalConstantEXT GLEW_GET_FUN(__glewSetLocalConstantEXT) +#define glShaderOp1EXT GLEW_GET_FUN(__glewShaderOp1EXT) +#define glShaderOp2EXT GLEW_GET_FUN(__glewShaderOp2EXT) +#define glShaderOp3EXT GLEW_GET_FUN(__glewShaderOp3EXT) +#define glSwizzleEXT GLEW_GET_FUN(__glewSwizzleEXT) +#define glVariantPointerEXT GLEW_GET_FUN(__glewVariantPointerEXT) +#define glVariantbvEXT GLEW_GET_FUN(__glewVariantbvEXT) +#define glVariantdvEXT GLEW_GET_FUN(__glewVariantdvEXT) +#define glVariantfvEXT GLEW_GET_FUN(__glewVariantfvEXT) +#define glVariantivEXT GLEW_GET_FUN(__glewVariantivEXT) +#define glVariantsvEXT GLEW_GET_FUN(__glewVariantsvEXT) +#define glVariantubvEXT GLEW_GET_FUN(__glewVariantubvEXT) +#define glVariantuivEXT GLEW_GET_FUN(__glewVariantuivEXT) +#define glVariantusvEXT GLEW_GET_FUN(__glewVariantusvEXT) +#define glWriteMaskEXT GLEW_GET_FUN(__glewWriteMaskEXT) + +#define GLEW_EXT_vertex_shader GLEW_GET_VAR(__GLEW_EXT_vertex_shader) + +#endif /* GL_EXT_vertex_shader */ + +/* ------------------------ GL_EXT_vertex_weighting ------------------------ */ + +#ifndef GL_EXT_vertex_weighting +#define GL_EXT_vertex_weighting 1 + +#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 +#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 +#define GL_MODELVIEW0_EXT 0x1700 +#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 +#define GL_MODELVIEW1_MATRIX_EXT 0x8506 +#define GL_VERTEX_WEIGHTING_EXT 0x8509 +#define GL_MODELVIEW1_EXT 0x850A +#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B +#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C +#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D +#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E +#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F +#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 + +typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, void* pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); +typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight); + +#define glVertexWeightPointerEXT GLEW_GET_FUN(__glewVertexWeightPointerEXT) +#define glVertexWeightfEXT GLEW_GET_FUN(__glewVertexWeightfEXT) +#define glVertexWeightfvEXT GLEW_GET_FUN(__glewVertexWeightfvEXT) + +#define GLEW_EXT_vertex_weighting GLEW_GET_VAR(__GLEW_EXT_vertex_weighting) + +#endif /* GL_EXT_vertex_weighting */ + +/* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */ + +#ifndef GL_GREMEDY_frame_terminator +#define GL_GREMEDY_frame_terminator 1 + +typedef void (GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC) (void); + +#define glFrameTerminatorGREMEDY GLEW_GET_FUN(__glewFrameTerminatorGREMEDY) + +#define GLEW_GREMEDY_frame_terminator GLEW_GET_VAR(__GLEW_GREMEDY_frame_terminator) + +#endif /* GL_GREMEDY_frame_terminator */ + +/* ------------------------ GL_GREMEDY_string_marker ----------------------- */ + +#ifndef GL_GREMEDY_string_marker +#define GL_GREMEDY_string_marker 1 + +typedef void (GLAPIENTRY * PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void* string); + +#define glStringMarkerGREMEDY GLEW_GET_FUN(__glewStringMarkerGREMEDY) + +#define GLEW_GREMEDY_string_marker GLEW_GET_VAR(__GLEW_GREMEDY_string_marker) + +#endif /* GL_GREMEDY_string_marker */ + +/* --------------------- GL_HP_convolution_border_modes -------------------- */ + +#ifndef GL_HP_convolution_border_modes +#define GL_HP_convolution_border_modes 1 + +#define GLEW_HP_convolution_border_modes GLEW_GET_VAR(__GLEW_HP_convolution_border_modes) + +#endif /* GL_HP_convolution_border_modes */ + +/* ------------------------- GL_HP_image_transform ------------------------- */ + +#ifndef GL_HP_image_transform +#define GL_HP_image_transform 1 + +typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, const GLfloat param); +typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, const GLint param); +typedef void (GLAPIENTRY * PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint* params); + +#define glGetImageTransformParameterfvHP GLEW_GET_FUN(__glewGetImageTransformParameterfvHP) +#define glGetImageTransformParameterivHP GLEW_GET_FUN(__glewGetImageTransformParameterivHP) +#define glImageTransformParameterfHP GLEW_GET_FUN(__glewImageTransformParameterfHP) +#define glImageTransformParameterfvHP GLEW_GET_FUN(__glewImageTransformParameterfvHP) +#define glImageTransformParameteriHP GLEW_GET_FUN(__glewImageTransformParameteriHP) +#define glImageTransformParameterivHP GLEW_GET_FUN(__glewImageTransformParameterivHP) + +#define GLEW_HP_image_transform GLEW_GET_VAR(__GLEW_HP_image_transform) + +#endif /* GL_HP_image_transform */ + +/* -------------------------- GL_HP_occlusion_test ------------------------- */ + +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 + +#define GL_OCCLUSION_TEST_HP 0x8165 +#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 + +#define GLEW_HP_occlusion_test GLEW_GET_VAR(__GLEW_HP_occlusion_test) + +#endif /* GL_HP_occlusion_test */ + +/* ------------------------- GL_HP_texture_lighting ------------------------ */ + +#ifndef GL_HP_texture_lighting +#define GL_HP_texture_lighting 1 + +#define GLEW_HP_texture_lighting GLEW_GET_VAR(__GLEW_HP_texture_lighting) + +#endif /* GL_HP_texture_lighting */ + +/* --------------------------- GL_IBM_cull_vertex -------------------------- */ + +#ifndef GL_IBM_cull_vertex +#define GL_IBM_cull_vertex 1 + +#define GL_CULL_VERTEX_IBM 103050 + +#define GLEW_IBM_cull_vertex GLEW_GET_VAR(__GLEW_IBM_cull_vertex) + +#endif /* GL_IBM_cull_vertex */ + +/* ---------------------- GL_IBM_multimode_draw_arrays --------------------- */ + +#ifndef GL_IBM_multimode_draw_arrays +#define GL_IBM_multimode_draw_arrays 1 + +typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum* mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); +typedef void (GLAPIENTRY * PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum* mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, GLint modestride); + +#define glMultiModeDrawArraysIBM GLEW_GET_FUN(__glewMultiModeDrawArraysIBM) +#define glMultiModeDrawElementsIBM GLEW_GET_FUN(__glewMultiModeDrawElementsIBM) + +#define GLEW_IBM_multimode_draw_arrays GLEW_GET_VAR(__GLEW_IBM_multimode_draw_arrays) + +#endif /* GL_IBM_multimode_draw_arrays */ + +/* ------------------------- GL_IBM_rasterpos_clip ------------------------- */ + +#ifndef GL_IBM_rasterpos_clip +#define GL_IBM_rasterpos_clip 1 + +#define GL_RASTER_POSITION_UNCLIPPED_IBM 103010 + +#define GLEW_IBM_rasterpos_clip GLEW_GET_VAR(__GLEW_IBM_rasterpos_clip) + +#endif /* GL_IBM_rasterpos_clip */ + +/* --------------------------- GL_IBM_static_data -------------------------- */ + +#ifndef GL_IBM_static_data +#define GL_IBM_static_data 1 + +#define GL_ALL_STATIC_DATA_IBM 103060 +#define GL_STATIC_VERTEX_ARRAY_IBM 103061 + +#define GLEW_IBM_static_data GLEW_GET_VAR(__GLEW_IBM_static_data) + +#endif /* GL_IBM_static_data */ + +/* --------------------- GL_IBM_texture_mirrored_repeat -------------------- */ + +#ifndef GL_IBM_texture_mirrored_repeat +#define GL_IBM_texture_mirrored_repeat 1 + +#define GL_MIRRORED_REPEAT_IBM 0x8370 + +#define GLEW_IBM_texture_mirrored_repeat GLEW_GET_VAR(__GLEW_IBM_texture_mirrored_repeat) + +#endif /* GL_IBM_texture_mirrored_repeat */ + +/* ----------------------- GL_IBM_vertex_array_lists ----------------------- */ + +#ifndef GL_IBM_vertex_array_lists +#define GL_IBM_vertex_array_lists 1 + +#define GL_VERTEX_ARRAY_LIST_IBM 103070 +#define GL_NORMAL_ARRAY_LIST_IBM 103071 +#define GL_COLOR_ARRAY_LIST_IBM 103072 +#define GL_INDEX_ARRAY_LIST_IBM 103073 +#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 +#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 +#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 +#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 +#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 +#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 +#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 +#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 +#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 +#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 +#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 +#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 + +typedef void (GLAPIENTRY * PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean ** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); +typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid ** pointer, GLint ptrstride); + +#define glColorPointerListIBM GLEW_GET_FUN(__glewColorPointerListIBM) +#define glEdgeFlagPointerListIBM GLEW_GET_FUN(__glewEdgeFlagPointerListIBM) +#define glFogCoordPointerListIBM GLEW_GET_FUN(__glewFogCoordPointerListIBM) +#define glIndexPointerListIBM GLEW_GET_FUN(__glewIndexPointerListIBM) +#define glNormalPointerListIBM GLEW_GET_FUN(__glewNormalPointerListIBM) +#define glSecondaryColorPointerListIBM GLEW_GET_FUN(__glewSecondaryColorPointerListIBM) +#define glTexCoordPointerListIBM GLEW_GET_FUN(__glewTexCoordPointerListIBM) +#define glVertexPointerListIBM GLEW_GET_FUN(__glewVertexPointerListIBM) + +#define GLEW_IBM_vertex_array_lists GLEW_GET_VAR(__GLEW_IBM_vertex_array_lists) + +#endif /* GL_IBM_vertex_array_lists */ + +/* -------------------------- GL_INGR_color_clamp -------------------------- */ + +#ifndef GL_INGR_color_clamp +#define GL_INGR_color_clamp 1 + +#define GL_RED_MIN_CLAMP_INGR 0x8560 +#define GL_GREEN_MIN_CLAMP_INGR 0x8561 +#define GL_BLUE_MIN_CLAMP_INGR 0x8562 +#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 +#define GL_RED_MAX_CLAMP_INGR 0x8564 +#define GL_GREEN_MAX_CLAMP_INGR 0x8565 +#define GL_BLUE_MAX_CLAMP_INGR 0x8566 +#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 + +#define GLEW_INGR_color_clamp GLEW_GET_VAR(__GLEW_INGR_color_clamp) + +#endif /* GL_INGR_color_clamp */ + +/* ------------------------- GL_INGR_interlace_read ------------------------ */ + +#ifndef GL_INGR_interlace_read +#define GL_INGR_interlace_read 1 + +#define GL_INTERLACE_READ_INGR 0x8568 + +#define GLEW_INGR_interlace_read GLEW_GET_VAR(__GLEW_INGR_interlace_read) + +#endif /* GL_INGR_interlace_read */ + +/* ------------------------ GL_INTEL_parallel_arrays ----------------------- */ + +#ifndef GL_INTEL_parallel_arrays +#define GL_INTEL_parallel_arrays 1 + +#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 +#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 +#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 +#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 +#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 + +typedef void (GLAPIENTRY * PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); +typedef void (GLAPIENTRY * PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void** pointer); +typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void** pointer); + +#define glColorPointervINTEL GLEW_GET_FUN(__glewColorPointervINTEL) +#define glNormalPointervINTEL GLEW_GET_FUN(__glewNormalPointervINTEL) +#define glTexCoordPointervINTEL GLEW_GET_FUN(__glewTexCoordPointervINTEL) +#define glVertexPointervINTEL GLEW_GET_FUN(__glewVertexPointervINTEL) + +#define GLEW_INTEL_parallel_arrays GLEW_GET_VAR(__GLEW_INTEL_parallel_arrays) + +#endif /* GL_INTEL_parallel_arrays */ + +/* ------------------------ GL_INTEL_texture_scissor ----------------------- */ + +#ifndef GL_INTEL_texture_scissor +#define GL_INTEL_texture_scissor 1 + +typedef void (GLAPIENTRY * PFNGLTEXSCISSORFUNCINTELPROC) (GLenum target, GLenum lfunc, GLenum hfunc); +typedef void (GLAPIENTRY * PFNGLTEXSCISSORINTELPROC) (GLenum target, GLclampf tlow, GLclampf thigh); + +#define glTexScissorFuncINTEL GLEW_GET_FUN(__glewTexScissorFuncINTEL) +#define glTexScissorINTEL GLEW_GET_FUN(__glewTexScissorINTEL) + +#define GLEW_INTEL_texture_scissor GLEW_GET_VAR(__GLEW_INTEL_texture_scissor) + +#endif /* GL_INTEL_texture_scissor */ + +/* -------------------------- GL_KTX_buffer_region ------------------------- */ + +#ifndef GL_KTX_buffer_region +#define GL_KTX_buffer_region 1 + +#define GL_KTX_FRONT_REGION 0x0 +#define GL_KTX_BACK_REGION 0x1 +#define GL_KTX_Z_REGION 0x2 +#define GL_KTX_STENCIL_REGION 0x3 + +typedef GLuint (GLAPIENTRY * PFNGLBUFFERREGIONENABLEDEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLDELETEBUFFERREGIONEXTPROC) (GLenum region); +typedef void (GLAPIENTRY * PFNGLDRAWBUFFERREGIONEXTPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest); +typedef GLuint (GLAPIENTRY * PFNGLNEWBUFFERREGIONEXTPROC) (GLenum region); +typedef void (GLAPIENTRY * PFNGLREADBUFFERREGIONEXTPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height); + +#define glBufferRegionEnabledEXT GLEW_GET_FUN(__glewBufferRegionEnabledEXT) +#define glDeleteBufferRegionEXT GLEW_GET_FUN(__glewDeleteBufferRegionEXT) +#define glDrawBufferRegionEXT GLEW_GET_FUN(__glewDrawBufferRegionEXT) +#define glNewBufferRegionEXT GLEW_GET_FUN(__glewNewBufferRegionEXT) +#define glReadBufferRegionEXT GLEW_GET_FUN(__glewReadBufferRegionEXT) + +#define GLEW_KTX_buffer_region GLEW_GET_VAR(__GLEW_KTX_buffer_region) + +#endif /* GL_KTX_buffer_region */ + +/* ------------------------- GL_MESAX_texture_stack ------------------------ */ + +#ifndef GL_MESAX_texture_stack +#define GL_MESAX_texture_stack 1 + +#define GL_TEXTURE_1D_STACK_MESAX 0x8759 +#define GL_TEXTURE_2D_STACK_MESAX 0x875A +#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B +#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C +#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D +#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E + +#define GLEW_MESAX_texture_stack GLEW_GET_VAR(__GLEW_MESAX_texture_stack) + +#endif /* GL_MESAX_texture_stack */ + +/* -------------------------- GL_MESA_pack_invert -------------------------- */ + +#ifndef GL_MESA_pack_invert +#define GL_MESA_pack_invert 1 + +#define GL_PACK_INVERT_MESA 0x8758 + +#define GLEW_MESA_pack_invert GLEW_GET_VAR(__GLEW_MESA_pack_invert) + +#endif /* GL_MESA_pack_invert */ + +/* ------------------------- GL_MESA_resize_buffers ------------------------ */ + +#ifndef GL_MESA_resize_buffers +#define GL_MESA_resize_buffers 1 + +typedef void (GLAPIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void); + +#define glResizeBuffersMESA GLEW_GET_FUN(__glewResizeBuffersMESA) + +#define GLEW_MESA_resize_buffers GLEW_GET_VAR(__GLEW_MESA_resize_buffers) + +#endif /* GL_MESA_resize_buffers */ + +/* --------------------------- GL_MESA_window_pos -------------------------- */ + +#ifndef GL_MESA_window_pos +#define GL_MESA_window_pos 1 + +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint* p); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); + +#define glWindowPos2dMESA GLEW_GET_FUN(__glewWindowPos2dMESA) +#define glWindowPos2dvMESA GLEW_GET_FUN(__glewWindowPos2dvMESA) +#define glWindowPos2fMESA GLEW_GET_FUN(__glewWindowPos2fMESA) +#define glWindowPos2fvMESA GLEW_GET_FUN(__glewWindowPos2fvMESA) +#define glWindowPos2iMESA GLEW_GET_FUN(__glewWindowPos2iMESA) +#define glWindowPos2ivMESA GLEW_GET_FUN(__glewWindowPos2ivMESA) +#define glWindowPos2sMESA GLEW_GET_FUN(__glewWindowPos2sMESA) +#define glWindowPos2svMESA GLEW_GET_FUN(__glewWindowPos2svMESA) +#define glWindowPos3dMESA GLEW_GET_FUN(__glewWindowPos3dMESA) +#define glWindowPos3dvMESA GLEW_GET_FUN(__glewWindowPos3dvMESA) +#define glWindowPos3fMESA GLEW_GET_FUN(__glewWindowPos3fMESA) +#define glWindowPos3fvMESA GLEW_GET_FUN(__glewWindowPos3fvMESA) +#define glWindowPos3iMESA GLEW_GET_FUN(__glewWindowPos3iMESA) +#define glWindowPos3ivMESA GLEW_GET_FUN(__glewWindowPos3ivMESA) +#define glWindowPos3sMESA GLEW_GET_FUN(__glewWindowPos3sMESA) +#define glWindowPos3svMESA GLEW_GET_FUN(__glewWindowPos3svMESA) +#define glWindowPos4dMESA GLEW_GET_FUN(__glewWindowPos4dMESA) +#define glWindowPos4dvMESA GLEW_GET_FUN(__glewWindowPos4dvMESA) +#define glWindowPos4fMESA GLEW_GET_FUN(__glewWindowPos4fMESA) +#define glWindowPos4fvMESA GLEW_GET_FUN(__glewWindowPos4fvMESA) +#define glWindowPos4iMESA GLEW_GET_FUN(__glewWindowPos4iMESA) +#define glWindowPos4ivMESA GLEW_GET_FUN(__glewWindowPos4ivMESA) +#define glWindowPos4sMESA GLEW_GET_FUN(__glewWindowPos4sMESA) +#define glWindowPos4svMESA GLEW_GET_FUN(__glewWindowPos4svMESA) + +#define GLEW_MESA_window_pos GLEW_GET_VAR(__GLEW_MESA_window_pos) + +#endif /* GL_MESA_window_pos */ + +/* ------------------------- GL_MESA_ycbcr_texture ------------------------- */ + +#ifndef GL_MESA_ycbcr_texture +#define GL_MESA_ycbcr_texture 1 + +#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB +#define GL_YCBCR_MESA 0x8757 + +#define GLEW_MESA_ycbcr_texture GLEW_GET_VAR(__GLEW_MESA_ycbcr_texture) + +#endif /* GL_MESA_ycbcr_texture */ + +/* ------------------------- GL_NVX_gpu_memory_info ------------------------ */ + +#ifndef GL_NVX_gpu_memory_info +#define GL_NVX_gpu_memory_info 1 + +#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 +#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 +#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 +#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A +#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B + +#define GLEW_NVX_gpu_memory_info GLEW_GET_VAR(__GLEW_NVX_gpu_memory_info) + +#endif /* GL_NVX_gpu_memory_info */ + +/* --------------------------- GL_NV_blend_square -------------------------- */ + +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 + +#define GLEW_NV_blend_square GLEW_GET_VAR(__GLEW_NV_blend_square) + +#endif /* GL_NV_blend_square */ + +/* ------------------------ GL_NV_conditional_render ----------------------- */ + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 + +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 + +typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); +typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVPROC) (void); + +#define glBeginConditionalRenderNV GLEW_GET_FUN(__glewBeginConditionalRenderNV) +#define glEndConditionalRenderNV GLEW_GET_FUN(__glewEndConditionalRenderNV) + +#define GLEW_NV_conditional_render GLEW_GET_VAR(__GLEW_NV_conditional_render) + +#endif /* GL_NV_conditional_render */ + +/* ----------------------- GL_NV_copy_depth_to_color ----------------------- */ + +#ifndef GL_NV_copy_depth_to_color +#define GL_NV_copy_depth_to_color 1 + +#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E +#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F + +#define GLEW_NV_copy_depth_to_color GLEW_GET_VAR(__GLEW_NV_copy_depth_to_color) + +#endif /* GL_NV_copy_depth_to_color */ + +/* ---------------------------- GL_NV_copy_image --------------------------- */ + +#ifndef GL_NV_copy_image +#define GL_NV_copy_image 1 + +typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); + +#define glCopyImageSubDataNV GLEW_GET_FUN(__glewCopyImageSubDataNV) + +#define GLEW_NV_copy_image GLEW_GET_VAR(__GLEW_NV_copy_image) + +#endif /* GL_NV_copy_image */ + +/* ------------------------ GL_NV_depth_buffer_float ----------------------- */ + +#ifndef GL_NV_depth_buffer_float +#define GL_NV_depth_buffer_float 1 + +#define GL_DEPTH_COMPONENT32F_NV 0x8DAB +#define GL_DEPTH32F_STENCIL8_NV 0x8DAC +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD +#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF + +typedef void (GLAPIENTRY * PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); +typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); + +#define glClearDepthdNV GLEW_GET_FUN(__glewClearDepthdNV) +#define glDepthBoundsdNV GLEW_GET_FUN(__glewDepthBoundsdNV) +#define glDepthRangedNV GLEW_GET_FUN(__glewDepthRangedNV) + +#define GLEW_NV_depth_buffer_float GLEW_GET_VAR(__GLEW_NV_depth_buffer_float) + +#endif /* GL_NV_depth_buffer_float */ + +/* --------------------------- GL_NV_depth_clamp --------------------------- */ + +#ifndef GL_NV_depth_clamp +#define GL_NV_depth_clamp 1 + +#define GL_DEPTH_CLAMP_NV 0x864F + +#define GLEW_NV_depth_clamp GLEW_GET_VAR(__GLEW_NV_depth_clamp) + +#endif /* GL_NV_depth_clamp */ + +/* ---------------------- GL_NV_depth_range_unclamped ---------------------- */ + +#ifndef GL_NV_depth_range_unclamped +#define GL_NV_depth_range_unclamped 1 + +#define GL_SAMPLE_COUNT_BITS_NV 0x8864 +#define GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865 +#define GL_QUERY_RESULT_NV 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_NV 0x8867 +#define GL_SAMPLE_COUNT_NV 0x8914 + +#define GLEW_NV_depth_range_unclamped GLEW_GET_VAR(__GLEW_NV_depth_range_unclamped) + +#endif /* GL_NV_depth_range_unclamped */ + +/* ---------------------------- GL_NV_evaluators --------------------------- */ + +#ifndef GL_NV_evaluators +#define GL_NV_evaluators 1 + +#define GL_EVAL_2D_NV 0x86C0 +#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 +#define GL_MAP_TESSELLATION_NV 0x86C2 +#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 +#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 +#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 +#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 +#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 +#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 +#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 +#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA +#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB +#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC +#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD +#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE +#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF +#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 +#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 +#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 +#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 +#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 +#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 +#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 +#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 + +typedef void (GLAPIENTRY * PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); +typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void* points); +typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void* points); +typedef void (GLAPIENTRY * PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint* params); + +#define glEvalMapsNV GLEW_GET_FUN(__glewEvalMapsNV) +#define glGetMapAttribParameterfvNV GLEW_GET_FUN(__glewGetMapAttribParameterfvNV) +#define glGetMapAttribParameterivNV GLEW_GET_FUN(__glewGetMapAttribParameterivNV) +#define glGetMapControlPointsNV GLEW_GET_FUN(__glewGetMapControlPointsNV) +#define glGetMapParameterfvNV GLEW_GET_FUN(__glewGetMapParameterfvNV) +#define glGetMapParameterivNV GLEW_GET_FUN(__glewGetMapParameterivNV) +#define glMapControlPointsNV GLEW_GET_FUN(__glewMapControlPointsNV) +#define glMapParameterfvNV GLEW_GET_FUN(__glewMapParameterfvNV) +#define glMapParameterivNV GLEW_GET_FUN(__glewMapParameterivNV) + +#define GLEW_NV_evaluators GLEW_GET_VAR(__GLEW_NV_evaluators) + +#endif /* GL_NV_evaluators */ + +/* ----------------------- GL_NV_explicit_multisample ---------------------- */ + +#ifndef GL_NV_explicit_multisample +#define GL_NV_explicit_multisample 1 + +#define GL_SAMPLE_POSITION_NV 0x8E50 +#define GL_SAMPLE_MASK_NV 0x8E51 +#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 +#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 +#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 +#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 +#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 +#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 +#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 +#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 + +typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat* val); +typedef void (GLAPIENTRY * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); + +#define glGetMultisamplefvNV GLEW_GET_FUN(__glewGetMultisamplefvNV) +#define glSampleMaskIndexedNV GLEW_GET_FUN(__glewSampleMaskIndexedNV) +#define glTexRenderbufferNV GLEW_GET_FUN(__glewTexRenderbufferNV) + +#define GLEW_NV_explicit_multisample GLEW_GET_VAR(__GLEW_NV_explicit_multisample) + +#endif /* GL_NV_explicit_multisample */ + +/* ------------------------------ GL_NV_fence ------------------------------ */ + +#ifndef GL_NV_fence +#define GL_NV_fence 1 + +#define GL_ALL_COMPLETED_NV 0x84F2 +#define GL_FENCE_STATUS_NV 0x84F3 +#define GL_FENCE_CONDITION_NV 0x84F4 + +typedef void (GLAPIENTRY * PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint* fences); +typedef void (GLAPIENTRY * PFNGLFINISHFENCENVPROC) (GLuint fence); +typedef void (GLAPIENTRY * PFNGLGENFENCESNVPROC) (GLsizei n, GLuint* fences); +typedef void (GLAPIENTRY * PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISFENCENVPROC) (GLuint fence); +typedef void (GLAPIENTRY * PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); +typedef GLboolean (GLAPIENTRY * PFNGLTESTFENCENVPROC) (GLuint fence); + +#define glDeleteFencesNV GLEW_GET_FUN(__glewDeleteFencesNV) +#define glFinishFenceNV GLEW_GET_FUN(__glewFinishFenceNV) +#define glGenFencesNV GLEW_GET_FUN(__glewGenFencesNV) +#define glGetFenceivNV GLEW_GET_FUN(__glewGetFenceivNV) +#define glIsFenceNV GLEW_GET_FUN(__glewIsFenceNV) +#define glSetFenceNV GLEW_GET_FUN(__glewSetFenceNV) +#define glTestFenceNV GLEW_GET_FUN(__glewTestFenceNV) + +#define GLEW_NV_fence GLEW_GET_VAR(__GLEW_NV_fence) + +#endif /* GL_NV_fence */ + +/* --------------------------- GL_NV_float_buffer -------------------------- */ + +#ifndef GL_NV_float_buffer +#define GL_NV_float_buffer 1 + +#define GL_FLOAT_R_NV 0x8880 +#define GL_FLOAT_RG_NV 0x8881 +#define GL_FLOAT_RGB_NV 0x8882 +#define GL_FLOAT_RGBA_NV 0x8883 +#define GL_FLOAT_R16_NV 0x8884 +#define GL_FLOAT_R32_NV 0x8885 +#define GL_FLOAT_RG16_NV 0x8886 +#define GL_FLOAT_RG32_NV 0x8887 +#define GL_FLOAT_RGB16_NV 0x8888 +#define GL_FLOAT_RGB32_NV 0x8889 +#define GL_FLOAT_RGBA16_NV 0x888A +#define GL_FLOAT_RGBA32_NV 0x888B +#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C +#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D +#define GL_FLOAT_RGBA_MODE_NV 0x888E + +#define GLEW_NV_float_buffer GLEW_GET_VAR(__GLEW_NV_float_buffer) + +#endif /* GL_NV_float_buffer */ + +/* --------------------------- GL_NV_fog_distance -------------------------- */ + +#ifndef GL_NV_fog_distance +#define GL_NV_fog_distance 1 + +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C + +#define GLEW_NV_fog_distance GLEW_GET_VAR(__GLEW_NV_fog_distance) + +#endif /* GL_NV_fog_distance */ + +/* ------------------------- GL_NV_fragment_program ------------------------ */ + +#ifndef GL_NV_fragment_program +#define GL_NV_fragment_program 1 + +#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 +#define GL_FRAGMENT_PROGRAM_NV 0x8870 +#define GL_MAX_TEXTURE_COORDS_NV 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 +#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 +#define GL_PROGRAM_ERROR_STRING_NV 0x8874 + +typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble *params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLdouble v[]); +typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte* name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte* name, const GLfloat v[]); + +#define glGetProgramNamedParameterdvNV GLEW_GET_FUN(__glewGetProgramNamedParameterdvNV) +#define glGetProgramNamedParameterfvNV GLEW_GET_FUN(__glewGetProgramNamedParameterfvNV) +#define glProgramNamedParameter4dNV GLEW_GET_FUN(__glewProgramNamedParameter4dNV) +#define glProgramNamedParameter4dvNV GLEW_GET_FUN(__glewProgramNamedParameter4dvNV) +#define glProgramNamedParameter4fNV GLEW_GET_FUN(__glewProgramNamedParameter4fNV) +#define glProgramNamedParameter4fvNV GLEW_GET_FUN(__glewProgramNamedParameter4fvNV) + +#define GLEW_NV_fragment_program GLEW_GET_VAR(__GLEW_NV_fragment_program) + +#endif /* GL_NV_fragment_program */ + +/* ------------------------ GL_NV_fragment_program2 ------------------------ */ + +#ifndef GL_NV_fragment_program2 +#define GL_NV_fragment_program2 1 + +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 + +#define GLEW_NV_fragment_program2 GLEW_GET_VAR(__GLEW_NV_fragment_program2) + +#endif /* GL_NV_fragment_program2 */ + +/* ------------------------ GL_NV_fragment_program4 ------------------------ */ + +#ifndef GL_NV_fragment_program4 +#define GL_NV_fragment_program4 1 + +#define GLEW_NV_fragment_program4 GLEW_GET_VAR(__GLEW_NV_fragment_program4) + +#endif /* GL_NV_fragment_program4 */ + +/* --------------------- GL_NV_fragment_program_option --------------------- */ + +#ifndef GL_NV_fragment_program_option +#define GL_NV_fragment_program_option 1 + +#define GLEW_NV_fragment_program_option GLEW_GET_VAR(__GLEW_NV_fragment_program_option) + +#endif /* GL_NV_fragment_program_option */ + +/* ----------------- GL_NV_framebuffer_multisample_coverage ---------------- */ + +#ifndef GL_NV_framebuffer_multisample_coverage +#define GL_NV_framebuffer_multisample_coverage 1 + +#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB +#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 +#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 +#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 + +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glRenderbufferStorageMultisampleCoverageNV GLEW_GET_FUN(__glewRenderbufferStorageMultisampleCoverageNV) + +#define GLEW_NV_framebuffer_multisample_coverage GLEW_GET_VAR(__GLEW_NV_framebuffer_multisample_coverage) + +#endif /* GL_NV_framebuffer_multisample_coverage */ + +/* ------------------------ GL_NV_geometry_program4 ------------------------ */ + +#ifndef GL_NV_geometry_program4 +#define GL_NV_geometry_program4 1 + +#define GL_GEOMETRY_PROGRAM_NV 0x8C26 +#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 +#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 + +typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); + +#define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV) + +#define GLEW_NV_geometry_program4 GLEW_GET_VAR(__GLEW_NV_geometry_program4) + +#endif /* GL_NV_geometry_program4 */ + +/* ------------------------- GL_NV_geometry_shader4 ------------------------ */ + +#ifndef GL_NV_geometry_shader4 +#define GL_NV_geometry_shader4 1 + +#define GLEW_NV_geometry_shader4 GLEW_GET_VAR(__GLEW_NV_geometry_shader4) + +#endif /* GL_NV_geometry_shader4 */ + +/* --------------------------- GL_NV_gpu_program4 -------------------------- */ + +#ifndef GL_NV_gpu_program4 +#define GL_NV_gpu_program4 1 + +#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 +#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 +#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 +#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 +#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 +#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 +#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 + +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); + +#define glProgramEnvParameterI4iNV GLEW_GET_FUN(__glewProgramEnvParameterI4iNV) +#define glProgramEnvParameterI4ivNV GLEW_GET_FUN(__glewProgramEnvParameterI4ivNV) +#define glProgramEnvParameterI4uiNV GLEW_GET_FUN(__glewProgramEnvParameterI4uiNV) +#define glProgramEnvParameterI4uivNV GLEW_GET_FUN(__glewProgramEnvParameterI4uivNV) +#define glProgramEnvParametersI4ivNV GLEW_GET_FUN(__glewProgramEnvParametersI4ivNV) +#define glProgramEnvParametersI4uivNV GLEW_GET_FUN(__glewProgramEnvParametersI4uivNV) +#define glProgramLocalParameterI4iNV GLEW_GET_FUN(__glewProgramLocalParameterI4iNV) +#define glProgramLocalParameterI4ivNV GLEW_GET_FUN(__glewProgramLocalParameterI4ivNV) +#define glProgramLocalParameterI4uiNV GLEW_GET_FUN(__glewProgramLocalParameterI4uiNV) +#define glProgramLocalParameterI4uivNV GLEW_GET_FUN(__glewProgramLocalParameterI4uivNV) +#define glProgramLocalParametersI4ivNV GLEW_GET_FUN(__glewProgramLocalParametersI4ivNV) +#define glProgramLocalParametersI4uivNV GLEW_GET_FUN(__glewProgramLocalParametersI4uivNV) + +#define GLEW_NV_gpu_program4 GLEW_GET_VAR(__GLEW_NV_gpu_program4) + +#endif /* GL_NV_gpu_program4 */ + +/* --------------------------- GL_NV_gpu_program5 -------------------------- */ + +#ifndef GL_NV_gpu_program5 +#define GL_NV_gpu_program5 1 + +#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C +#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F + +#define GLEW_NV_gpu_program5 GLEW_GET_VAR(__GLEW_NV_gpu_program5) + +#endif /* GL_NV_gpu_program5 */ + +/* ------------------------- GL_NV_gpu_program_fp64 ------------------------ */ + +#ifndef GL_NV_gpu_program_fp64 +#define GL_NV_gpu_program_fp64 1 + +#define GLEW_NV_gpu_program_fp64 GLEW_GET_VAR(__GLEW_NV_gpu_program_fp64) + +#endif /* GL_NV_gpu_program_fp64 */ + +/* --------------------------- GL_NV_gpu_shader5 --------------------------- */ + +#ifndef GL_NV_gpu_shader5 +#define GL_NV_gpu_shader5 1 + +#define GL_INT64_NV 0x140E +#define GL_UNSIGNED_INT64_NV 0x140F +#define GL_INT8_NV 0x8FE0 +#define GL_INT8_VEC2_NV 0x8FE1 +#define GL_INT8_VEC3_NV 0x8FE2 +#define GL_INT8_VEC4_NV 0x8FE3 +#define GL_INT16_NV 0x8FE4 +#define GL_INT16_VEC2_NV 0x8FE5 +#define GL_INT16_VEC3_NV 0x8FE6 +#define GL_INT16_VEC4_NV 0x8FE7 +#define GL_INT64_VEC2_NV 0x8FE9 +#define GL_INT64_VEC3_NV 0x8FEA +#define GL_INT64_VEC4_NV 0x8FEB +#define GL_UNSIGNED_INT8_NV 0x8FEC +#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED +#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE +#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF +#define GL_UNSIGNED_INT16_NV 0x8FF0 +#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 +#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 +#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 +#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 +#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 +#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB + +typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); + +#define glGetUniformi64vNV GLEW_GET_FUN(__glewGetUniformi64vNV) +#define glGetUniformui64vNV GLEW_GET_FUN(__glewGetUniformui64vNV) +#define glProgramUniform1i64NV GLEW_GET_FUN(__glewProgramUniform1i64NV) +#define glProgramUniform1i64vNV GLEW_GET_FUN(__glewProgramUniform1i64vNV) +#define glProgramUniform1ui64NV GLEW_GET_FUN(__glewProgramUniform1ui64NV) +#define glProgramUniform1ui64vNV GLEW_GET_FUN(__glewProgramUniform1ui64vNV) +#define glProgramUniform2i64NV GLEW_GET_FUN(__glewProgramUniform2i64NV) +#define glProgramUniform2i64vNV GLEW_GET_FUN(__glewProgramUniform2i64vNV) +#define glProgramUniform2ui64NV GLEW_GET_FUN(__glewProgramUniform2ui64NV) +#define glProgramUniform2ui64vNV GLEW_GET_FUN(__glewProgramUniform2ui64vNV) +#define glProgramUniform3i64NV GLEW_GET_FUN(__glewProgramUniform3i64NV) +#define glProgramUniform3i64vNV GLEW_GET_FUN(__glewProgramUniform3i64vNV) +#define glProgramUniform3ui64NV GLEW_GET_FUN(__glewProgramUniform3ui64NV) +#define glProgramUniform3ui64vNV GLEW_GET_FUN(__glewProgramUniform3ui64vNV) +#define glProgramUniform4i64NV GLEW_GET_FUN(__glewProgramUniform4i64NV) +#define glProgramUniform4i64vNV GLEW_GET_FUN(__glewProgramUniform4i64vNV) +#define glProgramUniform4ui64NV GLEW_GET_FUN(__glewProgramUniform4ui64NV) +#define glProgramUniform4ui64vNV GLEW_GET_FUN(__glewProgramUniform4ui64vNV) +#define glUniform1i64NV GLEW_GET_FUN(__glewUniform1i64NV) +#define glUniform1i64vNV GLEW_GET_FUN(__glewUniform1i64vNV) +#define glUniform1ui64NV GLEW_GET_FUN(__glewUniform1ui64NV) +#define glUniform1ui64vNV GLEW_GET_FUN(__glewUniform1ui64vNV) +#define glUniform2i64NV GLEW_GET_FUN(__glewUniform2i64NV) +#define glUniform2i64vNV GLEW_GET_FUN(__glewUniform2i64vNV) +#define glUniform2ui64NV GLEW_GET_FUN(__glewUniform2ui64NV) +#define glUniform2ui64vNV GLEW_GET_FUN(__glewUniform2ui64vNV) +#define glUniform3i64NV GLEW_GET_FUN(__glewUniform3i64NV) +#define glUniform3i64vNV GLEW_GET_FUN(__glewUniform3i64vNV) +#define glUniform3ui64NV GLEW_GET_FUN(__glewUniform3ui64NV) +#define glUniform3ui64vNV GLEW_GET_FUN(__glewUniform3ui64vNV) +#define glUniform4i64NV GLEW_GET_FUN(__glewUniform4i64NV) +#define glUniform4i64vNV GLEW_GET_FUN(__glewUniform4i64vNV) +#define glUniform4ui64NV GLEW_GET_FUN(__glewUniform4ui64NV) +#define glUniform4ui64vNV GLEW_GET_FUN(__glewUniform4ui64vNV) + +#define GLEW_NV_gpu_shader5 GLEW_GET_VAR(__GLEW_NV_gpu_shader5) + +#endif /* GL_NV_gpu_shader5 */ + +/* ---------------------------- GL_NV_half_float --------------------------- */ + +#ifndef GL_NV_half_float +#define GL_NV_half_float 1 + +#define GL_HALF_FLOAT_NV 0x140B + +typedef unsigned short GLhalf; + +typedef void (GLAPIENTRY * PFNGLCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); +typedef void (GLAPIENTRY * PFNGLCOLOR3HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLCOLOR4HNVPROC) (GLhalf red, GLhalf green, GLhalf blue, GLhalf alpha); +typedef void (GLAPIENTRY * PFNGLCOLOR4HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLFOGCOORDHNVPROC) (GLhalf fog); +typedef void (GLAPIENTRY * PFNGLFOGCOORDHVNVPROC) (const GLhalf* fog); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalf s); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalf s, GLhalf t); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalf s, GLhalf t, GLhalf r, GLhalf q); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLNORMAL3HNVPROC) (GLhalf nx, GLhalf ny, GLhalf nz); +typedef void (GLAPIENTRY * PFNGLNORMAL3HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HNVPROC) (GLhalf red, GLhalf green, GLhalf blue); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD1HNVPROC) (GLhalf s); +typedef void (GLAPIENTRY * PFNGLTEXCOORD1HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2HNVPROC) (GLhalf s, GLhalf t); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD3HNVPROC) (GLhalf s, GLhalf t, GLhalf r); +typedef void (GLAPIENTRY * PFNGLTEXCOORD3HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4HNVPROC) (GLhalf s, GLhalf t, GLhalf r, GLhalf q); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEX2HNVPROC) (GLhalf x, GLhalf y); +typedef void (GLAPIENTRY * PFNGLVERTEX2HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEX3HNVPROC) (GLhalf x, GLhalf y, GLhalf z); +typedef void (GLAPIENTRY * PFNGLVERTEX3HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEX4HNVPROC) (GLhalf x, GLhalf y, GLhalf z, GLhalf w); +typedef void (GLAPIENTRY * PFNGLVERTEX4HVNVPROC) (const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalf x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalf x, GLhalf y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalf x, GLhalf y, GLhalf z, GLhalf w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalf* v); +typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHNVPROC) (GLhalf weight); +typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight); + +#define glColor3hNV GLEW_GET_FUN(__glewColor3hNV) +#define glColor3hvNV GLEW_GET_FUN(__glewColor3hvNV) +#define glColor4hNV GLEW_GET_FUN(__glewColor4hNV) +#define glColor4hvNV GLEW_GET_FUN(__glewColor4hvNV) +#define glFogCoordhNV GLEW_GET_FUN(__glewFogCoordhNV) +#define glFogCoordhvNV GLEW_GET_FUN(__glewFogCoordhvNV) +#define glMultiTexCoord1hNV GLEW_GET_FUN(__glewMultiTexCoord1hNV) +#define glMultiTexCoord1hvNV GLEW_GET_FUN(__glewMultiTexCoord1hvNV) +#define glMultiTexCoord2hNV GLEW_GET_FUN(__glewMultiTexCoord2hNV) +#define glMultiTexCoord2hvNV GLEW_GET_FUN(__glewMultiTexCoord2hvNV) +#define glMultiTexCoord3hNV GLEW_GET_FUN(__glewMultiTexCoord3hNV) +#define glMultiTexCoord3hvNV GLEW_GET_FUN(__glewMultiTexCoord3hvNV) +#define glMultiTexCoord4hNV GLEW_GET_FUN(__glewMultiTexCoord4hNV) +#define glMultiTexCoord4hvNV GLEW_GET_FUN(__glewMultiTexCoord4hvNV) +#define glNormal3hNV GLEW_GET_FUN(__glewNormal3hNV) +#define glNormal3hvNV GLEW_GET_FUN(__glewNormal3hvNV) +#define glSecondaryColor3hNV GLEW_GET_FUN(__glewSecondaryColor3hNV) +#define glSecondaryColor3hvNV GLEW_GET_FUN(__glewSecondaryColor3hvNV) +#define glTexCoord1hNV GLEW_GET_FUN(__glewTexCoord1hNV) +#define glTexCoord1hvNV GLEW_GET_FUN(__glewTexCoord1hvNV) +#define glTexCoord2hNV GLEW_GET_FUN(__glewTexCoord2hNV) +#define glTexCoord2hvNV GLEW_GET_FUN(__glewTexCoord2hvNV) +#define glTexCoord3hNV GLEW_GET_FUN(__glewTexCoord3hNV) +#define glTexCoord3hvNV GLEW_GET_FUN(__glewTexCoord3hvNV) +#define glTexCoord4hNV GLEW_GET_FUN(__glewTexCoord4hNV) +#define glTexCoord4hvNV GLEW_GET_FUN(__glewTexCoord4hvNV) +#define glVertex2hNV GLEW_GET_FUN(__glewVertex2hNV) +#define glVertex2hvNV GLEW_GET_FUN(__glewVertex2hvNV) +#define glVertex3hNV GLEW_GET_FUN(__glewVertex3hNV) +#define glVertex3hvNV GLEW_GET_FUN(__glewVertex3hvNV) +#define glVertex4hNV GLEW_GET_FUN(__glewVertex4hNV) +#define glVertex4hvNV GLEW_GET_FUN(__glewVertex4hvNV) +#define glVertexAttrib1hNV GLEW_GET_FUN(__glewVertexAttrib1hNV) +#define glVertexAttrib1hvNV GLEW_GET_FUN(__glewVertexAttrib1hvNV) +#define glVertexAttrib2hNV GLEW_GET_FUN(__glewVertexAttrib2hNV) +#define glVertexAttrib2hvNV GLEW_GET_FUN(__glewVertexAttrib2hvNV) +#define glVertexAttrib3hNV GLEW_GET_FUN(__glewVertexAttrib3hNV) +#define glVertexAttrib3hvNV GLEW_GET_FUN(__glewVertexAttrib3hvNV) +#define glVertexAttrib4hNV GLEW_GET_FUN(__glewVertexAttrib4hNV) +#define glVertexAttrib4hvNV GLEW_GET_FUN(__glewVertexAttrib4hvNV) +#define glVertexAttribs1hvNV GLEW_GET_FUN(__glewVertexAttribs1hvNV) +#define glVertexAttribs2hvNV GLEW_GET_FUN(__glewVertexAttribs2hvNV) +#define glVertexAttribs3hvNV GLEW_GET_FUN(__glewVertexAttribs3hvNV) +#define glVertexAttribs4hvNV GLEW_GET_FUN(__glewVertexAttribs4hvNV) +#define glVertexWeighthNV GLEW_GET_FUN(__glewVertexWeighthNV) +#define glVertexWeighthvNV GLEW_GET_FUN(__glewVertexWeighthvNV) + +#define GLEW_NV_half_float GLEW_GET_VAR(__GLEW_NV_half_float) + +#endif /* GL_NV_half_float */ + +/* ------------------------ GL_NV_light_max_exponent ----------------------- */ + +#ifndef GL_NV_light_max_exponent +#define GL_NV_light_max_exponent 1 + +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 + +#define GLEW_NV_light_max_exponent GLEW_GET_VAR(__GLEW_NV_light_max_exponent) + +#endif /* GL_NV_light_max_exponent */ + +/* ----------------------- GL_NV_multisample_coverage ---------------------- */ + +#ifndef GL_NV_multisample_coverage +#define GL_NV_multisample_coverage 1 + +#define GL_COVERAGE_SAMPLES_NV 0x80A9 +#define GL_COLOR_SAMPLES_NV 0x8E20 + +#define GLEW_NV_multisample_coverage GLEW_GET_VAR(__GLEW_NV_multisample_coverage) + +#endif /* GL_NV_multisample_coverage */ + +/* --------------------- GL_NV_multisample_filter_hint --------------------- */ + +#ifndef GL_NV_multisample_filter_hint +#define GL_NV_multisample_filter_hint 1 + +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 + +#define GLEW_NV_multisample_filter_hint GLEW_GET_VAR(__GLEW_NV_multisample_filter_hint) + +#endif /* GL_NV_multisample_filter_hint */ + +/* ------------------------- GL_NV_occlusion_query ------------------------- */ + +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 + +#define GL_PIXEL_COUNTER_BITS_NV 0x8864 +#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 +#define GL_PIXEL_COUNT_NV 0x8866 +#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 + +typedef void (GLAPIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); + +#define glBeginOcclusionQueryNV GLEW_GET_FUN(__glewBeginOcclusionQueryNV) +#define glDeleteOcclusionQueriesNV GLEW_GET_FUN(__glewDeleteOcclusionQueriesNV) +#define glEndOcclusionQueryNV GLEW_GET_FUN(__glewEndOcclusionQueryNV) +#define glGenOcclusionQueriesNV GLEW_GET_FUN(__glewGenOcclusionQueriesNV) +#define glGetOcclusionQueryivNV GLEW_GET_FUN(__glewGetOcclusionQueryivNV) +#define glGetOcclusionQueryuivNV GLEW_GET_FUN(__glewGetOcclusionQueryuivNV) +#define glIsOcclusionQueryNV GLEW_GET_FUN(__glewIsOcclusionQueryNV) + +#define GLEW_NV_occlusion_query GLEW_GET_VAR(__GLEW_NV_occlusion_query) + +#endif /* GL_NV_occlusion_query */ + +/* ----------------------- GL_NV_packed_depth_stencil ---------------------- */ + +#ifndef GL_NV_packed_depth_stencil +#define GL_NV_packed_depth_stencil 1 + +#define GL_DEPTH_STENCIL_NV 0x84F9 +#define GL_UNSIGNED_INT_24_8_NV 0x84FA + +#define GLEW_NV_packed_depth_stencil GLEW_GET_VAR(__GLEW_NV_packed_depth_stencil) + +#endif /* GL_NV_packed_depth_stencil */ + +/* --------------------- GL_NV_parameter_buffer_object --------------------- */ + +#ifndef GL_NV_parameter_buffer_object +#define GL_NV_parameter_buffer_object 1 + +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 +#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 +#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 +#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 +#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 + +typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); +typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); + +#define glProgramBufferParametersIivNV GLEW_GET_FUN(__glewProgramBufferParametersIivNV) +#define glProgramBufferParametersIuivNV GLEW_GET_FUN(__glewProgramBufferParametersIuivNV) +#define glProgramBufferParametersfvNV GLEW_GET_FUN(__glewProgramBufferParametersfvNV) + +#define GLEW_NV_parameter_buffer_object GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object) + +#endif /* GL_NV_parameter_buffer_object */ + +/* --------------------- GL_NV_parameter_buffer_object2 -------------------- */ + +#ifndef GL_NV_parameter_buffer_object2 +#define GL_NV_parameter_buffer_object2 1 + +#define GLEW_NV_parameter_buffer_object2 GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object2) + +#endif /* GL_NV_parameter_buffer_object2 */ + +/* ------------------------- GL_NV_pixel_data_range ------------------------ */ + +#ifndef GL_NV_pixel_data_range +#define GL_NV_pixel_data_range 1 + +#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 +#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 +#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A +#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B +#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C +#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D + +typedef void (GLAPIENTRY * PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, void* pointer); + +#define glFlushPixelDataRangeNV GLEW_GET_FUN(__glewFlushPixelDataRangeNV) +#define glPixelDataRangeNV GLEW_GET_FUN(__glewPixelDataRangeNV) + +#define GLEW_NV_pixel_data_range GLEW_GET_VAR(__GLEW_NV_pixel_data_range) + +#endif /* GL_NV_pixel_data_range */ + +/* --------------------------- GL_NV_point_sprite -------------------------- */ + +#ifndef GL_NV_point_sprite +#define GL_NV_point_sprite 1 + +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 + +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint* params); + +#define glPointParameteriNV GLEW_GET_FUN(__glewPointParameteriNV) +#define glPointParameterivNV GLEW_GET_FUN(__glewPointParameterivNV) + +#define GLEW_NV_point_sprite GLEW_GET_VAR(__GLEW_NV_point_sprite) + +#endif /* GL_NV_point_sprite */ + +/* -------------------------- GL_NV_present_video -------------------------- */ + +#ifndef GL_NV_present_video +#define GL_NV_present_video 1 + +#define GL_FRAME_NV 0x8E26 +#define GL_FIELDS_NV 0x8E27 +#define GL_CURRENT_TIME_NV 0x8E28 +#define GL_NUM_FILL_STREAMS_NV 0x8E29 +#define GL_PRESENT_TIME_NV 0x8E2A +#define GL_PRESENT_DURATION_NV 0x8E2B + +typedef void (GLAPIENTRY * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); +typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); + +#define glGetVideoi64vNV GLEW_GET_FUN(__glewGetVideoi64vNV) +#define glGetVideoivNV GLEW_GET_FUN(__glewGetVideoivNV) +#define glGetVideoui64vNV GLEW_GET_FUN(__glewGetVideoui64vNV) +#define glGetVideouivNV GLEW_GET_FUN(__glewGetVideouivNV) +#define glPresentFrameDualFillNV GLEW_GET_FUN(__glewPresentFrameDualFillNV) +#define glPresentFrameKeyedNV GLEW_GET_FUN(__glewPresentFrameKeyedNV) + +#define GLEW_NV_present_video GLEW_GET_VAR(__GLEW_NV_present_video) + +#endif /* GL_NV_present_video */ + +/* ------------------------ GL_NV_primitive_restart ------------------------ */ + +#ifndef GL_NV_primitive_restart +#define GL_NV_primitive_restart 1 + +#define GL_PRIMITIVE_RESTART_NV 0x8558 +#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 + +typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); +typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTNVPROC) (void); + +#define glPrimitiveRestartIndexNV GLEW_GET_FUN(__glewPrimitiveRestartIndexNV) +#define glPrimitiveRestartNV GLEW_GET_FUN(__glewPrimitiveRestartNV) + +#define GLEW_NV_primitive_restart GLEW_GET_VAR(__GLEW_NV_primitive_restart) + +#endif /* GL_NV_primitive_restart */ + +/* ------------------------ GL_NV_register_combiners ----------------------- */ + +#ifndef GL_NV_register_combiners +#define GL_NV_register_combiners 1 + +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 + +typedef void (GLAPIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (GLAPIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); +typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); +typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint* params); + +#define glCombinerInputNV GLEW_GET_FUN(__glewCombinerInputNV) +#define glCombinerOutputNV GLEW_GET_FUN(__glewCombinerOutputNV) +#define glCombinerParameterfNV GLEW_GET_FUN(__glewCombinerParameterfNV) +#define glCombinerParameterfvNV GLEW_GET_FUN(__glewCombinerParameterfvNV) +#define glCombinerParameteriNV GLEW_GET_FUN(__glewCombinerParameteriNV) +#define glCombinerParameterivNV GLEW_GET_FUN(__glewCombinerParameterivNV) +#define glFinalCombinerInputNV GLEW_GET_FUN(__glewFinalCombinerInputNV) +#define glGetCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetCombinerInputParameterfvNV) +#define glGetCombinerInputParameterivNV GLEW_GET_FUN(__glewGetCombinerInputParameterivNV) +#define glGetCombinerOutputParameterfvNV GLEW_GET_FUN(__glewGetCombinerOutputParameterfvNV) +#define glGetCombinerOutputParameterivNV GLEW_GET_FUN(__glewGetCombinerOutputParameterivNV) +#define glGetFinalCombinerInputParameterfvNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterfvNV) +#define glGetFinalCombinerInputParameterivNV GLEW_GET_FUN(__glewGetFinalCombinerInputParameterivNV) + +#define GLEW_NV_register_combiners GLEW_GET_VAR(__GLEW_NV_register_combiners) + +#endif /* GL_NV_register_combiners */ + +/* ----------------------- GL_NV_register_combiners2 ----------------------- */ + +#ifndef GL_NV_register_combiners2 +#define GL_NV_register_combiners2 1 + +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 + +typedef void (GLAPIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat* params); + +#define glCombinerStageParameterfvNV GLEW_GET_FUN(__glewCombinerStageParameterfvNV) +#define glGetCombinerStageParameterfvNV GLEW_GET_FUN(__glewGetCombinerStageParameterfvNV) + +#define GLEW_NV_register_combiners2 GLEW_GET_VAR(__GLEW_NV_register_combiners2) + +#endif /* GL_NV_register_combiners2 */ + +/* ------------------------ GL_NV_shader_buffer_load ----------------------- */ + +#ifndef GL_NV_shader_buffer_load +#define GL_NV_shader_buffer_load 1 + +#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D +#define GL_GPU_ADDRESS_NV 0x8F34 +#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 + +typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT* result); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT* params); +typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); +typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); +typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); +typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); + +#define glGetBufferParameterui64vNV GLEW_GET_FUN(__glewGetBufferParameterui64vNV) +#define glGetIntegerui64vNV GLEW_GET_FUN(__glewGetIntegerui64vNV) +#define glGetNamedBufferParameterui64vNV GLEW_GET_FUN(__glewGetNamedBufferParameterui64vNV) +#define glIsBufferResidentNV GLEW_GET_FUN(__glewIsBufferResidentNV) +#define glIsNamedBufferResidentNV GLEW_GET_FUN(__glewIsNamedBufferResidentNV) +#define glMakeBufferNonResidentNV GLEW_GET_FUN(__glewMakeBufferNonResidentNV) +#define glMakeBufferResidentNV GLEW_GET_FUN(__glewMakeBufferResidentNV) +#define glMakeNamedBufferNonResidentNV GLEW_GET_FUN(__glewMakeNamedBufferNonResidentNV) +#define glMakeNamedBufferResidentNV GLEW_GET_FUN(__glewMakeNamedBufferResidentNV) +#define glProgramUniformui64NV GLEW_GET_FUN(__glewProgramUniformui64NV) +#define glProgramUniformui64vNV GLEW_GET_FUN(__glewProgramUniformui64vNV) +#define glUniformui64NV GLEW_GET_FUN(__glewUniformui64NV) +#define glUniformui64vNV GLEW_GET_FUN(__glewUniformui64vNV) + +#define GLEW_NV_shader_buffer_load GLEW_GET_VAR(__GLEW_NV_shader_buffer_load) + +#endif /* GL_NV_shader_buffer_load */ + +/* ---------------------- GL_NV_tessellation_program5 ---------------------- */ + +#ifndef GL_NV_tessellation_program5 +#define GL_NV_tessellation_program5 1 + +#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 +#define GL_TESS_CONTROL_PROGRAM_NV 0x891E +#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F +#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 +#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 + +#define GLEW_NV_tessellation_program5 GLEW_GET_VAR(__GLEW_NV_tessellation_program5) + +#endif /* GL_NV_tessellation_program5 */ + +/* -------------------------- GL_NV_texgen_emboss -------------------------- */ + +#ifndef GL_NV_texgen_emboss +#define GL_NV_texgen_emboss 1 + +#define GL_EMBOSS_LIGHT_NV 0x855D +#define GL_EMBOSS_CONSTANT_NV 0x855E +#define GL_EMBOSS_MAP_NV 0x855F + +#define GLEW_NV_texgen_emboss GLEW_GET_VAR(__GLEW_NV_texgen_emboss) + +#endif /* GL_NV_texgen_emboss */ + +/* ------------------------ GL_NV_texgen_reflection ------------------------ */ + +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 + +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 + +#define GLEW_NV_texgen_reflection GLEW_GET_VAR(__GLEW_NV_texgen_reflection) + +#endif /* GL_NV_texgen_reflection */ + +/* ------------------------- GL_NV_texture_barrier ------------------------- */ + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 + +typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void); + +#define glTextureBarrierNV GLEW_GET_FUN(__glewTextureBarrierNV) + +#define GLEW_NV_texture_barrier GLEW_GET_VAR(__GLEW_NV_texture_barrier) + +#endif /* GL_NV_texture_barrier */ + +/* --------------------- GL_NV_texture_compression_vtc --------------------- */ + +#ifndef GL_NV_texture_compression_vtc +#define GL_NV_texture_compression_vtc 1 + +#define GLEW_NV_texture_compression_vtc GLEW_GET_VAR(__GLEW_NV_texture_compression_vtc) + +#endif /* GL_NV_texture_compression_vtc */ + +/* ----------------------- GL_NV_texture_env_combine4 ---------------------- */ + +#ifndef GL_NV_texture_env_combine4 +#define GL_NV_texture_env_combine4 1 + +#define GL_COMBINE4_NV 0x8503 +#define GL_SOURCE3_RGB_NV 0x8583 +#define GL_SOURCE3_ALPHA_NV 0x858B +#define GL_OPERAND3_RGB_NV 0x8593 +#define GL_OPERAND3_ALPHA_NV 0x859B + +#define GLEW_NV_texture_env_combine4 GLEW_GET_VAR(__GLEW_NV_texture_env_combine4) + +#endif /* GL_NV_texture_env_combine4 */ + +/* ---------------------- GL_NV_texture_expand_normal ---------------------- */ + +#ifndef GL_NV_texture_expand_normal +#define GL_NV_texture_expand_normal 1 + +#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F + +#define GLEW_NV_texture_expand_normal GLEW_GET_VAR(__GLEW_NV_texture_expand_normal) + +#endif /* GL_NV_texture_expand_normal */ + +/* ------------------------ GL_NV_texture_rectangle ------------------------ */ + +#ifndef GL_NV_texture_rectangle +#define GL_NV_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_NV 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 + +#define GLEW_NV_texture_rectangle GLEW_GET_VAR(__GLEW_NV_texture_rectangle) + +#endif /* GL_NV_texture_rectangle */ + +/* -------------------------- GL_NV_texture_shader ------------------------- */ + +#ifndef GL_NV_texture_shader +#define GL_NV_texture_shader 1 + +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F + +#define GLEW_NV_texture_shader GLEW_GET_VAR(__GLEW_NV_texture_shader) + +#endif /* GL_NV_texture_shader */ + +/* ------------------------- GL_NV_texture_shader2 ------------------------- */ + +#ifndef GL_NV_texture_shader2 +#define GL_NV_texture_shader2 1 + +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D + +#define GLEW_NV_texture_shader2 GLEW_GET_VAR(__GLEW_NV_texture_shader2) + +#endif /* GL_NV_texture_shader2 */ + +/* ------------------------- GL_NV_texture_shader3 ------------------------- */ + +#ifndef GL_NV_texture_shader3 +#define GL_NV_texture_shader3 1 + +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 + +#define GLEW_NV_texture_shader3 GLEW_GET_VAR(__GLEW_NV_texture_shader3) + +#endif /* GL_NV_texture_shader3 */ + +/* ------------------------ GL_NV_transform_feedback ----------------------- */ + +#ifndef GL_NV_transform_feedback +#define GL_NV_transform_feedback 1 + +#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 +#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 +#define GL_TEXTURE_COORD_NV 0x8C79 +#define GL_CLIP_DISTANCE_NV 0x8C7A +#define GL_VERTEX_ID_NV 0x8C7B +#define GL_PRIMITIVE_ID_NV 0x8C7C +#define GL_GENERIC_ATTRIB_NV 0x8C7D +#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 +#define GL_ACTIVE_VARYINGS_NV 0x8C81 +#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 +#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 +#define GL_PRIMITIVES_GENERATED_NV 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 +#define GL_RASTERIZER_DISCARD_NV 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C +#define GL_SEPARATE_ATTRIBS_NV 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F + +typedef void (GLAPIENTRY * PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); +typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); +typedef GLint (GLAPIENTRY * PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); + +#define glActiveVaryingNV GLEW_GET_FUN(__glewActiveVaryingNV) +#define glBeginTransformFeedbackNV GLEW_GET_FUN(__glewBeginTransformFeedbackNV) +#define glBindBufferBaseNV GLEW_GET_FUN(__glewBindBufferBaseNV) +#define glBindBufferOffsetNV GLEW_GET_FUN(__glewBindBufferOffsetNV) +#define glBindBufferRangeNV GLEW_GET_FUN(__glewBindBufferRangeNV) +#define glEndTransformFeedbackNV GLEW_GET_FUN(__glewEndTransformFeedbackNV) +#define glGetActiveVaryingNV GLEW_GET_FUN(__glewGetActiveVaryingNV) +#define glGetTransformFeedbackVaryingNV GLEW_GET_FUN(__glewGetTransformFeedbackVaryingNV) +#define glGetVaryingLocationNV GLEW_GET_FUN(__glewGetVaryingLocationNV) +#define glTransformFeedbackAttribsNV GLEW_GET_FUN(__glewTransformFeedbackAttribsNV) +#define glTransformFeedbackVaryingsNV GLEW_GET_FUN(__glewTransformFeedbackVaryingsNV) + +#define GLEW_NV_transform_feedback GLEW_GET_VAR(__GLEW_NV_transform_feedback) + +#endif /* GL_NV_transform_feedback */ + +/* ----------------------- GL_NV_transform_feedback2 ----------------------- */ + +#ifndef GL_NV_transform_feedback2 +#define GL_NV_transform_feedback2 1 + +#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 + +typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); +typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint* ids); +typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); + +#define glBindTransformFeedbackNV GLEW_GET_FUN(__glewBindTransformFeedbackNV) +#define glDeleteTransformFeedbacksNV GLEW_GET_FUN(__glewDeleteTransformFeedbacksNV) +#define glDrawTransformFeedbackNV GLEW_GET_FUN(__glewDrawTransformFeedbackNV) +#define glGenTransformFeedbacksNV GLEW_GET_FUN(__glewGenTransformFeedbacksNV) +#define glIsTransformFeedbackNV GLEW_GET_FUN(__glewIsTransformFeedbackNV) +#define glPauseTransformFeedbackNV GLEW_GET_FUN(__glewPauseTransformFeedbackNV) +#define glResumeTransformFeedbackNV GLEW_GET_FUN(__glewResumeTransformFeedbackNV) + +#define GLEW_NV_transform_feedback2 GLEW_GET_VAR(__GLEW_NV_transform_feedback2) + +#endif /* GL_NV_transform_feedback2 */ + +/* -------------------------- GL_NV_vdpau_interop -------------------------- */ + +#ifndef GL_NV_vdpau_interop +#define GL_NV_vdpau_interop 1 + +#define GL_SURFACE_STATE_NV 0x86EB +#define GL_SURFACE_REGISTERED_NV 0x86FD +#define GL_SURFACE_MAPPED_NV 0x8700 +#define GL_WRITE_DISCARD_NV 0x88BE + +typedef GLintptr GLvdpauSurfaceNV; + +typedef void (GLAPIENTRY * PFNGLVDPAUFININVPROC) (void); +typedef void (GLAPIENTRY * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); +typedef void (GLAPIENTRY * PFNGLVDPAUINITNVPROC) (const void* vdpDevice, const GLvoid*getProcAddress); +typedef void (GLAPIENTRY * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); +typedef void (GLAPIENTRY * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces); +typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +typedef void (GLAPIENTRY * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); +typedef void (GLAPIENTRY * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces); +typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); + +#define glVDPAUFiniNV GLEW_GET_FUN(__glewVDPAUFiniNV) +#define glVDPAUGetSurfaceivNV GLEW_GET_FUN(__glewVDPAUGetSurfaceivNV) +#define glVDPAUInitNV GLEW_GET_FUN(__glewVDPAUInitNV) +#define glVDPAUIsSurfaceNV GLEW_GET_FUN(__glewVDPAUIsSurfaceNV) +#define glVDPAUMapSurfacesNV GLEW_GET_FUN(__glewVDPAUMapSurfacesNV) +#define glVDPAURegisterOutputSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterOutputSurfaceNV) +#define glVDPAURegisterVideoSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceNV) +#define glVDPAUSurfaceAccessNV GLEW_GET_FUN(__glewVDPAUSurfaceAccessNV) +#define glVDPAUUnmapSurfacesNV GLEW_GET_FUN(__glewVDPAUUnmapSurfacesNV) +#define glVDPAUUnregisterSurfaceNV GLEW_GET_FUN(__glewVDPAUUnregisterSurfaceNV) + +#define GLEW_NV_vdpau_interop GLEW_GET_VAR(__GLEW_NV_vdpau_interop) + +#endif /* GL_NV_vdpau_interop */ + +/* ------------------------ GL_NV_vertex_array_range ----------------------- */ + +#ifndef GL_NV_vertex_array_range +#define GL_NV_vertex_array_range 1 + +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 + +typedef void (GLAPIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, void* pointer); + +#define glFlushVertexArrayRangeNV GLEW_GET_FUN(__glewFlushVertexArrayRangeNV) +#define glVertexArrayRangeNV GLEW_GET_FUN(__glewVertexArrayRangeNV) + +#define GLEW_NV_vertex_array_range GLEW_GET_VAR(__GLEW_NV_vertex_array_range) + +#endif /* GL_NV_vertex_array_range */ + +/* ----------------------- GL_NV_vertex_array_range2 ----------------------- */ + +#ifndef GL_NV_vertex_array_range2 +#define GL_NV_vertex_array_range2 1 + +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 + +#define GLEW_NV_vertex_array_range2 GLEW_GET_VAR(__GLEW_NV_vertex_array_range2) + +#endif /* GL_NV_vertex_array_range2 */ + +/* ------------------- GL_NV_vertex_attrib_integer_64bit ------------------- */ + +#ifndef GL_NV_vertex_attrib_integer_64bit +#define GL_NV_vertex_attrib_integer_64bit 1 + +#define GL_INT64_NV 0x140E +#define GL_UNSIGNED_INT64_NV 0x140F + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); + +#define glGetVertexAttribLi64vNV GLEW_GET_FUN(__glewGetVertexAttribLi64vNV) +#define glGetVertexAttribLui64vNV GLEW_GET_FUN(__glewGetVertexAttribLui64vNV) +#define glVertexAttribL1i64NV GLEW_GET_FUN(__glewVertexAttribL1i64NV) +#define glVertexAttribL1i64vNV GLEW_GET_FUN(__glewVertexAttribL1i64vNV) +#define glVertexAttribL1ui64NV GLEW_GET_FUN(__glewVertexAttribL1ui64NV) +#define glVertexAttribL1ui64vNV GLEW_GET_FUN(__glewVertexAttribL1ui64vNV) +#define glVertexAttribL2i64NV GLEW_GET_FUN(__glewVertexAttribL2i64NV) +#define glVertexAttribL2i64vNV GLEW_GET_FUN(__glewVertexAttribL2i64vNV) +#define glVertexAttribL2ui64NV GLEW_GET_FUN(__glewVertexAttribL2ui64NV) +#define glVertexAttribL2ui64vNV GLEW_GET_FUN(__glewVertexAttribL2ui64vNV) +#define glVertexAttribL3i64NV GLEW_GET_FUN(__glewVertexAttribL3i64NV) +#define glVertexAttribL3i64vNV GLEW_GET_FUN(__glewVertexAttribL3i64vNV) +#define glVertexAttribL3ui64NV GLEW_GET_FUN(__glewVertexAttribL3ui64NV) +#define glVertexAttribL3ui64vNV GLEW_GET_FUN(__glewVertexAttribL3ui64vNV) +#define glVertexAttribL4i64NV GLEW_GET_FUN(__glewVertexAttribL4i64NV) +#define glVertexAttribL4i64vNV GLEW_GET_FUN(__glewVertexAttribL4i64vNV) +#define glVertexAttribL4ui64NV GLEW_GET_FUN(__glewVertexAttribL4ui64NV) +#define glVertexAttribL4ui64vNV GLEW_GET_FUN(__glewVertexAttribL4ui64vNV) +#define glVertexAttribLFormatNV GLEW_GET_FUN(__glewVertexAttribLFormatNV) + +#define GLEW_NV_vertex_attrib_integer_64bit GLEW_GET_VAR(__GLEW_NV_vertex_attrib_integer_64bit) + +#endif /* GL_NV_vertex_attrib_integer_64bit */ + +/* ------------------- GL_NV_vertex_buffer_unified_memory ------------------ */ + +#ifndef GL_NV_vertex_buffer_unified_memory +#define GL_NV_vertex_buffer_unified_memory 1 + +#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E +#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F +#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 +#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 +#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 +#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 +#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 +#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 +#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 +#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 +#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 +#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 +#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A +#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B +#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C +#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D +#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E +#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F +#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 +#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 +#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 +#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 +#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 +#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 +#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 + +typedef void (GLAPIENTRY * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); +typedef void (GLAPIENTRY * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT result[]); +typedef void (GLAPIENTRY * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); + +#define glBufferAddressRangeNV GLEW_GET_FUN(__glewBufferAddressRangeNV) +#define glColorFormatNV GLEW_GET_FUN(__glewColorFormatNV) +#define glEdgeFlagFormatNV GLEW_GET_FUN(__glewEdgeFlagFormatNV) +#define glFogCoordFormatNV GLEW_GET_FUN(__glewFogCoordFormatNV) +#define glGetIntegerui64i_vNV GLEW_GET_FUN(__glewGetIntegerui64i_vNV) +#define glIndexFormatNV GLEW_GET_FUN(__glewIndexFormatNV) +#define glNormalFormatNV GLEW_GET_FUN(__glewNormalFormatNV) +#define glSecondaryColorFormatNV GLEW_GET_FUN(__glewSecondaryColorFormatNV) +#define glTexCoordFormatNV GLEW_GET_FUN(__glewTexCoordFormatNV) +#define glVertexAttribFormatNV GLEW_GET_FUN(__glewVertexAttribFormatNV) +#define glVertexAttribIFormatNV GLEW_GET_FUN(__glewVertexAttribIFormatNV) +#define glVertexFormatNV GLEW_GET_FUN(__glewVertexFormatNV) + +#define GLEW_NV_vertex_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_vertex_buffer_unified_memory) + +#endif /* GL_NV_vertex_buffer_unified_memory */ + +/* -------------------------- GL_NV_vertex_program ------------------------- */ + +#ifndef GL_NV_vertex_program +#define GL_NV_vertex_program 1 + +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F + +typedef GLboolean (GLAPIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint* ids, GLboolean *residences); +typedef void (GLAPIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte* program); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid** pointer); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte* program); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, GLuint* ids); +typedef void (GLAPIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei n, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei n, const GLfloat* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei n, const GLshort* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei n, const GLubyte* v); + +#define glAreProgramsResidentNV GLEW_GET_FUN(__glewAreProgramsResidentNV) +#define glBindProgramNV GLEW_GET_FUN(__glewBindProgramNV) +#define glDeleteProgramsNV GLEW_GET_FUN(__glewDeleteProgramsNV) +#define glExecuteProgramNV GLEW_GET_FUN(__glewExecuteProgramNV) +#define glGenProgramsNV GLEW_GET_FUN(__glewGenProgramsNV) +#define glGetProgramParameterdvNV GLEW_GET_FUN(__glewGetProgramParameterdvNV) +#define glGetProgramParameterfvNV GLEW_GET_FUN(__glewGetProgramParameterfvNV) +#define glGetProgramStringNV GLEW_GET_FUN(__glewGetProgramStringNV) +#define glGetProgramivNV GLEW_GET_FUN(__glewGetProgramivNV) +#define glGetTrackMatrixivNV GLEW_GET_FUN(__glewGetTrackMatrixivNV) +#define glGetVertexAttribPointervNV GLEW_GET_FUN(__glewGetVertexAttribPointervNV) +#define glGetVertexAttribdvNV GLEW_GET_FUN(__glewGetVertexAttribdvNV) +#define glGetVertexAttribfvNV GLEW_GET_FUN(__glewGetVertexAttribfvNV) +#define glGetVertexAttribivNV GLEW_GET_FUN(__glewGetVertexAttribivNV) +#define glIsProgramNV GLEW_GET_FUN(__glewIsProgramNV) +#define glLoadProgramNV GLEW_GET_FUN(__glewLoadProgramNV) +#define glProgramParameter4dNV GLEW_GET_FUN(__glewProgramParameter4dNV) +#define glProgramParameter4dvNV GLEW_GET_FUN(__glewProgramParameter4dvNV) +#define glProgramParameter4fNV GLEW_GET_FUN(__glewProgramParameter4fNV) +#define glProgramParameter4fvNV GLEW_GET_FUN(__glewProgramParameter4fvNV) +#define glProgramParameters4dvNV GLEW_GET_FUN(__glewProgramParameters4dvNV) +#define glProgramParameters4fvNV GLEW_GET_FUN(__glewProgramParameters4fvNV) +#define glRequestResidentProgramsNV GLEW_GET_FUN(__glewRequestResidentProgramsNV) +#define glTrackMatrixNV GLEW_GET_FUN(__glewTrackMatrixNV) +#define glVertexAttrib1dNV GLEW_GET_FUN(__glewVertexAttrib1dNV) +#define glVertexAttrib1dvNV GLEW_GET_FUN(__glewVertexAttrib1dvNV) +#define glVertexAttrib1fNV GLEW_GET_FUN(__glewVertexAttrib1fNV) +#define glVertexAttrib1fvNV GLEW_GET_FUN(__glewVertexAttrib1fvNV) +#define glVertexAttrib1sNV GLEW_GET_FUN(__glewVertexAttrib1sNV) +#define glVertexAttrib1svNV GLEW_GET_FUN(__glewVertexAttrib1svNV) +#define glVertexAttrib2dNV GLEW_GET_FUN(__glewVertexAttrib2dNV) +#define glVertexAttrib2dvNV GLEW_GET_FUN(__glewVertexAttrib2dvNV) +#define glVertexAttrib2fNV GLEW_GET_FUN(__glewVertexAttrib2fNV) +#define glVertexAttrib2fvNV GLEW_GET_FUN(__glewVertexAttrib2fvNV) +#define glVertexAttrib2sNV GLEW_GET_FUN(__glewVertexAttrib2sNV) +#define glVertexAttrib2svNV GLEW_GET_FUN(__glewVertexAttrib2svNV) +#define glVertexAttrib3dNV GLEW_GET_FUN(__glewVertexAttrib3dNV) +#define glVertexAttrib3dvNV GLEW_GET_FUN(__glewVertexAttrib3dvNV) +#define glVertexAttrib3fNV GLEW_GET_FUN(__glewVertexAttrib3fNV) +#define glVertexAttrib3fvNV GLEW_GET_FUN(__glewVertexAttrib3fvNV) +#define glVertexAttrib3sNV GLEW_GET_FUN(__glewVertexAttrib3sNV) +#define glVertexAttrib3svNV GLEW_GET_FUN(__glewVertexAttrib3svNV) +#define glVertexAttrib4dNV GLEW_GET_FUN(__glewVertexAttrib4dNV) +#define glVertexAttrib4dvNV GLEW_GET_FUN(__glewVertexAttrib4dvNV) +#define glVertexAttrib4fNV GLEW_GET_FUN(__glewVertexAttrib4fNV) +#define glVertexAttrib4fvNV GLEW_GET_FUN(__glewVertexAttrib4fvNV) +#define glVertexAttrib4sNV GLEW_GET_FUN(__glewVertexAttrib4sNV) +#define glVertexAttrib4svNV GLEW_GET_FUN(__glewVertexAttrib4svNV) +#define glVertexAttrib4ubNV GLEW_GET_FUN(__glewVertexAttrib4ubNV) +#define glVertexAttrib4ubvNV GLEW_GET_FUN(__glewVertexAttrib4ubvNV) +#define glVertexAttribPointerNV GLEW_GET_FUN(__glewVertexAttribPointerNV) +#define glVertexAttribs1dvNV GLEW_GET_FUN(__glewVertexAttribs1dvNV) +#define glVertexAttribs1fvNV GLEW_GET_FUN(__glewVertexAttribs1fvNV) +#define glVertexAttribs1svNV GLEW_GET_FUN(__glewVertexAttribs1svNV) +#define glVertexAttribs2dvNV GLEW_GET_FUN(__glewVertexAttribs2dvNV) +#define glVertexAttribs2fvNV GLEW_GET_FUN(__glewVertexAttribs2fvNV) +#define glVertexAttribs2svNV GLEW_GET_FUN(__glewVertexAttribs2svNV) +#define glVertexAttribs3dvNV GLEW_GET_FUN(__glewVertexAttribs3dvNV) +#define glVertexAttribs3fvNV GLEW_GET_FUN(__glewVertexAttribs3fvNV) +#define glVertexAttribs3svNV GLEW_GET_FUN(__glewVertexAttribs3svNV) +#define glVertexAttribs4dvNV GLEW_GET_FUN(__glewVertexAttribs4dvNV) +#define glVertexAttribs4fvNV GLEW_GET_FUN(__glewVertexAttribs4fvNV) +#define glVertexAttribs4svNV GLEW_GET_FUN(__glewVertexAttribs4svNV) +#define glVertexAttribs4ubvNV GLEW_GET_FUN(__glewVertexAttribs4ubvNV) + +#define GLEW_NV_vertex_program GLEW_GET_VAR(__GLEW_NV_vertex_program) + +#endif /* GL_NV_vertex_program */ + +/* ------------------------ GL_NV_vertex_program1_1 ------------------------ */ + +#ifndef GL_NV_vertex_program1_1 +#define GL_NV_vertex_program1_1 1 + +#define GLEW_NV_vertex_program1_1 GLEW_GET_VAR(__GLEW_NV_vertex_program1_1) + +#endif /* GL_NV_vertex_program1_1 */ + +/* ------------------------- GL_NV_vertex_program2 ------------------------- */ + +#ifndef GL_NV_vertex_program2 +#define GL_NV_vertex_program2 1 + +#define GLEW_NV_vertex_program2 GLEW_GET_VAR(__GLEW_NV_vertex_program2) + +#endif /* GL_NV_vertex_program2 */ + +/* ---------------------- GL_NV_vertex_program2_option --------------------- */ + +#ifndef GL_NV_vertex_program2_option +#define GL_NV_vertex_program2_option 1 + +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 + +#define GLEW_NV_vertex_program2_option GLEW_GET_VAR(__GLEW_NV_vertex_program2_option) + +#endif /* GL_NV_vertex_program2_option */ + +/* ------------------------- GL_NV_vertex_program3 ------------------------- */ + +#ifndef GL_NV_vertex_program3 +#define GL_NV_vertex_program3 1 + +#define MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C + +#define GLEW_NV_vertex_program3 GLEW_GET_VAR(__GLEW_NV_vertex_program3) + +#endif /* GL_NV_vertex_program3 */ + +/* ------------------------- GL_NV_vertex_program4 ------------------------- */ + +#ifndef GL_NV_vertex_program4 +#define GL_NV_vertex_program4 1 + +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD + +#define GLEW_NV_vertex_program4 GLEW_GET_VAR(__GLEW_NV_vertex_program4) + +#endif /* GL_NV_vertex_program4 */ + +/* ------------------------ GL_OES_byte_coordinates ------------------------ */ + +#ifndef GL_OES_byte_coordinates +#define GL_OES_byte_coordinates 1 + +#define GL_BYTE 0x1400 + +#define GLEW_OES_byte_coordinates GLEW_GET_VAR(__GLEW_OES_byte_coordinates) + +#endif /* GL_OES_byte_coordinates */ + +/* ------------------- GL_OES_compressed_paletted_texture ------------------ */ + +#ifndef GL_OES_compressed_paletted_texture +#define GL_OES_compressed_paletted_texture 1 + +#define GL_PALETTE4_RGB8_OES 0x8B90 +#define GL_PALETTE4_RGBA8_OES 0x8B91 +#define GL_PALETTE4_R5_G6_B5_OES 0x8B92 +#define GL_PALETTE4_RGBA4_OES 0x8B93 +#define GL_PALETTE4_RGB5_A1_OES 0x8B94 +#define GL_PALETTE8_RGB8_OES 0x8B95 +#define GL_PALETTE8_RGBA8_OES 0x8B96 +#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 +#define GL_PALETTE8_RGBA4_OES 0x8B98 +#define GL_PALETTE8_RGB5_A1_OES 0x8B99 + +#define GLEW_OES_compressed_paletted_texture GLEW_GET_VAR(__GLEW_OES_compressed_paletted_texture) + +#endif /* GL_OES_compressed_paletted_texture */ + +/* --------------------------- GL_OES_read_format -------------------------- */ + +#ifndef GL_OES_read_format +#define GL_OES_read_format 1 + +#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B + +#define GLEW_OES_read_format GLEW_GET_VAR(__GLEW_OES_read_format) + +#endif /* GL_OES_read_format */ + +/* ------------------------ GL_OES_single_precision ------------------------ */ + +#ifndef GL_OES_single_precision +#define GL_OES_single_precision 1 + +typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFOESPROC) (GLclampd depth); +typedef void (GLAPIENTRY * PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat* equation); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); +typedef void (GLAPIENTRY * PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); +typedef void (GLAPIENTRY * PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat* equation); +typedef void (GLAPIENTRY * PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); + +#define glClearDepthfOES GLEW_GET_FUN(__glewClearDepthfOES) +#define glClipPlanefOES GLEW_GET_FUN(__glewClipPlanefOES) +#define glDepthRangefOES GLEW_GET_FUN(__glewDepthRangefOES) +#define glFrustumfOES GLEW_GET_FUN(__glewFrustumfOES) +#define glGetClipPlanefOES GLEW_GET_FUN(__glewGetClipPlanefOES) +#define glOrthofOES GLEW_GET_FUN(__glewOrthofOES) + +#define GLEW_OES_single_precision GLEW_GET_VAR(__GLEW_OES_single_precision) + +#endif /* GL_OES_single_precision */ + +/* ---------------------------- GL_OML_interlace --------------------------- */ + +#ifndef GL_OML_interlace +#define GL_OML_interlace 1 + +#define GL_INTERLACE_OML 0x8980 +#define GL_INTERLACE_READ_OML 0x8981 + +#define GLEW_OML_interlace GLEW_GET_VAR(__GLEW_OML_interlace) + +#endif /* GL_OML_interlace */ + +/* ---------------------------- GL_OML_resample ---------------------------- */ + +#ifndef GL_OML_resample +#define GL_OML_resample 1 + +#define GL_PACK_RESAMPLE_OML 0x8984 +#define GL_UNPACK_RESAMPLE_OML 0x8985 +#define GL_RESAMPLE_REPLICATE_OML 0x8986 +#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 +#define GL_RESAMPLE_AVERAGE_OML 0x8988 +#define GL_RESAMPLE_DECIMATE_OML 0x8989 + +#define GLEW_OML_resample GLEW_GET_VAR(__GLEW_OML_resample) + +#endif /* GL_OML_resample */ + +/* ---------------------------- GL_OML_subsample --------------------------- */ + +#ifndef GL_OML_subsample +#define GL_OML_subsample 1 + +#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 +#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 + +#define GLEW_OML_subsample GLEW_GET_VAR(__GLEW_OML_subsample) + +#endif /* GL_OML_subsample */ + +/* --------------------------- GL_PGI_misc_hints --------------------------- */ + +#ifndef GL_PGI_misc_hints +#define GL_PGI_misc_hints 1 + +#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000 +#define GL_CONSERVE_MEMORY_HINT_PGI 107005 +#define GL_RECLAIM_MEMORY_HINT_PGI 107006 +#define GL_NATIVE_GRAPHICS_HANDLE_PGI 107010 +#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011 +#define GL_NATIVE_GRAPHICS_END_HINT_PGI 107012 +#define GL_ALWAYS_FAST_HINT_PGI 107020 +#define GL_ALWAYS_SOFT_HINT_PGI 107021 +#define GL_ALLOW_DRAW_OBJ_HINT_PGI 107022 +#define GL_ALLOW_DRAW_WIN_HINT_PGI 107023 +#define GL_ALLOW_DRAW_FRG_HINT_PGI 107024 +#define GL_ALLOW_DRAW_MEM_HINT_PGI 107025 +#define GL_STRICT_DEPTHFUNC_HINT_PGI 107030 +#define GL_STRICT_LIGHTING_HINT_PGI 107031 +#define GL_STRICT_SCISSOR_HINT_PGI 107032 +#define GL_FULL_STIPPLE_HINT_PGI 107033 +#define GL_CLIP_NEAR_HINT_PGI 107040 +#define GL_CLIP_FAR_HINT_PGI 107041 +#define GL_WIDE_LINE_HINT_PGI 107042 +#define GL_BACK_NORMALS_HINT_PGI 107043 + +#define GLEW_PGI_misc_hints GLEW_GET_VAR(__GLEW_PGI_misc_hints) + +#endif /* GL_PGI_misc_hints */ + +/* -------------------------- GL_PGI_vertex_hints -------------------------- */ + +#ifndef GL_PGI_vertex_hints +#define GL_PGI_vertex_hints 1 + +#define GL_VERTEX23_BIT_PGI 0x00000004 +#define GL_VERTEX4_BIT_PGI 0x00000008 +#define GL_COLOR3_BIT_PGI 0x00010000 +#define GL_COLOR4_BIT_PGI 0x00020000 +#define GL_EDGEFLAG_BIT_PGI 0x00040000 +#define GL_INDEX_BIT_PGI 0x00080000 +#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 +#define GL_VERTEX_DATA_HINT_PGI 107050 +#define GL_VERTEX_CONSISTENT_HINT_PGI 107051 +#define GL_MATERIAL_SIDE_HINT_PGI 107052 +#define GL_MAX_VERTEX_HINT_PGI 107053 +#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 +#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 +#define GL_MAT_EMISSION_BIT_PGI 0x00800000 +#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 +#define GL_MAT_SHININESS_BIT_PGI 0x02000000 +#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 +#define GL_NORMAL_BIT_PGI 0x08000000 +#define GL_TEXCOORD1_BIT_PGI 0x10000000 +#define GL_TEXCOORD2_BIT_PGI 0x20000000 +#define GL_TEXCOORD3_BIT_PGI 0x40000000 +#define GL_TEXCOORD4_BIT_PGI 0x80000000 + +#define GLEW_PGI_vertex_hints GLEW_GET_VAR(__GLEW_PGI_vertex_hints) + +#endif /* GL_PGI_vertex_hints */ + +/* ----------------------- GL_REND_screen_coordinates ---------------------- */ + +#ifndef GL_REND_screen_coordinates +#define GL_REND_screen_coordinates 1 + +#define GL_SCREEN_COORDINATES_REND 0x8490 +#define GL_INVERTED_SCREEN_W_REND 0x8491 + +#define GLEW_REND_screen_coordinates GLEW_GET_VAR(__GLEW_REND_screen_coordinates) + +#endif /* GL_REND_screen_coordinates */ + +/* ------------------------------- GL_S3_s3tc ------------------------------ */ + +#ifndef GL_S3_s3tc +#define GL_S3_s3tc 1 + +#define GL_RGB_S3TC 0x83A0 +#define GL_RGB4_S3TC 0x83A1 +#define GL_RGBA_S3TC 0x83A2 +#define GL_RGBA4_S3TC 0x83A3 +#define GL_RGBA_DXT5_S3TC 0x83A4 +#define GL_RGBA4_DXT5_S3TC 0x83A5 + +#define GLEW_S3_s3tc GLEW_GET_VAR(__GLEW_S3_s3tc) + +#endif /* GL_S3_s3tc */ + +/* -------------------------- GL_SGIS_color_range -------------------------- */ + +#ifndef GL_SGIS_color_range +#define GL_SGIS_color_range 1 + +#define GL_EXTENDED_RANGE_SGIS 0x85A5 +#define GL_MIN_RED_SGIS 0x85A6 +#define GL_MAX_RED_SGIS 0x85A7 +#define GL_MIN_GREEN_SGIS 0x85A8 +#define GL_MAX_GREEN_SGIS 0x85A9 +#define GL_MIN_BLUE_SGIS 0x85AA +#define GL_MAX_BLUE_SGIS 0x85AB +#define GL_MIN_ALPHA_SGIS 0x85AC +#define GL_MAX_ALPHA_SGIS 0x85AD + +#define GLEW_SGIS_color_range GLEW_GET_VAR(__GLEW_SGIS_color_range) + +#endif /* GL_SGIS_color_range */ + +/* ------------------------- GL_SGIS_detail_texture ------------------------ */ + +#ifndef GL_SGIS_detail_texture +#define GL_SGIS_detail_texture 1 + +typedef void (GLAPIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); +typedef void (GLAPIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat* points); + +#define glDetailTexFuncSGIS GLEW_GET_FUN(__glewDetailTexFuncSGIS) +#define glGetDetailTexFuncSGIS GLEW_GET_FUN(__glewGetDetailTexFuncSGIS) + +#define GLEW_SGIS_detail_texture GLEW_GET_VAR(__GLEW_SGIS_detail_texture) + +#endif /* GL_SGIS_detail_texture */ + +/* -------------------------- GL_SGIS_fog_function ------------------------- */ + +#ifndef GL_SGIS_fog_function +#define GL_SGIS_fog_function 1 + +typedef void (GLAPIENTRY * PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat* points); +typedef void (GLAPIENTRY * PFNGLGETFOGFUNCSGISPROC) (GLfloat* points); + +#define glFogFuncSGIS GLEW_GET_FUN(__glewFogFuncSGIS) +#define glGetFogFuncSGIS GLEW_GET_FUN(__glewGetFogFuncSGIS) + +#define GLEW_SGIS_fog_function GLEW_GET_VAR(__GLEW_SGIS_fog_function) + +#endif /* GL_SGIS_fog_function */ + +/* ------------------------ GL_SGIS_generate_mipmap ------------------------ */ + +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 + +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 + +#define GLEW_SGIS_generate_mipmap GLEW_GET_VAR(__GLEW_SGIS_generate_mipmap) + +#endif /* GL_SGIS_generate_mipmap */ + +/* -------------------------- GL_SGIS_multisample -------------------------- */ + +#ifndef GL_SGIS_multisample +#define GL_SGIS_multisample 1 + +#define GL_MULTISAMPLE_SGIS 0x809D +#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F +#define GL_SAMPLE_MASK_SGIS 0x80A0 +#define GL_1PASS_SGIS 0x80A1 +#define GL_2PASS_0_SGIS 0x80A2 +#define GL_2PASS_1_SGIS 0x80A3 +#define GL_4PASS_0_SGIS 0x80A4 +#define GL_4PASS_1_SGIS 0x80A5 +#define GL_4PASS_2_SGIS 0x80A6 +#define GL_4PASS_3_SGIS 0x80A7 +#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 +#define GL_SAMPLES_SGIS 0x80A9 +#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA +#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB +#define GL_SAMPLE_PATTERN_SGIS 0x80AC +#define GL_MULTISAMPLE_BIT_EXT 0x20000000 + +typedef void (GLAPIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); +typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); + +#define glSampleMaskSGIS GLEW_GET_FUN(__glewSampleMaskSGIS) +#define glSamplePatternSGIS GLEW_GET_FUN(__glewSamplePatternSGIS) + +#define GLEW_SGIS_multisample GLEW_GET_VAR(__GLEW_SGIS_multisample) + +#endif /* GL_SGIS_multisample */ + +/* ------------------------- GL_SGIS_pixel_texture ------------------------- */ + +#ifndef GL_SGIS_pixel_texture +#define GL_SGIS_pixel_texture 1 + +#define GLEW_SGIS_pixel_texture GLEW_GET_VAR(__GLEW_SGIS_pixel_texture) + +#endif /* GL_SGIS_pixel_texture */ + +/* ----------------------- GL_SGIS_point_line_texgen ----------------------- */ + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 + +#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 +#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 +#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 +#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 +#define GL_EYE_POINT_SGIS 0x81F4 +#define GL_OBJECT_POINT_SGIS 0x81F5 +#define GL_EYE_LINE_SGIS 0x81F6 +#define GL_OBJECT_LINE_SGIS 0x81F7 + +#define GLEW_SGIS_point_line_texgen GLEW_GET_VAR(__GLEW_SGIS_point_line_texgen) + +#endif /* GL_SGIS_point_line_texgen */ + +/* ------------------------ GL_SGIS_sharpen_texture ------------------------ */ + +#ifndef GL_SGIS_sharpen_texture +#define GL_SGIS_sharpen_texture 1 + +typedef void (GLAPIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat* points); +typedef void (GLAPIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat* points); + +#define glGetSharpenTexFuncSGIS GLEW_GET_FUN(__glewGetSharpenTexFuncSGIS) +#define glSharpenTexFuncSGIS GLEW_GET_FUN(__glewSharpenTexFuncSGIS) + +#define GLEW_SGIS_sharpen_texture GLEW_GET_VAR(__GLEW_SGIS_sharpen_texture) + +#endif /* GL_SGIS_sharpen_texture */ + +/* --------------------------- GL_SGIS_texture4D --------------------------- */ + +#ifndef GL_SGIS_texture4D +#define GL_SGIS_texture4D 1 + +typedef void (GLAPIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void* pixels); + +#define glTexImage4DSGIS GLEW_GET_FUN(__glewTexImage4DSGIS) +#define glTexSubImage4DSGIS GLEW_GET_FUN(__glewTexSubImage4DSGIS) + +#define GLEW_SGIS_texture4D GLEW_GET_VAR(__GLEW_SGIS_texture4D) + +#endif /* GL_SGIS_texture4D */ + +/* ---------------------- GL_SGIS_texture_border_clamp --------------------- */ + +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 + +#define GL_CLAMP_TO_BORDER_SGIS 0x812D + +#define GLEW_SGIS_texture_border_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_border_clamp) + +#endif /* GL_SGIS_texture_border_clamp */ + +/* ----------------------- GL_SGIS_texture_edge_clamp ---------------------- */ + +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 + +#define GL_CLAMP_TO_EDGE_SGIS 0x812F + +#define GLEW_SGIS_texture_edge_clamp GLEW_GET_VAR(__GLEW_SGIS_texture_edge_clamp) + +#endif /* GL_SGIS_texture_edge_clamp */ + +/* ------------------------ GL_SGIS_texture_filter4 ------------------------ */ + +#ifndef GL_SGIS_texture_filter4 +#define GL_SGIS_texture_filter4 1 + +typedef void (GLAPIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat* weights); +typedef void (GLAPIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat* weights); + +#define glGetTexFilterFuncSGIS GLEW_GET_FUN(__glewGetTexFilterFuncSGIS) +#define glTexFilterFuncSGIS GLEW_GET_FUN(__glewTexFilterFuncSGIS) + +#define GLEW_SGIS_texture_filter4 GLEW_GET_VAR(__GLEW_SGIS_texture_filter4) + +#endif /* GL_SGIS_texture_filter4 */ + +/* -------------------------- GL_SGIS_texture_lod -------------------------- */ + +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 + +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D + +#define GLEW_SGIS_texture_lod GLEW_GET_VAR(__GLEW_SGIS_texture_lod) + +#endif /* GL_SGIS_texture_lod */ + +/* ------------------------- GL_SGIS_texture_select ------------------------ */ + +#ifndef GL_SGIS_texture_select +#define GL_SGIS_texture_select 1 + +#define GLEW_SGIS_texture_select GLEW_GET_VAR(__GLEW_SGIS_texture_select) + +#endif /* GL_SGIS_texture_select */ + +/* ----------------------------- GL_SGIX_async ----------------------------- */ + +#ifndef GL_SGIX_async +#define GL_SGIX_async 1 + +#define GL_ASYNC_MARKER_SGIX 0x8329 + +typedef void (GLAPIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker); +typedef void (GLAPIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); +typedef GLint (GLAPIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint* markerp); +typedef GLuint (GLAPIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); +typedef GLboolean (GLAPIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); +typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); + +#define glAsyncMarkerSGIX GLEW_GET_FUN(__glewAsyncMarkerSGIX) +#define glDeleteAsyncMarkersSGIX GLEW_GET_FUN(__glewDeleteAsyncMarkersSGIX) +#define glFinishAsyncSGIX GLEW_GET_FUN(__glewFinishAsyncSGIX) +#define glGenAsyncMarkersSGIX GLEW_GET_FUN(__glewGenAsyncMarkersSGIX) +#define glIsAsyncMarkerSGIX GLEW_GET_FUN(__glewIsAsyncMarkerSGIX) +#define glPollAsyncSGIX GLEW_GET_FUN(__glewPollAsyncSGIX) + +#define GLEW_SGIX_async GLEW_GET_VAR(__GLEW_SGIX_async) + +#endif /* GL_SGIX_async */ + +/* ------------------------ GL_SGIX_async_histogram ------------------------ */ + +#ifndef GL_SGIX_async_histogram +#define GL_SGIX_async_histogram 1 + +#define GL_ASYNC_HISTOGRAM_SGIX 0x832C +#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D + +#define GLEW_SGIX_async_histogram GLEW_GET_VAR(__GLEW_SGIX_async_histogram) + +#endif /* GL_SGIX_async_histogram */ + +/* -------------------------- GL_SGIX_async_pixel -------------------------- */ + +#ifndef GL_SGIX_async_pixel +#define GL_SGIX_async_pixel 1 + +#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C +#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D +#define GL_ASYNC_READ_PIXELS_SGIX 0x835E +#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F +#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 +#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 + +#define GLEW_SGIX_async_pixel GLEW_GET_VAR(__GLEW_SGIX_async_pixel) + +#endif /* GL_SGIX_async_pixel */ + +/* ----------------------- GL_SGIX_blend_alpha_minmax ---------------------- */ + +#ifndef GL_SGIX_blend_alpha_minmax +#define GL_SGIX_blend_alpha_minmax 1 + +#define GL_ALPHA_MIN_SGIX 0x8320 +#define GL_ALPHA_MAX_SGIX 0x8321 + +#define GLEW_SGIX_blend_alpha_minmax GLEW_GET_VAR(__GLEW_SGIX_blend_alpha_minmax) + +#endif /* GL_SGIX_blend_alpha_minmax */ + +/* ---------------------------- GL_SGIX_clipmap ---------------------------- */ + +#ifndef GL_SGIX_clipmap +#define GL_SGIX_clipmap 1 + +#define GLEW_SGIX_clipmap GLEW_GET_VAR(__GLEW_SGIX_clipmap) + +#endif /* GL_SGIX_clipmap */ + +/* ---------------------- GL_SGIX_convolution_accuracy --------------------- */ + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 + +#define GL_CONVOLUTION_HINT_SGIX 0x8316 + +#define GLEW_SGIX_convolution_accuracy GLEW_GET_VAR(__GLEW_SGIX_convolution_accuracy) + +#endif /* GL_SGIX_convolution_accuracy */ + +/* ------------------------- GL_SGIX_depth_texture ------------------------- */ + +#ifndef GL_SGIX_depth_texture +#define GL_SGIX_depth_texture 1 + +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 + +#define GLEW_SGIX_depth_texture GLEW_GET_VAR(__GLEW_SGIX_depth_texture) + +#endif /* GL_SGIX_depth_texture */ + +/* -------------------------- GL_SGIX_flush_raster ------------------------- */ + +#ifndef GL_SGIX_flush_raster +#define GL_SGIX_flush_raster 1 + +typedef void (GLAPIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void); + +#define glFlushRasterSGIX GLEW_GET_FUN(__glewFlushRasterSGIX) + +#define GLEW_SGIX_flush_raster GLEW_GET_VAR(__GLEW_SGIX_flush_raster) + +#endif /* GL_SGIX_flush_raster */ + +/* --------------------------- GL_SGIX_fog_offset -------------------------- */ + +#ifndef GL_SGIX_fog_offset +#define GL_SGIX_fog_offset 1 + +#define GL_FOG_OFFSET_SGIX 0x8198 +#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 + +#define GLEW_SGIX_fog_offset GLEW_GET_VAR(__GLEW_SGIX_fog_offset) + +#endif /* GL_SGIX_fog_offset */ + +/* -------------------------- GL_SGIX_fog_texture -------------------------- */ + +#ifndef GL_SGIX_fog_texture +#define GL_SGIX_fog_texture 1 + +#define GL_TEXTURE_FOG_SGIX 0 +#define GL_FOG_PATCHY_FACTOR_SGIX 0 +#define GL_FRAGMENT_FOG_SGIX 0 + +typedef void (GLAPIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname); + +#define glTextureFogSGIX GLEW_GET_FUN(__glewTextureFogSGIX) + +#define GLEW_SGIX_fog_texture GLEW_GET_VAR(__GLEW_SGIX_fog_texture) + +#endif /* GL_SGIX_fog_texture */ + +/* ------------------- GL_SGIX_fragment_specular_lighting ------------------ */ + +#ifndef GL_SGIX_fragment_specular_lighting +#define GL_SGIX_fragment_specular_lighting 1 + +typedef void (GLAPIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, const GLfloat param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, const GLint param); +typedef void (GLAPIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum value, GLfloat* data); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum value, GLint* data); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat* data); +typedef void (GLAPIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint* data); + +#define glFragmentColorMaterialSGIX GLEW_GET_FUN(__glewFragmentColorMaterialSGIX) +#define glFragmentLightModelfSGIX GLEW_GET_FUN(__glewFragmentLightModelfSGIX) +#define glFragmentLightModelfvSGIX GLEW_GET_FUN(__glewFragmentLightModelfvSGIX) +#define glFragmentLightModeliSGIX GLEW_GET_FUN(__glewFragmentLightModeliSGIX) +#define glFragmentLightModelivSGIX GLEW_GET_FUN(__glewFragmentLightModelivSGIX) +#define glFragmentLightfSGIX GLEW_GET_FUN(__glewFragmentLightfSGIX) +#define glFragmentLightfvSGIX GLEW_GET_FUN(__glewFragmentLightfvSGIX) +#define glFragmentLightiSGIX GLEW_GET_FUN(__glewFragmentLightiSGIX) +#define glFragmentLightivSGIX GLEW_GET_FUN(__glewFragmentLightivSGIX) +#define glFragmentMaterialfSGIX GLEW_GET_FUN(__glewFragmentMaterialfSGIX) +#define glFragmentMaterialfvSGIX GLEW_GET_FUN(__glewFragmentMaterialfvSGIX) +#define glFragmentMaterialiSGIX GLEW_GET_FUN(__glewFragmentMaterialiSGIX) +#define glFragmentMaterialivSGIX GLEW_GET_FUN(__glewFragmentMaterialivSGIX) +#define glGetFragmentLightfvSGIX GLEW_GET_FUN(__glewGetFragmentLightfvSGIX) +#define glGetFragmentLightivSGIX GLEW_GET_FUN(__glewGetFragmentLightivSGIX) +#define glGetFragmentMaterialfvSGIX GLEW_GET_FUN(__glewGetFragmentMaterialfvSGIX) +#define glGetFragmentMaterialivSGIX GLEW_GET_FUN(__glewGetFragmentMaterialivSGIX) + +#define GLEW_SGIX_fragment_specular_lighting GLEW_GET_VAR(__GLEW_SGIX_fragment_specular_lighting) + +#endif /* GL_SGIX_fragment_specular_lighting */ + +/* --------------------------- GL_SGIX_framezoom --------------------------- */ + +#ifndef GL_SGIX_framezoom +#define GL_SGIX_framezoom 1 + +typedef void (GLAPIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor); + +#define glFrameZoomSGIX GLEW_GET_FUN(__glewFrameZoomSGIX) + +#define GLEW_SGIX_framezoom GLEW_GET_VAR(__GLEW_SGIX_framezoom) + +#endif /* GL_SGIX_framezoom */ + +/* --------------------------- GL_SGIX_interlace --------------------------- */ + +#ifndef GL_SGIX_interlace +#define GL_SGIX_interlace 1 + +#define GL_INTERLACE_SGIX 0x8094 + +#define GLEW_SGIX_interlace GLEW_GET_VAR(__GLEW_SGIX_interlace) + +#endif /* GL_SGIX_interlace */ + +/* ------------------------- GL_SGIX_ir_instrument1 ------------------------ */ + +#ifndef GL_SGIX_ir_instrument1 +#define GL_SGIX_ir_instrument1 1 + +#define GLEW_SGIX_ir_instrument1 GLEW_GET_VAR(__GLEW_SGIX_ir_instrument1) + +#endif /* GL_SGIX_ir_instrument1 */ + +/* ------------------------- GL_SGIX_list_priority ------------------------- */ + +#ifndef GL_SGIX_list_priority +#define GL_SGIX_list_priority 1 + +#define GLEW_SGIX_list_priority GLEW_GET_VAR(__GLEW_SGIX_list_priority) + +#endif /* GL_SGIX_list_priority */ + +/* ------------------------- GL_SGIX_pixel_texture ------------------------- */ + +#ifndef GL_SGIX_pixel_texture +#define GL_SGIX_pixel_texture 1 + +typedef void (GLAPIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); + +#define glPixelTexGenSGIX GLEW_GET_FUN(__glewPixelTexGenSGIX) + +#define GLEW_SGIX_pixel_texture GLEW_GET_VAR(__GLEW_SGIX_pixel_texture) + +#endif /* GL_SGIX_pixel_texture */ + +/* ----------------------- GL_SGIX_pixel_texture_bits ---------------------- */ + +#ifndef GL_SGIX_pixel_texture_bits +#define GL_SGIX_pixel_texture_bits 1 + +#define GLEW_SGIX_pixel_texture_bits GLEW_GET_VAR(__GLEW_SGIX_pixel_texture_bits) + +#endif /* GL_SGIX_pixel_texture_bits */ + +/* ------------------------ GL_SGIX_reference_plane ------------------------ */ + +#ifndef GL_SGIX_reference_plane +#define GL_SGIX_reference_plane 1 + +typedef void (GLAPIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble* equation); + +#define glReferencePlaneSGIX GLEW_GET_FUN(__glewReferencePlaneSGIX) + +#define GLEW_SGIX_reference_plane GLEW_GET_VAR(__GLEW_SGIX_reference_plane) + +#endif /* GL_SGIX_reference_plane */ + +/* ---------------------------- GL_SGIX_resample --------------------------- */ + +#ifndef GL_SGIX_resample +#define GL_SGIX_resample 1 + +#define GL_PACK_RESAMPLE_SGIX 0x842E +#define GL_UNPACK_RESAMPLE_SGIX 0x842F +#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 +#define GL_RESAMPLE_REPLICATE_SGIX 0x8433 +#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434 + +#define GLEW_SGIX_resample GLEW_GET_VAR(__GLEW_SGIX_resample) + +#endif /* GL_SGIX_resample */ + +/* ----------------------------- GL_SGIX_shadow ---------------------------- */ + +#ifndef GL_SGIX_shadow +#define GL_SGIX_shadow 1 + +#define GL_TEXTURE_COMPARE_SGIX 0x819A +#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B +#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C +#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D + +#define GLEW_SGIX_shadow GLEW_GET_VAR(__GLEW_SGIX_shadow) + +#endif /* GL_SGIX_shadow */ + +/* ------------------------- GL_SGIX_shadow_ambient ------------------------ */ + +#ifndef GL_SGIX_shadow_ambient +#define GL_SGIX_shadow_ambient 1 + +#define GL_SHADOW_AMBIENT_SGIX 0x80BF + +#define GLEW_SGIX_shadow_ambient GLEW_GET_VAR(__GLEW_SGIX_shadow_ambient) + +#endif /* GL_SGIX_shadow_ambient */ + +/* ----------------------------- GL_SGIX_sprite ---------------------------- */ + +#ifndef GL_SGIX_sprite +#define GL_SGIX_sprite 1 + +typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, GLint* params); + +#define glSpriteParameterfSGIX GLEW_GET_FUN(__glewSpriteParameterfSGIX) +#define glSpriteParameterfvSGIX GLEW_GET_FUN(__glewSpriteParameterfvSGIX) +#define glSpriteParameteriSGIX GLEW_GET_FUN(__glewSpriteParameteriSGIX) +#define glSpriteParameterivSGIX GLEW_GET_FUN(__glewSpriteParameterivSGIX) + +#define GLEW_SGIX_sprite GLEW_GET_VAR(__GLEW_SGIX_sprite) + +#endif /* GL_SGIX_sprite */ + +/* ----------------------- GL_SGIX_tag_sample_buffer ----------------------- */ + +#ifndef GL_SGIX_tag_sample_buffer +#define GL_SGIX_tag_sample_buffer 1 + +typedef void (GLAPIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); + +#define glTagSampleBufferSGIX GLEW_GET_FUN(__glewTagSampleBufferSGIX) + +#define GLEW_SGIX_tag_sample_buffer GLEW_GET_VAR(__GLEW_SGIX_tag_sample_buffer) + +#endif /* GL_SGIX_tag_sample_buffer */ + +/* ------------------------ GL_SGIX_texture_add_env ------------------------ */ + +#ifndef GL_SGIX_texture_add_env +#define GL_SGIX_texture_add_env 1 + +#define GLEW_SGIX_texture_add_env GLEW_GET_VAR(__GLEW_SGIX_texture_add_env) + +#endif /* GL_SGIX_texture_add_env */ + +/* -------------------- GL_SGIX_texture_coordinate_clamp ------------------- */ + +#ifndef GL_SGIX_texture_coordinate_clamp +#define GL_SGIX_texture_coordinate_clamp 1 + +#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 +#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A +#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B + +#define GLEW_SGIX_texture_coordinate_clamp GLEW_GET_VAR(__GLEW_SGIX_texture_coordinate_clamp) + +#endif /* GL_SGIX_texture_coordinate_clamp */ + +/* ------------------------ GL_SGIX_texture_lod_bias ----------------------- */ + +#ifndef GL_SGIX_texture_lod_bias +#define GL_SGIX_texture_lod_bias 1 + +#define GLEW_SGIX_texture_lod_bias GLEW_GET_VAR(__GLEW_SGIX_texture_lod_bias) + +#endif /* GL_SGIX_texture_lod_bias */ + +/* ---------------------- GL_SGIX_texture_multi_buffer --------------------- */ + +#ifndef GL_SGIX_texture_multi_buffer +#define GL_SGIX_texture_multi_buffer 1 + +#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E + +#define GLEW_SGIX_texture_multi_buffer GLEW_GET_VAR(__GLEW_SGIX_texture_multi_buffer) + +#endif /* GL_SGIX_texture_multi_buffer */ + +/* ------------------------- GL_SGIX_texture_range ------------------------- */ + +#ifndef GL_SGIX_texture_range +#define GL_SGIX_texture_range 1 + +#define GL_RGB_SIGNED_SGIX 0x85E0 +#define GL_RGBA_SIGNED_SGIX 0x85E1 +#define GL_ALPHA_SIGNED_SGIX 0x85E2 +#define GL_LUMINANCE_SIGNED_SGIX 0x85E3 +#define GL_INTENSITY_SIGNED_SGIX 0x85E4 +#define GL_LUMINANCE_ALPHA_SIGNED_SGIX 0x85E5 +#define GL_RGB16_SIGNED_SGIX 0x85E6 +#define GL_RGBA16_SIGNED_SGIX 0x85E7 +#define GL_ALPHA16_SIGNED_SGIX 0x85E8 +#define GL_LUMINANCE16_SIGNED_SGIX 0x85E9 +#define GL_INTENSITY16_SIGNED_SGIX 0x85EA +#define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX 0x85EB +#define GL_RGB_EXTENDED_RANGE_SGIX 0x85EC +#define GL_RGBA_EXTENDED_RANGE_SGIX 0x85ED +#define GL_ALPHA_EXTENDED_RANGE_SGIX 0x85EE +#define GL_LUMINANCE_EXTENDED_RANGE_SGIX 0x85EF +#define GL_INTENSITY_EXTENDED_RANGE_SGIX 0x85F0 +#define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX 0x85F1 +#define GL_RGB16_EXTENDED_RANGE_SGIX 0x85F2 +#define GL_RGBA16_EXTENDED_RANGE_SGIX 0x85F3 +#define GL_ALPHA16_EXTENDED_RANGE_SGIX 0x85F4 +#define GL_LUMINANCE16_EXTENDED_RANGE_SGIX 0x85F5 +#define GL_INTENSITY16_EXTENDED_RANGE_SGIX 0x85F6 +#define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7 +#define GL_MIN_LUMINANCE_SGIS 0x85F8 +#define GL_MAX_LUMINANCE_SGIS 0x85F9 +#define GL_MIN_INTENSITY_SGIS 0x85FA +#define GL_MAX_INTENSITY_SGIS 0x85FB + +#define GLEW_SGIX_texture_range GLEW_GET_VAR(__GLEW_SGIX_texture_range) + +#endif /* GL_SGIX_texture_range */ + +/* ----------------------- GL_SGIX_texture_scale_bias ---------------------- */ + +#ifndef GL_SGIX_texture_scale_bias +#define GL_SGIX_texture_scale_bias 1 + +#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 +#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A +#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B +#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C + +#define GLEW_SGIX_texture_scale_bias GLEW_GET_VAR(__GLEW_SGIX_texture_scale_bias) + +#endif /* GL_SGIX_texture_scale_bias */ + +/* ------------------------- GL_SGIX_vertex_preclip ------------------------ */ + +#ifndef GL_SGIX_vertex_preclip +#define GL_SGIX_vertex_preclip 1 + +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF + +#define GLEW_SGIX_vertex_preclip GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip) + +#endif /* GL_SGIX_vertex_preclip */ + +/* ---------------------- GL_SGIX_vertex_preclip_hint ---------------------- */ + +#ifndef GL_SGIX_vertex_preclip_hint +#define GL_SGIX_vertex_preclip_hint 1 + +#define GL_VERTEX_PRECLIP_SGIX 0x83EE +#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF + +#define GLEW_SGIX_vertex_preclip_hint GLEW_GET_VAR(__GLEW_SGIX_vertex_preclip_hint) + +#endif /* GL_SGIX_vertex_preclip_hint */ + +/* ----------------------------- GL_SGIX_ycrcb ----------------------------- */ + +#ifndef GL_SGIX_ycrcb +#define GL_SGIX_ycrcb 1 + +#define GLEW_SGIX_ycrcb GLEW_GET_VAR(__GLEW_SGIX_ycrcb) + +#endif /* GL_SGIX_ycrcb */ + +/* -------------------------- GL_SGI_color_matrix -------------------------- */ + +#ifndef GL_SGI_color_matrix +#define GL_SGI_color_matrix 1 + +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB + +#define GLEW_SGI_color_matrix GLEW_GET_VAR(__GLEW_SGI_color_matrix) + +#endif /* GL_SGI_color_matrix */ + +/* --------------------------- GL_SGI_color_table -------------------------- */ + +#ifndef GL_SGI_color_table +#define GL_SGI_color_table 1 + +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF + +typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void* table); +typedef void (GLAPIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void* table); + +#define glColorTableParameterfvSGI GLEW_GET_FUN(__glewColorTableParameterfvSGI) +#define glColorTableParameterivSGI GLEW_GET_FUN(__glewColorTableParameterivSGI) +#define glColorTableSGI GLEW_GET_FUN(__glewColorTableSGI) +#define glCopyColorTableSGI GLEW_GET_FUN(__glewCopyColorTableSGI) +#define glGetColorTableParameterfvSGI GLEW_GET_FUN(__glewGetColorTableParameterfvSGI) +#define glGetColorTableParameterivSGI GLEW_GET_FUN(__glewGetColorTableParameterivSGI) +#define glGetColorTableSGI GLEW_GET_FUN(__glewGetColorTableSGI) + +#define GLEW_SGI_color_table GLEW_GET_VAR(__GLEW_SGI_color_table) + +#endif /* GL_SGI_color_table */ + +/* ----------------------- GL_SGI_texture_color_table ---------------------- */ + +#ifndef GL_SGI_texture_color_table +#define GL_SGI_texture_color_table 1 + +#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC +#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD + +#define GLEW_SGI_texture_color_table GLEW_GET_VAR(__GLEW_SGI_texture_color_table) + +#endif /* GL_SGI_texture_color_table */ + +/* ------------------------- GL_SUNX_constant_data ------------------------- */ + +#ifndef GL_SUNX_constant_data +#define GL_SUNX_constant_data 1 + +#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 +#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 + +typedef void (GLAPIENTRY * PFNGLFINISHTEXTURESUNXPROC) (void); + +#define glFinishTextureSUNX GLEW_GET_FUN(__glewFinishTextureSUNX) + +#define GLEW_SUNX_constant_data GLEW_GET_VAR(__GLEW_SUNX_constant_data) + +#endif /* GL_SUNX_constant_data */ + +/* -------------------- GL_SUN_convolution_border_modes -------------------- */ + +#ifndef GL_SUN_convolution_border_modes +#define GL_SUN_convolution_border_modes 1 + +#define GL_WRAP_BORDER_SUN 0x81D4 + +#define GLEW_SUN_convolution_border_modes GLEW_GET_VAR(__GLEW_SUN_convolution_border_modes) + +#endif /* GL_SUN_convolution_border_modes */ + +/* -------------------------- GL_SUN_global_alpha -------------------------- */ + +#ifndef GL_SUN_global_alpha +#define GL_SUN_global_alpha 1 + +#define GL_GLOBAL_ALPHA_SUN 0x81D9 +#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA + +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); +typedef void (GLAPIENTRY * PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); + +#define glGlobalAlphaFactorbSUN GLEW_GET_FUN(__glewGlobalAlphaFactorbSUN) +#define glGlobalAlphaFactordSUN GLEW_GET_FUN(__glewGlobalAlphaFactordSUN) +#define glGlobalAlphaFactorfSUN GLEW_GET_FUN(__glewGlobalAlphaFactorfSUN) +#define glGlobalAlphaFactoriSUN GLEW_GET_FUN(__glewGlobalAlphaFactoriSUN) +#define glGlobalAlphaFactorsSUN GLEW_GET_FUN(__glewGlobalAlphaFactorsSUN) +#define glGlobalAlphaFactorubSUN GLEW_GET_FUN(__glewGlobalAlphaFactorubSUN) +#define glGlobalAlphaFactoruiSUN GLEW_GET_FUN(__glewGlobalAlphaFactoruiSUN) +#define glGlobalAlphaFactorusSUN GLEW_GET_FUN(__glewGlobalAlphaFactorusSUN) + +#define GLEW_SUN_global_alpha GLEW_GET_VAR(__GLEW_SUN_global_alpha) + +#endif /* GL_SUN_global_alpha */ + +/* --------------------------- GL_SUN_mesh_array --------------------------- */ + +#ifndef GL_SUN_mesh_array +#define GL_SUN_mesh_array 1 + +#define GL_QUAD_MESH_SUN 0x8614 +#define GL_TRIANGLE_MESH_SUN 0x8615 + +#define GLEW_SUN_mesh_array GLEW_GET_VAR(__GLEW_SUN_mesh_array) + +#endif /* GL_SUN_mesh_array */ + +/* ------------------------ GL_SUN_read_video_pixels ----------------------- */ + +#ifndef GL_SUN_read_video_pixels +#define GL_SUN_read_video_pixels 1 + +typedef void (GLAPIENTRY * PFNGLREADVIDEOPIXELSSUNPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels); + +#define glReadVideoPixelsSUN GLEW_GET_FUN(__glewReadVideoPixelsSUN) + +#define GLEW_SUN_read_video_pixels GLEW_GET_VAR(__GLEW_SUN_read_video_pixels) + +#endif /* GL_SUN_read_video_pixels */ + +/* --------------------------- GL_SUN_slice_accum -------------------------- */ + +#ifndef GL_SUN_slice_accum +#define GL_SUN_slice_accum 1 + +#define GL_SLICE_ACCUM_SUN 0x85CC + +#define GLEW_SUN_slice_accum GLEW_GET_VAR(__GLEW_SUN_slice_accum) + +#endif /* GL_SUN_slice_accum */ + +/* -------------------------- GL_SUN_triangle_list ------------------------- */ + +#ifndef GL_SUN_triangle_list +#define GL_SUN_triangle_list 1 + +#define GL_RESTART_SUN 0x01 +#define GL_REPLACE_MIDDLE_SUN 0x02 +#define GL_REPLACE_OLDEST_SUN 0x03 +#define GL_TRIANGLE_LIST_SUN 0x81D7 +#define GL_REPLACEMENT_CODE_SUN 0x81D8 +#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 +#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 +#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 +#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 +#define GL_R1UI_V3F_SUN 0x85C4 +#define GL_R1UI_C4UB_V3F_SUN 0x85C5 +#define GL_R1UI_C3F_V3F_SUN 0x85C6 +#define GL_R1UI_N3F_V3F_SUN 0x85C7 +#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 +#define GL_R1UI_T2F_V3F_SUN 0x85C9 +#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA +#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB + +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void* pointer); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte* code); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint* code); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort* code); + +#define glReplacementCodePointerSUN GLEW_GET_FUN(__glewReplacementCodePointerSUN) +#define glReplacementCodeubSUN GLEW_GET_FUN(__glewReplacementCodeubSUN) +#define glReplacementCodeubvSUN GLEW_GET_FUN(__glewReplacementCodeubvSUN) +#define glReplacementCodeuiSUN GLEW_GET_FUN(__glewReplacementCodeuiSUN) +#define glReplacementCodeuivSUN GLEW_GET_FUN(__glewReplacementCodeuivSUN) +#define glReplacementCodeusSUN GLEW_GET_FUN(__glewReplacementCodeusSUN) +#define glReplacementCodeusvSUN GLEW_GET_FUN(__glewReplacementCodeusvSUN) + +#define GLEW_SUN_triangle_list GLEW_GET_VAR(__GLEW_SUN_triangle_list) + +#endif /* GL_SUN_triangle_list */ + +/* ----------------------------- GL_SUN_vertex ----------------------------- */ + +#ifndef GL_SUN_vertex +#define GL_SUN_vertex 1 + +typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* c, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte* c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte* c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint* rc, const GLubyte *c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *tc, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint* rc, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat* tc, const GLubyte *c, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat* tc, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat* tc, const GLfloat *v); + +#define glColor3fVertex3fSUN GLEW_GET_FUN(__glewColor3fVertex3fSUN) +#define glColor3fVertex3fvSUN GLEW_GET_FUN(__glewColor3fVertex3fvSUN) +#define glColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fSUN) +#define glColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewColor4fNormal3fVertex3fvSUN) +#define glColor4ubVertex2fSUN GLEW_GET_FUN(__glewColor4ubVertex2fSUN) +#define glColor4ubVertex2fvSUN GLEW_GET_FUN(__glewColor4ubVertex2fvSUN) +#define glColor4ubVertex3fSUN GLEW_GET_FUN(__glewColor4ubVertex3fSUN) +#define glColor4ubVertex3fvSUN GLEW_GET_FUN(__glewColor4ubVertex3fvSUN) +#define glNormal3fVertex3fSUN GLEW_GET_FUN(__glewNormal3fVertex3fSUN) +#define glNormal3fVertex3fvSUN GLEW_GET_FUN(__glewNormal3fVertex3fvSUN) +#define glReplacementCodeuiColor3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fSUN) +#define glReplacementCodeuiColor3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor3fVertex3fvSUN) +#define glReplacementCodeuiColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fSUN) +#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4fNormal3fVertex3fvSUN) +#define glReplacementCodeuiColor4ubVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fSUN) +#define glReplacementCodeuiColor4ubVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiColor4ubVertex3fvSUN) +#define glReplacementCodeuiNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fSUN) +#define glReplacementCodeuiNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiNormal3fVertex3fvSUN) +#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) +#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) +#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) +#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) +#define glReplacementCodeuiTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fSUN) +#define glReplacementCodeuiTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiTexCoord2fVertex3fvSUN) +#define glReplacementCodeuiVertex3fSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fSUN) +#define glReplacementCodeuiVertex3fvSUN GLEW_GET_FUN(__glewReplacementCodeuiVertex3fvSUN) +#define glTexCoord2fColor3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fSUN) +#define glTexCoord2fColor3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor3fVertex3fvSUN) +#define glTexCoord2fColor4fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fSUN) +#define glTexCoord2fColor4fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4fNormal3fVertex3fvSUN) +#define glTexCoord2fColor4ubVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fSUN) +#define glTexCoord2fColor4ubVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fColor4ubVertex3fvSUN) +#define glTexCoord2fNormal3fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fSUN) +#define glTexCoord2fNormal3fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fNormal3fVertex3fvSUN) +#define glTexCoord2fVertex3fSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fSUN) +#define glTexCoord2fVertex3fvSUN GLEW_GET_FUN(__glewTexCoord2fVertex3fvSUN) +#define glTexCoord4fColor4fNormal3fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fSUN) +#define glTexCoord4fColor4fNormal3fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fColor4fNormal3fVertex4fvSUN) +#define glTexCoord4fVertex4fSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fSUN) +#define glTexCoord4fVertex4fvSUN GLEW_GET_FUN(__glewTexCoord4fVertex4fvSUN) + +#define GLEW_SUN_vertex GLEW_GET_VAR(__GLEW_SUN_vertex) + +#endif /* GL_SUN_vertex */ + +/* -------------------------- GL_WIN_phong_shading ------------------------- */ + +#ifndef GL_WIN_phong_shading +#define GL_WIN_phong_shading 1 + +#define GL_PHONG_WIN 0x80EA +#define GL_PHONG_HINT_WIN 0x80EB + +#define GLEW_WIN_phong_shading GLEW_GET_VAR(__GLEW_WIN_phong_shading) + +#endif /* GL_WIN_phong_shading */ + +/* -------------------------- GL_WIN_specular_fog -------------------------- */ + +#ifndef GL_WIN_specular_fog +#define GL_WIN_specular_fog 1 + +#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC + +#define GLEW_WIN_specular_fog GLEW_GET_VAR(__GLEW_WIN_specular_fog) + +#endif /* GL_WIN_specular_fog */ + +/* ---------------------------- GL_WIN_swap_hint --------------------------- */ + +#ifndef GL_WIN_swap_hint +#define GL_WIN_swap_hint 1 + +typedef void (GLAPIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); + +#define glAddSwapHintRectWIN GLEW_GET_FUN(__glewAddSwapHintRectWIN) + +#define GLEW_WIN_swap_hint GLEW_GET_VAR(__GLEW_WIN_swap_hint) + +#endif /* GL_WIN_swap_hint */ + +/* ------------------------------------------------------------------------- */ + +#if defined(GLEW_MX) && defined(_WIN32) +#define GLEW_FUN_EXPORT +#else +#define GLEW_FUN_EXPORT GLEWAPI +#endif /* GLEW_MX */ + +#if defined(GLEW_MX) +#define GLEW_VAR_EXPORT +#else +#define GLEW_VAR_EXPORT GLEWAPI +#endif /* GLEW_MX */ + +#if defined(GLEW_MX) && defined(_WIN32) +struct GLEWContextStruct +{ +#endif /* GLEW_MX */ + +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DPROC __glewTexImage3D; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D; + +GLEW_FUN_EXPORT PFNGLACTIVETEXTUREPROC __glewActiveTexture; +GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage; +GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd; +GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf; +GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd; +GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv; +GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage; + +GLEW_FUN_EXPORT PFNGLBLENDCOLORPROC __glewBlendColor; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONPROC __glewBlendEquation; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate; +GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer; +GLEW_FUN_EXPORT PFNGLFOGCOORDDPROC __glewFogCoordd; +GLEW_FUN_EXPORT PFNGLFOGCOORDDVPROC __glewFogCoorddv; +GLEW_FUN_EXPORT PFNGLFOGCOORDFPROC __glewFogCoordf; +GLEW_FUN_EXPORT PFNGLFOGCOORDFVPROC __glewFogCoordfv; +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFPROC __glewPointParameterf; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIPROC __glewPointParameteri; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DPROC __glewWindowPos2d; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FPROC __glewWindowPos2f; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IPROC __glewWindowPos2i; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SPROC __glewWindowPos2s; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DPROC __glewWindowPos3d; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FPROC __glewWindowPos3f; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IPROC __glewWindowPos3i; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SPROC __glewWindowPos3s; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYPROC __glewBeginQuery; +GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer; +GLEW_FUN_EXPORT PFNGLBUFFERDATAPROC __glewBufferData; +GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAPROC __glewBufferSubData; +GLEW_FUN_EXPORT PFNGLDELETEBUFFERSPROC __glewDeleteBuffers; +GLEW_FUN_EXPORT PFNGLDELETEQUERIESPROC __glewDeleteQueries; +GLEW_FUN_EXPORT PFNGLENDQUERYPROC __glewEndQuery; +GLEW_FUN_EXPORT PFNGLGENBUFFERSPROC __glewGenBuffers; +GLEW_FUN_EXPORT PFNGLGENQUERIESPROC __glewGenQueries; +GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv; +GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv; +GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv; +GLEW_FUN_EXPORT PFNGLGETQUERYIVPROC __glewGetQueryiv; +GLEW_FUN_EXPORT PFNGLISBUFFERPROC __glewIsBuffer; +GLEW_FUN_EXPORT PFNGLISQUERYPROC __glewIsQuery; +GLEW_FUN_EXPORT PFNGLMAPBUFFERPROC __glewMapBuffer; +GLEW_FUN_EXPORT PFNGLUNMAPBUFFERPROC __glewUnmapBuffer; + +GLEW_FUN_EXPORT PFNGLATTACHSHADERPROC __glewAttachShader; +GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate; +GLEW_FUN_EXPORT PFNGLCOMPILESHADERPROC __glewCompileShader; +GLEW_FUN_EXPORT PFNGLCREATEPROGRAMPROC __glewCreateProgram; +GLEW_FUN_EXPORT PFNGLCREATESHADERPROC __glewCreateShader; +GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPROC __glewDeleteProgram; +GLEW_FUN_EXPORT PFNGLDELETESHADERPROC __glewDeleteShader; +GLEW_FUN_EXPORT PFNGLDETACHSHADERPROC __glewDetachShader; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray; +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSPROC __glewDrawBuffers; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray; +GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform; +GLEW_FUN_EXPORT PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders; +GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation; +GLEW_FUN_EXPORT PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog; +GLEW_FUN_EXPORT PFNGLGETPROGRAMIVPROC __glewGetProgramiv; +GLEW_FUN_EXPORT PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog; +GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEPROC __glewGetShaderSource; +GLEW_FUN_EXPORT PFNGLGETSHADERIVPROC __glewGetShaderiv; +GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation; +GLEW_FUN_EXPORT PFNGLGETUNIFORMFVPROC __glewGetUniformfv; +GLEW_FUN_EXPORT PFNGLGETUNIFORMIVPROC __glewGetUniformiv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv; +GLEW_FUN_EXPORT PFNGLISPROGRAMPROC __glewIsProgram; +GLEW_FUN_EXPORT PFNGLISSHADERPROC __glewIsShader; +GLEW_FUN_EXPORT PFNGLLINKPROGRAMPROC __glewLinkProgram; +GLEW_FUN_EXPORT PFNGLSHADERSOURCEPROC __glewShaderSource; +GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate; +GLEW_FUN_EXPORT PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate; +GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate; +GLEW_FUN_EXPORT PFNGLUNIFORM1FPROC __glewUniform1f; +GLEW_FUN_EXPORT PFNGLUNIFORM1FVPROC __glewUniform1fv; +GLEW_FUN_EXPORT PFNGLUNIFORM1IPROC __glewUniform1i; +GLEW_FUN_EXPORT PFNGLUNIFORM1IVPROC __glewUniform1iv; +GLEW_FUN_EXPORT PFNGLUNIFORM2FPROC __glewUniform2f; +GLEW_FUN_EXPORT PFNGLUNIFORM2FVPROC __glewUniform2fv; +GLEW_FUN_EXPORT PFNGLUNIFORM2IPROC __glewUniform2i; +GLEW_FUN_EXPORT PFNGLUNIFORM2IVPROC __glewUniform2iv; +GLEW_FUN_EXPORT PFNGLUNIFORM3FPROC __glewUniform3f; +GLEW_FUN_EXPORT PFNGLUNIFORM3FVPROC __glewUniform3fv; +GLEW_FUN_EXPORT PFNGLUNIFORM3IPROC __glewUniform3i; +GLEW_FUN_EXPORT PFNGLUNIFORM3IVPROC __glewUniform3iv; +GLEW_FUN_EXPORT PFNGLUNIFORM4FPROC __glewUniform4f; +GLEW_FUN_EXPORT PFNGLUNIFORM4FVPROC __glewUniform4fv; +GLEW_FUN_EXPORT PFNGLUNIFORM4IPROC __glewUniform4i; +GLEW_FUN_EXPORT PFNGLUNIFORM4IVPROC __glewUniform4iv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv; +GLEW_FUN_EXPORT PFNGLUSEPROGRAMPROC __glewUseProgram; +GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPROC __glewValidateProgram; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer; + +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv; + +GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender; +GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback; +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation; +GLEW_FUN_EXPORT PFNGLCLAMPCOLORPROC __glewClampColor; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERFIPROC __glewClearBufferfi; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERFVPROC __glewClearBufferfv; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERIVPROC __glewClearBufferiv; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv; +GLEW_FUN_EXPORT PFNGLCOLORMASKIPROC __glewColorMaski; +GLEW_FUN_EXPORT PFNGLDISABLEIPROC __glewDisablei; +GLEW_FUN_EXPORT PFNGLENABLEIPROC __glewEnablei; +GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender; +GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback; +GLEW_FUN_EXPORT PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v; +GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation; +GLEW_FUN_EXPORT PFNGLGETSTRINGIPROC __glewGetStringi; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying; +GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv; +GLEW_FUN_EXPORT PFNGLISENABLEDIPROC __glewIsEnabledi; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings; +GLEW_FUN_EXPORT PFNGLUNIFORM1UIPROC __glewUniform1ui; +GLEW_FUN_EXPORT PFNGLUNIFORM1UIVPROC __glewUniform1uiv; +GLEW_FUN_EXPORT PFNGLUNIFORM2UIPROC __glewUniform2ui; +GLEW_FUN_EXPORT PFNGLUNIFORM2UIVPROC __glewUniform2uiv; +GLEW_FUN_EXPORT PFNGLUNIFORM3UIPROC __glewUniform3ui; +GLEW_FUN_EXPORT PFNGLUNIFORM3UIVPROC __glewUniform3uiv; +GLEW_FUN_EXPORT PFNGLUNIFORM4UIPROC __glewUniform4ui; +GLEW_FUN_EXPORT PFNGLUNIFORM4UIVPROC __glewUniform4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced; +GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex; +GLEW_FUN_EXPORT PFNGLTEXBUFFERPROC __glewTexBuffer; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture; +GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v; +GLEW_FUN_EXPORT PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v; + +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIPROC __glewBlendEquationi; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIPROC __glewBlendFunci; +GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading; + +GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; + +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD; +GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD; +GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; + +GLEW_FUN_EXPORT PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD; +GLEW_FUN_EXPORT PFNGLGENNAMESAMDPROC __glewGenNamesAMD; +GLEW_FUN_EXPORT PFNGLISNAMEAMDPROC __glewIsNameAMD; + +GLEW_FUN_EXPORT PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD; +GLEW_FUN_EXPORT PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD; +GLEW_FUN_EXPORT PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD; +GLEW_FUN_EXPORT PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD; +GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD; + +GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD; +GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD; + +GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; +GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE; +GLEW_FUN_EXPORT PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE; + +GLEW_FUN_EXPORT PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE; +GLEW_FUN_EXPORT PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE; +GLEW_FUN_EXPORT PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE; +GLEW_FUN_EXPORT PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE; +GLEW_FUN_EXPORT PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE; +GLEW_FUN_EXPORT PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE; +GLEW_FUN_EXPORT PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE; +GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; + +GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; + +GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; +GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; +GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; + +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; +GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; + +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE; + +GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE; + +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE; +GLEW_FUN_EXPORT PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE; + +GLEW_FUN_EXPORT PFNGLCLEARDEPTHFPROC __glewClearDepthf; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEFPROC __glewDepthRangef; +GLEW_FUN_EXPORT PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat; +GLEW_FUN_EXPORT PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler; +GLEW_FUN_EXPORT PFNGLSHADERBINARYPROC __glewShaderBinary; + +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed; +GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; + +GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; + +GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB; + +GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData; + +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB; +GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB; + +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB; + +GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer; +GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer; +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer; +GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus; +GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers; +GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer; +GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers; +GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers; +GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv; +GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv; +GLEW_FUN_EXPORT PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer; +GLEW_FUN_EXPORT PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB; + +GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary; +GLEW_FUN_EXPORT PFNGLPROGRAMBINARYPROC __glewProgramBinary; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; + +GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DEXTPROC __glewProgramUniform1dEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVEXTPROC __glewProgramUniform1dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DEXTPROC __glewProgramUniform2dEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVEXTPROC __glewProgramUniform2dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DEXTPROC __glewProgramUniform3dEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVEXTPROC __glewProgramUniform3dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DEXTPROC __glewProgramUniform4dEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVEXTPROC __glewProgramUniform4dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC __glewProgramUniformMatrix2dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC __glewProgramUniformMatrix2x3dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC __glewProgramUniformMatrix2x4dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC __glewProgramUniformMatrix3dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC __glewProgramUniformMatrix3x2dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC __glewProgramUniformMatrix3x4dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC __glewProgramUniformMatrix4dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC __glewProgramUniformMatrix4x2dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC __glewProgramUniformMatrix4x3dvEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d; +GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv; +GLEW_FUN_EXPORT PFNGLUNIFORM2DPROC __glewUniform2d; +GLEW_FUN_EXPORT PFNGLUNIFORM2DVPROC __glewUniform2dv; +GLEW_FUN_EXPORT PFNGLUNIFORM3DPROC __glewUniform3d; +GLEW_FUN_EXPORT PFNGLUNIFORM3DVPROC __glewUniform3dv; +GLEW_FUN_EXPORT PFNGLUNIFORM4DPROC __glewUniform4d; +GLEW_FUN_EXPORT PFNGLUNIFORM4DVPROC __glewUniform4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv; + +GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable; +GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable; +GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv; +GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv; +GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable; +GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable; +GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D; +GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPROC __glewGetColorTable; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv; +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPROC __glewGetHistogram; +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv; +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv; +GLEW_FUN_EXPORT PFNGLGETMINMAXPROC __glewGetMinmax; +GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv; +GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv; +GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter; +GLEW_FUN_EXPORT PFNGLHISTOGRAMPROC __glewHistogram; +GLEW_FUN_EXPORT PFNGLMINMAXPROC __glewMinmax; +GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram; +GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax; +GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D; + +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB; + +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange; +GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange; + +GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB; +GLEW_FUN_EXPORT PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB; + +GLEW_FUN_EXPORT PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB; + +GLEW_FUN_EXPORT PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB; +GLEW_FUN_EXPORT PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYARBPROC __glewBeginQueryARB; +GLEW_FUN_EXPORT PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB; +GLEW_FUN_EXPORT PFNGLENDQUERYARBPROC __glewEndQueryARB; +GLEW_FUN_EXPORT PFNGLGENQUERIESARBPROC __glewGenQueriesARB; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB; +GLEW_FUN_EXPORT PFNGLGETQUERYIVARBPROC __glewGetQueryivARB; +GLEW_FUN_EXPORT PFNGLISQUERYARBPROC __glewIsQueryARB; + +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; + +GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex; + +GLEW_FUN_EXPORT PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB; +GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB; +GLEW_FUN_EXPORT PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB; +GLEW_FUN_EXPORT PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB; +GLEW_FUN_EXPORT PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB; +GLEW_FUN_EXPORT PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB; +GLEW_FUN_EXPORT PFNGLGETNMAPIVARBPROC __glewGetnMapivARB; +GLEW_FUN_EXPORT PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB; +GLEW_FUN_EXPORT PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB; +GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB; +GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB; +GLEW_FUN_EXPORT PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB; +GLEW_FUN_EXPORT PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB; +GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB; +GLEW_FUN_EXPORT PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB; + +GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB; + +GLEW_FUN_EXPORT PFNGLBINDSAMPLERPROC __glewBindSampler; +GLEW_FUN_EXPORT PFNGLDELETESAMPLERSPROC __glewDeleteSamplers; +GLEW_FUN_EXPORT PFNGLGENSAMPLERSPROC __glewGenSamplers; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv; +GLEW_FUN_EXPORT PFNGLISSAMPLERPROC __glewIsSampler; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv; + +GLEW_FUN_EXPORT PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram; +GLEW_FUN_EXPORT PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline; +GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv; +GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines; +GLEW_FUN_EXPORT PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines; +GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog; +GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv; +GLEW_FUN_EXPORT PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv; +GLEW_FUN_EXPORT PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages; +GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline; + +GLEW_FUN_EXPORT PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB; +GLEW_FUN_EXPORT PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB; +GLEW_FUN_EXPORT PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB; +GLEW_FUN_EXPORT PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB; +GLEW_FUN_EXPORT PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB; +GLEW_FUN_EXPORT PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB; +GLEW_FUN_EXPORT PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB; +GLEW_FUN_EXPORT PFNGLGETHANDLEARBPROC __glewGetHandleARB; +GLEW_FUN_EXPORT PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB; +GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB; +GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB; +GLEW_FUN_EXPORT PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB; +GLEW_FUN_EXPORT PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB; +GLEW_FUN_EXPORT PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB; +GLEW_FUN_EXPORT PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB; +GLEW_FUN_EXPORT PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB; +GLEW_FUN_EXPORT PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1FARBPROC __glewUniform1fARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1IARBPROC __glewUniform1iARB; +GLEW_FUN_EXPORT PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2FARBPROC __glewUniform2fARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2IARBPROC __glewUniform2iARB; +GLEW_FUN_EXPORT PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3FARBPROC __glewUniform3fARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3IARBPROC __glewUniform3iARB; +GLEW_FUN_EXPORT PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4FARBPROC __glewUniform4fARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4IARBPROC __glewUniform4iARB; +GLEW_FUN_EXPORT PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB; +GLEW_FUN_EXPORT PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB; +GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB; + +GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName; +GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName; +GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv; +GLEW_FUN_EXPORT PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv; +GLEW_FUN_EXPORT PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex; +GLEW_FUN_EXPORT PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation; +GLEW_FUN_EXPORT PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv; +GLEW_FUN_EXPORT PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv; + +GLEW_FUN_EXPORT PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB; +GLEW_FUN_EXPORT PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB; +GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB; +GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB; +GLEW_FUN_EXPORT PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB; +GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; + +GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; +GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync; +GLEW_FUN_EXPORT PFNGLFENCESYNCPROC __glewFenceSync; +GLEW_FUN_EXPORT PFNGLGETINTEGER64VPROC __glewGetInteger64v; +GLEW_FUN_EXPORT PFNGLGETSYNCIVPROC __glewGetSynciv; +GLEW_FUN_EXPORT PFNGLISSYNCPROC __glewIsSync; +GLEW_FUN_EXPORT PFNGLWAITSYNCPROC __glewWaitSync; + +GLEW_FUN_EXPORT PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv; +GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIPROC __glewPatchParameteri; + +GLEW_FUN_EXPORT PFNGLTEXBUFFERARBPROC __glewTexBufferARB; + +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB; + +GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv; +GLEW_FUN_EXPORT PFNGLSAMPLEMASKIPROC __glewSampleMaski; +GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; + +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v; +GLEW_FUN_EXPORT PFNGLQUERYCOUNTERPROC __glewQueryCounter; + +GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback; +GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback; +GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks; +GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback; +GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback; +GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream; +GLEW_FUN_EXPORT PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed; +GLEW_FUN_EXPORT PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv; + +GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB; +GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB; +GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB; +GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB; + +GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEPROC __glewBindBufferBase; +GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv; +GLEW_FUN_EXPORT PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v; +GLEW_FUN_EXPORT PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex; +GLEW_FUN_EXPORT PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices; +GLEW_FUN_EXPORT PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding; + +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYPROC __glewIsVertexArray; + +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer; + +GLEW_FUN_EXPORT PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB; +GLEW_FUN_EXPORT PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB; +GLEW_FUN_EXPORT PFNGLWEIGHTBVARBPROC __glewWeightbvARB; +GLEW_FUN_EXPORT PFNGLWEIGHTDVARBPROC __glewWeightdvARB; +GLEW_FUN_EXPORT PFNGLWEIGHTFVARBPROC __glewWeightfvARB; +GLEW_FUN_EXPORT PFNGLWEIGHTIVARBPROC __glewWeightivARB; +GLEW_FUN_EXPORT PFNGLWEIGHTSVARBPROC __glewWeightsvARB; +GLEW_FUN_EXPORT PFNGLWEIGHTUBVARBPROC __glewWeightubvARB; +GLEW_FUN_EXPORT PFNGLWEIGHTUIVARBPROC __glewWeightuivARB; +GLEW_FUN_EXPORT PFNGLWEIGHTUSVARBPROC __glewWeightusvARB; + +GLEW_FUN_EXPORT PFNGLBINDBUFFERARBPROC __glewBindBufferARB; +GLEW_FUN_EXPORT PFNGLBUFFERDATAARBPROC __glewBufferDataARB; +GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB; +GLEW_FUN_EXPORT PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB; +GLEW_FUN_EXPORT PFNGLGENBUFFERSARBPROC __glewGenBuffersARB; +GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB; +GLEW_FUN_EXPORT PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB; +GLEW_FUN_EXPORT PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB; +GLEW_FUN_EXPORT PFNGLISBUFFERARBPROC __glewIsBufferARB; +GLEW_FUN_EXPORT PFNGLMAPBUFFERARBPROC __glewMapBufferARB; +GLEW_FUN_EXPORT PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB; + +GLEW_FUN_EXPORT PFNGLBINDPROGRAMARBPROC __glewBindProgramARB; +GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB; +GLEW_FUN_EXPORT PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB; +GLEW_FUN_EXPORT PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB; +GLEW_FUN_EXPORT PFNGLISPROGRAMARBPROC __glewIsProgramARB; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB; +GLEW_FUN_EXPORT PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB; + +GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB; +GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB; +GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB; + +GLEW_FUN_EXPORT PFNGLCOLORP3UIPROC __glewColorP3ui; +GLEW_FUN_EXPORT PFNGLCOLORP3UIVPROC __glewColorP3uiv; +GLEW_FUN_EXPORT PFNGLCOLORP4UIPROC __glewColorP4ui; +GLEW_FUN_EXPORT PFNGLCOLORP4UIVPROC __glewColorP4uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv; +GLEW_FUN_EXPORT PFNGLNORMALP3UIPROC __glewNormalP3ui; +GLEW_FUN_EXPORT PFNGLNORMALP3UIVPROC __glewNormalP3uiv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXP2UIPROC __glewVertexP2ui; +GLEW_FUN_EXPORT PFNGLVERTEXP2UIVPROC __glewVertexP2uiv; +GLEW_FUN_EXPORT PFNGLVERTEXP3UIPROC __glewVertexP3ui; +GLEW_FUN_EXPORT PFNGLVERTEXP3UIVPROC __glewVertexP3uiv; +GLEW_FUN_EXPORT PFNGLVERTEXP4UIPROC __glewVertexP4ui; +GLEW_FUN_EXPORT PFNGLVERTEXP4UIVPROC __glewVertexP4uiv; + +GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed; +GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v; +GLEW_FUN_EXPORT PFNGLGETFLOATI_VPROC __glewGetFloati_v; +GLEW_FUN_EXPORT PFNGLSCISSORARRAYVPROC __glewScissorArrayv; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDPROC __glewScissorIndexed; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv; +GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv; + +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB; + +GLEW_FUN_EXPORT PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI; + +GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI; +GLEW_FUN_EXPORT PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI; + +GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI; +GLEW_FUN_EXPORT PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI; +GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI; +GLEW_FUN_EXPORT PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI; + +GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI; +GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI; +GLEW_FUN_EXPORT PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI; +GLEW_FUN_EXPORT PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI; +GLEW_FUN_EXPORT PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI; +GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI; +GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI; +GLEW_FUN_EXPORT PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI; +GLEW_FUN_EXPORT PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI; +GLEW_FUN_EXPORT PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI; +GLEW_FUN_EXPORT PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI; +GLEW_FUN_EXPORT PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI; +GLEW_FUN_EXPORT PFNGLSAMPLEMAPATIPROC __glewSampleMapATI; +GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI; + +GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI; +GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI; + +GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glPNTrianglewesfATI; +GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glPNTrianglewesiATI; + +GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI; +GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI; + +GLEW_FUN_EXPORT PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI; +GLEW_FUN_EXPORT PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI; +GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI; +GLEW_FUN_EXPORT PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI; +GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI; +GLEW_FUN_EXPORT PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI; +GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI; +GLEW_FUN_EXPORT PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI; +GLEW_FUN_EXPORT PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI; +GLEW_FUN_EXPORT PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI; +GLEW_FUN_EXPORT PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI; +GLEW_FUN_EXPORT PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI; + +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI; + +GLEW_FUN_EXPORT PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI; +GLEW_FUN_EXPORT PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI; +GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI; +GLEW_FUN_EXPORT PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI; +GLEW_FUN_EXPORT PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI; + +GLEW_FUN_EXPORT PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT; +GLEW_FUN_EXPORT PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT; +GLEW_FUN_EXPORT PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT; + +GLEW_FUN_EXPORT PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT; + +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT; + +GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT; +GLEW_FUN_EXPORT PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT; + +GLEW_FUN_EXPORT PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT; +GLEW_FUN_EXPORT PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT; + +GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT; +GLEW_FUN_EXPORT PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT; +GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT; +GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT; + +GLEW_FUN_EXPORT PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT; +GLEW_FUN_EXPORT PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT; + +GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT; + +GLEW_FUN_EXPORT PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT; +GLEW_FUN_EXPORT PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT; + +GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT; + +GLEW_FUN_EXPORT PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT; +GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT; +GLEW_FUN_EXPORT PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT; +GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT; +GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT; +GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT; +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT; +GLEW_FUN_EXPORT PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT; +GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT; +GLEW_FUN_EXPORT PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT; +GLEW_FUN_EXPORT PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT; +GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT; +GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT; +GLEW_FUN_EXPORT PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT; +GLEW_FUN_EXPORT PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT; +GLEW_FUN_EXPORT PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT; +GLEW_FUN_EXPORT PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT; +GLEW_FUN_EXPORT PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT; +GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT; +GLEW_FUN_EXPORT PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT; +GLEW_FUN_EXPORT PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; + +GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; +GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; +GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; +GLEW_FUN_EXPORT PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT; +GLEW_FUN_EXPORT PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT; + +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT; + +GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT; +GLEW_FUN_EXPORT PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT; +GLEW_FUN_EXPORT PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT; +GLEW_FUN_EXPORT PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT; +GLEW_FUN_EXPORT PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT; + +GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT; +GLEW_FUN_EXPORT PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT; + +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT; + +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT; + +GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT; +GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT; +GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT; +GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT; +GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT; +GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT; +GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT; +GLEW_FUN_EXPORT PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT; + +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT; + +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT; +GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT; +GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT; + +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT; +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT; +GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT; +GLEW_FUN_EXPORT PFNGLHISTOGRAMEXTPROC __glewHistogramEXT; +GLEW_FUN_EXPORT PFNGLMINMAXEXTPROC __glewMinmaxEXT; +GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT; +GLEW_FUN_EXPORT PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT; + +GLEW_FUN_EXPORT PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT; + +GLEW_FUN_EXPORT PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT; + +GLEW_FUN_EXPORT PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT; +GLEW_FUN_EXPORT PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT; + +GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT; + +GLEW_FUN_EXPORT PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT; +GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT; + +GLEW_FUN_EXPORT PFNGLCOLORTABLEEXTPROC __glewColorTableEXT; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT; + +GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT; +GLEW_FUN_EXPORT PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT; + +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT; + +GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; + +GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; + +GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; +GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT; + +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; + +GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; +GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; +GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; + +GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; +GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; + +GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; + +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; + +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; + +GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; + +GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; +GLEW_FUN_EXPORT PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT; + +GLEW_FUN_EXPORT PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT; +GLEW_FUN_EXPORT PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT; +GLEW_FUN_EXPORT PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT; +GLEW_FUN_EXPORT PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT; +GLEW_FUN_EXPORT PFNGLISTEXTUREEXTPROC __glewIsTextureEXT; +GLEW_FUN_EXPORT PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT; + +GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; + +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; + +GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT; +GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT; +GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT; +GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT; + +GLEW_FUN_EXPORT PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT; +GLEW_FUN_EXPORT PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT; +GLEW_FUN_EXPORT PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT; +GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT; +GLEW_FUN_EXPORT PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT; +GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; +GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; +GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; + +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT; + +GLEW_FUN_EXPORT PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT; +GLEW_FUN_EXPORT PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT; +GLEW_FUN_EXPORT PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT; +GLEW_FUN_EXPORT PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT; +GLEW_FUN_EXPORT PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT; +GLEW_FUN_EXPORT PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT; +GLEW_FUN_EXPORT PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT; +GLEW_FUN_EXPORT PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT; +GLEW_FUN_EXPORT PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT; +GLEW_FUN_EXPORT PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT; +GLEW_FUN_EXPORT PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT; +GLEW_FUN_EXPORT PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT; +GLEW_FUN_EXPORT PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT; +GLEW_FUN_EXPORT PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT; +GLEW_FUN_EXPORT PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT; +GLEW_FUN_EXPORT PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT; +GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT; +GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT; +GLEW_FUN_EXPORT PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT; +GLEW_FUN_EXPORT PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT; +GLEW_FUN_EXPORT PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT; +GLEW_FUN_EXPORT PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT; +GLEW_FUN_EXPORT PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT; +GLEW_FUN_EXPORT PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT; +GLEW_FUN_EXPORT PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT; +GLEW_FUN_EXPORT PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT; +GLEW_FUN_EXPORT PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT; +GLEW_FUN_EXPORT PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT; +GLEW_FUN_EXPORT PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT; +GLEW_FUN_EXPORT PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT; +GLEW_FUN_EXPORT PFNGLSWIZZLEEXTPROC __glewSwizzleEXT; +GLEW_FUN_EXPORT PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT; +GLEW_FUN_EXPORT PFNGLVARIANTBVEXTPROC __glewVariantbvEXT; +GLEW_FUN_EXPORT PFNGLVARIANTDVEXTPROC __glewVariantdvEXT; +GLEW_FUN_EXPORT PFNGLVARIANTFVEXTPROC __glewVariantfvEXT; +GLEW_FUN_EXPORT PFNGLVARIANTIVEXTPROC __glewVariantivEXT; +GLEW_FUN_EXPORT PFNGLVARIANTSVEXTPROC __glewVariantsvEXT; +GLEW_FUN_EXPORT PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT; +GLEW_FUN_EXPORT PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT; +GLEW_FUN_EXPORT PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT; +GLEW_FUN_EXPORT PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT; + +GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; +GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; +GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; + +GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; + +GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY; + +GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP; +GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP; +GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP; +GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP; +GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP; +GLEW_FUN_EXPORT PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP; + +GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM; +GLEW_FUN_EXPORT PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM; + +GLEW_FUN_EXPORT PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM; +GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM; +GLEW_FUN_EXPORT PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM; +GLEW_FUN_EXPORT PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM; +GLEW_FUN_EXPORT PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM; +GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM; +GLEW_FUN_EXPORT PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM; + +GLEW_FUN_EXPORT PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL; +GLEW_FUN_EXPORT PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL; +GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL; +GLEW_FUN_EXPORT PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL; + +GLEW_FUN_EXPORT PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL; +GLEW_FUN_EXPORT PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL; + +GLEW_FUN_EXPORT PFNGLBUFFERREGIONENABLEDEXTPROC __glewBufferRegionEnabledEXT; +GLEW_FUN_EXPORT PFNGLDELETEBUFFERREGIONEXTPROC __glewDeleteBufferRegionEXT; +GLEW_FUN_EXPORT PFNGLDRAWBUFFERREGIONEXTPROC __glewDrawBufferRegionEXT; +GLEW_FUN_EXPORT PFNGLNEWBUFFERREGIONEXTPROC __glewNewBufferRegionEXT; +GLEW_FUN_EXPORT PFNGLREADBUFFERREGIONEXTPROC __glewReadBufferRegionEXT; + +GLEW_FUN_EXPORT PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA; + +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA; +GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; + +GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; +GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; + +GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; + +GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; +GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; + +GLEW_FUN_EXPORT PFNGLEVALMAPSNVPROC __glewEvalMapsNV; +GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV; +GLEW_FUN_EXPORT PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV; +GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV; +GLEW_FUN_EXPORT PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV; +GLEW_FUN_EXPORT PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV; +GLEW_FUN_EXPORT PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV; + +GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV; +GLEW_FUN_EXPORT PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV; +GLEW_FUN_EXPORT PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV; + +GLEW_FUN_EXPORT PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV; +GLEW_FUN_EXPORT PFNGLFINISHFENCENVPROC __glewFinishFenceNV; +GLEW_FUN_EXPORT PFNGLGENFENCESNVPROC __glewGenFencesNV; +GLEW_FUN_EXPORT PFNGLGETFENCEIVNVPROC __glewGetFenceivNV; +GLEW_FUN_EXPORT PFNGLISFENCENVPROC __glewIsFenceNV; +GLEW_FUN_EXPORT PFNGLSETFENCENVPROC __glewSetFenceNV; +GLEW_FUN_EXPORT PFNGLTESTFENCENVPROC __glewTestFenceNV; + +GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV; +GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV; +GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV; +GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV; +GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV; + +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; + +GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; + +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV; + +GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV; +GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV; + +GLEW_FUN_EXPORT PFNGLCOLOR3HNVPROC __glewColor3hNV; +GLEW_FUN_EXPORT PFNGLCOLOR3HVNVPROC __glewColor3hvNV; +GLEW_FUN_EXPORT PFNGLCOLOR4HNVPROC __glewColor4hNV; +GLEW_FUN_EXPORT PFNGLCOLOR4HVNVPROC __glewColor4hvNV; +GLEW_FUN_EXPORT PFNGLFOGCOORDHNVPROC __glewFogCoordhNV; +GLEW_FUN_EXPORT PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV; +GLEW_FUN_EXPORT PFNGLNORMAL3HNVPROC __glewNormal3hNV; +GLEW_FUN_EXPORT PFNGLNORMAL3HVNVPROC __glewNormal3hvNV; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV; +GLEW_FUN_EXPORT PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV; +GLEW_FUN_EXPORT PFNGLVERTEX2HNVPROC __glewVertex2hNV; +GLEW_FUN_EXPORT PFNGLVERTEX2HVNVPROC __glewVertex2hvNV; +GLEW_FUN_EXPORT PFNGLVERTEX3HNVPROC __glewVertex3hNV; +GLEW_FUN_EXPORT PFNGLVERTEX3HVNVPROC __glewVertex3hvNV; +GLEW_FUN_EXPORT PFNGLVERTEX4HNVPROC __glewVertex4hNV; +GLEW_FUN_EXPORT PFNGLVERTEX4HVNVPROC __glewVertex4hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV; +GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV; +GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV; + +GLEW_FUN_EXPORT PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV; +GLEW_FUN_EXPORT PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV; +GLEW_FUN_EXPORT PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV; +GLEW_FUN_EXPORT PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV; +GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV; +GLEW_FUN_EXPORT PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV; +GLEW_FUN_EXPORT PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV; + +GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV; +GLEW_FUN_EXPORT PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV; + +GLEW_FUN_EXPORT PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV; +GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; + +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; + +GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV; +GLEW_FUN_EXPORT PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV; +GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; + +GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; +GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; + +GLEW_FUN_EXPORT PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV; +GLEW_FUN_EXPORT PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV; +GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV; +GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV; +GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV; +GLEW_FUN_EXPORT PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV; +GLEW_FUN_EXPORT PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV; +GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV; +GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV; +GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV; + +GLEW_FUN_EXPORT PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV; + +GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; +GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV; +GLEW_FUN_EXPORT PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV; +GLEW_FUN_EXPORT PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV; +GLEW_FUN_EXPORT PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV; +GLEW_FUN_EXPORT PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV; +GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV; +GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; + +GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; + +GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV; +GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV; +GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV; +GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV; +GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV; +GLEW_FUN_EXPORT PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV; + +GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV; +GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV; + +GLEW_FUN_EXPORT PFNGLVDPAUFININVPROC __glewVDPAUFiniNV; +GLEW_FUN_EXPORT PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV; +GLEW_FUN_EXPORT PFNGLVDPAUINITNVPROC __glewVDPAUInitNV; +GLEW_FUN_EXPORT PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV; +GLEW_FUN_EXPORT PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; +GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; +GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; + +GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; + +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV; + +GLEW_FUN_EXPORT PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV; +GLEW_FUN_EXPORT PFNGLCOLORFORMATNVPROC __glewColorFormatNV; +GLEW_FUN_EXPORT PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV; +GLEW_FUN_EXPORT PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV; +GLEW_FUN_EXPORT PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV; +GLEW_FUN_EXPORT PFNGLINDEXFORMATNVPROC __glewIndexFormatNV; +GLEW_FUN_EXPORT PFNGLNORMALFORMATNVPROC __glewNormalFormatNV; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV; +GLEW_FUN_EXPORT PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV; +GLEW_FUN_EXPORT PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV; + +GLEW_FUN_EXPORT PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV; +GLEW_FUN_EXPORT PFNGLBINDPROGRAMNVPROC __glewBindProgramNV; +GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV; +GLEW_FUN_EXPORT PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV; +GLEW_FUN_EXPORT PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV; +GLEW_FUN_EXPORT PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV; +GLEW_FUN_EXPORT PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV; +GLEW_FUN_EXPORT PFNGLISPROGRAMNVPROC __glewIsProgramNV; +GLEW_FUN_EXPORT PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV; +GLEW_FUN_EXPORT PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV; +GLEW_FUN_EXPORT PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV; + +GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; +GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; +GLEW_FUN_EXPORT PFNGLFRUSTUMFOESPROC __glewFrustumfOES; +GLEW_FUN_EXPORT PFNGLGETCLIPPLANEFOESPROC __glewGetClipPlanefOES; +GLEW_FUN_EXPORT PFNGLORTHOFOESPROC __glewOrthofOES; + +GLEW_FUN_EXPORT PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS; +GLEW_FUN_EXPORT PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS; + +GLEW_FUN_EXPORT PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS; +GLEW_FUN_EXPORT PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS; + +GLEW_FUN_EXPORT PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS; +GLEW_FUN_EXPORT PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS; + +GLEW_FUN_EXPORT PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS; +GLEW_FUN_EXPORT PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS; + +GLEW_FUN_EXPORT PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS; +GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS; + +GLEW_FUN_EXPORT PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS; +GLEW_FUN_EXPORT PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS; + +GLEW_FUN_EXPORT PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX; +GLEW_FUN_EXPORT PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX; +GLEW_FUN_EXPORT PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX; +GLEW_FUN_EXPORT PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX; +GLEW_FUN_EXPORT PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX; +GLEW_FUN_EXPORT PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX; + +GLEW_FUN_EXPORT PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX; + +GLEW_FUN_EXPORT PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX; + +GLEW_FUN_EXPORT PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX; +GLEW_FUN_EXPORT PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX; +GLEW_FUN_EXPORT PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX; + +GLEW_FUN_EXPORT PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX; + +GLEW_FUN_EXPORT PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX; + +GLEW_FUN_EXPORT PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX; + +GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX; +GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX; +GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX; +GLEW_FUN_EXPORT PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX; + +GLEW_FUN_EXPORT PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX; + +GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI; +GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI; +GLEW_FUN_EXPORT PFNGLCOLORTABLESGIPROC __glewColorTableSGI; +GLEW_FUN_EXPORT PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI; +GLEW_FUN_EXPORT PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI; + +GLEW_FUN_EXPORT PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX; + +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN; +GLEW_FUN_EXPORT PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN; + +GLEW_FUN_EXPORT PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN; + +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN; + +GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN; +GLEW_FUN_EXPORT PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN; +GLEW_FUN_EXPORT PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN; +GLEW_FUN_EXPORT PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN; + +GLEW_FUN_EXPORT PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN; + +#if defined(GLEW_MX) && !defined(_WIN32) +struct GLEWContextStruct +{ +#endif /* GLEW_MX */ + +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_3; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_4; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_5; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_0; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_0; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_2; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_3; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_0; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1; +GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer; +GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_range; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_program_evaluators; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_ycbcr_422; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES2_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_color_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_debug_output; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_elements_base_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_indirect; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_instanced; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_attrib_location; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_coord_conventions; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program_shadow; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_pixel; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_imaging; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_instanced_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_matrix_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multitexture; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query2; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_shading; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sampler_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_separate_shader_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_bit_encoding; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_precision; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_stencil_export; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_subroutine; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_100; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_include; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow_ambient; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object_rgb32; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_bptc; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_rgtc; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map_array; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirrored_repeat; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_non_power_of_two; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rg; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rgb10_a2ui; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_swizzle; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback2; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback3; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transpose_matrix; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_uniform_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_64bit; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_program; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos; +GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites; +GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3; +GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_route; +GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_vertex_shader_output_point_size; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_element_array; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_envmap_bumpmap; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_fragment_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_map_object_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_meminfo; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_pn_triangles; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_separate_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_shader_texture_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_text_fragment_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_compression_3dc; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_env_combine3; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_mirror_once; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_attrib_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_vertex_streams; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_422_pixels; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_Cg_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_abgr; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_bindable_uniform; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_equation_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_func_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_logic_op; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_blend_subtract; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_clip_volume_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cmyka; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_color_subtable; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_compiled_vertex_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_convolution; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fog_coord; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_fragment_lighting; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_blit; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_framebuffer_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_geometry_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_program_parameters; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_gpu_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_histogram; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_array_formats; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_func; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_material; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_index_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_light_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_misc_attribute; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multi_draw_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_float; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_packed_pixels; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_paletted_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform_color_table; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_two_side; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_wrap; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_subtexture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture3D; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_dxt1; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_latc; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_rgtc; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_compression_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_edge_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_add; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_combine; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_env_dot3; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_filter_anisotropic; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_integer; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_lod_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_mirror_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting; +GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator; +GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker; +GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes; +GLEW_VAR_EXPORT GLboolean __GLEW_HP_image_transform; +GLEW_VAR_EXPORT GLboolean __GLEW_HP_occlusion_test; +GLEW_VAR_EXPORT GLboolean __GLEW_HP_texture_lighting; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_cull_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_multimode_draw_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_rasterpos_clip; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_static_data; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_texture_mirrored_repeat; +GLEW_VAR_EXPORT GLboolean __GLEW_IBM_vertex_array_lists; +GLEW_VAR_EXPORT GLboolean __GLEW_INGR_color_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_INGR_interlace_read; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_parallel_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_INTEL_texture_scissor; +GLEW_VAR_EXPORT GLboolean __GLEW_KTX_buffer_region; +GLEW_VAR_EXPORT GLboolean __GLEW_MESAX_texture_stack; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos; +GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fog_distance; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_fragment_program_option; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_buffer_unified_memory; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program1_1; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format; +GLEW_VAR_EXPORT GLboolean __GLEW_OES_single_precision; +GLEW_VAR_EXPORT GLboolean __GLEW_OML_interlace; +GLEW_VAR_EXPORT GLboolean __GLEW_OML_resample; +GLEW_VAR_EXPORT GLboolean __GLEW_OML_subsample; +GLEW_VAR_EXPORT GLboolean __GLEW_PGI_misc_hints; +GLEW_VAR_EXPORT GLboolean __GLEW_PGI_vertex_hints; +GLEW_VAR_EXPORT GLboolean __GLEW_REND_screen_coordinates; +GLEW_VAR_EXPORT GLboolean __GLEW_S3_s3tc; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_color_range; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_detail_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_edge_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_filter4; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_lod; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_select; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fragment_specular_lighting; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_framezoom; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_interlace; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ir_instrument1; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_list_priority; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_pixel_texture_bits; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_reference_plane; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_resample; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_shadow_ambient; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_tag_sample_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_add_env; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_coordinate_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_lod_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_multi_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_range; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_texture_scale_bias; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_vertex_preclip_hint; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_ycrcb; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_matrix; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_color_table; +GLEW_VAR_EXPORT GLboolean __GLEW_SGI_texture_color_table; +GLEW_VAR_EXPORT GLboolean __GLEW_SUNX_constant_data; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_convolution_border_modes; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_global_alpha; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_mesh_array; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_read_video_pixels; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_slice_accum; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_triangle_list; +GLEW_VAR_EXPORT GLboolean __GLEW_SUN_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_WIN_phong_shading; +GLEW_VAR_EXPORT GLboolean __GLEW_WIN_specular_fog; +GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; + +#ifdef GLEW_MX +}; /* GLEWContextStruct */ +#endif /* GLEW_MX */ + +/* ------------------------------------------------------------------------- */ + +/* error codes */ +#define GLEW_OK 0 +#define GLEW_NO_ERROR 0 +#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ +#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* GL 1.1 and up are not supported */ +#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* GLX 1.2 and up are not supported */ + +/* string codes */ +#define GLEW_VERSION 1 +#define GLEW_VERSION_MAJOR 2 +#define GLEW_VERSION_MINOR 3 +#define GLEW_VERSION_MICRO 4 + +/* API */ +#ifdef GLEW_MX + +typedef struct GLEWContextStruct GLEWContext; +GLEWAPI GLenum glewContextInit (GLEWContext* ctx); +GLEWAPI GLboolean glewContextIsSupported (GLEWContext* ctx, const char* name); + +#define glewInit() glewContextInit(glewGetContext()) +#define glewIsSupported(x) glewContextIsSupported(glewGetContext(), x) +#define glewIsExtensionSupported(x) glewIsSupported(x) + +#define GLEW_GET_VAR(x) (*(const GLboolean*)&(glewGetContext()->x)) +#ifdef _WIN32 +# define GLEW_GET_FUN(x) glewGetContext()->x +#else +# define GLEW_GET_FUN(x) x +#endif + +#else /* GLEW_MX */ + +GLEWAPI GLenum glewInit (); +GLEWAPI GLboolean glewIsSupported (const char* name); +#define glewIsExtensionSupported(x) glewIsSupported(x) + +#define GLEW_GET_VAR(x) (*(const GLboolean*)&x) +#define GLEW_GET_FUN(x) x + +#endif /* GLEW_MX */ + +GLEWAPI GLboolean glewExperimental; +GLEWAPI GLboolean glewGetExtension (const char* name); +GLEWAPI const GLubyte* glewGetErrorString (GLenum error); +GLEWAPI const GLubyte* glewGetString (GLenum name); + +#ifdef __cplusplus +} +#endif + +#ifdef GLEW_APIENTRY_DEFINED +#undef GLEW_APIENTRY_DEFINED +#undef APIENTRY +#undef GLAPIENTRY +#define GLAPIENTRY +#endif + +#ifdef GLEW_CALLBACK_DEFINED +#undef GLEW_CALLBACK_DEFINED +#undef CALLBACK +#endif + +#ifdef GLEW_WINGDIAPI_DEFINED +#undef GLEW_WINGDIAPI_DEFINED +#undef WINGDIAPI +#endif + +#undef GLAPI +/* #undef GLEWAPI */ + +#endif /* __glew_h__ */ diff --git a/Part2/PROJ_WIN/shared/glew/include/GL/glxew.h b/Part2/PROJ_WIN/shared/glew/include/GL/glxew.h new file mode 100644 index 0000000..ab4d03d --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/include/GL/glxew.h @@ -0,0 +1,1537 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + * Mesa 3-D graphics library + * Version: 7.0 + * + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __glxew_h__ +#define __glxew_h__ +#define __GLXEW_H__ + +#ifdef __glxext_h_ +#error glxext.h included before glxew.h +#endif + +#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__) +#error glx.h included before glxew.h +#endif + +#define __glxext_h_ + +#define GLX_H +#define __GLX_glx_h__ +#define __glx_h__ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* ---------------------------- GLX_VERSION_1_0 --------------------------- */ + +#ifndef GLX_VERSION_1_0 +#define GLX_VERSION_1_0 1 + +#define GLX_USE_GL 1 +#define GLX_BUFFER_SIZE 2 +#define GLX_LEVEL 3 +#define GLX_RGBA 4 +#define GLX_DOUBLEBUFFER 5 +#define GLX_STEREO 6 +#define GLX_AUX_BUFFERS 7 +#define GLX_RED_SIZE 8 +#define GLX_GREEN_SIZE 9 +#define GLX_BLUE_SIZE 10 +#define GLX_ALPHA_SIZE 11 +#define GLX_DEPTH_SIZE 12 +#define GLX_STENCIL_SIZE 13 +#define GLX_ACCUM_RED_SIZE 14 +#define GLX_ACCUM_GREEN_SIZE 15 +#define GLX_ACCUM_BLUE_SIZE 16 +#define GLX_ACCUM_ALPHA_SIZE 17 +#define GLX_BAD_SCREEN 1 +#define GLX_BAD_ATTRIBUTE 2 +#define GLX_NO_EXTENSION 3 +#define GLX_BAD_VISUAL 4 +#define GLX_BAD_CONTEXT 5 +#define GLX_BAD_VALUE 6 +#define GLX_BAD_ENUM 7 + +typedef XID GLXDrawable; +typedef XID GLXPixmap; +#ifdef __sun +typedef struct __glXContextRec *GLXContext; +#else +typedef struct __GLXcontextRec *GLXContext; +#endif + +typedef unsigned int GLXVideoDeviceNV; + +extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase); +extern Bool glXQueryVersion (Display *dpy, int *major, int *minor); +extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value); +extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList); +extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap); +extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix); +extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); +extern void glXDestroyContext (Display *dpy, GLXContext ctx); +extern Bool glXIsDirect (Display *dpy, GLXContext ctx); +extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask); +extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx); +extern GLXContext glXGetCurrentContext (void); +extern GLXDrawable glXGetCurrentDrawable (void); +extern void glXWaitGL (void); +extern void glXWaitX (void); +extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable); +extern void glXUseXFont (Font font, int first, int count, int listBase); + +#define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0) + +#endif /* GLX_VERSION_1_0 */ + +/* ---------------------------- GLX_VERSION_1_1 --------------------------- */ + +#ifndef GLX_VERSION_1_1 +#define GLX_VERSION_1_1 + +#define GLX_VENDOR 0x1 +#define GLX_VERSION 0x2 +#define GLX_EXTENSIONS 0x3 + +extern const char* glXQueryExtensionsString (Display *dpy, int screen); +extern const char* glXGetClientString (Display *dpy, int name); +extern const char* glXQueryServerString (Display *dpy, int screen, int name); + +#define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1) + +#endif /* GLX_VERSION_1_1 */ + +/* ---------------------------- GLX_VERSION_1_2 ---------------------------- */ + +#ifndef GLX_VERSION_1_2 +#define GLX_VERSION_1_2 1 + +typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void); + +#define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay) + +#define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2) + +#endif /* GLX_VERSION_1_2 */ + +/* ---------------------------- GLX_VERSION_1_3 ---------------------------- */ + +#ifndef GLX_VERSION_1_3 +#define GLX_VERSION_1_3 1 + +#define GLX_RGBA_BIT 0x00000001 +#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 +#define GLX_WINDOW_BIT 0x00000001 +#define GLX_COLOR_INDEX_BIT 0x00000002 +#define GLX_PIXMAP_BIT 0x00000002 +#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 +#define GLX_PBUFFER_BIT 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 +#define GLX_AUX_BUFFERS_BIT 0x00000010 +#define GLX_CONFIG_CAVEAT 0x20 +#define GLX_DEPTH_BUFFER_BIT 0x00000020 +#define GLX_X_VISUAL_TYPE 0x22 +#define GLX_TRANSPARENT_TYPE 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24 +#define GLX_TRANSPARENT_RED_VALUE 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 +#define GLX_STENCIL_BUFFER_BIT 0x00000040 +#define GLX_ACCUM_BUFFER_BIT 0x00000080 +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_VISUAL_ID 0x800B +#define GLX_SCREEN 0x800C +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_DRAWABLE_TYPE 0x8010 +#define GLX_RENDER_TYPE 0x8011 +#define GLX_X_RENDERABLE 0x8012 +#define GLX_FBCONFIG_ID 0x8013 +#define GLX_RGBA_TYPE 0x8014 +#define GLX_COLOR_INDEX_TYPE 0x8015 +#define GLX_MAX_PBUFFER_WIDTH 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT 0x8017 +#define GLX_MAX_PBUFFER_PIXELS 0x8018 +#define GLX_PRESERVED_CONTENTS 0x801B +#define GLX_LARGEST_PBUFFER 0x801C +#define GLX_WIDTH 0x801D +#define GLX_HEIGHT 0x801E +#define GLX_EVENT_MASK 0x801F +#define GLX_DAMAGED 0x8020 +#define GLX_SAVED 0x8021 +#define GLX_WINDOW 0x8022 +#define GLX_PBUFFER 0x8023 +#define GLX_PBUFFER_HEIGHT 0x8040 +#define GLX_PBUFFER_WIDTH 0x8041 +#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 +#define GLX_DONT_CARE 0xFFFFFFFF + +typedef XID GLXFBConfigID; +typedef XID GLXWindow; +typedef XID GLXPbuffer; +typedef struct __GLXFBConfigRec *GLXFBConfig; + +typedef struct { + int event_type; + int draw_type; + unsigned long serial; + Bool send_event; + Display *display; + GLXDrawable drawable; + unsigned int buffer_mask; + unsigned int aux_buffer; + int x, y; + int width, height; + int count; +} GLXPbufferClobberEvent; +typedef union __GLXEvent { + GLXPbufferClobberEvent glxpbufferclobber; + long pad[24]; +} GLXEvent; + +typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); +typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); +typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); +typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); +typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); +typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); +typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); +typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); +typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); +typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); +typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); +typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); +typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); +typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); +typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); + +#define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig) +#define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext) +#define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer) +#define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap) +#define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow) +#define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer) +#define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap) +#define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow) +#define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable) +#define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib) +#define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs) +#define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent) +#define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig) +#define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent) +#define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext) +#define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable) +#define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent) + +#define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3) + +#endif /* GLX_VERSION_1_3 */ + +/* ---------------------------- GLX_VERSION_1_4 ---------------------------- */ + +#ifndef GLX_VERSION_1_4 +#define GLX_VERSION_1_4 1 + +#define GLX_SAMPLE_BUFFERS 100000 +#define GLX_SAMPLES 100001 + +extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); + +#define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4) + +#endif /* GLX_VERSION_1_4 */ + +/* -------------------------- GLX_3DFX_multisample ------------------------- */ + +#ifndef GLX_3DFX_multisample +#define GLX_3DFX_multisample 1 + +#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 +#define GLX_SAMPLES_3DFX 0x8051 + +#define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample) + +#endif /* GLX_3DFX_multisample */ + +/* ------------------------ GLX_AMD_gpu_association ------------------------ */ + +#ifndef GLX_AMD_gpu_association +#define GLX_AMD_gpu_association 1 + +#define GLX_GPU_VENDOR_AMD 0x1F00 +#define GLX_GPU_RENDERER_STRING_AMD 0x1F01 +#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 +#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 +#define GLX_GPU_RAM_AMD 0x21A3 +#define GLX_GPU_CLOCK_AMD 0x21A4 +#define GLX_GPU_NUM_PIPES_AMD 0x21A5 +#define GLX_GPU_NUM_SIMD_AMD 0x21A6 +#define GLX_GPU_NUM_RB_AMD 0x21A7 +#define GLX_GPU_NUM_SPI_AMD 0x21A8 + +#define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association) + +#endif /* GLX_AMD_gpu_association */ + +/* ------------------------- GLX_ARB_create_context ------------------------ */ + +#ifndef GLX_ARB_create_context +#define GLX_ARB_create_context 1 + +#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 +#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define GLX_CONTEXT_FLAGS_ARB 0x2094 + +typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); + +#define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) + +#define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context) + +#endif /* GLX_ARB_create_context */ + +/* --------------------- GLX_ARB_create_context_profile -------------------- */ + +#ifndef GLX_ARB_create_context_profile +#define GLX_ARB_create_context_profile 1 + +#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 + +#define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile) + +#endif /* GLX_ARB_create_context_profile */ + +/* ------------------- GLX_ARB_create_context_robustness ------------------- */ + +#ifndef GLX_ARB_create_context_robustness +#define GLX_ARB_create_context_robustness 1 + +#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 + +#define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness) + +#endif /* GLX_ARB_create_context_robustness */ + +/* ------------------------- GLX_ARB_fbconfig_float ------------------------ */ + +#ifndef GLX_ARB_fbconfig_float +#define GLX_ARB_fbconfig_float 1 + +#define GLX_RGBA_FLOAT_BIT 0x00000004 +#define GLX_RGBA_FLOAT_TYPE 0x20B9 + +#define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float) + +#endif /* GLX_ARB_fbconfig_float */ + +/* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */ + +#ifndef GLX_ARB_framebuffer_sRGB +#define GLX_ARB_framebuffer_sRGB 1 + +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2 + +#define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB) + +#endif /* GLX_ARB_framebuffer_sRGB */ + +/* ------------------------ GLX_ARB_get_proc_address ----------------------- */ + +#ifndef GLX_ARB_get_proc_address +#define GLX_ARB_get_proc_address 1 + +extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void); + +#define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address) + +#endif /* GLX_ARB_get_proc_address */ + +/* -------------------------- GLX_ARB_multisample -------------------------- */ + +#ifndef GLX_ARB_multisample +#define GLX_ARB_multisample 1 + +#define GLX_SAMPLE_BUFFERS_ARB 100000 +#define GLX_SAMPLES_ARB 100001 + +#define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample) + +#endif /* GLX_ARB_multisample */ + +/* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */ + +#ifndef GLX_ARB_vertex_buffer_object +#define GLX_ARB_vertex_buffer_object 1 + +#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 + +#define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object) + +#endif /* GLX_ARB_vertex_buffer_object */ + +/* ----------------------- GLX_ATI_pixel_format_float ---------------------- */ + +#ifndef GLX_ATI_pixel_format_float +#define GLX_ATI_pixel_format_float 1 + +#define GLX_RGBA_FLOAT_ATI_BIT 0x00000100 + +#define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float) + +#endif /* GLX_ATI_pixel_format_float */ + +/* ------------------------- GLX_ATI_render_texture ------------------------ */ + +#ifndef GLX_ATI_render_texture +#define GLX_ATI_render_texture 1 + +#define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800 +#define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801 +#define GLX_TEXTURE_FORMAT_ATI 0x9802 +#define GLX_TEXTURE_TARGET_ATI 0x9803 +#define GLX_MIPMAP_TEXTURE_ATI 0x9804 +#define GLX_TEXTURE_RGB_ATI 0x9805 +#define GLX_TEXTURE_RGBA_ATI 0x9806 +#define GLX_NO_TEXTURE_ATI 0x9807 +#define GLX_TEXTURE_CUBE_MAP_ATI 0x9808 +#define GLX_TEXTURE_1D_ATI 0x9809 +#define GLX_TEXTURE_2D_ATI 0x980A +#define GLX_MIPMAP_LEVEL_ATI 0x980B +#define GLX_CUBE_MAP_FACE_ATI 0x980C +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810 +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811 +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812 +#define GLX_FRONT_LEFT_ATI 0x9813 +#define GLX_FRONT_RIGHT_ATI 0x9814 +#define GLX_BACK_LEFT_ATI 0x9815 +#define GLX_BACK_RIGHT_ATI 0x9816 +#define GLX_AUX0_ATI 0x9817 +#define GLX_AUX1_ATI 0x9818 +#define GLX_AUX2_ATI 0x9819 +#define GLX_AUX3_ATI 0x981A +#define GLX_AUX4_ATI 0x981B +#define GLX_AUX5_ATI 0x981C +#define GLX_AUX6_ATI 0x981D +#define GLX_AUX7_ATI 0x981E +#define GLX_AUX8_ATI 0x981F +#define GLX_AUX9_ATI 0x9820 +#define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821 +#define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822 + +typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); +typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list); +typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer); + +#define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI) +#define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI) +#define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI) + +#define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture) + +#endif /* GLX_ATI_render_texture */ + +/* ------------------- GLX_EXT_create_context_es2_profile ------------------ */ + +#ifndef GLX_EXT_create_context_es2_profile +#define GLX_EXT_create_context_es2_profile 1 + +#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 + +#define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile) + +#endif /* GLX_EXT_create_context_es2_profile */ + +/* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */ + +#ifndef GLX_EXT_fbconfig_packed_float +#define GLX_EXT_fbconfig_packed_float 1 + +#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 +#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 + +#define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float) + +#endif /* GLX_EXT_fbconfig_packed_float */ + +/* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */ + +#ifndef GLX_EXT_framebuffer_sRGB +#define GLX_EXT_framebuffer_sRGB 1 + +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 + +#define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB) + +#endif /* GLX_EXT_framebuffer_sRGB */ + +/* ------------------------- GLX_EXT_import_context ------------------------ */ + +#ifndef GLX_EXT_import_context +#define GLX_EXT_import_context 1 + +#define GLX_SHARE_CONTEXT_EXT 0x800A +#define GLX_VISUAL_ID_EXT 0x800B +#define GLX_SCREEN_EXT 0x800C + +typedef XID GLXContextID; + +typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context); +typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); +typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID); +typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value); + +#define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT) +#define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT) +#define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT) +#define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT) + +#define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context) + +#endif /* GLX_EXT_import_context */ + +/* -------------------------- GLX_EXT_scene_marker ------------------------- */ + +#ifndef GLX_EXT_scene_marker +#define GLX_EXT_scene_marker 1 + +#define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker) + +#endif /* GLX_EXT_scene_marker */ + +/* -------------------------- GLX_EXT_swap_control ------------------------- */ + +#ifndef GLX_EXT_swap_control +#define GLX_EXT_swap_control 1 + +#define GLX_SWAP_INTERVAL_EXT 0x20F1 +#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 + +typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval); + +#define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT) + +#define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control) + +#endif /* GLX_EXT_swap_control */ + +/* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */ + +#ifndef GLX_EXT_texture_from_pixmap +#define GLX_EXT_texture_from_pixmap 1 + +#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 +#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 +#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 +#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 +#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 +#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 +#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 +#define GLX_Y_INVERTED_EXT 0x20D4 +#define GLX_TEXTURE_FORMAT_EXT 0x20D5 +#define GLX_TEXTURE_TARGET_EXT 0x20D6 +#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 +#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 +#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 +#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA +#define GLX_TEXTURE_1D_EXT 0x20DB +#define GLX_TEXTURE_2D_EXT 0x20DC +#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD +#define GLX_FRONT_LEFT_EXT 0x20DE +#define GLX_FRONT_RIGHT_EXT 0x20DF +#define GLX_BACK_LEFT_EXT 0x20E0 +#define GLX_BACK_RIGHT_EXT 0x20E1 +#define GLX_AUX0_EXT 0x20E2 +#define GLX_AUX1_EXT 0x20E3 +#define GLX_AUX2_EXT 0x20E4 +#define GLX_AUX3_EXT 0x20E5 +#define GLX_AUX4_EXT 0x20E6 +#define GLX_AUX5_EXT 0x20E7 +#define GLX_AUX6_EXT 0x20E8 +#define GLX_AUX7_EXT 0x20E9 +#define GLX_AUX8_EXT 0x20EA +#define GLX_AUX9_EXT 0x20EB + +typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list); +typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer); + +#define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) +#define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) + +#define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap) + +#endif /* GLX_EXT_texture_from_pixmap */ + +/* -------------------------- GLX_EXT_visual_info -------------------------- */ + +#ifndef GLX_EXT_visual_info +#define GLX_EXT_visual_info 1 + +#define GLX_X_VISUAL_TYPE_EXT 0x22 +#define GLX_TRANSPARENT_TYPE_EXT 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 +#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 +#define GLX_NONE_EXT 0x8000 +#define GLX_TRUE_COLOR_EXT 0x8002 +#define GLX_DIRECT_COLOR_EXT 0x8003 +#define GLX_PSEUDO_COLOR_EXT 0x8004 +#define GLX_STATIC_COLOR_EXT 0x8005 +#define GLX_GRAY_SCALE_EXT 0x8006 +#define GLX_STATIC_GRAY_EXT 0x8007 +#define GLX_TRANSPARENT_RGB_EXT 0x8008 +#define GLX_TRANSPARENT_INDEX_EXT 0x8009 + +#define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info) + +#endif /* GLX_EXT_visual_info */ + +/* ------------------------- GLX_EXT_visual_rating ------------------------- */ + +#ifndef GLX_EXT_visual_rating +#define GLX_EXT_visual_rating 1 + +#define GLX_VISUAL_CAVEAT_EXT 0x20 +#define GLX_SLOW_VISUAL_EXT 0x8001 +#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D + +#define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating) + +#endif /* GLX_EXT_visual_rating */ + +/* -------------------------- GLX_INTEL_swap_event ------------------------- */ + +#ifndef GLX_INTEL_swap_event +#define GLX_INTEL_swap_event 1 + +#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 +#define GLX_COPY_COMPLETE_INTEL 0x8181 +#define GLX_FLIP_COMPLETE_INTEL 0x8182 +#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 + +#define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event) + +#endif /* GLX_INTEL_swap_event */ + +/* -------------------------- GLX_MESA_agp_offset -------------------------- */ + +#ifndef GLX_MESA_agp_offset +#define GLX_MESA_agp_offset 1 + +typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer); + +#define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA) + +#define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset) + +#endif /* GLX_MESA_agp_offset */ + +/* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */ + +#ifndef GLX_MESA_copy_sub_buffer +#define GLX_MESA_copy_sub_buffer 1 + +typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height); + +#define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA) + +#define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer) + +#endif /* GLX_MESA_copy_sub_buffer */ + +/* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */ + +#ifndef GLX_MESA_pixmap_colormap +#define GLX_MESA_pixmap_colormap 1 + +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); + +#define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA) + +#define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap) + +#endif /* GLX_MESA_pixmap_colormap */ + +/* ------------------------ GLX_MESA_release_buffers ----------------------- */ + +#ifndef GLX_MESA_release_buffers +#define GLX_MESA_release_buffers 1 + +typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d); + +#define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA) + +#define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers) + +#endif /* GLX_MESA_release_buffers */ + +/* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */ + +#ifndef GLX_MESA_set_3dfx_mode +#define GLX_MESA_set_3dfx_mode 1 + +#define GLX_3DFX_WINDOW_MODE_MESA 0x1 +#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 + +typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode); + +#define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA) + +#define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode) + +#endif /* GLX_MESA_set_3dfx_mode */ + +/* --------------------------- GLX_NV_copy_image --------------------------- */ + +#ifndef GLX_NV_copy_image +#define GLX_NV_copy_image 1 + +typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); + +#define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV) + +#define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image) + +#endif /* GLX_NV_copy_image */ + +/* -------------------------- GLX_NV_float_buffer -------------------------- */ + +#ifndef GLX_NV_float_buffer +#define GLX_NV_float_buffer 1 + +#define GLX_FLOAT_COMPONENTS_NV 0x20B0 + +#define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer) + +#endif /* GLX_NV_float_buffer */ + +/* ---------------------- GLX_NV_multisample_coverage ---------------------- */ + +#ifndef GLX_NV_multisample_coverage +#define GLX_NV_multisample_coverage 1 + +#define GLX_COLOR_SAMPLES_NV 0x20B3 +#define GLX_COVERAGE_SAMPLES_NV 100001 + +#define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage) + +#endif /* GLX_NV_multisample_coverage */ + +/* -------------------------- GLX_NV_present_video ------------------------- */ + +#ifndef GLX_NV_present_video +#define GLX_NV_present_video 1 + +#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 + +typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); +typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); + +#define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) +#define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) + +#define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video) + +#endif /* GLX_NV_present_video */ + +/* --------------------------- GLX_NV_swap_group --------------------------- */ + +#ifndef GLX_NV_swap_group +#define GLX_NV_swap_group 1 + +typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier); +typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group); +typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count); +typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); +typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); +typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen); + +#define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) +#define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV) +#define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV) +#define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV) +#define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV) +#define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV) + +#define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group) + +#endif /* GLX_NV_swap_group */ + +/* ----------------------- GLX_NV_vertex_array_range ----------------------- */ + +#ifndef GLX_NV_vertex_array_range +#define GLX_NV_vertex_array_range 1 + +typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); +typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); + +#define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV) +#define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV) + +#define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range) + +#endif /* GLX_NV_vertex_array_range */ + +/* -------------------------- GLX_NV_video_output -------------------------- */ + +#ifndef GLX_NV_video_output +#define GLX_NV_video_output 1 + +#define GLX_VIDEO_OUT_COLOR_NV 0x20C3 +#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 +#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 +#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 +#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 +#define GLX_VIDEO_OUT_FRAME_NV 0x20C8 +#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 +#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA +#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB +#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC + +typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); +typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); +typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice); +typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf); +typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); + +#define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) +#define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) +#define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV) +#define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV) +#define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV) +#define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV) + +#define GLXEW_NV_video_output GLXEW_GET_VAR(__GLXEW_NV_video_output) + +#endif /* GLX_NV_video_output */ + +/* -------------------------- GLX_OML_swap_method -------------------------- */ + +#ifndef GLX_OML_swap_method +#define GLX_OML_swap_method 1 + +#define GLX_SWAP_METHOD_OML 0x8060 +#define GLX_SWAP_EXCHANGE_OML 0x8061 +#define GLX_SWAP_COPY_OML 0x8062 +#define GLX_SWAP_UNDEFINED_OML 0x8063 + +#define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method) + +#endif /* GLX_OML_swap_method */ + +/* -------------------------- GLX_OML_sync_control ------------------------- */ + +#if !defined(GLX_OML_sync_control) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) +#include +#define GLX_OML_sync_control 1 + +typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator); +typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc); +typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); +typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc); +typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc); + +#define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML) +#define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML) +#define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML) +#define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML) +#define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML) + +#define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control) + +#endif /* GLX_OML_sync_control */ + +/* ------------------------ GLX_SGIS_blended_overlay ----------------------- */ + +#ifndef GLX_SGIS_blended_overlay +#define GLX_SGIS_blended_overlay 1 + +#define GLX_BLENDED_RGBA_SGIS 0x8025 + +#define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay) + +#endif /* GLX_SGIS_blended_overlay */ + +/* -------------------------- GLX_SGIS_color_range ------------------------- */ + +#ifndef GLX_SGIS_color_range +#define GLX_SGIS_color_range 1 + +#define GLX_MIN_RED_SGIS 0 +#define GLX_MAX_GREEN_SGIS 0 +#define GLX_MIN_BLUE_SGIS 0 +#define GLX_MAX_ALPHA_SGIS 0 +#define GLX_MIN_GREEN_SGIS 0 +#define GLX_MIN_ALPHA_SGIS 0 +#define GLX_MAX_RED_SGIS 0 +#define GLX_EXTENDED_RANGE_SGIS 0 +#define GLX_MAX_BLUE_SGIS 0 + +#define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range) + +#endif /* GLX_SGIS_color_range */ + +/* -------------------------- GLX_SGIS_multisample ------------------------- */ + +#ifndef GLX_SGIS_multisample +#define GLX_SGIS_multisample 1 + +#define GLX_SAMPLE_BUFFERS_SGIS 100000 +#define GLX_SAMPLES_SGIS 100001 + +#define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample) + +#endif /* GLX_SGIS_multisample */ + +/* ---------------------- GLX_SGIS_shared_multisample ---------------------- */ + +#ifndef GLX_SGIS_shared_multisample +#define GLX_SGIS_shared_multisample 1 + +#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 +#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 + +#define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample) + +#endif /* GLX_SGIS_shared_multisample */ + +/* --------------------------- GLX_SGIX_fbconfig --------------------------- */ + +#ifndef GLX_SGIX_fbconfig +#define GLX_SGIX_fbconfig 1 + +#define GLX_WINDOW_BIT_SGIX 0x00000001 +#define GLX_RGBA_BIT_SGIX 0x00000001 +#define GLX_PIXMAP_BIT_SGIX 0x00000002 +#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 +#define GLX_SCREEN_EXT 0x800C +#define GLX_DRAWABLE_TYPE_SGIX 0x8010 +#define GLX_RENDER_TYPE_SGIX 0x8011 +#define GLX_X_RENDERABLE_SGIX 0x8012 +#define GLX_FBCONFIG_ID_SGIX 0x8013 +#define GLX_RGBA_TYPE_SGIX 0x8014 +#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 + +typedef XID GLXFBConfigIDSGIX; +typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; + +typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); +typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap); +typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value); +typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis); +typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config); + +#define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX) +#define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX) +#define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX) +#define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX) +#define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX) +#define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX) + +#define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig) + +#endif /* GLX_SGIX_fbconfig */ + +/* --------------------------- GLX_SGIX_hyperpipe -------------------------- */ + +#ifndef GLX_SGIX_hyperpipe +#define GLX_SGIX_hyperpipe 1 + +#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 +#define GLX_PIPE_RECT_SGIX 0x00000001 +#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 +#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 +#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 +#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 +#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 +#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 +#define GLX_BAD_HYPERPIPE_SGIX 92 +#define GLX_HYPERPIPE_ID_SGIX 0x8030 + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int networkId; +} GLXHyperpipeNetworkSGIX; +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int XOrigin; + int YOrigin; + int maxHeight; + int maxWidth; +} GLXPipeRectLimits; +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int channel; + unsigned int participationType; + int timeSlice; +} GLXHyperpipeConfigSGIX; +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int srcXOrigin; + int srcYOrigin; + int srcWidth; + int srcHeight; + int destXOrigin; + int destYOrigin; + int destWidth; + int destHeight; +} GLXPipeRect; + +typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); +typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); +typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); +typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); +typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); +typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); +typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); +typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); + +#define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX) +#define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX) +#define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX) +#define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX) +#define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX) +#define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX) +#define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX) +#define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX) + +#define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe) + +#endif /* GLX_SGIX_hyperpipe */ + +/* ---------------------------- GLX_SGIX_pbuffer --------------------------- */ + +#ifndef GLX_SGIX_pbuffer +#define GLX_SGIX_pbuffer 1 + +#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 +#define GLX_PBUFFER_BIT_SGIX 0x00000004 +#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 +#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 +#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 +#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 +#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 +#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 +#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 +#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 +#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 +#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A +#define GLX_PRESERVED_CONTENTS_SGIX 0x801B +#define GLX_LARGEST_PBUFFER_SGIX 0x801C +#define GLX_WIDTH_SGIX 0x801D +#define GLX_HEIGHT_SGIX 0x801E +#define GLX_EVENT_MASK_SGIX 0x801F +#define GLX_DAMAGED_SGIX 0x8020 +#define GLX_SAVED_SGIX 0x8021 +#define GLX_WINDOW_SGIX 0x8022 +#define GLX_PBUFFER_SGIX 0x8023 +#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 + +typedef XID GLXPbufferSGIX; +typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX; + +typedef GLXPbuffer ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display* dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list); +typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf); +typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long *mask); +typedef void ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display* dpy, GLXPbuffer pbuf, int attribute, unsigned int *value); +typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display* dpy, GLXDrawable drawable, unsigned long mask); + +#define glXCreateGLXPbufferSGIX GLXEW_GET_FUN(__glewXCreateGLXPbufferSGIX) +#define glXDestroyGLXPbufferSGIX GLXEW_GET_FUN(__glewXDestroyGLXPbufferSGIX) +#define glXGetSelectedEventSGIX GLXEW_GET_FUN(__glewXGetSelectedEventSGIX) +#define glXQueryGLXPbufferSGIX GLXEW_GET_FUN(__glewXQueryGLXPbufferSGIX) +#define glXSelectEventSGIX GLXEW_GET_FUN(__glewXSelectEventSGIX) + +#define GLXEW_SGIX_pbuffer GLXEW_GET_VAR(__GLXEW_SGIX_pbuffer) + +#endif /* GLX_SGIX_pbuffer */ + +/* ------------------------- GLX_SGIX_swap_barrier ------------------------- */ + +#ifndef GLX_SGIX_swap_barrier +#define GLX_SGIX_swap_barrier 1 + +typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); +typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); + +#define glXBindSwapBarrierSGIX GLXEW_GET_FUN(__glewXBindSwapBarrierSGIX) +#define glXQueryMaxSwapBarriersSGIX GLXEW_GET_FUN(__glewXQueryMaxSwapBarriersSGIX) + +#define GLXEW_SGIX_swap_barrier GLXEW_GET_VAR(__GLXEW_SGIX_swap_barrier) + +#endif /* GLX_SGIX_swap_barrier */ + +/* -------------------------- GLX_SGIX_swap_group -------------------------- */ + +#ifndef GLX_SGIX_swap_group +#define GLX_SGIX_swap_group 1 + +typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); + +#define glXJoinSwapGroupSGIX GLXEW_GET_FUN(__glewXJoinSwapGroupSGIX) + +#define GLXEW_SGIX_swap_group GLXEW_GET_VAR(__GLXEW_SGIX_swap_group) + +#endif /* GLX_SGIX_swap_group */ + +/* ------------------------- GLX_SGIX_video_resize ------------------------- */ + +#ifndef GLX_SGIX_video_resize +#define GLX_SGIX_video_resize 1 + +#define GLX_SYNC_FRAME_SGIX 0x00000000 +#define GLX_SYNC_SWAP_SGIX 0x00000001 + +typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display* display, int screen, int channel, Window window); +typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int x, int y, int w, int h); +typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display* display, int screen, int channel, GLenum synctype); +typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display* display, int screen, int channel, int *x, int *y, int *w, int *h); +typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display* display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); + +#define glXBindChannelToWindowSGIX GLXEW_GET_FUN(__glewXBindChannelToWindowSGIX) +#define glXChannelRectSGIX GLXEW_GET_FUN(__glewXChannelRectSGIX) +#define glXChannelRectSyncSGIX GLXEW_GET_FUN(__glewXChannelRectSyncSGIX) +#define glXQueryChannelDeltasSGIX GLXEW_GET_FUN(__glewXQueryChannelDeltasSGIX) +#define glXQueryChannelRectSGIX GLXEW_GET_FUN(__glewXQueryChannelRectSGIX) + +#define GLXEW_SGIX_video_resize GLXEW_GET_VAR(__GLXEW_SGIX_video_resize) + +#endif /* GLX_SGIX_video_resize */ + +/* ---------------------- GLX_SGIX_visual_select_group --------------------- */ + +#ifndef GLX_SGIX_visual_select_group +#define GLX_SGIX_visual_select_group 1 + +#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 + +#define GLXEW_SGIX_visual_select_group GLXEW_GET_VAR(__GLXEW_SGIX_visual_select_group) + +#endif /* GLX_SGIX_visual_select_group */ + +/* ---------------------------- GLX_SGI_cushion ---------------------------- */ + +#ifndef GLX_SGI_cushion +#define GLX_SGI_cushion 1 + +typedef void ( * PFNGLXCUSHIONSGIPROC) (Display* dpy, Window window, float cushion); + +#define glXCushionSGI GLXEW_GET_FUN(__glewXCushionSGI) + +#define GLXEW_SGI_cushion GLXEW_GET_VAR(__GLXEW_SGI_cushion) + +#endif /* GLX_SGI_cushion */ + +/* ----------------------- GLX_SGI_make_current_read ----------------------- */ + +#ifndef GLX_SGI_make_current_read +#define GLX_SGI_make_current_read 1 + +typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); +typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); + +#define glXGetCurrentReadDrawableSGI GLXEW_GET_FUN(__glewXGetCurrentReadDrawableSGI) +#define glXMakeCurrentReadSGI GLXEW_GET_FUN(__glewXMakeCurrentReadSGI) + +#define GLXEW_SGI_make_current_read GLXEW_GET_VAR(__GLXEW_SGI_make_current_read) + +#endif /* GLX_SGI_make_current_read */ + +/* -------------------------- GLX_SGI_swap_control ------------------------- */ + +#ifndef GLX_SGI_swap_control +#define GLX_SGI_swap_control 1 + +typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); + +#define glXSwapIntervalSGI GLXEW_GET_FUN(__glewXSwapIntervalSGI) + +#define GLXEW_SGI_swap_control GLXEW_GET_VAR(__GLXEW_SGI_swap_control) + +#endif /* GLX_SGI_swap_control */ + +/* --------------------------- GLX_SGI_video_sync -------------------------- */ + +#ifndef GLX_SGI_video_sync +#define GLX_SGI_video_sync 1 + +typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int* count); +typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count); + +#define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI) +#define glXWaitVideoSyncSGI GLXEW_GET_FUN(__glewXWaitVideoSyncSGI) + +#define GLXEW_SGI_video_sync GLXEW_GET_VAR(__GLXEW_SGI_video_sync) + +#endif /* GLX_SGI_video_sync */ + +/* --------------------- GLX_SUN_get_transparent_index --------------------- */ + +#ifndef GLX_SUN_get_transparent_index +#define GLX_SUN_get_transparent_index 1 + +typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display* dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex); + +#define glXGetTransparentIndexSUN GLXEW_GET_FUN(__glewXGetTransparentIndexSUN) + +#define GLXEW_SUN_get_transparent_index GLXEW_GET_VAR(__GLXEW_SUN_get_transparent_index) + +#endif /* GLX_SUN_get_transparent_index */ + +/* -------------------------- GLX_SUN_video_resize ------------------------- */ + +#ifndef GLX_SUN_video_resize +#define GLX_SUN_video_resize 1 + +#define GLX_VIDEO_RESIZE_SUN 0x8171 +#define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD + +typedef int ( * PFNGLXGETVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float* factor); +typedef int ( * PFNGLXVIDEORESIZESUNPROC) (Display* display, GLXDrawable window, float factor); + +#define glXGetVideoResizeSUN GLXEW_GET_FUN(__glewXGetVideoResizeSUN) +#define glXVideoResizeSUN GLXEW_GET_FUN(__glewXVideoResizeSUN) + +#define GLXEW_SUN_video_resize GLXEW_GET_VAR(__GLXEW_SUN_video_resize) + +#endif /* GLX_SUN_video_resize */ + +/* ------------------------------------------------------------------------- */ + +#ifdef GLEW_MX +#define GLXEW_EXPORT +#else +#define GLXEW_EXPORT extern +#endif /* GLEW_MX */ + +extern PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay; + +extern PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig; +extern PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext; +extern PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer; +extern PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap; +extern PFNGLXCREATEWINDOWPROC __glewXCreateWindow; +extern PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer; +extern PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap; +extern PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow; +extern PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable; +extern PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib; +extern PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs; +extern PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent; +extern PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig; +extern PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent; +extern PFNGLXQUERYCONTEXTPROC __glewXQueryContext; +extern PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable; +extern PFNGLXSELECTEVENTPROC __glewXSelectEvent; + +extern PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB; + +extern PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI; +extern PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI; +extern PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI; + +extern PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT; +extern PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT; +extern PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT; +extern PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT; + +extern PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT; + +extern PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT; +extern PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT; + +extern PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA; + +extern PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA; + +extern PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA; + +extern PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA; + +extern PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA; + +extern PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV; + +extern PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV; +extern PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV; + +extern PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV; +extern PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV; +extern PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV; +extern PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV; +extern PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV; +extern PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV; + +extern PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV; +extern PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV; + +extern PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV; +extern PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV; +extern PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV; +extern PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV; +extern PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV; +extern PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV; + +#ifdef GLX_OML_sync_control +extern PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML; +extern PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML; +extern PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML; +extern PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML; +extern PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML; +#endif + +extern PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX; +extern PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX; +extern PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX; +extern PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX; +extern PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX; +extern PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX; + +extern PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX; +extern PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX; +extern PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX; +extern PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX; +extern PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX; +extern PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX; +extern PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX; +extern PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX; + +extern PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX; +extern PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX; +extern PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX; +extern PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX; +extern PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX; + +extern PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX; +extern PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX; + +extern PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX; + +extern PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX; +extern PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX; +extern PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX; +extern PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX; +extern PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX; + +extern PFNGLXCUSHIONSGIPROC __glewXCushionSGI; + +extern PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI; +extern PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI; + +extern PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI; + +extern PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI; +extern PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI; + +extern PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN; + +extern PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN; +extern PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN; + +#if defined(GLEW_MX) +struct GLXEWContextStruct +{ +#endif /* GLEW_MX */ + +GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_0; +GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_1; +GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2; +GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_3; +GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_4; +GLXEW_EXPORT GLboolean __GLXEW_3DFX_multisample; +GLXEW_EXPORT GLboolean __GLXEW_AMD_gpu_association; +GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context; +GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context_profile; +GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; +GLXEW_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; +GLXEW_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB; +GLXEW_EXPORT GLboolean __GLXEW_ARB_get_proc_address; +GLXEW_EXPORT GLboolean __GLXEW_ARB_multisample; +GLXEW_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; +GLXEW_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; +GLXEW_EXPORT GLboolean __GLXEW_ATI_render_texture; +GLXEW_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; +GLXEW_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; +GLXEW_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; +GLXEW_EXPORT GLboolean __GLXEW_EXT_import_context; +GLXEW_EXPORT GLboolean __GLXEW_EXT_scene_marker; +GLXEW_EXPORT GLboolean __GLXEW_EXT_swap_control; +GLXEW_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap; +GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_info; +GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_rating; +GLXEW_EXPORT GLboolean __GLXEW_INTEL_swap_event; +GLXEW_EXPORT GLboolean __GLXEW_MESA_agp_offset; +GLXEW_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer; +GLXEW_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap; +GLXEW_EXPORT GLboolean __GLXEW_MESA_release_buffers; +GLXEW_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode; +GLXEW_EXPORT GLboolean __GLXEW_NV_copy_image; +GLXEW_EXPORT GLboolean __GLXEW_NV_float_buffer; +GLXEW_EXPORT GLboolean __GLXEW_NV_multisample_coverage; +GLXEW_EXPORT GLboolean __GLXEW_NV_present_video; +GLXEW_EXPORT GLboolean __GLXEW_NV_swap_group; +GLXEW_EXPORT GLboolean __GLXEW_NV_vertex_array_range; +GLXEW_EXPORT GLboolean __GLXEW_NV_video_output; +GLXEW_EXPORT GLboolean __GLXEW_OML_swap_method; +GLXEW_EXPORT GLboolean __GLXEW_OML_sync_control; +GLXEW_EXPORT GLboolean __GLXEW_SGIS_blended_overlay; +GLXEW_EXPORT GLboolean __GLXEW_SGIS_color_range; +GLXEW_EXPORT GLboolean __GLXEW_SGIS_multisample; +GLXEW_EXPORT GLboolean __GLXEW_SGIS_shared_multisample; +GLXEW_EXPORT GLboolean __GLXEW_SGIX_fbconfig; +GLXEW_EXPORT GLboolean __GLXEW_SGIX_hyperpipe; +GLXEW_EXPORT GLboolean __GLXEW_SGIX_pbuffer; +GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_barrier; +GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_group; +GLXEW_EXPORT GLboolean __GLXEW_SGIX_video_resize; +GLXEW_EXPORT GLboolean __GLXEW_SGIX_visual_select_group; +GLXEW_EXPORT GLboolean __GLXEW_SGI_cushion; +GLXEW_EXPORT GLboolean __GLXEW_SGI_make_current_read; +GLXEW_EXPORT GLboolean __GLXEW_SGI_swap_control; +GLXEW_EXPORT GLboolean __GLXEW_SGI_video_sync; +GLXEW_EXPORT GLboolean __GLXEW_SUN_get_transparent_index; +GLXEW_EXPORT GLboolean __GLXEW_SUN_video_resize; + +#ifdef GLEW_MX +}; /* GLXEWContextStruct */ +#endif /* GLEW_MX */ + +/* ------------------------------------------------------------------------ */ + +#ifdef GLEW_MX + +typedef struct GLXEWContextStruct GLXEWContext; +extern GLenum glxewContextInit (GLXEWContext* ctx); +extern GLboolean glxewContextIsSupported (GLXEWContext* ctx, const char* name); + +#define glxewInit() glxewContextInit(glxewGetContext()) +#define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x) + +#define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x)) +#define GLXEW_GET_FUN(x) x + +#else /* GLEW_MX */ + +#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) +#define GLXEW_GET_FUN(x) x + +extern GLboolean glxewIsSupported (const char* name); + +#endif /* GLEW_MX */ + +extern GLboolean glxewGetExtension (const char* name); + +#ifdef __cplusplus +} +#endif + +#endif /* __glxew_h__ */ diff --git a/Part2/PROJ_WIN/shared/glew/include/GL/wglew.h b/Part2/PROJ_WIN/shared/glew/include/GL/wglew.h new file mode 100644 index 0000000..ae06b0c --- /dev/null +++ b/Part2/PROJ_WIN/shared/glew/include/GL/wglew.h @@ -0,0 +1,1287 @@ +/* +** The OpenGL Extension Wrangler Library +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon +** Copyright (C) 2002, Lev Povalahev +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are met: +** +** * Redistributions of source code must retain the above copyright notice, +** this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright notice, +** this list of conditions and the following disclaimer in the documentation +** and/or other materials provided with the distribution. +** * The name of the author may be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +** THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#ifndef __wglew_h__ +#define __wglew_h__ +#define __WGLEW_H__ + +#ifdef __wglext_h_ +#error wglext.h included before wglew.h +#endif + +#define __wglext_h_ + +#if !defined(WINAPI) +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN 1 +# endif +#include +# undef WIN32_LEAN_AND_MEAN +#endif + +/* + * GLEW_STATIC needs to be set when using the static version. + * GLEW_BUILD is set when building the DLL version. + */ +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# ifdef GLEW_BUILD +# define GLEWAPI extern __declspec(dllexport) +# else +# define GLEWAPI extern __declspec(dllimport) +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* -------------------------- WGL_3DFX_multisample ------------------------- */ + +#ifndef WGL_3DFX_multisample +#define WGL_3DFX_multisample 1 + +#define WGL_SAMPLE_BUFFERS_3DFX 0x2060 +#define WGL_SAMPLES_3DFX 0x2061 + +#define WGLEW_3DFX_multisample WGLEW_GET_VAR(__WGLEW_3DFX_multisample) + +#endif /* WGL_3DFX_multisample */ + +/* ------------------------- WGL_3DL_stereo_control ------------------------ */ + +#ifndef WGL_3DL_stereo_control +#define WGL_3DL_stereo_control 1 + +#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055 +#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056 +#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057 +#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058 + +typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState); + +#define wglSetStereoEmitterState3DL WGLEW_GET_FUN(__wglewSetStereoEmitterState3DL) + +#define WGLEW_3DL_stereo_control WGLEW_GET_VAR(__WGLEW_3DL_stereo_control) + +#endif /* WGL_3DL_stereo_control */ + +/* ------------------------ WGL_AMD_gpu_association ------------------------ */ + +#ifndef WGL_AMD_gpu_association +#define WGL_AMD_gpu_association 1 + +#define WGL_GPU_VENDOR_AMD 0x1F00 +#define WGL_GPU_RENDERER_STRING_AMD 0x1F01 +#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 +#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 +#define WGL_GPU_RAM_AMD 0x21A3 +#define WGL_GPU_CLOCK_AMD 0x21A4 +#define WGL_GPU_NUM_PIPES_AMD 0x21A5 +#define WGL_GPU_NUM_SIMD_AMD 0x21A6 +#define WGL_GPU_NUM_RB_AMD 0x21A7 +#define WGL_GPU_NUM_SPI_AMD 0x21A8 + +typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); +typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int* attribList); +typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); +typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); +typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); +typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids); +typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data); +typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); + +#define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD) +#define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD) +#define wglCreateAssociatedContextAttribsAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAttribsAMD) +#define wglDeleteAssociatedContextAMD WGLEW_GET_FUN(__wglewDeleteAssociatedContextAMD) +#define wglGetContextGPUIDAMD WGLEW_GET_FUN(__wglewGetContextGPUIDAMD) +#define wglGetCurrentAssociatedContextAMD WGLEW_GET_FUN(__wglewGetCurrentAssociatedContextAMD) +#define wglGetGPUIDsAMD WGLEW_GET_FUN(__wglewGetGPUIDsAMD) +#define wglGetGPUInfoAMD WGLEW_GET_FUN(__wglewGetGPUInfoAMD) +#define wglMakeAssociatedContextCurrentAMD WGLEW_GET_FUN(__wglewMakeAssociatedContextCurrentAMD) + +#define WGLEW_AMD_gpu_association WGLEW_GET_VAR(__WGLEW_AMD_gpu_association) + +#endif /* WGL_AMD_gpu_association */ + +/* ------------------------- WGL_ARB_buffer_region ------------------------- */ + +#ifndef WGL_ARB_buffer_region +#define WGL_ARB_buffer_region 1 + +#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 +#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 +#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 +#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 + +typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); +typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); +typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); +typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); + +#define wglCreateBufferRegionARB WGLEW_GET_FUN(__wglewCreateBufferRegionARB) +#define wglDeleteBufferRegionARB WGLEW_GET_FUN(__wglewDeleteBufferRegionARB) +#define wglRestoreBufferRegionARB WGLEW_GET_FUN(__wglewRestoreBufferRegionARB) +#define wglSaveBufferRegionARB WGLEW_GET_FUN(__wglewSaveBufferRegionARB) + +#define WGLEW_ARB_buffer_region WGLEW_GET_VAR(__WGLEW_ARB_buffer_region) + +#endif /* WGL_ARB_buffer_region */ + +/* ------------------------- WGL_ARB_create_context ------------------------ */ + +#ifndef WGL_ARB_create_context +#define WGL_ARB_create_context 1 + +#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 +#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 +#define WGL_CONTEXT_FLAGS_ARB 0x2094 + +typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); + +#define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB) + +#define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context) + +#endif /* WGL_ARB_create_context */ + +/* --------------------- WGL_ARB_create_context_profile -------------------- */ + +#ifndef WGL_ARB_create_context_profile +#define WGL_ARB_create_context_profile 1 + +#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 + +#define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile) + +#endif /* WGL_ARB_create_context_profile */ + +/* ------------------- WGL_ARB_create_context_robustness ------------------- */ + +#ifndef WGL_ARB_create_context_robustness +#define WGL_ARB_create_context_robustness 1 + +#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 + +#define WGLEW_ARB_create_context_robustness WGLEW_GET_VAR(__WGLEW_ARB_create_context_robustness) + +#endif /* WGL_ARB_create_context_robustness */ + +/* ----------------------- WGL_ARB_extensions_string ----------------------- */ + +#ifndef WGL_ARB_extensions_string +#define WGL_ARB_extensions_string 1 + +typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); + +#define wglGetExtensionsStringARB WGLEW_GET_FUN(__wglewGetExtensionsStringARB) + +#define WGLEW_ARB_extensions_string WGLEW_GET_VAR(__WGLEW_ARB_extensions_string) + +#endif /* WGL_ARB_extensions_string */ + +/* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */ + +#ifndef WGL_ARB_framebuffer_sRGB +#define WGL_ARB_framebuffer_sRGB 1 + +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 + +#define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB) + +#endif /* WGL_ARB_framebuffer_sRGB */ + +/* ----------------------- WGL_ARB_make_current_read ----------------------- */ + +#ifndef WGL_ARB_make_current_read +#define WGL_ARB_make_current_read 1 + +#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 +#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 + +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID); +typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); + +#define wglGetCurrentReadDCARB WGLEW_GET_FUN(__wglewGetCurrentReadDCARB) +#define wglMakeContextCurrentARB WGLEW_GET_FUN(__wglewMakeContextCurrentARB) + +#define WGLEW_ARB_make_current_read WGLEW_GET_VAR(__WGLEW_ARB_make_current_read) + +#endif /* WGL_ARB_make_current_read */ + +/* -------------------------- WGL_ARB_multisample -------------------------- */ + +#ifndef WGL_ARB_multisample +#define WGL_ARB_multisample 1 + +#define WGL_SAMPLE_BUFFERS_ARB 0x2041 +#define WGL_SAMPLES_ARB 0x2042 + +#define WGLEW_ARB_multisample WGLEW_GET_VAR(__WGLEW_ARB_multisample) + +#endif /* WGL_ARB_multisample */ + +/* ---------------------------- WGL_ARB_pbuffer ---------------------------- */ + +#ifndef WGL_ARB_pbuffer +#define WGL_ARB_pbuffer 1 + +#define WGL_DRAW_TO_PBUFFER_ARB 0x202D +#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E +#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F +#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 +#define WGL_PBUFFER_LARGEST_ARB 0x2033 +#define WGL_PBUFFER_WIDTH_ARB 0x2034 +#define WGL_PBUFFER_HEIGHT_ARB 0x2035 +#define WGL_PBUFFER_LOST_ARB 0x2036 + +DECLARE_HANDLE(HPBUFFERARB); + +typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); +typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); +typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); +typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int* piValue); +typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); + +#define wglCreatePbufferARB WGLEW_GET_FUN(__wglewCreatePbufferARB) +#define wglDestroyPbufferARB WGLEW_GET_FUN(__wglewDestroyPbufferARB) +#define wglGetPbufferDCARB WGLEW_GET_FUN(__wglewGetPbufferDCARB) +#define wglQueryPbufferARB WGLEW_GET_FUN(__wglewQueryPbufferARB) +#define wglReleasePbufferDCARB WGLEW_GET_FUN(__wglewReleasePbufferDCARB) + +#define WGLEW_ARB_pbuffer WGLEW_GET_VAR(__WGLEW_ARB_pbuffer) + +#endif /* WGL_ARB_pbuffer */ + +/* -------------------------- WGL_ARB_pixel_format ------------------------- */ + +#ifndef WGL_ARB_pixel_format +#define WGL_ARB_pixel_format 1 + +#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 +#define WGL_DRAW_TO_WINDOW_ARB 0x2001 +#define WGL_DRAW_TO_BITMAP_ARB 0x2002 +#define WGL_ACCELERATION_ARB 0x2003 +#define WGL_NEED_PALETTE_ARB 0x2004 +#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 +#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 +#define WGL_SWAP_METHOD_ARB 0x2007 +#define WGL_NUMBER_OVERLAYS_ARB 0x2008 +#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 +#define WGL_TRANSPARENT_ARB 0x200A +#define WGL_SHARE_DEPTH_ARB 0x200C +#define WGL_SHARE_STENCIL_ARB 0x200D +#define WGL_SHARE_ACCUM_ARB 0x200E +#define WGL_SUPPORT_GDI_ARB 0x200F +#define WGL_SUPPORT_OPENGL_ARB 0x2010 +#define WGL_DOUBLE_BUFFER_ARB 0x2011 +#define WGL_STEREO_ARB 0x2012 +#define WGL_PIXEL_TYPE_ARB 0x2013 +#define WGL_COLOR_BITS_ARB 0x2014 +#define WGL_RED_BITS_ARB 0x2015 +#define WGL_RED_SHIFT_ARB 0x2016 +#define WGL_GREEN_BITS_ARB 0x2017 +#define WGL_GREEN_SHIFT_ARB 0x2018 +#define WGL_BLUE_BITS_ARB 0x2019 +#define WGL_BLUE_SHIFT_ARB 0x201A +#define WGL_ALPHA_BITS_ARB 0x201B +#define WGL_ALPHA_SHIFT_ARB 0x201C +#define WGL_ACCUM_BITS_ARB 0x201D +#define WGL_ACCUM_RED_BITS_ARB 0x201E +#define WGL_ACCUM_GREEN_BITS_ARB 0x201F +#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 +#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 +#define WGL_DEPTH_BITS_ARB 0x2022 +#define WGL_STENCIL_BITS_ARB 0x2023 +#define WGL_AUX_BUFFERS_ARB 0x2024 +#define WGL_NO_ACCELERATION_ARB 0x2025 +#define WGL_GENERIC_ACCELERATION_ARB 0x2026 +#define WGL_FULL_ACCELERATION_ARB 0x2027 +#define WGL_SWAP_EXCHANGE_ARB 0x2028 +#define WGL_SWAP_COPY_ARB 0x2029 +#define WGL_SWAP_UNDEFINED_ARB 0x202A +#define WGL_TYPE_RGBA_ARB 0x202B +#define WGL_TYPE_COLORINDEX_ARB 0x202C +#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 +#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 +#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 +#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A +#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B + +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, FLOAT *pfValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int* piAttributes, int *piValues); + +#define wglChoosePixelFormatARB WGLEW_GET_FUN(__wglewChoosePixelFormatARB) +#define wglGetPixelFormatAttribfvARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvARB) +#define wglGetPixelFormatAttribivARB WGLEW_GET_FUN(__wglewGetPixelFormatAttribivARB) + +#define WGLEW_ARB_pixel_format WGLEW_GET_VAR(__WGLEW_ARB_pixel_format) + +#endif /* WGL_ARB_pixel_format */ + +/* ----------------------- WGL_ARB_pixel_format_float ---------------------- */ + +#ifndef WGL_ARB_pixel_format_float +#define WGL_ARB_pixel_format_float 1 + +#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 + +#define WGLEW_ARB_pixel_format_float WGLEW_GET_VAR(__WGLEW_ARB_pixel_format_float) + +#endif /* WGL_ARB_pixel_format_float */ + +/* ------------------------- WGL_ARB_render_texture ------------------------ */ + +#ifndef WGL_ARB_render_texture +#define WGL_ARB_render_texture 1 + +#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 +#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 +#define WGL_TEXTURE_FORMAT_ARB 0x2072 +#define WGL_TEXTURE_TARGET_ARB 0x2073 +#define WGL_MIPMAP_TEXTURE_ARB 0x2074 +#define WGL_TEXTURE_RGB_ARB 0x2075 +#define WGL_TEXTURE_RGBA_ARB 0x2076 +#define WGL_NO_TEXTURE_ARB 0x2077 +#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 +#define WGL_TEXTURE_1D_ARB 0x2079 +#define WGL_TEXTURE_2D_ARB 0x207A +#define WGL_MIPMAP_LEVEL_ARB 0x207B +#define WGL_CUBE_MAP_FACE_ARB 0x207C +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 +#define WGL_FRONT_LEFT_ARB 0x2083 +#define WGL_FRONT_RIGHT_ARB 0x2084 +#define WGL_BACK_LEFT_ARB 0x2085 +#define WGL_BACK_RIGHT_ARB 0x2086 +#define WGL_AUX0_ARB 0x2087 +#define WGL_AUX1_ARB 0x2088 +#define WGL_AUX2_ARB 0x2089 +#define WGL_AUX3_ARB 0x208A +#define WGL_AUX4_ARB 0x208B +#define WGL_AUX5_ARB 0x208C +#define WGL_AUX6_ARB 0x208D +#define WGL_AUX7_ARB 0x208E +#define WGL_AUX8_ARB 0x208F +#define WGL_AUX9_ARB 0x2090 + +typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); +typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); +typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int* piAttribList); + +#define wglBindTexImageARB WGLEW_GET_FUN(__wglewBindTexImageARB) +#define wglReleaseTexImageARB WGLEW_GET_FUN(__wglewReleaseTexImageARB) +#define wglSetPbufferAttribARB WGLEW_GET_FUN(__wglewSetPbufferAttribARB) + +#define WGLEW_ARB_render_texture WGLEW_GET_VAR(__WGLEW_ARB_render_texture) + +#endif /* WGL_ARB_render_texture */ + +/* ----------------------- WGL_ATI_pixel_format_float ---------------------- */ + +#ifndef WGL_ATI_pixel_format_float +#define WGL_ATI_pixel_format_float 1 + +#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 +#define GL_RGBA_FLOAT_MODE_ATI 0x8820 +#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 + +#define WGLEW_ATI_pixel_format_float WGLEW_GET_VAR(__WGLEW_ATI_pixel_format_float) + +#endif /* WGL_ATI_pixel_format_float */ + +/* -------------------- WGL_ATI_render_texture_rectangle ------------------- */ + +#ifndef WGL_ATI_render_texture_rectangle +#define WGL_ATI_render_texture_rectangle 1 + +#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5 + +#define WGLEW_ATI_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_ATI_render_texture_rectangle) + +#endif /* WGL_ATI_render_texture_rectangle */ + +/* ------------------- WGL_EXT_create_context_es2_profile ------------------ */ + +#ifndef WGL_EXT_create_context_es2_profile +#define WGL_EXT_create_context_es2_profile 1 + +#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 + +#define WGLEW_EXT_create_context_es2_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es2_profile) + +#endif /* WGL_EXT_create_context_es2_profile */ + +/* -------------------------- WGL_EXT_depth_float -------------------------- */ + +#ifndef WGL_EXT_depth_float +#define WGL_EXT_depth_float 1 + +#define WGL_DEPTH_FLOAT_EXT 0x2040 + +#define WGLEW_EXT_depth_float WGLEW_GET_VAR(__WGLEW_EXT_depth_float) + +#endif /* WGL_EXT_depth_float */ + +/* ---------------------- WGL_EXT_display_color_table ---------------------- */ + +#ifndef WGL_EXT_display_color_table +#define WGL_EXT_display_color_table 1 + +typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); +typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); +typedef void (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); +typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (GLushort* table, GLuint length); + +#define wglBindDisplayColorTableEXT WGLEW_GET_FUN(__wglewBindDisplayColorTableEXT) +#define wglCreateDisplayColorTableEXT WGLEW_GET_FUN(__wglewCreateDisplayColorTableEXT) +#define wglDestroyDisplayColorTableEXT WGLEW_GET_FUN(__wglewDestroyDisplayColorTableEXT) +#define wglLoadDisplayColorTableEXT WGLEW_GET_FUN(__wglewLoadDisplayColorTableEXT) + +#define WGLEW_EXT_display_color_table WGLEW_GET_VAR(__WGLEW_EXT_display_color_table) + +#endif /* WGL_EXT_display_color_table */ + +/* ----------------------- WGL_EXT_extensions_string ----------------------- */ + +#ifndef WGL_EXT_extensions_string +#define WGL_EXT_extensions_string 1 + +typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); + +#define wglGetExtensionsStringEXT WGLEW_GET_FUN(__wglewGetExtensionsStringEXT) + +#define WGLEW_EXT_extensions_string WGLEW_GET_VAR(__WGLEW_EXT_extensions_string) + +#endif /* WGL_EXT_extensions_string */ + +/* ------------------------ WGL_EXT_framebuffer_sRGB ----------------------- */ + +#ifndef WGL_EXT_framebuffer_sRGB +#define WGL_EXT_framebuffer_sRGB 1 + +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 + +#define WGLEW_EXT_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_EXT_framebuffer_sRGB) + +#endif /* WGL_EXT_framebuffer_sRGB */ + +/* ----------------------- WGL_EXT_make_current_read ----------------------- */ + +#ifndef WGL_EXT_make_current_read +#define WGL_EXT_make_current_read 1 + +#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 + +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID); +typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); + +#define wglGetCurrentReadDCEXT WGLEW_GET_FUN(__wglewGetCurrentReadDCEXT) +#define wglMakeContextCurrentEXT WGLEW_GET_FUN(__wglewMakeContextCurrentEXT) + +#define WGLEW_EXT_make_current_read WGLEW_GET_VAR(__WGLEW_EXT_make_current_read) + +#endif /* WGL_EXT_make_current_read */ + +/* -------------------------- WGL_EXT_multisample -------------------------- */ + +#ifndef WGL_EXT_multisample +#define WGL_EXT_multisample 1 + +#define WGL_SAMPLE_BUFFERS_EXT 0x2041 +#define WGL_SAMPLES_EXT 0x2042 + +#define WGLEW_EXT_multisample WGLEW_GET_VAR(__WGLEW_EXT_multisample) + +#endif /* WGL_EXT_multisample */ + +/* ---------------------------- WGL_EXT_pbuffer ---------------------------- */ + +#ifndef WGL_EXT_pbuffer +#define WGL_EXT_pbuffer 1 + +#define WGL_DRAW_TO_PBUFFER_EXT 0x202D +#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E +#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F +#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 +#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 +#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 +#define WGL_PBUFFER_LARGEST_EXT 0x2033 +#define WGL_PBUFFER_WIDTH_EXT 0x2034 +#define WGL_PBUFFER_HEIGHT_EXT 0x2035 + +DECLARE_HANDLE(HPBUFFEREXT); + +typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int* piAttribList); +typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); +typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); +typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int* piValue); +typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); + +#define wglCreatePbufferEXT WGLEW_GET_FUN(__wglewCreatePbufferEXT) +#define wglDestroyPbufferEXT WGLEW_GET_FUN(__wglewDestroyPbufferEXT) +#define wglGetPbufferDCEXT WGLEW_GET_FUN(__wglewGetPbufferDCEXT) +#define wglQueryPbufferEXT WGLEW_GET_FUN(__wglewQueryPbufferEXT) +#define wglReleasePbufferDCEXT WGLEW_GET_FUN(__wglewReleasePbufferDCEXT) + +#define WGLEW_EXT_pbuffer WGLEW_GET_VAR(__WGLEW_EXT_pbuffer) + +#endif /* WGL_EXT_pbuffer */ + +/* -------------------------- WGL_EXT_pixel_format ------------------------- */ + +#ifndef WGL_EXT_pixel_format +#define WGL_EXT_pixel_format 1 + +#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 +#define WGL_DRAW_TO_WINDOW_EXT 0x2001 +#define WGL_DRAW_TO_BITMAP_EXT 0x2002 +#define WGL_ACCELERATION_EXT 0x2003 +#define WGL_NEED_PALETTE_EXT 0x2004 +#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 +#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 +#define WGL_SWAP_METHOD_EXT 0x2007 +#define WGL_NUMBER_OVERLAYS_EXT 0x2008 +#define WGL_NUMBER_UNDERLAYS_EXT 0x2009 +#define WGL_TRANSPARENT_EXT 0x200A +#define WGL_TRANSPARENT_VALUE_EXT 0x200B +#define WGL_SHARE_DEPTH_EXT 0x200C +#define WGL_SHARE_STENCIL_EXT 0x200D +#define WGL_SHARE_ACCUM_EXT 0x200E +#define WGL_SUPPORT_GDI_EXT 0x200F +#define WGL_SUPPORT_OPENGL_EXT 0x2010 +#define WGL_DOUBLE_BUFFER_EXT 0x2011 +#define WGL_STEREO_EXT 0x2012 +#define WGL_PIXEL_TYPE_EXT 0x2013 +#define WGL_COLOR_BITS_EXT 0x2014 +#define WGL_RED_BITS_EXT 0x2015 +#define WGL_RED_SHIFT_EXT 0x2016 +#define WGL_GREEN_BITS_EXT 0x2017 +#define WGL_GREEN_SHIFT_EXT 0x2018 +#define WGL_BLUE_BITS_EXT 0x2019 +#define WGL_BLUE_SHIFT_EXT 0x201A +#define WGL_ALPHA_BITS_EXT 0x201B +#define WGL_ALPHA_SHIFT_EXT 0x201C +#define WGL_ACCUM_BITS_EXT 0x201D +#define WGL_ACCUM_RED_BITS_EXT 0x201E +#define WGL_ACCUM_GREEN_BITS_EXT 0x201F +#define WGL_ACCUM_BLUE_BITS_EXT 0x2020 +#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 +#define WGL_DEPTH_BITS_EXT 0x2022 +#define WGL_STENCIL_BITS_EXT 0x2023 +#define WGL_AUX_BUFFERS_EXT 0x2024 +#define WGL_NO_ACCELERATION_EXT 0x2025 +#define WGL_GENERIC_ACCELERATION_EXT 0x2026 +#define WGL_FULL_ACCELERATION_EXT 0x2027 +#define WGL_SWAP_EXCHANGE_EXT 0x2028 +#define WGL_SWAP_COPY_EXT 0x2029 +#define WGL_SWAP_UNDEFINED_EXT 0x202A +#define WGL_TYPE_RGBA_EXT 0x202B +#define WGL_TYPE_COLORINDEX_EXT 0x202C + +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int* piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, FLOAT *pfValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int* piAttributes, int *piValues); + +#define wglChoosePixelFormatEXT WGLEW_GET_FUN(__wglewChoosePixelFormatEXT) +#define wglGetPixelFormatAttribfvEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribfvEXT) +#define wglGetPixelFormatAttribivEXT WGLEW_GET_FUN(__wglewGetPixelFormatAttribivEXT) + +#define WGLEW_EXT_pixel_format WGLEW_GET_VAR(__WGLEW_EXT_pixel_format) + +#endif /* WGL_EXT_pixel_format */ + +/* ------------------- WGL_EXT_pixel_format_packed_float ------------------- */ + +#ifndef WGL_EXT_pixel_format_packed_float +#define WGL_EXT_pixel_format_packed_float 1 + +#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 + +#define WGLEW_EXT_pixel_format_packed_float WGLEW_GET_VAR(__WGLEW_EXT_pixel_format_packed_float) + +#endif /* WGL_EXT_pixel_format_packed_float */ + +/* -------------------------- WGL_EXT_swap_control ------------------------- */ + +#ifndef WGL_EXT_swap_control +#define WGL_EXT_swap_control 1 + +typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); +typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); + +#define wglGetSwapIntervalEXT WGLEW_GET_FUN(__wglewGetSwapIntervalEXT) +#define wglSwapIntervalEXT WGLEW_GET_FUN(__wglewSwapIntervalEXT) + +#define WGLEW_EXT_swap_control WGLEW_GET_VAR(__WGLEW_EXT_swap_control) + +#endif /* WGL_EXT_swap_control */ + +/* --------------------- WGL_I3D_digital_video_control --------------------- */ + +#ifndef WGL_I3D_digital_video_control +#define WGL_I3D_digital_video_control 1 + +#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 +#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 +#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 +#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 + +typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); +typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); + +#define wglGetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewGetDigitalVideoParametersI3D) +#define wglSetDigitalVideoParametersI3D WGLEW_GET_FUN(__wglewSetDigitalVideoParametersI3D) + +#define WGLEW_I3D_digital_video_control WGLEW_GET_VAR(__WGLEW_I3D_digital_video_control) + +#endif /* WGL_I3D_digital_video_control */ + +/* ----------------------------- WGL_I3D_gamma ----------------------------- */ + +#ifndef WGL_I3D_gamma +#define WGL_I3D_gamma 1 + +#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E +#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F + +typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT* puRed, USHORT *puGreen, USHORT *puBlue); +typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int* piValue); +typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT* puRed, const USHORT *puGreen, const USHORT *puBlue); +typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int* piValue); + +#define wglGetGammaTableI3D WGLEW_GET_FUN(__wglewGetGammaTableI3D) +#define wglGetGammaTableParametersI3D WGLEW_GET_FUN(__wglewGetGammaTableParametersI3D) +#define wglSetGammaTableI3D WGLEW_GET_FUN(__wglewSetGammaTableI3D) +#define wglSetGammaTableParametersI3D WGLEW_GET_FUN(__wglewSetGammaTableParametersI3D) + +#define WGLEW_I3D_gamma WGLEW_GET_VAR(__WGLEW_I3D_gamma) + +#endif /* WGL_I3D_gamma */ + +/* ---------------------------- WGL_I3D_genlock ---------------------------- */ + +#ifndef WGL_I3D_genlock +#define WGL_I3D_genlock 1 + +#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 +#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045 +#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046 +#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047 +#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 +#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 +#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A +#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B +#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C + +typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); +typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); +typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); +typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); +typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); +typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT* uRate); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT* uDelay); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT* uEdge); +typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT* uSource); +typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL* pFlag); +typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT* uMaxLineDelay, UINT *uMaxPixelDelay); + +#define wglDisableGenlockI3D WGLEW_GET_FUN(__wglewDisableGenlockI3D) +#define wglEnableGenlockI3D WGLEW_GET_FUN(__wglewEnableGenlockI3D) +#define wglGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGenlockSampleRateI3D) +#define wglGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGenlockSourceDelayI3D) +#define wglGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGenlockSourceEdgeI3D) +#define wglGenlockSourceI3D WGLEW_GET_FUN(__wglewGenlockSourceI3D) +#define wglGetGenlockSampleRateI3D WGLEW_GET_FUN(__wglewGetGenlockSampleRateI3D) +#define wglGetGenlockSourceDelayI3D WGLEW_GET_FUN(__wglewGetGenlockSourceDelayI3D) +#define wglGetGenlockSourceEdgeI3D WGLEW_GET_FUN(__wglewGetGenlockSourceEdgeI3D) +#define wglGetGenlockSourceI3D WGLEW_GET_FUN(__wglewGetGenlockSourceI3D) +#define wglIsEnabledGenlockI3D WGLEW_GET_FUN(__wglewIsEnabledGenlockI3D) +#define wglQueryGenlockMaxSourceDelayI3D WGLEW_GET_FUN(__wglewQueryGenlockMaxSourceDelayI3D) + +#define WGLEW_I3D_genlock WGLEW_GET_VAR(__WGLEW_I3D_genlock) + +#endif /* WGL_I3D_genlock */ + +/* -------------------------- WGL_I3D_image_buffer ------------------------- */ + +#ifndef WGL_I3D_image_buffer +#define WGL_I3D_image_buffer 1 + +#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 +#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 + +typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, HANDLE* pEvent, LPVOID *pAddress, DWORD *pSize, UINT count); +typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); +typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); +typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hdc, LPVOID* pAddress, UINT count); + +#define wglAssociateImageBufferEventsI3D WGLEW_GET_FUN(__wglewAssociateImageBufferEventsI3D) +#define wglCreateImageBufferI3D WGLEW_GET_FUN(__wglewCreateImageBufferI3D) +#define wglDestroyImageBufferI3D WGLEW_GET_FUN(__wglewDestroyImageBufferI3D) +#define wglReleaseImageBufferEventsI3D WGLEW_GET_FUN(__wglewReleaseImageBufferEventsI3D) + +#define WGLEW_I3D_image_buffer WGLEW_GET_VAR(__WGLEW_I3D_image_buffer) + +#endif /* WGL_I3D_image_buffer */ + +/* ------------------------ WGL_I3D_swap_frame_lock ------------------------ */ + +#ifndef WGL_I3D_swap_frame_lock +#define WGL_I3D_swap_frame_lock 1 + +typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (VOID); +typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (VOID); +typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL* pFlag); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL* pFlag); + +#define wglDisableFrameLockI3D WGLEW_GET_FUN(__wglewDisableFrameLockI3D) +#define wglEnableFrameLockI3D WGLEW_GET_FUN(__wglewEnableFrameLockI3D) +#define wglIsEnabledFrameLockI3D WGLEW_GET_FUN(__wglewIsEnabledFrameLockI3D) +#define wglQueryFrameLockMasterI3D WGLEW_GET_FUN(__wglewQueryFrameLockMasterI3D) + +#define WGLEW_I3D_swap_frame_lock WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_lock) + +#endif /* WGL_I3D_swap_frame_lock */ + +/* ------------------------ WGL_I3D_swap_frame_usage ----------------------- */ + +#ifndef WGL_I3D_swap_frame_usage +#define WGL_I3D_swap_frame_usage 1 + +typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); +typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float* pUsage); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); + +#define wglBeginFrameTrackingI3D WGLEW_GET_FUN(__wglewBeginFrameTrackingI3D) +#define wglEndFrameTrackingI3D WGLEW_GET_FUN(__wglewEndFrameTrackingI3D) +#define wglGetFrameUsageI3D WGLEW_GET_FUN(__wglewGetFrameUsageI3D) +#define wglQueryFrameTrackingI3D WGLEW_GET_FUN(__wglewQueryFrameTrackingI3D) + +#define WGLEW_I3D_swap_frame_usage WGLEW_GET_VAR(__WGLEW_I3D_swap_frame_usage) + +#endif /* WGL_I3D_swap_frame_usage */ + +/* --------------------------- WGL_NV_copy_image --------------------------- */ + +#ifndef WGL_NV_copy_image +#define WGL_NV_copy_image 1 + +typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); + +#define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV) + +#define WGLEW_NV_copy_image WGLEW_GET_VAR(__WGLEW_NV_copy_image) + +#endif /* WGL_NV_copy_image */ + +/* -------------------------- WGL_NV_float_buffer -------------------------- */ + +#ifndef WGL_NV_float_buffer +#define WGL_NV_float_buffer 1 + +#define WGL_FLOAT_COMPONENTS_NV 0x20B0 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 +#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 +#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 +#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 +#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 + +#define WGLEW_NV_float_buffer WGLEW_GET_VAR(__WGLEW_NV_float_buffer) + +#endif /* WGL_NV_float_buffer */ + +/* -------------------------- WGL_NV_gpu_affinity -------------------------- */ + +#ifndef WGL_NV_gpu_affinity +#define WGL_NV_gpu_affinity 1 + +#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 +#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 + +DECLARE_HANDLE(HGPUNV); +typedef struct _GPU_DEVICE { + DWORD cb; + CHAR DeviceName[32]; + CHAR DeviceString[128]; + DWORD Flags; + RECT rcVirtualScreen; +} GPU_DEVICE, *PGPU_DEVICE; + +typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); +typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); +typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); +typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); +typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); + +#define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV) +#define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV) +#define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV) +#define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV) +#define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV) + +#define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity) + +#endif /* WGL_NV_gpu_affinity */ + +/* ---------------------- WGL_NV_multisample_coverage ---------------------- */ + +#ifndef WGL_NV_multisample_coverage +#define WGL_NV_multisample_coverage 1 + +#define WGL_COVERAGE_SAMPLES_NV 0x2042 +#define WGL_COLOR_SAMPLES_NV 0x20B9 + +#define WGLEW_NV_multisample_coverage WGLEW_GET_VAR(__WGLEW_NV_multisample_coverage) + +#endif /* WGL_NV_multisample_coverage */ + +/* -------------------------- WGL_NV_present_video ------------------------- */ + +#ifndef WGL_NV_present_video +#define WGL_NV_present_video 1 + +#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 + +DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); + +typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList); +typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList); +typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue); + +#define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV) +#define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV) +#define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV) + +#define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video) + +#endif /* WGL_NV_present_video */ + +/* ---------------------- WGL_NV_render_depth_texture ---------------------- */ + +#ifndef WGL_NV_render_depth_texture +#define WGL_NV_render_depth_texture 1 + +#define WGL_NO_TEXTURE_ARB 0x2077 +#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 +#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 +#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 +#define WGL_DEPTH_COMPONENT_NV 0x20A7 + +#define WGLEW_NV_render_depth_texture WGLEW_GET_VAR(__WGLEW_NV_render_depth_texture) + +#endif /* WGL_NV_render_depth_texture */ + +/* -------------------- WGL_NV_render_texture_rectangle -------------------- */ + +#ifndef WGL_NV_render_texture_rectangle +#define WGL_NV_render_texture_rectangle 1 + +#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 +#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 + +#define WGLEW_NV_render_texture_rectangle WGLEW_GET_VAR(__WGLEW_NV_render_texture_rectangle) + +#endif /* WGL_NV_render_texture_rectangle */ + +/* --------------------------- WGL_NV_swap_group --------------------------- */ + +#ifndef WGL_NV_swap_group +#define WGL_NV_swap_group 1 + +typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); +typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count); +typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers); +typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint *barrier); +typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); + +#define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) +#define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV) +#define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV) +#define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV) +#define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV) +#define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV) + +#define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group) + +#endif /* WGL_NV_swap_group */ + +/* ----------------------- WGL_NV_vertex_array_range ----------------------- */ + +#ifndef WGL_NV_vertex_array_range +#define WGL_NV_vertex_array_range 1 + +typedef void * (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority); +typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); + +#define wglAllocateMemoryNV WGLEW_GET_FUN(__wglewAllocateMemoryNV) +#define wglFreeMemoryNV WGLEW_GET_FUN(__wglewFreeMemoryNV) + +#define WGLEW_NV_vertex_array_range WGLEW_GET_VAR(__WGLEW_NV_vertex_array_range) + +#endif /* WGL_NV_vertex_array_range */ + +/* -------------------------- WGL_NV_video_output -------------------------- */ + +#ifndef WGL_NV_video_output +#define WGL_NV_video_output 1 + +#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 +#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 +#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 +#define WGL_VIDEO_OUT_COLOR_NV 0x20C3 +#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 +#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 +#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 +#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 +#define WGL_VIDEO_OUT_FRAME 0x20C8 +#define WGL_VIDEO_OUT_FIELD_1 0x20C9 +#define WGL_VIDEO_OUT_FIELD_2 0x20CA +#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB +#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC + +DECLARE_HANDLE(HPVIDEODEV); + +typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); +typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice); +typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); +typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock); + +#define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV) +#define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV) +#define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV) +#define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV) +#define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV) +#define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV) + +#define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output) + +#endif /* WGL_NV_video_output */ + +/* -------------------------- WGL_OML_sync_control ------------------------- */ + +#ifndef WGL_OML_sync_control +#define WGL_OML_sync_control 1 + +typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32* numerator, INT32 *denominator); +typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64* ust, INT64 *msc, INT64 *sbc); +typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); +typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); +typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64* ust, INT64 *msc, INT64 *sbc); +typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64* ust, INT64 *msc, INT64 *sbc); + +#define wglGetMscRateOML WGLEW_GET_FUN(__wglewGetMscRateOML) +#define wglGetSyncValuesOML WGLEW_GET_FUN(__wglewGetSyncValuesOML) +#define wglSwapBuffersMscOML WGLEW_GET_FUN(__wglewSwapBuffersMscOML) +#define wglSwapLayerBuffersMscOML WGLEW_GET_FUN(__wglewSwapLayerBuffersMscOML) +#define wglWaitForMscOML WGLEW_GET_FUN(__wglewWaitForMscOML) +#define wglWaitForSbcOML WGLEW_GET_FUN(__wglewWaitForSbcOML) + +#define WGLEW_OML_sync_control WGLEW_GET_VAR(__WGLEW_OML_sync_control) + +#endif /* WGL_OML_sync_control */ + +/* ------------------------------------------------------------------------- */ + +#ifdef GLEW_MX +#define WGLEW_EXPORT +#else +#define WGLEW_EXPORT GLEWAPI +#endif /* GLEW_MX */ + +#ifdef GLEW_MX +struct WGLEWContextStruct +{ +#endif /* GLEW_MX */ + +WGLEW_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; + +WGLEW_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD; +WGLEW_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD; +WGLEW_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD; +WGLEW_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD; +WGLEW_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD; +WGLEW_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD; +WGLEW_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD; +WGLEW_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD; +WGLEW_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD; + +WGLEW_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB; +WGLEW_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB; +WGLEW_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB; +WGLEW_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB; + +WGLEW_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB; + +WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB; + +WGLEW_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB; +WGLEW_EXPORT PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB; + +WGLEW_EXPORT PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB; +WGLEW_EXPORT PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB; +WGLEW_EXPORT PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB; +WGLEW_EXPORT PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB; +WGLEW_EXPORT PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB; + +WGLEW_EXPORT PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB; +WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB; +WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB; + +WGLEW_EXPORT PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB; +WGLEW_EXPORT PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB; +WGLEW_EXPORT PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB; + +WGLEW_EXPORT PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT; +WGLEW_EXPORT PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT; +WGLEW_EXPORT PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT; +WGLEW_EXPORT PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT; + +WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT; + +WGLEW_EXPORT PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT; +WGLEW_EXPORT PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT; + +WGLEW_EXPORT PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT; +WGLEW_EXPORT PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT; +WGLEW_EXPORT PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT; +WGLEW_EXPORT PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT; +WGLEW_EXPORT PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT; + +WGLEW_EXPORT PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT; +WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT; +WGLEW_EXPORT PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT; + +WGLEW_EXPORT PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT; +WGLEW_EXPORT PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT; + +WGLEW_EXPORT PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D; +WGLEW_EXPORT PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D; + +WGLEW_EXPORT PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D; +WGLEW_EXPORT PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D; +WGLEW_EXPORT PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D; +WGLEW_EXPORT PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D; + +WGLEW_EXPORT PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D; +WGLEW_EXPORT PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D; +WGLEW_EXPORT PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D; +WGLEW_EXPORT PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D; +WGLEW_EXPORT PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D; +WGLEW_EXPORT PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D; +WGLEW_EXPORT PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D; +WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D; +WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D; +WGLEW_EXPORT PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D; +WGLEW_EXPORT PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D; +WGLEW_EXPORT PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D; + +WGLEW_EXPORT PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D; +WGLEW_EXPORT PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D; +WGLEW_EXPORT PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D; +WGLEW_EXPORT PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D; + +WGLEW_EXPORT PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D; +WGLEW_EXPORT PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D; +WGLEW_EXPORT PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D; +WGLEW_EXPORT PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D; + +WGLEW_EXPORT PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D; +WGLEW_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D; +WGLEW_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D; +WGLEW_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D; + +WGLEW_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV; + +WGLEW_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV; +WGLEW_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV; +WGLEW_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV; +WGLEW_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV; +WGLEW_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV; + +WGLEW_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV; +WGLEW_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV; +WGLEW_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV; + +WGLEW_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV; +WGLEW_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV; +WGLEW_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV; +WGLEW_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV; +WGLEW_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV; +WGLEW_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV; + +WGLEW_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV; +WGLEW_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV; + +WGLEW_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV; +WGLEW_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV; +WGLEW_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV; +WGLEW_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV; +WGLEW_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV; +WGLEW_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV; + +WGLEW_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML; +WGLEW_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML; +WGLEW_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML; +WGLEW_EXPORT PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML; +WGLEW_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML; +WGLEW_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML; +WGLEW_EXPORT GLboolean __WGLEW_3DFX_multisample; +WGLEW_EXPORT GLboolean __WGLEW_3DL_stereo_control; +WGLEW_EXPORT GLboolean __WGLEW_AMD_gpu_association; +WGLEW_EXPORT GLboolean __WGLEW_ARB_buffer_region; +WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context; +WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context_profile; +WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; +WGLEW_EXPORT GLboolean __WGLEW_ARB_extensions_string; +WGLEW_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB; +WGLEW_EXPORT GLboolean __WGLEW_ARB_make_current_read; +WGLEW_EXPORT GLboolean __WGLEW_ARB_multisample; +WGLEW_EXPORT GLboolean __WGLEW_ARB_pbuffer; +WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format; +WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format_float; +WGLEW_EXPORT GLboolean __WGLEW_ARB_render_texture; +WGLEW_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; +WGLEW_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; +WGLEW_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; +WGLEW_EXPORT GLboolean __WGLEW_EXT_depth_float; +WGLEW_EXPORT GLboolean __WGLEW_EXT_display_color_table; +WGLEW_EXPORT GLboolean __WGLEW_EXT_extensions_string; +WGLEW_EXPORT GLboolean __WGLEW_EXT_framebuffer_sRGB; +WGLEW_EXPORT GLboolean __WGLEW_EXT_make_current_read; +WGLEW_EXPORT GLboolean __WGLEW_EXT_multisample; +WGLEW_EXPORT GLboolean __WGLEW_EXT_pbuffer; +WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format; +WGLEW_EXPORT GLboolean __WGLEW_EXT_pixel_format_packed_float; +WGLEW_EXPORT GLboolean __WGLEW_EXT_swap_control; +WGLEW_EXPORT GLboolean __WGLEW_I3D_digital_video_control; +WGLEW_EXPORT GLboolean __WGLEW_I3D_gamma; +WGLEW_EXPORT GLboolean __WGLEW_I3D_genlock; +WGLEW_EXPORT GLboolean __WGLEW_I3D_image_buffer; +WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock; +WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage; +WGLEW_EXPORT GLboolean __WGLEW_NV_copy_image; +WGLEW_EXPORT GLboolean __WGLEW_NV_float_buffer; +WGLEW_EXPORT GLboolean __WGLEW_NV_gpu_affinity; +WGLEW_EXPORT GLboolean __WGLEW_NV_multisample_coverage; +WGLEW_EXPORT GLboolean __WGLEW_NV_present_video; +WGLEW_EXPORT GLboolean __WGLEW_NV_render_depth_texture; +WGLEW_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle; +WGLEW_EXPORT GLboolean __WGLEW_NV_swap_group; +WGLEW_EXPORT GLboolean __WGLEW_NV_vertex_array_range; +WGLEW_EXPORT GLboolean __WGLEW_NV_video_output; +WGLEW_EXPORT GLboolean __WGLEW_OML_sync_control; + +#ifdef GLEW_MX +}; /* WGLEWContextStruct */ +#endif /* GLEW_MX */ + +/* ------------------------------------------------------------------------- */ + +#ifdef GLEW_MX + +typedef struct WGLEWContextStruct WGLEWContext; +GLEWAPI GLenum wglewContextInit (WGLEWContext* ctx); +GLEWAPI GLboolean wglewContextIsSupported (WGLEWContext* ctx, const char* name); + +#define wglewInit() wglewContextInit(wglewGetContext()) +#define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x) + +#define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x)) +#define WGLEW_GET_FUN(x) wglewGetContext()->x + +#else /* GLEW_MX */ + +#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) +#define WGLEW_GET_FUN(x) x + +GLEWAPI GLboolean wglewIsSupported (const char* name); + +#endif /* GLEW_MX */ + +GLEWAPI GLboolean wglewGetExtension (const char* name); + +#ifdef __cplusplus +} +#endif + +#undef GLEWAPI + +#endif /* __wglew_h__ */ diff --git a/Part2/PROJ_WIN/shared/glew/lib/glew32.lib b/Part2/PROJ_WIN/shared/glew/lib/glew32.lib new file mode 100644 index 0000000000000000000000000000000000000000..e9df7b7797b1ccf2066e41e53b6e52ecb55d3f1f GIT binary patch literal 487006 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 &S?&DntZ{yEesz9x zes}(G);fPWe>s0U|2Y4`i`^yeQujdjAa|L2uzQGmsJq-f%st#a z!adSG%01dW#y!?O&OP2e!9CGE$vxRU#XZ$M%{|>c!#&eI%RSpY$353Q&pqG0z`fAD z$i3LT#J$wL%)Q*b!oAYH%DvjX#=X|P&b{8f!M)MF$z9>z?B3$u>aKKeb8mO=aPM^Q za_@HUaqo5SbMJQ_a36FZavyddaUXRbb02q~aG!Laa-Vjeai4XcbDwu#a9?y^a$j~| zabI;`b6#aKCi_<9_9S?SA8a z>wf2c@BZNa=&o{qa#y=QyKCHE++W?_+~3_l+_mnX?qBZT?mzCoF7Y%^_YBYUEYJ2F z&-FZS9dBK)o420V-CN)5;cejc^fvT*c^i4Xy+fVl&SB2s&JoU$&QZ?M&N0rh&T-E1 z&I!(m&c3?^N$J?{x1B?@aG3?`-cJ z?_BRZ?|kn9??Ue)?_%!~?^5qF?{e=7?@I3~?`rQF?^^FV?|SbB??&$?Z-sZWcbsv& zG11yVudrP5zIL*Gh_lo<&^XB0+ke(SbEme4GsZcysPw?~Lz_AB-Q3RmM-oUE1@;-P#Mr zJ=%-Lz1mC0ecH>${n{(WTZ+u{U zXqe<9<2U1X;}2u4@u#tjH0cME1^OgwN4-w_*!aYFQ`=HwX9*0R_$T)PW=M=e*F=9p>>-zQtLp-r6l=ZpwqJ6Y=vA)>e+!?L?WbL6% za9-ESG}Fx3TRToYGx=H{qph}%FqUhdncHdm z+e5US^fmfR_9CL`hiRXio9o9|`&xJD7uqlBmD;h^;o29bYkKC9WGCZf{S^IF{V1|X ze?os!e@cH^Khr+NIMry;k0!^Ep~ijYS7c+Yg?ytgw_C}#dK>vpU*CB|+tzwi8)S`h z9@Dn7#yh3X5__qApnZ^isJ)KagWRaEYd)^MZaksAVLYk5X>6^{(|S7H%zcdY%%81g z_Q7^{bC$8b*~^)ueN9%IubD;8>t?a@hFRjgY3}SCp?zugFkAJfv<9>8I>|cO`oj9s`j7RM^|ke^*4uhc+t_+u>tk(T z_B1y%d*L`yZ*ya_kGYB2*WA?XXWpcLZ*68CZud7gH@7giG`BLhHV2s7m;=pi&2#nh z^wW&fjRW+FTDx9r&#`yXhHAsKBCS{}(YCjCum+jinI~z#Afa(A`Az>_|IPZ{df9%( z9;y%1Pt*Unrs+Ry#5DEHU*Xwf~q~=v(Sr>09eBXm1(E zliAt{B&(lDHg>)tr|W0vm+GBHm$9kyEtzJ0N2Xhowe8Iv%)#c4<`8oybEx^c{XJ>4 z&a$7?A2FWOPa+-qqsE!~soKe;Q(xCUg>>oN>>tR_<{8GB#wpgR)@j!1*4g$jv&bwq zOU(0(^NkTlSmk-zje?bFHM`djuH$Wgs*H`xp9g?6*; z>Fen0>fQA9^zQoldJlaAy{EpR-b>#|@2zjF_t7`e`|4%RL}!vy?o4*}bSj)F&WqY6 z){WLp)(Y!p>v4NCtH0H3-C>2h5+ySZ$4Ul=hXmy>_I1zJ8WbXP-&_ z)!(s;^iE>wM{8f31N5`VW%_LEZv7(rOzUNRsy1DF%RHMb*59=^AP?z1$;0}y#!>ds z_A&Ocb{9^nzoC6&?Q9M=k1@WrzO!a%duubbeY9Q7x3sslceHo45$3MuNOL!Hl)1Y( z+T6n&V~#b)nd8k;bAnlBPBbT(<>sDNf32VXlGfMSkUXOIB9H2$$yU~G+8(4$+u9nX z-D2HpO*S_oA8NhHN7}~ZW33PQL@TyS>`ln0T3_;+wki2s>qoxOHX~nZ{mFl{&B<5V z7UXMfXM4E4CHY3%ihQeWO}^6xkngo^$Pd~;@}ssbS)~mkKWV$zBkb+SYHfS+v$g|S zqYWm%XgiW$wISp;Z71@(HkACK?P`y-hmo~f5&2Uq#-4Wx`CHrB7;fxhj4*aJMjE>r zql`Vx3Ui8CX-+k(%)QKNv&NiePB&+mdz&-OeauT{YK|R={-DdA+ovhW{bL|G37@DCQ zhVd^p0X184pn4%4s<+i(oawr$6D?Nz2{uVepVt+oEN{<7Y)-?u-oKeSKLPSk!d zKe9izU87h(O)Jq)*LK#InZxyi&0X~M?C$m<<_P^zb60(RyNA8p9H}2>?xvrijndE5 zcGnL#N9#wJd*~b3J?$gSG5S&FSbamgmwmK3PCv#Rub-ur>St>c^kdC3{Wx=?zLDMA zKHi+9pJ0~j8{2*C6V1u`N#>sVIa-B&t~NzK*{sx0F{kRA*nRC&%_{vgb1!{UyPti! zS*@R8*68PH)ATdV>H7KF4E-!~Z~X#orhc}$kA9&xOFzflSHDP`t)FY|r(dk?ub*eu z>X&G9^z+R+{Zg%7zrdWUU#2za7n;Y}$J_r{u3l_iWZtGfZdE#)>LZ-}v}3ey%wx5` zt#{0+PL;ElGsmfO>YcexgOhO@oq0~RGv8@)7B~x?W@nMp;vu%-kH3o9c2u#ey}!jR_NPUy`63Jf%>-kAbmT1dwpMHwy~d4N`_k#$SzhH z8DUK%yIPaTNUNOeX6Fnl=a?T|u z80X>S+lj_?*7?@%&b!9u+Hh?bZM^oYRjO^IU8V13EjE@Id)Q;_Hs=7R-N`x~PN&o5 zEOwSSOP#UyID5QZY9HtvW>`Oyy{#Xu2d#&!DORQBkf~N*=Op`LbAWS+d8v7sxrMc*wZC<_d4+kU zd6jv!d5yWJcCC4xdA)gq`Kf)5y@t%Q&b2SsuFx(ZOZ5wJ7WE>sncd$$NWYjY(|;kG z+gsSbn!l3Y%qz94v`fgr`laL${W7wpy_J2aemPmL|3#iE68E` zmE>^!Dzc3|&^|)HnjESBLAJFA*=xnpUk$j#c@|E+t=9F+Sl1PlausD z{aoV$>q6@y>tgE?>r(47>vHP~Yoa~LF1IJ!d)gKDP38*oX7d*FR&%AfmsYLaVBcom zZr))YVBKlnW!^$O<1_nKvX1e&y^^eJd|}^4x*1>EQ|wCncCw!FANvl{-T2DBldNxi zZQn(D7~j};lMRe-?R!X1<2!q*U1i@(HZ;Ds?<2j8AME?dM#hi!1EjaH%6^b+Z2V+D zMEV%3?Y-=3`(d()@w5F1>1(X9A0?X_kCA@H<76}A3DVzql5B1~MYb@WCR-ZMkgbeo z$=1d%_H)>k_|<-%Y-9Xpzd!~WzuPtTH2X!et??2WWc*>jOtv%D+JD-wknN4X>{pR; ze~k<_E-*IHUelho|0e&K|B!#pe+iC?Xqu&Ix}|GydzxvPnq^s;brp0%FV-RiEbZ>_KOuzF}4SkKrSXg#f0^>*tuJ!`G7Z?<8_4^#iSP zW3sWQQDICmDvhZ|mGL^+(fHf`$NtyG_MW3Tx-$dL*@SR=!#z8W>&(P*bsgtD{Tkz1 z<5_zzquQu3rWwy0Q`X*OuJN=r6X)ljvGySu<5_DKX*8a*_9gR-=dIafzVU*!A89gPwDu

JZ@#yyH{09M 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≶^hsN|H8CD;DDhO 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%0AhO`9%@#8On1BWqc6|9`F>ia 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 literal 0 HcmV?d00001 diff --git a/Part2/resources/002.png b/Part2/resources/002.png new file mode 100644 index 0000000000000000000000000000000000000000..7a849af353e72d9240035a4e42f9e0146382b356 GIT binary patch literal 81025 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 literal 0 HcmV?d00001 diff --git a/Part2/resources/004.png b/Part2/resources/004.png new file mode 100644 index 0000000000000000000000000000000000000000..10a8ab10a08370f36edb530cac3d8f57814c7725 GIT binary patch literal 126700 zcmV*EKx@B=P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D|D{PpK~#8N?EM9J z9OsJ&i~-@m)FFf;q@&dd(%%;A&7P8=t(W5y(ACV^$iV##7=W@ct)X0^Io%*@P^ zneF79le7QxzEzEqF;0$q|L4B$t5d43>aMP8#dnpetL6S`v*};`Uh}Vht@Oda9QojX zZvT(}?e7`?6ZkjikCs`JFIBkC-_Za0Gy5N2;06=?SApUq(I4yIzmZaJ7^!<-uGGBf z&+6Zx@78~KTi?lppt9rNO8cMwlK$iC`gi~M*D~UNez8(hzH{Hnb1^IYKN9IXewu`klsK{o>*W|FH8v{>?xB z&wu)NH}9b3oA(%3gx-3&_XSFgXCLS1bZPCC-hF)+#a)$lVfD@iu85o$d7E|l_S}nH z0&j^s3oZ)13C=Jsuuc=#i1WlLapzXSNl7Q>R>x<-6)DGN#9anQr(fuZ$fc2~4IF-@ zlP`2=auI!juyW8hcM5&SO8+{)nak*V?evS4nsU8T)Bpd0BhxD*GjHsuxU=G}GLCKN z9P2pinuPOf6Vl!UC&2{?rx+Jmrx$NYxFm9B={9khbynmZ;tFw2Qc^psLhphLLf2R& zvWj?*^`_vK`t0J{P9KsI0BO>%Q*rE3T#cvNid;YzLU&ufF>o5Py|NGBp zm9*7OoK0Lp_gbg%>$T6uU&0xPnn7Zc(Koqs1)~8N=!x zTka8C?ip7>g@JOf_zG&JcS6-VD`7k_PAD^Dg=cJqhe-069x>(a>y%iA=rUI^U7||Y z>m14I6j8z&&R8tek!l}S#2QMp3oQg~Lj(pF*aWd!2jziQRLj6z%K)Na$UDo}C)3C~)6gr!z%xVNBOScqk*?>Krc2dvP1ANs1+|=0G@Oz_b%!KS%|1!h zE>YDkLB%%ynoayw>o`!!Dpt`dR>3kx-aPsWXcl$JH0pv$B+)qHyivq?!?3f4VP_0N z&*+Dq)(<^-Bjki$@KK$hBicdVY6g6x;s3R|-=XWi2d?|s>deNEn0`ap8PT-dF5`J>d5!`&1 zxaq8ev}Z(qeA-^*ZJe~Z>P)8=LKmuN$C2zUVKk9sz32M>kjHp zwSb-KfxD=?g=z+Yd$fZ0Y6b6O)DGUS6LNrhP&f3TZWwszM%dRk!ioCCZ}cO+HHbKB z6iJObW*l|gI2t@*5`EG%=9F2?X|tF!=CS82;?7ydU9gP5U>SGGIv%`ilW@frOuS;3 zC~udnV4o~+pRDMRqUe~SXLEYEmO@cQ{6pN!#zvGBTLgW zTgx*`+dEswJ6q2uhf&`z*Fd0AK%Q}6zDZ!dS#W`QaDioLp>$8fQ9ecxo|3>)K>ndv8h-IGC0^lujH?PZ`Sqlc%UN8Oig+#KnxnrHsVo7b|ry z{0Otaj4=CLM)GV%@-%(Gabn77M#?aCC_SY=EoHKy;mYBC!!xT1rET3~3%)@SfBiTA z@BiL)`L{>)zRY zuLPoZLalES(Jz_fpIYyqQV+L*Y23hcZeRvCD1!$EXYxV>!f-H*A##c7+@N%rUML6j zPuV~}#$=9fQr(97B-U=Iw?MDN8dkdGo&r7M8Q}#oFPYUXmgpK==>kSqI!9NqMuFu{ zkwnMHGRKHAhww7{@KVqY3@f!^3@xz^DF&^AiIzb{7GPkZd0?TLe}SnVm=7BJ<{A0s z8T#ZJc<1VS=jeOo-0;lS^T^h9&(?9z(ss+za?R9q$^_iw4|@6QrHe0|~RM7sUF zx=VQ8{iB~ocw|XEKD^-Z(Yw@hV=r#($M0A#)=NKy-f!>aSGegVUJ=*l{dBXu@4Hk% zsNY}8PsCN+Q2+l+RC+(W3I>3m{z#RHTa*J|?KR?O5(crVux^!7H5mNjx}<8vFV#Z8 zZEB%Hx2uP4*9iSeBkU`UaBv5sCUK`$_%5x8UD^@5bs`z}fVyDRUcIP&dQtoJqQL|D zV9Y_#AodVw7<)v@7;$@($_pj*J-!PMM&hbC!}zHqkZvs%y5gTh2AN92JjT@VZB? znr9xU?v=0MRiNozpy^Yn?OUkhSE%b(q~~9BBcND6u-G85*f6LBG!8BWO+!k}!b&Z} z%d8^GZ6Yh|qbnR^E2&kWb6mA!T$Mvim3>T=9b+_cU~1*FJ;x^IZ}NL41x~T{PBrwB z0k{>nv5(j!u$kJ@&)PaLJwCT)p@HZG-I=vO#++yXQ<-$vX3Ur{l@N5DE^V@ zrC@dC$(GjMgxJ2sxW2^rfu#7MJ_rMpNR3Q{sk_69$tL`l;hw-o*p^MrPN%)3{(o>zH3i%EgXJ}F$kRBk{T zKQO%^D6=6rvneFIIV`6+Jhvqxza=WaHM#(7iz#f66*C6LP^0s~Rxk=C&TENeZH~x= zN1(z(f!R%rVbsv9#?VaG5HW+v0!Rx>#Tb~uXADT^Nt?#%pUMT{6%pa3QGHXmKFM7A zdRgJ+!%FaEr0c{zz7}+gt8t~e#8!jOF|1C}RiHy;m3?F-Xct~#%UW&|R%R7Svc|!Wome(?+q!4PuVmi2hbL^00Qq zLCvszY9YH-gLkS1?@$TaaV_X8<$ HM%92ftAA|6GB%Ro?G2d0&xNe70OBetOwk z=qH!FH&ZuV^a4f6CG>))(2vfGB&{jw@5TJx*|+r^=qcszU*dUjy?!peMP7I_KYSB^ zf6?dVe)wAY5-+_&{e*rbsrX&%m717%`8D-_1F!tl27n*SzdIG)(oNKl6#}K)^y5{O zGU#Vgi81(1-TXRUeXk682P*%C{er+@(w0b0bb*{2u-Iy~Kol2E+q~ zi3g1slMaE#Nrz36!Ea0%Q@%AzIbxoA6tn=-j#;LiuuMN;MLcPpamps+v`yw2+sw1J zndj}ZE;;V(KR1ba?8K!Q2;7?6sUL>f~sDH*S(6=yo=R+ zN;G_ln!Y7kex=&}r8)s%nO;!Yji7S<;BrGSq{29qXcAUw9#Lf#Rb?GjZ5snkU+a`m z=bFTEPiCwK-I6%2N%hW&9LEHXLtLFhe4TwfXJC4D>)sO+3%442r$zQL&hY82xQ*1N zepV>;mVud8aB!w=a29MIoSj&>Y3bm$a{FQ1AQ=zBG+;Av_C+$&v@q#Ua(}X^cf6@* z41~}RQjwo%Zt04S=!%Z)i;3)yi5iTH8j6n^j*lLTj~-8mnoNkArp_fs%@ZRRUo70a zAo(NA0yEAfM9t6#nV^oxN5kU}#YYduM)$`?_r*qc$3~CWaxU!KH8OY0JEMuQXJX}l z{o8N;{-b?za{teNb@L92$gFb;FLH@0bA!q!N41&0hlH&sCW@I<@0HB+22*&xseHdQ zsOQF@%;u2nmayE`@VvID{Pvi_&e-Cv_>%6#vYw>!o|N+5l#1Te%D%KJRv4zjNXDL& zik{?h#_puD?!?kA#)Q(&gc7hLzL+((P+WK}k+3_l-YB7DUxFyumk<;7Npf3Y&xA27 zM@-mh$%a=4doNVjjmc~Z%7m9JFrxwXa01dB{L}cLAFLCqZwk+c>P_|#xL!$IW(9gA z*1IRvyCrbk66)OI>Re)LovBXIwT{s>4pG&hePp#=WR-11C1@Q+v!F_lST>04dcGmi#enfxlc2Ek9yed>!CYULbfXheR(zLi>ra)R>i>2 z6aqez57!-^}xjK0md;Bl=2v;qCO3_ToFyU&2d2%HK;EAnoO!)Ij2uSNq`` z8}ydSzuJ#jgQZpYi>k;N@=8B`3zZl{e{!$Bfty&v-d~kpZupP#8dYi}$c+EV+$>b( zl}2pnCsL{kjb!{(%IgwtVU60NChcd8>e1j<4dUmFnv5~v7XrW3irq$x6S`f8^(&o( z9l9cS>Lu>FLENpMxW|Ao8Qg0~+-H=$-zepPG4Y^D>LEtcH1KP)v~SGPzcB|hj#y+I zvCKRQT4f%y$~5nQPsQe_ZQ zWf)pz7*=H*UTqRyV;)&!9aCo)2OVGUlEigS;d!O;z0(@J(;Iv<8hp~pfJZ9dErsWj z#B)yMIVNx&61W4?Yg_l77@fOW*EzxIoCNEr%mAm0C>&s{@0zObn&fs9c|DW--l@i3 z=FmQSV18_F&D_p)VeM{H-!$CC{2hSbGsWwfa`K8ee@XKtI(dcjx+i#DzVHhtphM8%aZSf$@3gumb0ZV%O+$av+~3z6aa)kf#D6 zRg<_-`98^fpA<;^#(<1wn)t2ZxowdJoiRmSaiu*8Wj)Ez^ws_8HG`S8L)mr1IrSsC z+>w0VXaR3Dp9cf1d5rboa4u&E%;CWFgW0u%SvBB5W=(%)b$T_@}_Fea9=I}Zt9iIiktBAyyoEVLt5uu~BulI%{}*b}I8j)8puvKv751fpx~Bf)Ce2e1KQHz1T~35Jw|7Qy9aK}6G_ zQqzD^gFjP%$`AZho-yE)EB@f-%fwBW{Dgjdk@(RC-w&z3U$1!6 zpA#va+G75O`s=elMjvs1bM7_u6?y)r(@)&ruJ^(#^?!RWzQ}+#@X{L@2>$MsUVgE! zIhlk(ujQ53F&O;)yHb9=A#bdL$PeGWp&P6C4*W=Dn6yeiso@e{eO*8PIgB7GQ<-6* z%*el#*ESmSa~KJ3Qu#4PZ3b0e<|jh0gV9oc3aUvN18xD;CHzbycB`hy&l$Di7{Abp z`%){ORXbsujzHanuXGc?(oF()=&|n9Pu@k{O+$Z=VJhQZqtt!IVA=uDB<-MSI(P^) z%K#6XXMAm*@r^|mc*K(RsCD*H>zv~@#FMr;r|fdi*yo;g$UEnlf8HtoqI3Rb688m{ zU8t^wSE%xCMGEf4itfc%Jxi{6m8yU~rE0!qpt@g~hF>`(zPdl$R;c?`z^zt5C8!-( zr5jYG7hI(uTEl1*R$~-iYZ6gw5nX2!%W;UWcP5q3_ez7lZ}iV<3dm~q&uR|HZh~9y zj7HD22G?Z1a}v=pkvA}XbL+m71Jf(zEh7~zqe9EYhDEl5W0kFARc)hSb=zo7`&eDa z7^icb+bKM`e_~{2)zrp$e)TSltnVD>big#@wH;$HF|_snc_}bKZQE#V+i*?mP)*AK zwZDICF5uFsvHJQ}f6q35ul4}YyE~BB7wFv|=ra`PGaTqM8ssw`BY zZ4vn$G35AtPf|r+YSlnS?Qk|{B$qdq-!N9xI8od*S=usH)-qk*I$hBwY3o!uNbZGc zCQ6$oN}9$?n#PJ7z|kW9Xdxf=4MxCx?l9~OzK0|y76<$8wJ%}ypAkw{p=mL=4 zD~QY^Mo^i*7=%(ovRi_)nuD_FZa@Z+?g=#bv%3LgRr|p1FRXT0`E*0jeSmtmc(NPd z8b|g7oavr`6WJLcdjj@RWH*592@tDn!>g=9D=k7QOoPe{{Yq|l7ioJIsJrH=IAtr^ zWnQ*UJ8zzH$~f_;e%xW*nEhH&do&_pE?0ykd{05@GCehg(V zI8)-oi$r12OCO~sG6%4Uzdh$Gu2fT!!)815n6wrar%A};z834qFLr4>S6QDuPrjavB(C$waot3D*K2PY5k+txyNmC zPuk|5w97qhpLfPSpR~Rsw0;42$ptLD=u!x`ko)qkMe^=NOz5k4m#WgrSNA1-ujyZ| z6+q%%)1TZ@D>Va%T7gxh^@FQ*gKKVt)aZxR8idsvh6zKz-YJ3Sn#}V^Yw*cv49IE< z%x((GX=V(_ZuZS=@=9-XPi=5X<~t?v9TNFW=y#1SWY_h8IbuqV>1E925c4>_`SrvC zZf`NKuaw_c(b!+vG*HzvP~9@nKfa)EZa2BGR^HfO*3e(V?}KTIczp%jKJm!j5SXBl z+f!8EUC8MyrhooxBeb`8$EwV+196(PeZ@KJEg%l zt;wHOes~^)Y-dbycS2cTO4VRS-EemOSU!KesA;OSb-KKLwyI;UrgN^gdx6ulP~Wr2 z?G;(y10&~&-QZkZ*KBR)Y)$7(O~*`i`*cqL3WL|OBAY13Fq<5)?< zD7z298!6-sg9Y3TgdGFMy!s)5gRC6ZTq@afV0Rt{h_$TDjs&|qA^6)uW_2H9I_x9} zOsnjJy#lghAp9eP@Q(>%e?y@A1D#-O5tZx-w9`F-cCp=n*03CqIc1354G3ob8bEdf z*nI$y{3#%n{9T1PJBa)>fd0LOY_9}nXMpYrP@Q9I?IUY!BC0GyD@+5+jQmS^aaE zi635I6$brp*GmrAv;O9+PzYt!(bMM~HF8%feX{@Dd5tL5^lxGmQAMOw-*05JxKg>lUP1TAY^WgjV}&xszeR&F?lVSO z{51OGiCRQa@oOi7OzwY4a-Xz5QIPu}v_9i*gH%SQ_4gR1gZoT~koyNrNb55mGRrz- zo^_ZU+NZg11?C*F$~kJ2d(0;H1Zn-eQ_%Vj`R5$+FE}w4oOdd?0MSod|B7po0))Ot zv9c#QT}R!o4EkO>phBCTpQ9UC3Ad2@TI+HjT3;)uT8FfLwH~y7XbrT!ad@qH6bXHY z1g={$-;*BBCzYSw984=eIJYG*r`eAU{YIDM1}60Tr*D3??_}HHY+6M}TBShoVUeAT z>6M)sRh^mD#GIPWyt>W;PFFFvyM)_Q#_KI_=$>vlx^il} zvTM48oecw03diTvbmUaG=T^7nR<-0-HG{3a<6g)14_1_OY%Dmo7F=6PzO7}Wy=Ak# zd9%GmyS+uHgGIN4MX#epzoW&Fqs6cjaa5p>_6_0V3xP2(o|%A|e#pt9pV|#NT68*E zbU0YFI9N10STxyL@$Ia*c2*oatL~hfW1oIBGJnTAyItri3H@J^&|e{;Umy&9ayXwz zl2J1EdEUu)s;qUUvU48dzOHwP z+qc9YSZNqsZ5&!{8eVM%hgQI*L2wyt1P7KI1{NFo7I}ROAh&mp+daqWp5=7S)^$$T zc1+i_PgS=~Rkco3woFvCjF&f$mp6@-HiDzj{Ur?}QWk@JVv$hZu$0VBLLnC%DiD~@ zSPu^7OYRTk)(tSi&VXPCpg+5&pZqa_>;sVcXZ~D}Ue!yae-j{*^zR0l&mJVvGl-Z| zhRB&hMIDTS4=A_Ok0z5p0x;cAJ~=?UKQx=15yYMgME?R11ivjHq(39`!GKgADEwf6 zcM|z*0BlXyILQ4v`^ajmunM!FGGl*oXdhZ%#VJS8F7uLA+G*3|qlWS1puT3*ZncOV zDq){11%IXxwE0TlCYt!nk$ZaZo|W{y_*pLEin8A4*JmX2{jB#Zgor;a?Jp!{$4hko zhDxXZYk3y*{YibJ{ecZU5Bk3|FMt7Wq4e&-OI(-!?@GGcu&(TXl+t?wZ>{uR0c!|x zUE;sJ@{FOcR66?K&UN+w+J?Q2iZ60q@xPtY#s79n?;*UsSATM0e}E1|iYdBRO3A$l z@Gr63K=%qZbmJWWDaG~&7}xCsfN!!Ju&(<-@$@IfFN*$+yZ>{|gwM5zZ1n3Sf`ViG zg5noD#?R#bE(4GjzhN546#rghB0a#Laln+#ea6G)SzlXZgG}*5?z63Ln|s9xh28?v6PrZO)hIqDQ`_HZ_TW1%dT$Et7$K& z>nP-O7T0%n4NvPBTaV2y=hc#A&#G$AsBBNKXiKYTgS>t~fq}G&cA?_q(<@rj%Ud$a zn=;B8Gs+skrtT4sZ*~oomeiOVfpzA__2$MrOXCJh!$wP^R!gIHE2B;;qi$=XUTdQP zYokHX#%NefZw(#cQvfgwV}$p@#NdF9Q7^RMTrZ zEKE8xGmdQf-N^iH@2obVH1z2aeF%MLCiG)Pq0jDIyfy_5lO?UQ6&>@{-HV*wW!^x) z&k;EhR@{#9Tb+}4Iw$!iAF$($if?s{4F(=%eYp6=2LsYUx&x5b;6u*-CujRO$7IWIr4Ms9)WEk`hn~Zu?3i`MHvPOs%1PtIZ*RmM z(uvul9@Z>=z(rN)E8yM7uaGX13r>tAZTNT~|{ zNnKa=;=UsB*Y&-)FAsf2>An{kvtjFl;;k>4`*CdU3tIm(!7+YO?n@uwmu~&9ZU}Rq zJ-SbFUvP9ETAv=>&ydRfLuTaYK52bRax%|R>zrfOIrO-GuHck?a@Ia0MqyRPVbvxPH74QJhM`sZg4WmcD_8d`SM#m7?pvM>9)$juy(cp&+jQKMb=*^QJW}9Rm)?T%Y8KGMFHuR|!ookzCNRT3IKwG4 z(}Nb#>YC-~XB%(a&n9t`GfiVd&S1hyL^D&(m8* zOw-Ht!qP$0xcsp4meu>unR~^7%CGEPsOed*A6RP`zS%rB9C%F5sPt~<)V;2$d)?Fb zdZzF7%{H1ro!d3`&fM!IWA64$kA@tRGbz2@HF>*p{AS1aTKm{q+vsZR$V$u5a`Rw~ z0j>G{p`F~G+4}AoPIbaQxnpkSQ`POI+8@YirA}70PG$zczJhgl>v$z&3oDcU;+E6U zcP?4C10eVlflxvE(?1c2|8aoGoFGJtzn(~93nmK8e*@|*<+g)o@%X>ndzm}6Tb!9#=Ob+%}8}E{nQ_CPH`2-ou$sIOK?1(8$ zyCnC)r2ulCkDZE~+|EEBa=gDaocRQBPRcnsxvkbEg5&*7Aak}4J>iE$zh5dj!0(5;(7!~_yGY$V@0w$_f^Eh{%hWTb$;S-h50lW3{7N?EX1@&AxwKr9%82x~}72>Bg16uIXRm%R?Vrm-s?sUYPrmtxt0QRjn_U z`=s@ShxWhJO=6Gki?#j^HuqC^O5{FieIm*I3=nc(y!8)}L;G0}`bVJk$#MOh6ZGS` zr|rq1eaL-!OIrVeQ~qV=d_}jys~$z_KBYPV<%S`ZCSld45jAEJH5QSz=8-kk!9rP9&Gq^iJjaq;Y-Icz)?T z-*lc&8s96G=a$TMP9)dcv5V*0#Buwk)*$p#N}JW4<5VPs|0$>6|uVgcy zWJ|vko4{1Nz%=`y^sMrRB-u@Ul8wESVX_+@$uRvQ1qP%PjyLp7GW19= z@`yL`h&6JL1{3pZEdTjGH-?2qZ`%~NZBzXA%}Lugr*7YzzI{{nj?H;HHWlsosBGs) z<-0zr-t`e@*GJr4AMqJ?6P-?+5I(*T7z5*(2|(WNk2t$Os@?rj_3n?#cYjp8>!ZS* zALZ@bl)ZCv`d6EizxpKct54#;`Xp}qC)G|4+yCZ2h)&(1x&P|W=Zwtg`Ne_h<(!$- z)%z3}$ZzRs85xm^{ql~5n%))e;9BFz?UwPo9aG~W$K^~b9`?*V=$m`kKmTZ8{$YLc zS-Io6ocRX>;N1QGS#T^2CM&<&Gj*qD@^<&+t*(iioh0{H+eTJehif79_01hVkUQ>G zJIC#wt*=hlFL%tnVyZ?E`qga{)hX5x`Vp<;RbrLD-iqe23bD|aJl;P_WGY|kL?HG6 z|1cwSm|u8YA7oGUp=bZ+a_AX8wM^)&xIKU(6e{k$eH?zcEZq4IIJ79Pcv%g z_3$s*&<}*rC#T>`mA%mQeJ`kd>7d`xw@-YjM*ore{v?$zO8j-<{`$W2zGqx_#*TEm zzozf1??LI5e~D7n{z_@q|DrF{J zI_Ee!uAg(tjpfG5Ua4G<6fV7ve!W9NyX_;mGW0$UT+XpTDQq6o)O}tZ#y;2OkQuRGk zVfvYu!aSgnXCj2Yu}7S-dn}lkUu*d<|D`EBEOz@R@!LO1`0CT-9iOJ{_%waTC)qnc z&EL7XXxFCl-J2@*Y^vF_iL+-Dch4riK&KNY#h+Aa*y-d+{@zU>Z|^3~-c5CTH&yT5 zRK9mp@t#eEyEf(R+MK=X)AXI6rtI93v~x?sjxF(DZK-i~*#5WwaieqeUmW@)tM}!c zoWQXB@^nti^XDY&;THY_H_QS4d`=6oZZ<%o?^0*5RhZe>oMU%PZOyBLD66F5aTKj07(Fbw{`O8TbAIO%E=j)km7Hh$RbDgS@r}pL;8c6{(`fJ4j$Pf zcf_@1EZjg&&Y%d=pPcHGWF;qO6~=ZyEq*eFav(anVI=s5oZOAV;)anRJvli&%j?Wt z`=b(hJaSeKpqno|s83Jkskh!IcP*Np$-}ljIf>s(OHNKRJ3WGgzDH$GS|zl8t=Vq5 zZB8}GWnExWN(c%4Wct+s#hp%Sav!Lr#}&0ZsLILh3iK^VyGRc0w?#qdv!-02&rjIl zZ*6r@?kj_HU$G-Tvnrv*U!=L68S%kUM^We-2bA9MDbn&Fp|4<PTH7hj`Xo=&#R6$mY9L(@Xi{zL!27U!w1YN|pML zm$v@9%6(Ddvr6atoBHk#=fC>A9qFcjkrJ&Bt}FOAQo8A>(sxO9{7YSz=|5gU=nIst z_P6tmD<723_qX$B%YEsNe;vbrZ0<`p{YzXI>pw<8aQ~&0NcK0X_BWmW$GEQGU*C-n z>c4IDzx?R_M!65ZwD`q7u)9I-iyhi0xldc4=04l{Z0_qOvAM5Da$nf`8{|HF;y&B@ zdyPr!gG}p_(5J`sq4nvdc(Tbseb9~^+Gj4l3DJMfA@`zF-W8X8CAR`quVO8~QvINE zqmWADuu3NPO~R_+N4=nO*ay(?Emfx%*H`f_B^ToKE>ra_2i3@7e%ku}721L1;`&Bm z)n?H8k=4-pcCj_i@wF}qb*>3@E{Po1L=N0KC2;KHIJU7I>zF#L7>;EO3H?v^o=7ci z)o@ADbV&xaTvI?zDx~nzOMwZDy;DtnQZ0N_E&bE11JY~*($mWtk6u>eb_`qkrCIo< znfaud`lK2Aq#JpYQ+Fm_3QPcxX6l_{>Xl^bnPBD_4<;3GEdK3po1!D*_k9t6;ESXK zUnU>;GX3C}S%<#NJ+v+V(6-`3+sY4Zt30%=`s;0+ufODe^CkbAFBrw25r&=4oRJ#C z|Mm-z_wARQZ@;YlW?S_)+sY4bD?PNW2p;+Hw(P^(G7oP{KeR3R;I^cL+u{#ytMhc( z{@?%eOV7~{FL0F%{q&X*sC+%YIEZ+^^m4bjbmr(jNQR;ETYB8m^V7>YOz7A4t@4L& zw@ln?pL)1d6$-vUnq2*^IE3?t3Rx+DmF&#GxoCkcH4 zHc{=9HEk0$sn&9GN8QRNNc5M-?Uj?$N@0%oA9X7muWA{OfWC*&FCDKcjitp;4)cc@ z$nEiO5}w>&RuV0K9zPhYF9>}oemOa{_>tnm=v`z`Zl@QoFh6pq+_!dl zQd#bUtBHQ84cgwVH2h0s54nD7k={pg+7$rU!Y zDg}RhIpD)f{_J`A>#n6Ec{v@Qb(gV!g(UP}AzR^ZbPY{O*IiEMHDynxe+$<&x=?!h z%};ny9Z+;#9maK0E~Rv%gJRA7dP-bTM@osS>j+)f;%_avq7GGRJmbsjTwHqT%#D<4 zagoxO$b6+g#pQI~(II*13*#_KToUK)WqMs|q;!i*Dc#>cUQvIu*V2)aWbt3tpRuif zr0c`_6^a+RP^oF&N{K*!J0((H=(?a6H)b;^)%21|U6Y6LQ?YY+*5y8F{m%rgPjX+I zJ!_xjz7A=9VeW4eYkivgDLeGp+}}l8pUr(^FoVr~Q#SYM)p+PRJXYDqY@qeCN#)y+ zqx;MO{<99b=gHS;m+A(VGhcaY5L{^xT%j94j^%6mmRu*_qE({e zReIH{MA?g6bpIN(z7IWC`oOs!RPokdigMRc8cG^clR?bAIcGAlcDJTi3L({k$g~d3vI)%2C~G=)S%cd?Y!#4Y;ZHR4&o=YRG4;z)(RY@51SzlU zJCj-bGA;blVdufZH^ssyCAFAm{>%T_oDiFIY=83c{i(+fq#r+!b^Ji~@%{P74-}o+ zUwnFR`RTn?r}x&K-OD+4i^2zYx_FU)ZZF(QjRAS*_HwAzXZBW}*;{sI zFFa=9sr`8;4rHG=ka^-@`iX<7Ck`f`ILPty+3`RA=9NeEONF5iMR@-{dqf{9KQ6x< z`W|lmNZFTjT6)6DIZ*jw`Q@hcxc=(uYW={?#<4rClMgy)9`(-C%3patvif{YcQU_W`7yLUoBLIsAIQ1q&fV*0T7U9(*96yug#K#F z&~iz{NjW)(cqa6#XE=6HYW1Ub52M*F^W zyt1X)^&s?pb7f1hrrZ&i68b4#QR~O-ma___NB1H0LulxiG>no%`v;<&Te+tS1N%msPEb4ci)_a$H7OG1B# zzdJdHrztcm>8#ub=e)_8Jmy#BwwM=f82Z{C`D!k?N)DNqtkcezr5rb6Lw}cA#CDai z&##7%Q+F;0{QjcgTUUh_(-gZLJ|lCOU+ODh8Go~popFaW#68(&rAnOuyGs z`l9tORIJg-)i9+yUQDqmr7m4BG~l-zD)psQ@7_RG=?mDuk>VGm-$3baq)De2P+aMY$G?U2dh;(=c%Aq+RQju?Hd1_g$#9o0 zd+{m3kCY^@0sqdGxTrk1?)vWQ{P@Q!bq)A8FzTI1Q&{whq+^{J^${qDW{KIQYxvzO zc6s~gb&B8n0?8HeH@GhT>neG@d`YFNol$f_eYWFYQ1gs}Gj=4ENPJdJ;)boiRqzR2 z()!v-B=>3YGp)}a-Dh*3v_9i5gEUd@3tFGa{R8xr{ln&&%n3ZC_38KKlH6y`+PBL& z4XtmV!?wO_{#B2{>)u7`-o+ZeC7Qma5dB(yr7*1KL%uHe8uhA2u@dN60$%eb$MsbN ztq(HC^>xUuLIvz37>8DxhE+oDTSQiamXXy~Q8kuSi^v)?Vy$Up9SEVn_29Ye%61dK zd_$jHR^L3($S>d6muLjHFbw(=P5txD0*K}T`Ido1>)?Ew;C#CfYG^@bMcc6}+WgKj zyO09gkOG@v#zJdi5ivxhO=vL{28wJ$3PG5QJWg<~U2u+FP_|uQ7VJ4#|Ms6-(~{FJ zpGd!aBJ=Xe?8_(flX&lN{v}eC1>OYsVU|9cuziI)BF}r(NjU zy(je8@#)~o^I=l?-$Ce4aB1k@{I1mX138!WiM8kBYtNd~A@mCxSDuVQ>(ksH zu7=R}$eX`EFn7Oi=5EjQ?e0ku`bLGTt-~wLgT21r${jGX-!FIEt9rJ+t4tR{KV!PC z16sdSTTV_pZ8F+OPR^*bwtbQ@ivGxkej9t3pM-vy;C!BgvElSKqh+iTY#w7z=7HR2 z&fYl?lfs0)ejz!uPtV~gAt&zB(D&ifQ}zpJ=#x+73a-=76$|}=>}Yd2IrzA`oon5rNlL%p^k?xCkFdHL)kMU*S9{+eYW+*azA0Kc7pKezNqy{?k6(}TmLIT>+jGfhxVD= zr(d&0bDueDpE<5?midiECOLrzTHh-BxHXYEx_^p%LO16ew7x^mB`5YAo~!N!*E|bB z70)6SucB+7MamvUun%yRe6JQ`v4T4(etKx1oXJB@0bsa z3_>c5!YWM|!>ddqs!W-af+FZueOPOICRcZzP|mMzb&jsG3@)(@DYXnHTEPI-CbZ02 zAPj@HVdb`AWp?3Zb`fRv5oL}M<)Cv^8R!yK4(3#MpH#fj)HCf8O@4GHR!}R6(N$8q z#4uL6##Fk+RJcW#yG56|MU}cm6}v?ixkVJ^R<&Di`ekQMcCLm}o`zDs=2fs*OQ}># zsa#8`Qb(y)Pl=nk)FC^Umc3T^9b7brf={MZ5-Dl`}nc{h~mZz$E>P^!{Z zs?fe#LM_lz28)e!>yuJW{QBQV7w-7wcK8e2AoStI(9q{Fq0a!hpI*-KODBi()_gX1U$vdNlMo zol~3)TXICda;i2R2IREUr)oPUYb(jAJ5c{w$|AQ$?XmfDDI34g8dcp zVce+vRxg`_avvC4=a7%y3O;n3cvkL%vtBUJ=t@r4VdLHnhCeW{fN97@_Z$7v_(lqH zAIQhL#MPPT@0Gg{VHR9Yzd5T=!#)3+Q;xh{<^`*?(`L!Xj1s@T5w~AEW|w;8cGd7N zltVvL3f`g=^r>RdrwS5&q7e8-!VbfRZW0+J?&h}Xb%CJwa{#ZX{R1W`(_z89MRgly+ zv^zvR1U*ys?D2a+-;=CY3WKVqb47f5jkx7nB&*6hF=}H~H}Psw^9bCIW5_m~o@Z)ogK=jSh1L&~`K z$F0QJ&!9)4N}+cltOd~zO~1bHNp`EnkbZ?1PG={NqxnkX-Tc6E+ruC`9*54*$KYFwA*Qe zU3Qw?)E-tXR(oRaIy;FluTHC-Zi}^UBT_M@Zl`*dznk@v*>0*`V;d*jpF?#F9343 zQ61AY^lQ1uH*XX3FTc@lKcxRi0k^@H`LwQ(eUZ_1TG1B$jnM!4t3?(v52k%b}G|3qB|#@eB$5#-L0Z_g@|OjGgkJ zZVb8BzSTAMXSwY@wn;qLvStSR=4Tb4HCohCPf@Lz}ro48#k z;Y&zoXh%}~u~7U>?h{G+lOyXe9?Jd;&G>EF3EOqZTswp>?Zyk;MNED#)PGBN3zQlU z3hxqBy#-KQ&AK)GCb%cK1PLD8U4pwi!JXi)gS%^R2<{B-?(S}bySokibM8IgJ?F35 zRZ}&yYqv~4y}Q@5*6LJYHuqewMJsAWrU?dcQWj@|;hgo7T);)>PG~?e1nbXaTztt} zFRuKESjXY5?*hXrolX0cxnEqGX@j@`g8cd)Uo62<3DPI&#@SvdW2 zawp^Z{jmXR%q5V$4SggOah+ zs%|@FEjN_Z+>k}`EWgmoppHtb3UUT;#;@^{6}A`cub%*Hr;vxqCL_*F_w7tXE|F`@ zTXW6Ja=nyGh9)Nxb@?||(mJ@)0NiQdmj0gg@!a+C?Ke96b|$Dyy75#RQh62gur$_z zv^t~7j_#F&inN4^A15Xbi<(N4nnIHnLX%&NrM@y!QO(XhJ`HtQo!~KAr$nU|4h^Ott(f$&Z`L|0P-PijZZ(V*pXw4jhsr>~-UM2yFv!?3pliwD7gBu{5Zu@y*S()06fA@d4dzJJyMA zg4=c$-KGY5QT?RE087?{r^uRXKN8OVQ7m5*Q*V^>$Eu7<+^64y)?DOMLgbK3Vq@ne z^1CBuv<s>Ye5CNo|^I9`G$3s(*|TlT6# z^GfoFA>Fnc!JCh`+UN8u_a+TEfC6FG%IpSyI!3w5M+$mJ6>K^?P`q)`-lKUnoQFub zy2mL$q9{SCo#yCEz4kflg%%lMzat?avtKPiXW^=z*l$~yQTdje2Q3^MmPze`EH*jr z-${3s-!XlAg*Ki7TOHt>!(LsC9#1=KUY!e~@~en%QKNl>TkZ1X-}JJc_*Wg;>W$ni z`n?N@U^-A|KEjochHiSsTR8XXzd2&&kiQp8=h`!xfL$A?Q;7}&JRZBrriWI_W$eNc zM0Mj|`xj)EKeQ=3R|)L$d}h}?w#=2DoL_CpFJ@%cD>JGw&{fDDZck^dFZ5ADn~No` zMGT+jtiI-yiULr1S@COl>vvrH5SL`2A2%ddKcrUDWjI5zw|UnG7XwB6iGLww0uKsAEFeebH~WA$eWeafVrshuSthl=oR z&a|DVSUaEgF6bAGYM{UDvpWq!|iwrsj4E2447b95Z&T3!FquNQQaSn4v6BrgxJKnj z+x&s~)RL;tM8wtbno)PkM|F{Hr@ynp5ArjA@OHvqm+5%O@a4IeS)A*7DW2eVe!bSG7gcBV zZEY+;FaU@1<6x%YJMV*Q~&-XcW_#7aSg1WKC;8+X@=>o!PU0G(jBW_qS?y;blnj(1z7Y4{YQ zwfj_e3$X&u>wtTM^tAQxcUu^H|4O?2@<3)~k-8G?nmNsCG41NA4(d$cQHZH2y-ML{ znRKe2or96QqVPO%qwmIj?gC`Ke6esb`;J47&G`n{=Hwk_)D6E$O7j>y>v_wnp>DFW zBj&a;MsKAKJg6Kx5}E~m@IfS1=17h)oxiXVz*p@YxdDrI4>GjMh593}J;|D(M?4k) zCkt@5BcMx}FbCZwRv4n!qd4UA7|M)nTsf>@ozgVRY?KtVL@ml@!bpF3A>sso?L9*; z`uLU(oTCHd-j`Uea*F>5MM*$imkg2(4G2vFIkH=`LQ>ZQ3RANP&$8TSW2f={3v%U*=*{5itn_XyODk1|6m|-2-NJ#LV6`>6bF@v9sS=OtLSy-s()U zJ^JZ(2@>l?#7h;=<6hU;j0CzE_*xYvPy7ufy_Zq^ydF;|glzimOl&et{i?I|88)EP zhDIXtfHR2WW(|`91L?Q<^&VtSA1tf2*_)E7e%=XFJcrF{4__ncEQH`6`8iY9V?!%K zJ3mC(e~;bcO8QE^0qZeb`{a`hY5I4Xs=q>(^x9^`O#v$d6IhmVd_9uck?x}$vDbHF z4X@$jAKdl6BF8$_@&@4UR)}hC!K<4K02D%;0QWPJ&>qhKD6g9=sm}ZW^nt2jUhs?g zdphUeYHbJfw(#2ca<6*D1Xlx}FMq;SZ^5uUb}E;)_|Qy6oIar=!9*PJo2K}#Q$E65 zf4!BZ_8A5fawdpX0`Wdd-S_JN#Ef{42wxtf^iNo7iN{SDYPxh8Vcrmf2od}le}g;n z7N_{E<9`f;WqW1-39nHBi5^G659cd(OQibwr>SV!ZlhgWs{aUI=sW&^hLC)kNIf_m zM?3Q*!t=~W)EKKV$ssV+dNI{4)8U1N1+=OKjC#Oo!Be?&;K<|gN$~tSeCZ5YIXiMW z%J}Kl-T1w1)q`x6f5#SPjl$kU=Wzx&0o9MSBCw(y@Q*tjf1al zl#3Ko9DQ4FJJ2sr0{7G5Wfa3Y9u&@{Jl#fyPA6xBqp#jSFB5@2zwk7U5Fh{et-Y{4pVySa%y+11g!3=tXuvaav*LxsVgiyeZ_+rT@=e z(PGrz4VBE=VX($@==5c#$1?wIiQR?6$J=gCFqKH8LTE~M3>`nAE@ez5pRwsl&ONuo zId_zQN5D+7IoVjjQ>euS8Xe!6xufra-sAj6)d;V_VgGrI!;w!e=h|RN{%m7Rm4ASt zI1A-K0)+m24$Tc122~~69(g0N(CO!!n3mdymfFS^Wq*pwEo0$qAHt15L8c(QiX>VyNnUeh21rqkzvAtJfRD-X6l

uB9-f$B( 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 z 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 + +struct cudaMat3{ + glm::vec3 x; + glm::vec3 y; + glm::vec3 z; +}; + +struct cudaMat4{ + glm::vec4 x; + glm::vec4 y; + glm::vec4 z; + glm::vec4 w; +}; + +#endif \ No newline at end of file diff --git a/Part2/src/glm/CMakeLists.txt b/Part2/src/glm/CMakeLists.txt new file mode 100644 index 0000000..d5ba209 --- /dev/null +++ b/Part2/src/glm/CMakeLists.txt @@ -0,0 +1,43 @@ +set(NAME glm) + +file(GLOB ROOT_SOURCE *.cpp) +file(GLOB ROOT_INLINE *.inl) +file(GLOB ROOT_HEADER *.hpp) + +file(GLOB_RECURSE CORE_SOURCE ./core/*.cpp) +file(GLOB_RECURSE CORE_INLINE ./core/*.inl) +file(GLOB_RECURSE CORE_HEADER ./core/*.hpp) + +file(GLOB_RECURSE GTC_SOURCE ./gtc/*.cpp) +file(GLOB_RECURSE GTC_INLINE ./gtc/*.inl) +file(GLOB_RECURSE GTC_HEADER ./gtc/*.hpp) + +file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp) +file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl) +file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp) + +file(GLOB_RECURSE VIRTREV_SOURCE ./virtrev/*.cpp) +file(GLOB_RECURSE VIRTREV_INLINE ./virtrev/*.inl) +file(GLOB_RECURSE VIRTREV_HEADER ./virtrev/*.hpp) + +source_group("Core Files" FILES ${CORE_SOURCE}) +source_group("Core Files" FILES ${CORE_INLINE}) +source_group("Core Files" FILES ${CORE_HEADER}) +source_group("GTC Files" FILES ${GTC_SOURCE}) +source_group("GTC Files" FILES ${GTC_INLINE}) +source_group("GTC Files" FILES ${GTC_HEADER}) +source_group("GTX Files" FILES ${GTX_SOURCE}) +source_group("GTX Files" FILES ${GTX_INLINE}) +source_group("GTX Files" FILES ${GTX_HEADER}) +source_group("VIRTREV Files" FILES ${VIRTREV_SOURCE}) +source_group("VIRTREV Files" FILES ${VIRTREV_INLINE}) +source_group("VIRTREV Files" FILES ${VIRTREV_HEADER}) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) + +add_executable(${NAME} + ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER} + ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER} + ${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER} + ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER} + ${VIRTREV_SOURCE} ${VIRTREV_INLINE} ${VIRTREV_HEADER}) diff --git a/Part2/src/glm/core/_detail.hpp b/Part2/src/glm/core/_detail.hpp new file mode 100644 index 0000000..e6b42c2 --- /dev/null +++ b/Part2/src/glm/core/_detail.hpp @@ -0,0 +1,482 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/_detail.hpp +/// @date 2008-07-24 / 2011-06-14 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef glm_core_detail +#define glm_core_detail + +#include "setup.hpp" +#include +#if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) +#include +#endif + +namespace glm{ +namespace detail +{ + class half; + +#if(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available + typedef int64_t sint64; + typedef uint64_t uint64; +#elif(GLM_COMPILER & GLM_COMPILER_VC) + typedef signed __int64 sint64; + typedef unsigned __int64 uint64; +#elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC | GLM_COMPILER_CLANG)) + __extension__ typedef signed long long sint64; + __extension__ typedef unsigned long long uint64; +#elif(GLM_COMPILER & GLM_COMPILER_BC) + typedef Int64 sint64; + typedef Uint64 uint64; +#else//unknown compiler + typedef signed long long sint64; + typedef unsigned long long uint64; +#endif//GLM_COMPILER + + template + struct If + { + template + static GLM_FUNC_QUALIFIER T apply(F functor, const T& val) + { + return functor(val); + } + }; + + template<> + struct If + { + template + static GLM_FUNC_QUALIFIER T apply(F, const T& val) + { + return val; + } + }; + + //template + //struct traits + //{ + // static const bool is_signed = false; + // static const bool is_float = false; + // static const bool is_vector = false; + // static const bool is_matrix = false; + // static const bool is_genType = false; + // static const bool is_genIType = false; + // static const bool is_genUType = false; + //}; + + //template <> + //struct traits + //{ + // static const bool is_float = true; + // static const bool is_genType = true; + //}; + + //template <> + //struct traits + //{ + // static const bool is_float = true; + // static const bool is_genType = true; + //}; + + //template <> + //struct traits + //{ + // static const bool is_float = true; + // static const bool is_genType = true; + //}; + + //template + //struct desc + //{ + // typedef genType type; + // typedef genType * pointer; + // typedef genType const* const_pointer; + // typedef genType const *const const_pointer_const; + // typedef genType *const pointer_const; + // typedef genType & reference; + // typedef genType const& const_reference; + // typedef genType const& param_type; + + // typedef typename genType::value_type value_type; + // typedef typename genType::size_type size_type; + // static const typename size_type value_size; + //}; + + //template + //const typename desc::size_type desc::value_size = genType::value_size(); + + union uif32 + { + GLM_FUNC_QUALIFIER uif32() : + i(0) + {} + + GLM_FUNC_QUALIFIER uif32(float f) : + f(f) + {} + + GLM_FUNC_QUALIFIER uif32(unsigned int i) : + i(i) + {} + + float f; + unsigned int i; + }; + + union uif64 + { + GLM_FUNC_QUALIFIER uif64() : + i(0) + {} + + GLM_FUNC_QUALIFIER uif64(double f) : + f(f) + {} + + GLM_FUNC_QUALIFIER uif64(uint64 i) : + i(i) + {} + + double f; + uint64 i; + }; + + typedef uif32 uif; + + ////////////////// + // int + + template + struct is_int + { + enum is_int_enum + { + _YES = 0, + _NO = 1 + }; + }; + +#define GLM_DETAIL_IS_INT(T) \ + template <> \ + struct is_int \ + { \ + enum is_int_enum \ + { \ + _YES = 1, \ + _NO = 0 \ + }; \ + } + + ////////////////// + // uint + + template + struct is_uint + { + enum is_uint_enum + { + _YES = 0, + _NO = 1 + }; + }; + +#define GLM_DETAIL_IS_UINT(T) \ + template <> \ + struct is_uint \ + { \ + enum is_uint_enum \ + { \ + _YES = 1, \ + _NO = 0 \ + }; \ + } + + //GLM_DETAIL_IS_UINT(unsigned long long) + + ////////////////// + // float + + template + struct is_float + { + enum is_float_enum + { + _YES = 0, + _NO = 1 + }; + }; + +#define GLM_DETAIL_IS_FLOAT(T) \ + template <> \ + struct is_float \ + { \ + enum is_float_enum \ + { \ + _YES = 1, \ + _NO = 0 \ + }; \ + } + + GLM_DETAIL_IS_FLOAT(detail::half); + GLM_DETAIL_IS_FLOAT(float); + GLM_DETAIL_IS_FLOAT(double); + GLM_DETAIL_IS_FLOAT(long double); + + ////////////////// + // bool + + template + struct is_bool + { + enum is_bool_enum + { + _YES = 0, + _NO = 1 + }; + }; + + template <> + struct is_bool + { + enum is_bool_enum + { + _YES = 1, + _NO = 0 + }; + }; + + ////////////////// + // vector + + template + struct is_vector + { + enum is_vector_enum + { + _YES = 0, + _NO = 1 + }; + }; + +# define GLM_DETAIL_IS_VECTOR(TYPE) \ + template \ + struct is_vector > \ + { \ + enum is_vector_enum \ + { \ + _YES = 1, \ + _NO = 0 \ + }; \ + } + + ////////////////// + // matrix + + template + struct is_matrix + { + enum is_matrix_enum + { + _YES = 0, + _NO = 1 + }; + }; + +#define GLM_DETAIL_IS_MATRIX(T) \ + template <> \ + struct is_matrix \ + { \ + enum is_matrix_enum \ + { \ + _YES = 1, \ + _NO = 0 \ + }; \ + } + + ////////////////// + // type + + template + struct type + { + enum type_enum + { + is_float = is_float::_YES, + is_int = is_int::_YES, + is_uint = is_uint::_YES, + is_bool = is_bool::_YES + }; + }; + + ////////////////// + // type + + typedef signed char int8; + typedef signed short int16; + typedef signed int int32; + typedef detail::sint64 int64; + + typedef unsigned char uint8; + typedef unsigned short uint16; + typedef unsigned int uint32; + typedef detail::uint64 uint64; + + typedef detail::half float16; + typedef float float32; + typedef double float64; + + ////////////////// + // float_or_int_trait + + struct float_or_int_value + { + enum + { + GLM_ERROR, + GLM_FLOAT, + GLM_INT + }; + }; + + template + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_ERROR}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_INT}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_INT}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_INT}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_INT}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_INT}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_INT}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_INT}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_INT}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_FLOAT}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_FLOAT}; + }; + + template <> + struct float_or_int_trait + { + enum{ID = float_or_int_value::GLM_FLOAT}; + }; + +}//namespace detail +}//namespace glm + +#if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC2005)) +# define GLM_DEPRECATED __declspec(deprecated) +# define GLM_ALIGN(x) __declspec(align(x)) +# define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct +# define GLM_RESTRICT __declspec(restrict) +# define GLM_RESTRICT_VAR __restrict +# define GLM_CONSTEXPR +#elif(GLM_COMPILER & GLM_COMPILER_INTEL) +# define GLM_DEPRECATED +# define GLM_ALIGN(x) __declspec(align(x)) +# define GLM_ALIGNED_STRUCT(x) __declspec(align(x)) struct +# define GLM_RESTRICT +# define GLM_RESTRICT_VAR __restrict +# define GLM_CONSTEXPR +#elif(((GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_LLVM_GCC)) && (GLM_COMPILER >= GLM_COMPILER_GCC31)) || (GLM_COMPILER & GLM_COMPILER_CLANG)) +# define GLM_DEPRECATED __attribute__((__deprecated__)) +# define GLM_ALIGN(x) __attribute__((aligned(x))) +# define GLM_ALIGNED_STRUCT(x) struct __attribute__((aligned(x))) +# if(GLM_COMPILER >= GLM_COMPILER_GCC33) +# define GLM_RESTRICT __restrict__ +# define GLM_RESTRICT_VAR __restrict__ +# else +# define GLM_RESTRICT +# define GLM_RESTRICT_VAR +# endif +# define GLM_RESTRICT __restrict__ +# define GLM_RESTRICT_VAR __restrict__ +# if((GLM_COMPILER >= GLM_COMPILER_GCC47) && ((GLM_LANG & GLM_LANG_CXX0X) == GLM_LANG_CXX0X)) +# define GLM_CONSTEXPR constexpr +# else +# define GLM_CONSTEXPR +# endif +#else +# define GLM_DEPRECATED +# define GLM_ALIGN +# define GLM_ALIGNED_STRUCT(x) +# define GLM_RESTRICT +# define GLM_RESTRICT_VAR +# define GLM_CONSTEXPR +#endif//GLM_COMPILER + +#endif//glm_core_detail diff --git a/Part2/src/glm/core/_fixes.hpp b/Part2/src/glm/core/_fixes.hpp new file mode 100644 index 0000000..b4cec5f --- /dev/null +++ b/Part2/src/glm/core/_fixes.hpp @@ -0,0 +1,55 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/_fixes.hpp +/// @date 2011-02-21 / 2011-11-22 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +#include + +//! Workaround for compatibility with other libraries +#ifdef max +#undef max +#endif + +//! Workaround for compatibility with other libraries +#ifdef min +#undef min +#endif + +//! Workaround for Android +#ifdef isnan +#undef isnan +#endif + +//! Workaround for Android +#ifdef isinf +#undef isinf +#endif + +//! Workaround for Chrone Native Client +#ifdef log2 +#undef log2 +#endif + diff --git a/Part2/src/glm/core/_swizzle.hpp b/Part2/src/glm/core/_swizzle.hpp new file mode 100644 index 0000000..dc06944 --- /dev/null +++ b/Part2/src/glm/core/_swizzle.hpp @@ -0,0 +1,861 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/_swizzle.hpp +/// @date 2006-04-20 / 2011-02-16 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef glm_core_swizzle +#define glm_core_swizzle + +#include "_swizzle_func.hpp" + +namespace glm +{ + enum comp + { + X = 0, + R = 0, + S = 0, + Y = 1, + G = 1, + T = 1, + Z = 2, + B = 2, + P = 2, + W = 3, + A = 3, + Q = 3 + }; +}//namespace glm + +namespace glm{ +namespace detail +{ + // Internal class for implementing swizzle operators + template + struct _swizzle_base0 + { + typedef T value_type; + + protected: + GLM_FUNC_QUALIFIER value_type& elem (size_t i) { return (reinterpret_cast(_buffer))[i]; } + GLM_FUNC_QUALIFIER const value_type& elem (size_t i) const { return (reinterpret_cast(_buffer))[i]; } + + // Use an opaque buffer to *ensure* the compiler doesn't call a constructor. + // The size 1 buffer is assumed to aligned to the actual members so that the + // elem() + char _buffer[1]; + }; + + template + struct _swizzle_base1 : public _swizzle_base0 + { + }; + + template + struct _swizzle_base1 : public _swizzle_base0 + { + GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1)); } + }; + + template + struct _swizzle_base1 : public _swizzle_base0 + { + GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2)); } + }; + + template + struct _swizzle_base1 : public _swizzle_base0 + { + GLM_FUNC_QUALIFIER V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); } + }; + + // Internal class for implementing swizzle operators + /* + Template parameters: + + ValueType = type of scalar values (e.g. float, double) + VecType = class the swizzle is applies to (e.g. tvec3) + N = number of components in the vector (e.g. 3) + E0...3 = what index the n-th element of this swizzle refers to in the unswizzled vec + + DUPLICATE_ELEMENTS = 1 if there is a repeated element, 0 otherwise (used to specialize swizzles + containing duplicate elements so that they cannot be used as r-values). + */ + template + struct _swizzle_base2 : public _swizzle_base1 + { + typedef VecType vec_type; + typedef ValueType value_type; + + GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const ValueType& t) + { + for (int i = 0; i < N; ++i) + (*this)[i] = t; + return *this; + } + + GLM_FUNC_QUALIFIER _swizzle_base2& operator= (const VecType& that) + { + struct op { + GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e = t; } + }; + _apply_op(that, op()); + return *this; + } + + GLM_FUNC_QUALIFIER void operator -= (const VecType& that) + { + struct op { + GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e -= t; } + }; + _apply_op(that, op()); + } + + GLM_FUNC_QUALIFIER void operator += (const VecType& that) + { + struct op { + GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e += t; } + }; + _apply_op(that, op()); + } + + GLM_FUNC_QUALIFIER void operator *= (const VecType& that) + { + struct op { + GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e *= t; } + }; + _apply_op(that, op()); + } + + GLM_FUNC_QUALIFIER void operator /= (const VecType& that) + { + struct op { + GLM_FUNC_QUALIFIER void operator() (value_type& e, value_type& t) { e /= t; } + }; + _apply_op(that, op()); + } + + GLM_FUNC_QUALIFIER value_type& operator[] (size_t i) + { +#ifndef __CUDA_ARCH__ + static +#endif + const int offset_dst[4] = { E0, E1, E2, E3 }; + return this->elem(offset_dst[i]); + } + GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const + { +#ifndef __CUDA_ARCH__ + static +#endif + const int offset_dst[4] = { E0, E1, E2, E3 }; + return this->elem(offset_dst[i]); + } + protected: + template + GLM_FUNC_QUALIFIER void _apply_op(const VecType& that, T op) + { + // Make a copy of the data in this == &that. + // The copier should optimize out the copy in cases where the function is + // properly inlined and the copy is not necessary. + ValueType t[N]; + for (int i = 0; i < N; ++i) + t[i] = that[i]; + for (int i = 0; i < N; ++i) + op( (*this)[i], t[i] ); + } + }; + + // Specialization for swizzles containing duplicate elements. These cannot be modified. + template + struct _swizzle_base2 : public _swizzle_base1 + { + typedef VecType vec_type; + typedef ValueType value_type; + + struct Stub {}; + GLM_FUNC_QUALIFIER _swizzle_base2& operator= (Stub const &) { return *this; } + + GLM_FUNC_QUALIFIER value_type operator[] (size_t i) const + { +#ifndef __CUDA_ARCH__ + static +#endif + const int offset_dst[4] = { E0, E1, E2, E3 }; + return this->elem(offset_dst[i]); + } + }; + + template + struct swizzle : public _swizzle_base2 + { + typedef _swizzle_base2 base_type; + + using base_type::operator=; + + GLM_FUNC_QUALIFIER operator VecType () const { return (*this)(); } + }; + +// +// To prevent the C++ syntax from getting entirely overwhelming, define some alias macros +// +#define _GLM_SWIZZLE_TEMPLATE1 template +#define _GLM_SWIZZLE_TEMPLATE2 template +#define _GLM_SWIZZLE_TYPE1 glm::detail::swizzle +#define _GLM_SWIZZLE_TYPE2 glm::detail::swizzle + +// +// Wrapper for a binary operator (e.g. u.yy + v.zy) +// +#define _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \ + _GLM_SWIZZLE_TEMPLATE2 \ + GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \ + { \ + return a() OPERAND b(); \ + } \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const V& b) \ + { \ + return a() OPERAND b; \ + } \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER V operator OPERAND ( const V& a, const _GLM_SWIZZLE_TYPE1& b) \ + { \ + return a OPERAND b(); \ + } + +// +// Wrapper for a operand between a swizzle and a binary (e.g. 1.0f - u.xyz) +// +#define _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(OPERAND) \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER V operator OPERAND ( const _GLM_SWIZZLE_TYPE1& a, const T& b) \ + { \ + return a() OPERAND b; \ + } \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER V operator OPERAND ( const T& a, const _GLM_SWIZZLE_TYPE1& b) \ + { \ + return a OPERAND b(); \ + } + +// +// Macro for wrapping a function taking one argument (e.g. abs()) +// +#define _GLM_SWIZZLE_FUNCTION_1_ARGS(RETURN_TYPE,FUNCTION) \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a) \ + { \ + return FUNCTION(a()); \ + } + +// +// Macro for wrapping a function taking two vector arguments (e.g. dot()). +// +#define _GLM_SWIZZLE_FUNCTION_2_ARGS(RETURN_TYPE,FUNCTION) \ + _GLM_SWIZZLE_TEMPLATE2 \ + GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b) \ + { \ + return FUNCTION(a(), b()); \ + } \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b) \ + { \ + return FUNCTION(a(), b()); \ + } \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename V& b) \ + { \ + return FUNCTION(a(), b); \ + } \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const V& a, const _GLM_SWIZZLE_TYPE1& b) \ + { \ + return FUNCTION(a, b()); \ + } + +// +// Macro for wrapping a function take 2 vec arguments followed by a scalar (e.g. mix()). +// +#define _GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(RETURN_TYPE,FUNCTION) \ + _GLM_SWIZZLE_TEMPLATE2 \ + GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE2& b, const T& c) \ + { \ + return FUNCTION(a(), b(), c); \ + } \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \ + { \ + return FUNCTION(a(), b(), c); \ + } \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const _GLM_SWIZZLE_TYPE1& a, const typename S0::vec_type& b, const T& c)\ + { \ + return FUNCTION(a(), b, c); \ + } \ + _GLM_SWIZZLE_TEMPLATE1 \ + GLM_FUNC_QUALIFIER typename _GLM_SWIZZLE_TYPE1::RETURN_TYPE FUNCTION(const typename V& a, const _GLM_SWIZZLE_TYPE1& b, const T& c) \ + { \ + return FUNCTION(a, b(), c); \ + } + +}//namespace detail +}//namespace glm + +namespace glm +{ + namespace detail + { + _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(-) + _GLM_SWIZZLE_SCALAR_BINARY_OPERATOR_IMPLEMENTATION(*) + _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(+) + _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(-) + _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(*) + _GLM_SWIZZLE_VECTOR_BINARY_OPERATOR_IMPLEMENTATION(/) + } + + // + // Swizzles are distinct types from the unswizzled type. The below macros will + // provide template specializations for the swizzle types for the given functions + // so that the compiler does not have any ambiguity to choosing how to handle + // the function. + // + // The alternative is to use the operator()() when calling the function in order + // to explicitly convert the swizzled type to the unswizzled type. + // + + //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, abs); + //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acos); + //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, acosh); + //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, all); + //_GLM_SWIZZLE_FUNCTION_1_ARGS(vec_type, any); + + //_GLM_SWIZZLE_FUNCTION_2_ARGS(value_type, dot); + //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, cross); + //_GLM_SWIZZLE_FUNCTION_2_ARGS(vec_type, step); + //_GLM_SWIZZLE_FUNCTION_2_ARGS_SCALAR(vec_type, mix); +} + +#define _GLM_SWIZZLE2_2_MEMBERS(T,P,E0,E1) \ + struct { glm::detail::swizzle<2,T,P,0,0,-1,-2> E0 ## E0; }; \ + struct { glm::detail::swizzle<2,T,P,0,1,-1,-2> E0 ## E1; }; \ + struct { glm::detail::swizzle<2,T,P,1,0,-1,-2> E1 ## E0; }; \ + struct { glm::detail::swizzle<2,T,P,1,1,-1,-2> E1 ## E1; }; + +#define _GLM_SWIZZLE2_3_MEMBERS(T,P2,E0,E1) \ + struct { glm::detail::swizzle<3,T,P2,0,0,0,-1> E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P2,0,0,1,-1> E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P2,0,1,0,-1> E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P2,0,1,1,-1> E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P2,1,0,0,-1> E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P2,1,0,1,-1> E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P2,1,1,0,-1> E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P2,1,1,1,-1> E1 ## E1 ## E1; }; + +#define _GLM_SWIZZLE2_4_MEMBERS(T,P2,E0,E1) \ + struct { glm::detail::swizzle<4,T,P2,0,0,0,0> E0 ## E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,0,1> E0 ## E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,1,0> E0 ## E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,1,1> E0 ## E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,0,0> E0 ## E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,0,1> E0 ## E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,1,0> E0 ## E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,1,1> E0 ## E1 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,0,0> E1 ## E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,0,1> E1 ## E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,1,0> E1 ## E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,1,1> E1 ## E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,0,0> E1 ## E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,0,1> E1 ## E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,1,0> E1 ## E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,1,1> E1 ## E1 ## E1 ## E1; }; + +#define _GLM_SWIZZLE3_2_MEMBERS(T,P2,E0,E1,E2) \ + struct { glm::detail::swizzle<2,T,P2,0,0,-1,-2> E0 ## E0; }; \ + struct { glm::detail::swizzle<2,T,P2,0,1,-1,-2> E0 ## E1; }; \ + struct { glm::detail::swizzle<2,T,P2,0,2,-1,-2> E0 ## E2; }; \ + struct { glm::detail::swizzle<2,T,P2,1,0,-1,-2> E1 ## E0; }; \ + struct { glm::detail::swizzle<2,T,P2,1,1,-1,-2> E1 ## E1; }; \ + struct { glm::detail::swizzle<2,T,P2,1,2,-1,-2> E1 ## E2; }; \ + struct { glm::detail::swizzle<2,T,P2,2,0,-1,-2> E2 ## E0; }; \ + struct { glm::detail::swizzle<2,T,P2,2,1,-1,-2> E2 ## E1; }; \ + struct { glm::detail::swizzle<2,T,P2,2,2,-1,-2> E2 ## E2; }; + +#define _GLM_SWIZZLE3_3_MEMBERS(T,P,E0,E1,E2) \ + struct { glm::detail::swizzle<3,T,P,0,0,0,-1> E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,0,0,1,-1> E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,0,0,2,-1> E0 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,0,1,0,-1> E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,0,1,1,-1> E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,0,1,2,-1> E0 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,0,2,0,-1> E0 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,0,2,1,-1> E0 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,0,2,2,-1> E0 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,1,0,0,-1> E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,1,0,1,-1> E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,1,0,2,-1> E1 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,1,1,0,-1> E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,1,1,1,-1> E1 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,1,1,2,-1> E1 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,1,2,0,-1> E1 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,1,2,1,-1> E1 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,1,2,2,-1> E1 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,2,0,0,-1> E2 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,2,0,1,-1> E2 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,2,0,2,-1> E2 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,2,1,0,-1> E2 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,2,1,1,-1> E2 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,2,1,2,-1> E2 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,2,2,0,-1> E2 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,2,2,1,-1> E2 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,2,2,2,-1> E2 ## E2 ## E2; }; + +#define _GLM_SWIZZLE3_4_MEMBERS(T,P2,E0,E1,E2) \ + struct { glm::detail::swizzle<4,T,P2,0,0,0,0> E0 ## E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,0,1> E0 ## E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,0,2> E0 ## E0 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,1,0> E0 ## E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,1,1> E0 ## E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,1,2> E0 ## E0 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,2,0> E0 ## E0 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,2,1> E0 ## E0 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,0,2,2> E0 ## E0 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,0,0> E0 ## E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,0,1> E0 ## E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,0,2> E0 ## E1 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,1,0> E0 ## E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,1,1> E0 ## E1 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,1,2> E0 ## E1 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,2,0> E0 ## E1 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,2,1> E0 ## E1 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,1,2,2> E0 ## E1 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,0,2,0,0> E0 ## E2 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,2,0,1> E0 ## E2 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,2,0,2> E0 ## E2 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,0,2,1,0> E0 ## E2 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,2,1,1> E0 ## E2 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,2,1,2> E0 ## E2 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,0,2,2,0> E0 ## E2 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,0,2,2,1> E0 ## E2 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,0,2,2,2> E0 ## E2 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,0,0> E1 ## E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,0,1> E1 ## E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,0,2> E1 ## E0 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,1,0> E1 ## E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,1,1> E1 ## E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,1,2> E1 ## E0 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,2,0> E1 ## E0 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,2,1> E1 ## E0 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,0,2,2> E1 ## E0 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,0,0> E1 ## E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,0,1> E1 ## E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,0,2> E1 ## E1 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,1,0> E1 ## E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,1,1> E1 ## E1 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,1,2> E1 ## E1 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,2,0> E1 ## E1 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,2,1> E1 ## E1 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,1,2,2> E1 ## E1 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,1,2,0,0> E1 ## E2 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,2,0,1> E1 ## E2 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,2,0,2> E1 ## E2 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,1,2,1,0> E1 ## E2 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,2,1,1> E1 ## E2 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,2,1,2> E1 ## E2 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,1,2,2,0> E1 ## E2 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,1,2,2,1> E1 ## E2 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,1,2,2,2> E1 ## E2 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,2,0,0,0> E2 ## E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,2,0,0,1> E2 ## E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,2,0,0,2> E2 ## E0 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,2,0,1,0> E2 ## E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,2,0,1,1> E2 ## E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,2,0,1,2> E2 ## E0 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,2,0,2,0> E2 ## E0 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,2,0,2,1> E2 ## E0 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,2,0,2,2> E2 ## E0 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,2,1,0,0> E2 ## E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,2,1,0,1> E2 ## E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,2,1,0,2> E2 ## E1 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,2,1,1,0> E2 ## E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,2,1,1,1> E2 ## E1 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,2,1,1,2> E2 ## E1 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,2,1,2,0> E2 ## E1 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,2,1,2,1> E2 ## E1 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,2,1,2,2> E2 ## E1 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,2,2,0,0> E2 ## E2 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,2,2,0,1> E2 ## E2 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,2,2,0,2> E2 ## E2 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,2,2,1,0> E2 ## E2 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,2,2,1,1> E2 ## E2 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,2,2,1,2> E2 ## E2 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P2,2,2,2,0> E2 ## E2 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P2,2,2,2,1> E2 ## E2 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P2,2,2,2,2> E2 ## E2 ## E2 ## E2; }; + +#define _GLM_SWIZZLE4_2_MEMBERS(T,P,E0,E1,E2,E3) \ + struct { glm::detail::swizzle<2,T,P,0,0,-1,-2> E0 ## E0; }; \ + struct { glm::detail::swizzle<2,T,P,0,1,-1,-2> E0 ## E1; }; \ + struct { glm::detail::swizzle<2,T,P,0,2,-1,-2> E0 ## E2; }; \ + struct { glm::detail::swizzle<2,T,P,0,3,-1,-2> E0 ## E3; }; \ + struct { glm::detail::swizzle<2,T,P,1,0,-1,-2> E1 ## E0; }; \ + struct { glm::detail::swizzle<2,T,P,1,1,-1,-2> E1 ## E1; }; \ + struct { glm::detail::swizzle<2,T,P,1,2,-1,-2> E1 ## E2; }; \ + struct { glm::detail::swizzle<2,T,P,1,3,-1,-2> E1 ## E3; }; \ + struct { glm::detail::swizzle<2,T,P,2,0,-1,-2> E2 ## E0; }; \ + struct { glm::detail::swizzle<2,T,P,2,1,-1,-2> E2 ## E1; }; \ + struct { glm::detail::swizzle<2,T,P,2,2,-1,-2> E2 ## E2; }; \ + struct { glm::detail::swizzle<2,T,P,2,3,-1,-2> E2 ## E3; }; \ + struct { glm::detail::swizzle<2,T,P,3,0,-1,-2> E3 ## E0; }; \ + struct { glm::detail::swizzle<2,T,P,3,1,-1,-2> E3 ## E1; }; \ + struct { glm::detail::swizzle<2,T,P,3,2,-1,-2> E3 ## E2; }; \ + struct { glm::detail::swizzle<2,T,P,3,3,-1,-2> E3 ## E3; }; + +#define _GLM_SWIZZLE4_3_MEMBERS(T,P,E0,E1,E2,E3) \ + struct { glm::detail::swizzle<3,T,P,0,0,0,-1> E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,0,0,1,-1> E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,0,0,2,-1> E0 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,0,0,3,-1> E0 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,0,1,0,-1> E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,0,1,1,-1> E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,0,1,2,-1> E0 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,0,1,3,-1> E0 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,0,2,0,-1> E0 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,0,2,1,-1> E0 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,0,2,2,-1> E0 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,0,2,3,-1> E0 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,0,3,0,-1> E0 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,0,3,1,-1> E0 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,0,3,2,-1> E0 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,0,3,3,-1> E0 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,1,0,0,-1> E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,1,0,1,-1> E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,1,0,2,-1> E1 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,1,0,3,-1> E1 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,1,1,0,-1> E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,1,1,1,-1> E1 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,1,1,2,-1> E1 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,1,1,3,-1> E1 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,1,2,0,-1> E1 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,1,2,1,-1> E1 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,1,2,2,-1> E1 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,1,2,3,-1> E1 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,1,3,0,-1> E1 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,1,3,1,-1> E1 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,1,3,2,-1> E1 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,1,3,3,-1> E1 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,2,0,0,-1> E2 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,2,0,1,-1> E2 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,2,0,2,-1> E2 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,2,0,3,-1> E2 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,2,1,0,-1> E2 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,2,1,1,-1> E2 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,2,1,2,-1> E2 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,2,1,3,-1> E2 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,2,2,0,-1> E2 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,2,2,1,-1> E2 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,2,2,2,-1> E2 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,2,2,3,-1> E2 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,2,3,0,-1> E2 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,2,3,1,-1> E2 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,2,3,2,-1> E2 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,2,3,3,-1> E2 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,3,0,0,-1> E3 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,3,0,1,-1> E3 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,3,0,2,-1> E3 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,3,0,3,-1> E3 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,3,1,0,-1> E3 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,3,1,1,-1> E3 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,3,1,2,-1> E3 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,3,1,3,-1> E3 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,3,2,0,-1> E3 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,3,2,1,-1> E3 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,3,2,2,-1> E3 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,3,2,3,-1> E3 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<3,T,P,3,3,0,-1> E3 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<3,T,P,3,3,1,-1> E3 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<3,T,P,3,3,2,-1> E3 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<3,T,P,3,3,3,-1> E3 ## E3 ## E3; }; + +#define _GLM_SWIZZLE4_4_MEMBERS(T,P,E0,E1,E2,E3) \ + struct { glm::detail::swizzle<4,T,P,0,0,0,0> E0 ## E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,0,1> E0 ## E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,0,2> E0 ## E0 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,0,3> E0 ## E0 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,1,0> E0 ## E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,1,1> E0 ## E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,1,2> E0 ## E0 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,1,3> E0 ## E0 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,2,0> E0 ## E0 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,2,1> E0 ## E0 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,2,2> E0 ## E0 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,2,3> E0 ## E0 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,3,0> E0 ## E0 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,3,1> E0 ## E0 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,3,2> E0 ## E0 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,0,3,3> E0 ## E0 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,0,0> E0 ## E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,0,1> E0 ## E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,0,2> E0 ## E1 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,0,3> E0 ## E1 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,1,0> E0 ## E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,1,1> E0 ## E1 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,1,2> E0 ## E1 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,1,3> E0 ## E1 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,2,0> E0 ## E1 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,2,1> E0 ## E1 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,2,2> E0 ## E1 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,2,3> E0 ## E1 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,3,0> E0 ## E1 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,3,1> E0 ## E1 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,3,2> E0 ## E1 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,1,3,3> E0 ## E1 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,0,0> E0 ## E2 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,0,1> E0 ## E2 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,0,2> E0 ## E2 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,0,3> E0 ## E2 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,1,0> E0 ## E2 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,1,1> E0 ## E2 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,1,2> E0 ## E2 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,1,3> E0 ## E2 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,2,0> E0 ## E2 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,2,1> E0 ## E2 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,2,2> E0 ## E2 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,2,3> E0 ## E2 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,3,0> E0 ## E2 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,3,1> E0 ## E2 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,3,2> E0 ## E2 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,2,3,3> E0 ## E2 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,0,0> E0 ## E3 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,0,1> E0 ## E3 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,0,2> E0 ## E3 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,0,3> E0 ## E3 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,1,0> E0 ## E3 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,1,1> E0 ## E3 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,1,2> E0 ## E3 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,1,3> E0 ## E3 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,2,0> E0 ## E3 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,2,1> E0 ## E3 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,2,2> E0 ## E3 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,2,3> E0 ## E3 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,3,0> E0 ## E3 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,3,1> E0 ## E3 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,3,2> E0 ## E3 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,0,3,3,3> E0 ## E3 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,0,0> E1 ## E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,0,1> E1 ## E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,0,2> E1 ## E0 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,0,3> E1 ## E0 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,1,0> E1 ## E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,1,1> E1 ## E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,1,2> E1 ## E0 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,1,3> E1 ## E0 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,2,0> E1 ## E0 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,2,1> E1 ## E0 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,2,2> E1 ## E0 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,2,3> E1 ## E0 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,3,0> E1 ## E0 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,3,1> E1 ## E0 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,3,2> E1 ## E0 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,0,3,3> E1 ## E0 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,0,0> E1 ## E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,0,1> E1 ## E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,0,2> E1 ## E1 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,0,3> E1 ## E1 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,1,0> E1 ## E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,1,1> E1 ## E1 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,1,2> E1 ## E1 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,1,3> E1 ## E1 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,2,0> E1 ## E1 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,2,1> E1 ## E1 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,2,2> E1 ## E1 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,2,3> E1 ## E1 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,3,0> E1 ## E1 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,3,1> E1 ## E1 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,3,2> E1 ## E1 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,1,3,3> E1 ## E1 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,0,0> E1 ## E2 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,0,1> E1 ## E2 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,0,2> E1 ## E2 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,0,3> E1 ## E2 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,1,0> E1 ## E2 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,1,1> E1 ## E2 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,1,2> E1 ## E2 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,1,3> E1 ## E2 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,2,0> E1 ## E2 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,2,1> E1 ## E2 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,2,2> E1 ## E2 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,2,3> E1 ## E2 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,3,0> E1 ## E2 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,3,1> E1 ## E2 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,3,2> E1 ## E2 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,2,3,3> E1 ## E2 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,0,0> E1 ## E3 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,0,1> E1 ## E3 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,0,2> E1 ## E3 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,0,3> E1 ## E3 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,1,0> E1 ## E3 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,1,1> E1 ## E3 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,1,2> E1 ## E3 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,1,3> E1 ## E3 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,2,0> E1 ## E3 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,2,1> E1 ## E3 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,2,2> E1 ## E3 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,2,3> E1 ## E3 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,3,0> E1 ## E3 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,3,1> E1 ## E3 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,3,2> E1 ## E3 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,1,3,3,3> E1 ## E3 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,0,0> E2 ## E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,0,1> E2 ## E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,0,2> E2 ## E0 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,0,3> E2 ## E0 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,1,0> E2 ## E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,1,1> E2 ## E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,1,2> E2 ## E0 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,1,3> E2 ## E0 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,2,0> E2 ## E0 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,2,1> E2 ## E0 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,2,2> E2 ## E0 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,2,3> E2 ## E0 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,3,0> E2 ## E0 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,3,1> E2 ## E0 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,3,2> E2 ## E0 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,0,3,3> E2 ## E0 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,0,0> E2 ## E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,0,1> E2 ## E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,0,2> E2 ## E1 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,0,3> E2 ## E1 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,1,0> E2 ## E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,1,1> E2 ## E1 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,1,2> E2 ## E1 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,1,3> E2 ## E1 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,2,0> E2 ## E1 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,2,1> E2 ## E1 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,2,2> E2 ## E1 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,2,3> E2 ## E1 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,3,0> E2 ## E1 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,3,1> E2 ## E1 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,3,2> E2 ## E1 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,1,3,3> E2 ## E1 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,0,0> E2 ## E2 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,0,1> E2 ## E2 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,0,2> E2 ## E2 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,0,3> E2 ## E2 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,1,0> E2 ## E2 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,1,1> E2 ## E2 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,1,2> E2 ## E2 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,1,3> E2 ## E2 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,2,0> E2 ## E2 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,2,1> E2 ## E2 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,2,2> E2 ## E2 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,2,3> E2 ## E2 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,3,0> E2 ## E2 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,3,1> E2 ## E2 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,3,2> E2 ## E2 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,2,3,3> E2 ## E2 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,0,0> E2 ## E3 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,0,1> E2 ## E3 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,0,2> E2 ## E3 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,0,3> E2 ## E3 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,1,0> E2 ## E3 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,1,1> E2 ## E3 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,1,2> E2 ## E3 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,1,3> E2 ## E3 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,2,0> E2 ## E3 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,2,1> E2 ## E3 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,2,2> E2 ## E3 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,2,3> E2 ## E3 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,3,0> E2 ## E3 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,3,1> E2 ## E3 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,3,2> E2 ## E3 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,2,3,3,3> E2 ## E3 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,0,0> E3 ## E0 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,0,1> E3 ## E0 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,0,2> E3 ## E0 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,0,3> E3 ## E0 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,1,0> E3 ## E0 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,1,1> E3 ## E0 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,1,2> E3 ## E0 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,1,3> E3 ## E0 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,2,0> E3 ## E0 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,2,1> E3 ## E0 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,2,2> E3 ## E0 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,2,3> E3 ## E0 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,3,0> E3 ## E0 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,3,1> E3 ## E0 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,3,2> E3 ## E0 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,0,3,3> E3 ## E0 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,0,0> E3 ## E1 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,0,1> E3 ## E1 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,0,2> E3 ## E1 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,0,3> E3 ## E1 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,1,0> E3 ## E1 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,1,1> E3 ## E1 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,1,2> E3 ## E1 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,1,3> E3 ## E1 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,2,0> E3 ## E1 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,2,1> E3 ## E1 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,2,2> E3 ## E1 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,2,3> E3 ## E1 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,3,0> E3 ## E1 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,3,1> E3 ## E1 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,3,2> E3 ## E1 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,1,3,3> E3 ## E1 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,0,0> E3 ## E2 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,0,1> E3 ## E2 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,0,2> E3 ## E2 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,0,3> E3 ## E2 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,1,0> E3 ## E2 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,1,1> E3 ## E2 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,1,2> E3 ## E2 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,1,3> E3 ## E2 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,2,0> E3 ## E2 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,2,1> E3 ## E2 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,2,2> E3 ## E2 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,2,3> E3 ## E2 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,3,0> E3 ## E2 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,3,1> E3 ## E2 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,3,2> E3 ## E2 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,2,3,3> E3 ## E2 ## E3 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,0,0> E3 ## E3 ## E0 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,0,1> E3 ## E3 ## E0 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,0,2> E3 ## E3 ## E0 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,0,3> E3 ## E3 ## E0 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,1,0> E3 ## E3 ## E1 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,1,1> E3 ## E3 ## E1 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,1,2> E3 ## E3 ## E1 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,1,3> E3 ## E3 ## E1 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,2,0> E3 ## E3 ## E2 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,2,1> E3 ## E3 ## E2 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,2,2> E3 ## E3 ## E2 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,2,3> E3 ## E3 ## E2 ## E3; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,3,0> E3 ## E3 ## E3 ## E0; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,3,1> E3 ## E3 ## E3 ## E1; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,3,2> E3 ## E3 ## E3 ## E2; }; \ + struct { glm::detail::swizzle<4,T,P,3,3,3,3> E3 ## E3 ## E3 ## E3; }; + +#endif//glm_core_swizzle diff --git a/Part2/src/glm/core/_swizzle_func.hpp b/Part2/src/glm/core/_swizzle_func.hpp new file mode 100644 index 0000000..be66784 --- /dev/null +++ b/Part2/src/glm/core/_swizzle_func.hpp @@ -0,0 +1,787 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/_swizzle_func.hpp +/// @date 2011-10-16 / 2011-10-16 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef glm_core_swizzle_func +#define glm_core_swizzle_func + +#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \ + SWIZZLED_TYPE A ## B() CONST \ + { \ + return SWIZZLED_TYPE(this->A, this->B); \ + } + +#define GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \ + SWIZZLED_TYPE A ## B ## C() CONST \ + { \ + return SWIZZLED_TYPE(this->A, this->B, this->C); \ + } + +#define GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \ + SWIZZLED_TYPE A ## B ## C ## D() CONST \ + { \ + return SWIZZLED_TYPE(this->A, this->B, this->C, this->D); \ + } + +#define GLM_SWIZZLE_GEN_VEC2_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \ + template \ + SWIZZLED_TYPE CLASS_TYPE::A ## B() CONST \ + { \ + return SWIZZLED_TYPE(this->A, this->B); \ + } + +#define GLM_SWIZZLE_GEN_VEC3_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C) \ + template \ + SWIZZLED_TYPE CLASS_TYPE::A ## B ## C() CONST \ + { \ + return SWIZZLED_TYPE(this->A, this->B, this->C); \ + } + +#define GLM_SWIZZLE_GEN_VEC4_ENTRY_DEF(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B, C, D) \ + template \ + SWIZZLED_TYPE CLASS_TYPE::A ## B ## C ## D() CONST \ + { \ + return SWIZZLED_TYPE(this->A, this->B, this->C, this->D); \ + } + +#define GLM_MUTABLE + +#define GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) + +#define GLM_SWIZZLE_GEN_REF_FROM_VEC2(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE) \ + GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, x, y) \ + GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, r, g) \ + GLM_SWIZZLE_GEN_REF2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, s, t) + +//GLM_SWIZZLE_GEN_REF_FROM_VEC2(valType, detail::vec2, detail::ref2) + +#define GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) + +#define GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B, A) + +#define GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \ + GLM_SWIZZLE_GEN_REF3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \ + GLM_SWIZZLE_GEN_REF2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) + +#define GLM_SWIZZLE_GEN_REF_FROM_VEC3(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE) \ + GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, x, y, z) \ + GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, r, g, b) \ + GLM_SWIZZLE_GEN_REF_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, s, t, q) + +//GLM_SWIZZLE_GEN_REF_FROM_VEC3(valType, detail::vec3, detail::ref2, detail::ref3) + +#define GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, A, D) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, B, D) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, C, D) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, GLM_MUTABLE, D, C) + +#define GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B) + +#define GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, C, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, D, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, C, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, D, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , B, A, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, B, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, D, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , C, A, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, C, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, A, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, , D, B, C, A) + +#define GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_REF2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_REF3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_REF4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) + +#define GLM_SWIZZLE_GEN_REF_FROM_VEC4(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \ + GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \ + GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \ + GLM_SWIZZLE_GEN_REF_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q, p) + +//GLM_SWIZZLE_GEN_REF_FROM_VEC4(valType, detail::vec4, detail::ref2, detail::ref3, detail::ref4) + +#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) + +#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) + +#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) + +#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B) \ + GLM_SWIZZLE_GEN_VEC2_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B) \ + GLM_SWIZZLE_GEN_VEC3_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B) \ + GLM_SWIZZLE_GEN_VEC4_FROM_VEC2_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B) + +#define GLM_SWIZZLE_GEN_VEC_FROM_VEC2(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \ + GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y) \ + GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g) \ + GLM_SWIZZLE_GEN_VEC_FROM_VEC2_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t) + +//GLM_SWIZZLE_GEN_VEC_FROM_VEC2(valType, detail::vec2, detail::vec2, detail::vec3, detail::vec4) + +#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) + +#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) + +#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) + +#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) \ + GLM_SWIZZLE_GEN_VEC2_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C) \ + GLM_SWIZZLE_GEN_VEC3_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_FROM_VEC3_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C) + +#define GLM_SWIZZLE_GEN_VEC_FROM_VEC3(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \ + GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z) \ + GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b) \ + GLM_SWIZZLE_GEN_VEC_FROM_VEC3_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q) + +//GLM_SWIZZLE_GEN_VEC_FROM_VEC3(valType, detail::vec3, detail::vec2, detail::vec3, detail::vec4) + +#define GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C) \ + GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D) + +#define GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C) \ + GLM_SWIZZLE_GEN_VEC3_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D) + +#define GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, A, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, B, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, C, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, A, D, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, A, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, B, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, C, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, B, D, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, A, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, B, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, C, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, C, D, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, A, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, B, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, C, D, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, A, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, B, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, C, D) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, A) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, B) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, C) \ + GLM_SWIZZLE_GEN_VEC4_ENTRY(TMPL_TYPE, CLASS_TYPE, SWIZZLED_TYPE, const, D, D, D, D) + +#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC2_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC3_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC3_TYPE, A, B, C, D) \ + GLM_SWIZZLE_GEN_VEC4_FROM_VEC4_SWIZZLE(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC4_TYPE, A, B, C, D) + +#define GLM_SWIZZLE_GEN_VEC_FROM_VEC4(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE) \ + GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, x, y, z, w) \ + GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, r, g, b, a) \ + GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP(TMPL_TYPE, CLASS_TYPE, SWIZZLED_VEC2_TYPE, SWIZZLED_VEC3_TYPE, SWIZZLED_VEC4_TYPE, s, t, q, p) + +//GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4) + +#endif//glm_core_swizzle_func diff --git a/Part2/src/glm/core/_vectorize.hpp b/Part2/src/glm/core/_vectorize.hpp new file mode 100644 index 0000000..9984014 --- /dev/null +++ b/Part2/src/glm/core/_vectorize.hpp @@ -0,0 +1,159 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/_vectorize.hpp +/// @date 2011-10-14 / 2011-10-14 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +#define VECTORIZE2_VEC(func) \ + template \ + GLM_FUNC_QUALIFIER detail::tvec2 func( \ + detail::tvec2 const & v) \ + { \ + return detail::tvec2( \ + func(v.x), \ + func(v.y)); \ + } + +#define VECTORIZE3_VEC(func) \ + template \ + GLM_FUNC_QUALIFIER detail::tvec3 func( \ + detail::tvec3 const & v) \ + { \ + return detail::tvec3( \ + func(v.x), \ + func(v.y), \ + func(v.z)); \ + } + +#define VECTORIZE4_VEC(func) \ + template \ + GLM_FUNC_QUALIFIER detail::tvec4 func( \ + detail::tvec4 const & v) \ + { \ + return detail::tvec4( \ + func(v.x), \ + func(v.y), \ + func(v.z), \ + func(v.w)); \ + } + +#define VECTORIZE_VEC(func) \ + VECTORIZE2_VEC(func) \ + VECTORIZE3_VEC(func) \ + VECTORIZE4_VEC(func) + +#define VECTORIZE2_VEC_SCA(func) \ + template \ + GLM_FUNC_QUALIFIER detail::tvec2 func \ + ( \ + detail::tvec2 const & x, \ + typename detail::tvec2::value_type const & y \ + ) \ + { \ + return detail::tvec2( \ + func(x.x, y), \ + func(x.y, y)); \ + } + +#define VECTORIZE3_VEC_SCA(func) \ + template \ + GLM_FUNC_QUALIFIER detail::tvec3 func \ + ( \ + detail::tvec3 const & x, \ + typename detail::tvec3::value_type const & y \ + ) \ + { \ + return detail::tvec3( \ + func(x.x, y), \ + func(x.y, y), \ + func(x.z, y)); \ + } + +#define VECTORIZE4_VEC_SCA(func) \ + template \ + GLM_FUNC_QUALIFIER detail::tvec4 func \ + ( \ + detail::tvec4 const & x, \ + typename detail::tvec4::value_type const & y \ + ) \ + { \ + return detail::tvec4( \ + func(x.x, y), \ + func(x.y, y), \ + func(x.z, y), \ + func(x.w, y)); \ + } + +#define VECTORIZE_VEC_SCA(func) \ + VECTORIZE2_VEC_SCA(func) \ + VECTORIZE3_VEC_SCA(func) \ + VECTORIZE4_VEC_SCA(func) + +#define VECTORIZE2_VEC_VEC(func) \ + template \ + GLM_FUNC_QUALIFIER detail::tvec2 func \ + ( \ + detail::tvec2 const & x, \ + detail::tvec2 const & y \ + ) \ + { \ + return detail::tvec2( \ + func(x.x, y.x), \ + func(x.y, y.y)); \ + } + +#define VECTORIZE3_VEC_VEC(func) \ + template \ + GLM_FUNC_QUALIFIER detail::tvec3 func \ + ( \ + detail::tvec3 const & x, \ + detail::tvec3 const & y \ + ) \ + { \ + return detail::tvec3( \ + func(x.x, y.x), \ + func(x.y, y.y), \ + func(x.z, y.z)); \ + } + +#define VECTORIZE4_VEC_VEC(func) \ + template \ + GLM_FUNC_QUALIFIER detail::tvec4 func \ + ( \ + detail::tvec4 const & x, \ + detail::tvec4 const & y \ + ) \ + { \ + return detail::tvec4( \ + func(x.x, y.x), \ + func(x.y, y.y), \ + func(x.z, y.z), \ + func(x.w, y.w)); \ + } + +#define VECTORIZE_VEC_VEC(func) \ + VECTORIZE2_VEC_VEC(func) \ + VECTORIZE3_VEC_VEC(func) \ + VECTORIZE4_VEC_VEC(func) diff --git a/Part2/src/glm/core/dummy.cpp b/Part2/src/glm/core/dummy.cpp new file mode 100644 index 0000000..38fcca0 --- /dev/null +++ b/Part2/src/glm/core/dummy.cpp @@ -0,0 +1,40 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/dummy.cpp +/// @date 2011-01-19 / 2011-06-15 +/// @author Christophe Riccio +/// +/// GLM is a header only library. There is nothing to compile. +/// dummy.cpp exist only a wordaround for CMake file. +/////////////////////////////////////////////////////////////////////////////////// + +#define GLM_MESSAGES +#include "../glm.hpp" + +//#error "GLM is a header only library" + +int main() +{ + +} diff --git a/Part2/src/glm/core/func_common.hpp b/Part2/src/glm/core/func_common.hpp new file mode 100644 index 0000000..fcf7eb7 --- /dev/null +++ b/Part2/src/glm/core/func_common.hpp @@ -0,0 +1,430 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_common.hpp +/// @date 2008-03-08 / 2010-01-26 +/// @author Christophe Riccio +/// +/// @see GLSL 4.20.8 specification, section 8.3 Common Functions +/// +/// @defgroup core_func_common Common functions +/// @ingroup core +/// +/// These all operate component-wise. The description is per component. +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef GLM_CORE_func_common +#define GLM_CORE_func_common GLM_VERSION + +#include "_fixes.hpp" + +namespace glm +{ + /// @addtogroup core_func_common + /// @{ + + /// Returns x if x >= 0; otherwise, it returns -x. + /// + /// @tparam genType floating-point or signed integer; scalar or vector types. + /// + /// @see GLSL abs man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType abs(genType const & x); + + /// Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. + /// + /// @tparam genType Floating-point or signed integer; scalar or vector types. + /// + /// @see GLSL sign man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType sign(genType const & x); + + /// Returns a value equal to the nearest integer that is less then or equal to x. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL floor man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType floor(genType const & x); + + /// Returns a value equal to the nearest integer to x + /// whose absolute value is not larger than the absolute value of x. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL trunc man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType trunc(genType const & x); + + /// Returns a value equal to the nearest integer to x. + /// The fraction 0.5 will round in a direction chosen by the + /// implementation, presumably the direction that is fastest. + /// This includes the possibility that round(x) returns the + /// same value as roundEven(x) for all values of x. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL round man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType round(genType const & x); + + /// Returns a value equal to the nearest integer to x. + /// A fractional part of 0.5 will round toward the nearest even + /// integer. (Both 3.5 and 4.5 for x will return 4.0.) + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL roundEven man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + /// @see New round to even technique + template + GLM_FUNC_DECL genType roundEven(genType const & x); + + /// Returns a value equal to the nearest integer + /// that is greater than or equal to x. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL ceil man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType ceil(genType const & x); + + /// Return x - floor(x). + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL fract man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType fract(genType const & x); + + /// Modulus. Returns x - y * floor(x / y) + /// for each component in x using the floating point value y. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL mod man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType mod( + genType const & x, + genType const & y); + + /// Modulus. Returns x - y * floor(x / y) + /// for each component in x using the floating point value y. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL mod man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType mod( + genType const & x, + typename genType::value_type const & y); + + /// Returns the fractional part of x and sets i to the integer + /// part (as a whole number floating point value). Both the + /// return value and the output parameter will have the same + /// sign as x. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL modf man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType modf( + genType const & x, + genType & i); + + /// Returns y if y < x; otherwise, it returns x. + /// + /// @tparam genType Floating-point or integer; scalar or vector types. + /// + /// @see GLSL min man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType min( + genType const & x, + genType const & y); + + template + GLM_FUNC_DECL genType min( + genType const & x, + typename genType::value_type const & y); + + /// Returns y if x < y; otherwise, it returns x. + /// + /// @tparam genType Floating-point or integer; scalar or vector types. + /// + /// @see GLSL max man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType max( + genType const & x, + genType const & y); + + template + GLM_FUNC_DECL genType max( + genType const & x, + typename genType::value_type const & y); + + /// Returns min(max(x, minVal), maxVal) for each component in x + /// using the floating-point values minVal and maxVal. + /// + /// @tparam genType Floating-point or integer; scalar or vector types. + /// + /// @see GLSL clamp man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType clamp( + genType const & x, + genType const & minVal, + genType const & maxVal); + + template + GLM_FUNC_DECL genType clamp( + genType const & x, + typename genType::value_type const & minVal, + typename genType::value_type const & maxVal); + + /// If genTypeU is a floating scalar or vector: + /// Returns x * (1.0 - a) + y * a, i.e., the linear blend of + /// x and y using the floating-point value a. + /// The value for a is not restricted to the range [0, 1]. + /// + /// If genTypeU is a boolean scalar or vector: + /// Selects which vector each returned component comes + /// from. For a component of that is false, the + /// corresponding component of x is returned. For a + /// component of a that is true, the corresponding + /// component of y is returned. Components of x and y that + /// are not selected are allowed to be invalid floating point + /// values and will have no effect on the results. Thus, this + /// provides different functionality than + /// genType mix(genType x, genType y, genType(a)) + /// where a is a Boolean vector. + /// + /// @see GLSL mix man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + /// + /// @param[in] x Value to interpolate. + /// @param[in] y Value to interpolate. + /// @param[in] a Interpolant. + /// + /// @tparam genTypeT Floating point scalar or vector. + /// @tparam genTypeU Floating point or boolean scalar or vector. It can't be a vector if it is the length of genTypeT. + /// + /// @code + /// #include + /// ... + /// float a; + /// bool b; + /// glm::dvec3 e; + /// glm::dvec3 f; + /// glm::vec4 g; + /// glm::vec4 h; + /// ... + /// glm::vec4 r = glm::mix(g, h, a); // Interpolate with a floating-point scalar two vectors. + /// glm::vec4 s = glm::mix(g, h, b); // Teturns g or h; + /// glm::dvec3 t = glm::mix(e, f, a); // Types of the third parameter is not required to match with the first and the second. + /// glm::vec4 u = glm::mix(g, h, r); // Interpolations can be perform per component with a vector for the last parameter. + /// @endcode + template + GLM_FUNC_DECL genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a); + + //! Returns 0.0 if x < edge, otherwise it returns 1.0. + //! + /// @see GLSL step man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType step( + genType const & edge, + genType const & x); + + template + GLM_FUNC_DECL genType step( + typename genType::value_type const & edge, + genType const & x); + + /// Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and + /// performs smooth Hermite interpolation between 0 and 1 + /// when edge0 < x < edge1. This is useful in cases where + /// you would want a threshold function with a smooth + /// transition. This is equivalent to: + /// genType t; + /// t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); + /// return t * t * (3 - 2 * t); + /// Results are undefined if edge0 >= edge1. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL smoothstep man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType smoothstep( + genType const & edge0, + genType const & edge1, + genType const & x); + + template + GLM_FUNC_DECL genType smoothstep( + typename genType::value_type const & edge0, + typename genType::value_type const & edge1, + genType const & x); + + /// Returns true if x holds a NaN (not a number) + /// representation in the underlying implementation's set of + /// floating point representations. Returns false otherwise, + /// including for implementations with no NaN + /// representations. + /// + /// /!\ When using compiler fast math, this function may fail. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL isnan man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL typename genType::bool_type isnan(genType const & x); + + /// Returns true if x holds a positive infinity or negative + /// infinity representation in the underlying implementation's + /// set of floating point representations. Returns false + /// otherwise, including for implementations with no infinity + /// representations. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL isinf man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL typename genType::bool_type isinf(genType const & x); + + /// Returns a signed integer value representing + /// the encoding of a floating-point value. The floatingpoint + /// value's bit-level representation is preserved. + /// + /// @tparam genType Single-precision floating-point scalar or vector types. + /// @tparam genIType Signed integer scalar or vector types. + /// + /// @see GLSL floatBitsToInt man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genIType floatBitsToInt(genType const & value); + + /// Returns a unsigned integer value representing + /// the encoding of a floating-point value. The floatingpoint + /// value's bit-level representation is preserved. + /// + /// @tparam genType Single-precision floating-point scalar or vector types. + /// @tparam genUType Unsigned integer scalar or vector types. + /// + /// @see GLSL floatBitsToUint man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genUType floatBitsToUint(genType const & value); + + /// Returns a floating-point value corresponding to a signed + /// integer encoding of a floating-point value. + /// If an inf or NaN is passed in, it will not signal, and the + /// resulting floating point value is unspecified. Otherwise, + /// the bit-level representation is preserved. + /// + /// @tparam genType Single-precision floating-point scalar or vector types. + /// @tparam genIType Signed integer scalar or vector types. + /// + /// @see GLSL intBitsToFloat man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + /// + /// @todo Clarify this declaration, we don't need to actually specify the return type + template + GLM_FUNC_DECL genType intBitsToFloat(genIType const & value); + + /// Returns a floating-point value corresponding to a + /// unsigned integer encoding of a floating-point value. + /// If an inf or NaN is passed in, it will not signal, and the + /// resulting floating point value is unspecified. Otherwise, + /// the bit-level representation is preserved. + /// + /// @tparam genType Single-precision floating-point scalar or vector types. + /// @tparam genUType Unsigned integer scalar or vector types. + /// + /// @see GLSL uintBitsToFloat man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + /// + /// @todo Clarify this declaration, we don't need to actually specify the return type + template + GLM_FUNC_DECL genType uintBitsToFloat(genUType const & value); + + /// Computes and returns a * b + c. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL fma man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType fma(genType const & a, genType const & b, genType const & c); + + /// Splits x into a floating-point significand in the range + /// [0.5, 1.0) and an integral exponent of two, such that: + /// x = significand * exp(2, exponent) + /// + /// The significand is returned by the function and the + /// exponent is returned in the parameter exp. For a + /// floating-point value of zero, the significant and exponent + /// are both zero. For a floating-point value that is an + /// infinity or is not a number, the results are undefined. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL frexp man page + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType frexp(genType const & x, genIType & exp); + + /// Builds a floating-point number from x and the + /// corresponding integral exponent of two in exp, returning: + /// significand * exp(2, exponent) + /// + /// If this product is too large to be represented in the + /// floating-point type, the result is undefined. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL ldexp man page; + /// @see GLSL 4.20.8 specification, section 8.3 Common Functions + template + GLM_FUNC_DECL genType ldexp(genType const & x, genIType const & exp); + + /// @} +}//namespace glm + +#include "func_common.inl" + +#endif//GLM_CORE_func_common diff --git a/Part2/src/glm/core/func_common.inl b/Part2/src/glm/core/func_common.inl new file mode 100644 index 0000000..1c0d9df --- /dev/null +++ b/Part2/src/glm/core/func_common.inl @@ -0,0 +1,1226 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_common.inl +/// @date 2008-08-03 / 2011-06-15 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +namespace glm{ +namespace detail +{ + template + struct Abs_ + {}; + + template + struct Abs_ + { + GLM_FUNC_QUALIFIER static genFIType get(genFIType const & x) + { + GLM_STATIC_ASSERT( + detail::type::is_float || + detail::type::is_int, "'abs' only accept floating-point and integer inputs"); + return x >= genFIType(0) ? x : -x; + // TODO, perf comp with: *(((int *) &x) + 1) &= 0x7fffffff; + } + }; + + template + struct Abs_ + { + GLM_FUNC_QUALIFIER static genFIType get(genFIType const & x) + { + GLM_STATIC_ASSERT( + detail::type::is_uint, "'abs' only accept floating-point and integer inputs"); + return x; + } + }; +}//namespace detail + + // abs + template + GLM_FUNC_QUALIFIER genFIType abs + ( + genFIType const & x + ) + { + return detail::Abs_::is_signed>::get(x); + } + + VECTORIZE_VEC(abs) + + // sign + //Try something like based on x >> 31 to get the sign bit + template + GLM_FUNC_QUALIFIER genFIType sign + ( + genFIType const & x + ) + { + GLM_STATIC_ASSERT( + detail::type::is_float || + detail::type::is_int, "'sign' only accept signed inputs"); + + genFIType result; + if(x > genFIType(0)) + result = genFIType(1); + else if(x < genFIType(0)) + result = genFIType(-1); + else + result = genFIType(0); + return result; + } + + VECTORIZE_VEC(sign) + + // floor + template <> + GLM_FUNC_QUALIFIER detail::half floor(detail::half const & x) + { + return detail::half(::std::floor(float(x))); + } + + template + GLM_FUNC_QUALIFIER genType floor(genType const & x) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'floor' only accept floating-point inputs"); + + return ::std::floor(x); + } + + VECTORIZE_VEC(floor) + + // trunc + template + GLM_FUNC_QUALIFIER genType trunc(genType const & x) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'trunc' only accept floating-point inputs"); + return x < 0 ? -floor(-x) : floor(x); + } + + VECTORIZE_VEC(trunc) + + // round + template + GLM_FUNC_QUALIFIER genType round(genType const& x) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'round' only accept floating-point inputs"); + + if(x < 0) + return genType(int(x - genType(0.5))); + return genType(int(x + genType(0.5))); + } + + VECTORIZE_VEC(round) + +/* + // roundEven + template + GLM_FUNC_QUALIFIER genType roundEven(genType const& x) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'roundEven' only accept floating-point inputs"); + + return genType(int(x + genType(int(x) % 2))); + } +*/ + + // roundEven + template + GLM_FUNC_QUALIFIER genType roundEven(genType const & x) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'roundEven' only accept floating-point inputs"); + + int Integer = int(x); + genType IntegerPart = genType(Integer); + genType FractionalPart = fract(x); + + if(FractionalPart > genType(0.5) || FractionalPart < genType(0.5)) + { + return round(x); + } + else if((Integer % 2) == 0) + { + return IntegerPart; + } + else if(x <= genType(0)) // Work around... + { + return IntegerPart - 1; + } + else + { + return IntegerPart + 1; + } + //else // Bug on MinGW 4.5.2 + //{ + // return mix(IntegerPart + genType(-1), IntegerPart + genType(1), x <= genType(0)); + //} + } + + VECTORIZE_VEC(roundEven) + + // ceil + template + GLM_FUNC_QUALIFIER genType ceil(genType const & x) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'ceil' only accept floating-point inputs"); + + return ::std::ceil(x); + } + + VECTORIZE_VEC(ceil) + + // fract + template + GLM_FUNC_QUALIFIER genType fract + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'fract' only accept floating-point inputs"); + + return x - ::std::floor(x); + } + + VECTORIZE_VEC(fract) + + // mod + template + GLM_FUNC_QUALIFIER genType mod + ( + genType const & x, + genType const & y + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'mod' only accept floating-point inputs"); + + return x - y * floor(x / y); + } + + VECTORIZE_VEC_SCA(mod) + VECTORIZE_VEC_VEC(mod) + + // modf + template + GLM_FUNC_QUALIFIER genType modf + ( + genType const & x, + genType & i + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'modf' only accept floating-point inputs"); + + return std::modf(x, &i); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 modf + ( + detail::tvec2 const & x, + detail::tvec2 & i + ) + { + return detail::tvec2( + modf(x.x, i.x), + modf(x.y, i.y)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 modf + ( + detail::tvec3 const & x, + detail::tvec3 & i + ) + { + return detail::tvec3( + modf(x.x, i.x), + modf(x.y, i.y), + modf(x.z, i.z)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 modf + ( + detail::tvec4 const & x, + detail::tvec4 & i + ) + { + return detail::tvec4( + modf(x.x, i.x), + modf(x.y, i.y), + modf(x.z, i.z), + modf(x.w, i.w)); + } + + //// Only valid if (INT_MIN <= x-y <= INT_MAX) + //// min(x,y) + //r = y + ((x - y) & ((x - y) >> (sizeof(int) * + //CHAR_BIT - 1))); + //// max(x,y) + //r = x - ((x - y) & ((x - y) >> (sizeof(int) * + //CHAR_BIT - 1))); + + // min + template + GLM_FUNC_QUALIFIER genType min + ( + genType const & x, + genType const & y + ) + { + GLM_STATIC_ASSERT( + detail::type::is_float || + detail::type::is_int || + detail::type::is_uint, "'min' only accept numbers"); + + return x < y ? x : y; + } + + VECTORIZE_VEC_SCA(min) + VECTORIZE_VEC_VEC(min) + + // max + template + GLM_FUNC_QUALIFIER genType max + ( + genType const & x, + genType const & y + ) + { + GLM_STATIC_ASSERT( + detail::type::is_float || + detail::type::is_int || + detail::type::is_uint, "'max' only accept numbers"); + + return x > y ? x : y; + } + + VECTORIZE_VEC_SCA(max) + VECTORIZE_VEC_VEC(max) + + // clamp + template + GLM_FUNC_QUALIFIER valType clamp + ( + valType const & x, + valType const & minVal, + valType const & maxVal + ) + { + GLM_STATIC_ASSERT( + detail::type::is_float || + detail::type::is_int || + detail::type::is_uint, "'clamp' only accept numbers"); + + return min(maxVal, max(minVal, x)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 clamp + ( + detail::tvec2 const & x, + typename detail::tvec2::value_type const & minVal, + typename detail::tvec2::value_type const & maxVal + ) + { + return detail::tvec2( + clamp(x.x, minVal, maxVal), + clamp(x.y, minVal, maxVal)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 clamp + ( + detail::tvec3 const & x, + typename detail::tvec3::value_type const & minVal, + typename detail::tvec3::value_type const & maxVal + ) + { + return detail::tvec3( + clamp(x.x, minVal, maxVal), + clamp(x.y, minVal, maxVal), + clamp(x.z, minVal, maxVal)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 clamp + ( + detail::tvec4 const & x, + typename detail::tvec4::value_type const & minVal, + typename detail::tvec4::value_type const & maxVal + ) + { + return detail::tvec4( + clamp(x.x, minVal, maxVal), + clamp(x.y, minVal, maxVal), + clamp(x.z, minVal, maxVal), + clamp(x.w, minVal, maxVal)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 clamp + ( + detail::tvec2 const & x, + detail::tvec2 const & minVal, + detail::tvec2 const & maxVal + ) + { + return detail::tvec2( + clamp(x.x, minVal.x, maxVal.x), + clamp(x.y, minVal.y, maxVal.y)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 clamp + ( + detail::tvec3 const & x, + detail::tvec3 const & minVal, + detail::tvec3 const & maxVal + ) + { + return detail::tvec3( + clamp(x.x, minVal.x, maxVal.x), + clamp(x.y, minVal.y, maxVal.y), + clamp(x.z, minVal.z, maxVal.z)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 clamp + ( + detail::tvec4 const & x, + detail::tvec4 const & minVal, + detail::tvec4 const & maxVal + ) + { + return detail::tvec4( + clamp(x.x, minVal.x, maxVal.x), + clamp(x.y, minVal.y, maxVal.y), + clamp(x.z, minVal.z, maxVal.z), + clamp(x.w, minVal.w, maxVal.w)); + } + + // mix + template + GLM_FUNC_QUALIFIER genType mix + ( + genType const & x, + genType const & y, + genType const & a + ) + { + GLM_STATIC_ASSERT(detail::type::is_float , "'genType' is not floating-point type"); + + return x + a * (y - x); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 mix + ( + detail::tvec2 const & x, + detail::tvec2 const & y, + valType const & a + ) + { + GLM_STATIC_ASSERT(detail::type::is_float , "'genType' is not floating-point type"); + + return x + a * (y - x); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 mix + ( + detail::tvec3 const & x, + detail::tvec3 const & y, + valType const & a + ) + { + return x + a * (y - x); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 mix + ( + detail::tvec4 const & x, + detail::tvec4 const & y, + valType const & a + ) + { + return x + a * (y - x); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 mix + ( + detail::tvec2 const & x, + detail::tvec2 const & y, + detail::tvec2 const & a + ) + { + return x + a * (y - x); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 mix + ( + detail::tvec3 const & x, + detail::tvec3 const & y, + detail::tvec3 const & a + ) + { + GLM_STATIC_ASSERT(detail::type::is_float , "'genType' is not floating-point type"); + + return x + a * (y - x); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 mix + ( + detail::tvec4 const & x, + detail::tvec4 const & y, + detail::tvec4 const & a + ) + { + return x + a * (y - x); + } + + //template + //GLM_FUNC_QUALIFIER genTypeT mix + //( + // genTypeT const & x, + // genTypeT const & y, + // float const & a + //) + //{ + // // It could be a vector too + // //GLM_STATIC_ASSERT( + // // detail::type::is_float && + // // detail::type::is_float); + + // return x + a * (y - x); + //} + + template <> + GLM_FUNC_QUALIFIER float mix + ( + float const & x, + float const & y, + bool const & a + ) + { + return a ? y : x; + } + + template <> + GLM_FUNC_QUALIFIER double mix + ( + double const & x, + double const & y, + bool const & a + ) + { + return a ? y : x; + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 mix + ( + detail::tvec2 const & x, + detail::tvec2 const & y, + bool a + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'mix' only accept floating-point inputs"); + + return a ? y : x; + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 mix + ( + detail::tvec3 const & x, + detail::tvec3 const & y, + bool a + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'mix' only accept floating-point inputs"); + + return a ? y : x; + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 mix + ( + detail::tvec4 const & x, + detail::tvec4 const & y, + bool a + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'mix' only accept floating-point inputs"); + + return a ? y : x; + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 mix + ( + detail::tvec2 const & x, + detail::tvec2 const & y, + typename detail::tvec2::bool_type a + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'mix' only accept floating-point inputs"); + + detail::tvec2 result; + for + ( + typename detail::tvec2::size_type i = 0; + i < x.length(); ++i + ) + { + result[i] = a[i] ? y[i] : x[i]; + } + return result; + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 mix + ( + detail::tvec3 const & x, + detail::tvec3 const & y, + typename detail::tvec3::bool_type a + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'mix' only accept floating-point inputs"); + + detail::tvec3 result; + for + ( + typename detail::tvec3::size_type i = 0; + i < x.length(); ++i + ) + { + result[i] = a[i] ? y[i] : x[i]; + } + return result; + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 mix + ( + detail::tvec4 const & x, + detail::tvec4 const & y, + typename detail::tvec4::bool_type a + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'mix' only accept floating-point inputs"); + + detail::tvec4 result; + for + ( + typename detail::tvec4::size_type i = 0; + i < x.length(); ++i + ) + { + result[i] = a[i] ? y[i] : x[i]; + } + return result; + } + + // step + template + GLM_FUNC_QUALIFIER genType step + ( + genType const & edge, + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'step' only accept floating-point inputs"); + + return x < edge ? genType(0) : genType(1); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 step + ( + typename detail::tvec2::value_type const & edge, + detail::tvec2 const & x + ) + { + return detail::tvec2( + x.x < edge ? T(0) : T(1), + x.y < edge ? T(0) : T(1)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 step + ( + typename detail::tvec3::value_type const & edge, + detail::tvec3 const & x + ) + { + return detail::tvec3( + x.x < edge ? T(0) : T(1), + x.y < edge ? T(0) : T(1), + x.z < edge ? T(0) : T(1)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 step + ( + typename detail::tvec4::value_type const & edge, + detail::tvec4 const & x + ) + { + return detail::tvec4( + x.x < edge ? T(0) : T(1), + x.y < edge ? T(0) : T(1), + x.z < edge ? T(0) : T(1), + x.w < edge ? T(0) : T(1)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 step + ( + detail::tvec2 const & edge, + detail::tvec2 const & x + ) + { + return detail::tvec2( + x.x < edge.x ? T(0) : T(1), + x.y < edge.y ? T(0) : T(1)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 step + ( + detail::tvec3 const & edge, + detail::tvec3 const & x + ) + { + return detail::tvec3( + x.x < edge.x ? T(0) : T(1), + x.y < edge.y ? T(0) : T(1), + x.z < edge.z ? T(0) : T(1)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 step + ( + detail::tvec4 const & edge, + detail::tvec4 const & x + ) + { + return detail::tvec4( + x.x < edge.x ? T(0) : T(1), + x.y < edge.y ? T(0) : T(1), + x.z < edge.z ? T(0) : T(1), + x.w < edge.w ? T(0) : T(1)); + } + + // smoothstep + template + GLM_FUNC_QUALIFIER genType smoothstep + ( + genType const & edge0, + genType const & edge1, + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'smoothstep' only accept floating-point inputs"); + + genType tmp = clamp((x - edge0) / (edge1 - edge0), genType(0), genType(1)); + return tmp * tmp * (genType(3) - genType(2) * tmp); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 smoothstep + ( + typename detail::tvec2::value_type const & edge0, + typename detail::tvec2::value_type const & edge1, + detail::tvec2 const & x + ) + { + return detail::tvec2( + smoothstep(edge0, edge1, x.x), + smoothstep(edge0, edge1, x.y)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 smoothstep + ( + typename detail::tvec3::value_type const & edge0, + typename detail::tvec3::value_type const & edge1, + detail::tvec3 const & x + ) + { + return detail::tvec3( + smoothstep(edge0, edge1, x.x), + smoothstep(edge0, edge1, x.y), + smoothstep(edge0, edge1, x.z)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 smoothstep + ( + typename detail::tvec4::value_type const & edge0, + typename detail::tvec4::value_type const & edge1, + detail::tvec4 const & x + ) + { + return detail::tvec4( + smoothstep(edge0, edge1, x.x), + smoothstep(edge0, edge1, x.y), + smoothstep(edge0, edge1, x.z), + smoothstep(edge0, edge1, x.w)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 smoothstep + ( + detail::tvec2 const & edge0, + detail::tvec2 const & edge1, + detail::tvec2 const & x + ) + { + return detail::tvec2( + smoothstep(edge0.x, edge1.x, x.x), + smoothstep(edge0.y, edge1.y, x.y)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 smoothstep + ( + detail::tvec3 const & edge0, + detail::tvec3 const & edge1, + detail::tvec3 const & x + ) + { + return detail::tvec3( + smoothstep(edge0.x, edge1.x, x.x), + smoothstep(edge0.y, edge1.y, x.y), + smoothstep(edge0.z, edge1.z, x.z)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 smoothstep + ( + detail::tvec4 const & edge0, + detail::tvec4 const & edge1, + detail::tvec4 const & x + ) + { + return detail::tvec4( + smoothstep(edge0.x, edge1.x, x.x), + smoothstep(edge0.y, edge1.y, x.y), + smoothstep(edge0.z, edge1.z, x.z), + smoothstep(edge0.w, edge1.w, x.w)); + } + + // TODO: Not working on MinGW... + template + GLM_FUNC_QUALIFIER bool isnan(genType const & x) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'isnan' only accept floating-point inputs"); + +# if(GLM_COMPILER & (GLM_COMPILER_VC | GLM_COMPILER_INTEL)) + return _isnan(x) != 0; +# elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)) +# if(GLM_PLATFORM & GLM_PLATFORM_ANDROID) + return _isnan(x) != 0; +# else + return std::isnan(x); +# endif +# elif(GLM_COMPILER & GLM_COMPILER_CUDA) + return isnan(x) != 0; +# else + return std::isnan(x); +# endif + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec2::bool_type isnan + ( + detail::tvec2 const & x + ) + { + return typename detail::tvec2::bool_type( + isnan(x.x), + isnan(x.y)); + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec3::bool_type isnan + ( + detail::tvec3 const & x + ) + { + return typename detail::tvec3::bool_type( + isnan(x.x), + isnan(x.y), + isnan(x.z)); + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec4::bool_type isnan + ( + detail::tvec4 const & x + ) + { + return typename detail::tvec4::bool_type( + isnan(x.x), + isnan(x.y), + isnan(x.z), + isnan(x.w)); + } + + template + GLM_FUNC_QUALIFIER bool isinf( + genType const & x) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'isinf' only accept floating-point inputs"); + +# if(GLM_COMPILER & (GLM_COMPILER_INTEL | GLM_COMPILER_VC)) + return _fpclass(x) == _FPCLASS_NINF || _fpclass(x) == _FPCLASS_PINF; +# elif(GLM_COMPILER & (GLM_COMPILER_GCC | GLM_COMPILER_CLANG)) +# if(GLM_PLATFORM & GLM_PLATFORM_ANDROID) + return _isinf(x) != 0; +# else + return std::isinf(x); +# endif +# elif(GLM_COMPILER & GLM_COMPILER_CUDA) + // http://developer.download.nvidia.com/compute/cuda/4_2/rel/toolkit/docs/online/group__CUDA__MATH__DOUBLE_g13431dd2b40b51f9139cbb7f50c18fab.html#g13431dd2b40b51f9139cbb7f50c18fab + return isinf(double(x)) != 0; +# else + return std::isinf(x); +# endif + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec2::bool_type isinf + ( + detail::tvec2 const & x + ) + { + return typename detail::tvec2::bool_type( + isinf(x.x), + isinf(x.y)); + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec3::bool_type isinf + ( + detail::tvec3 const & x + ) + { + return typename detail::tvec3::bool_type( + isinf(x.x), + isinf(x.y), + isinf(x.z)); + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec4::bool_type isinf + ( + detail::tvec4 const & x + ) + { + return typename detail::tvec4::bool_type( + isinf(x.x), + isinf(x.y), + isinf(x.z), + isinf(x.w)); + } + + GLM_FUNC_QUALIFIER int floatBitsToInt(float const & value) + { + union + { + float f; + int i; + } fi; + + fi.f = value; + return fi.i; + } + + GLM_FUNC_QUALIFIER detail::tvec2 floatBitsToInt + ( + detail::tvec2 const & value + ) + { + return detail::tvec2( + floatBitsToInt(value.x), + floatBitsToInt(value.y)); + } + + GLM_FUNC_QUALIFIER detail::tvec3 floatBitsToInt + ( + detail::tvec3 const & value + ) + { + return detail::tvec3( + floatBitsToInt(value.x), + floatBitsToInt(value.y), + floatBitsToInt(value.z)); + } + + GLM_FUNC_QUALIFIER detail::tvec4 floatBitsToInt + ( + detail::tvec4 const & value + ) + { + return detail::tvec4( + floatBitsToInt(value.x), + floatBitsToInt(value.y), + floatBitsToInt(value.z), + floatBitsToInt(value.w)); + } + + GLM_FUNC_QUALIFIER uint floatBitsToUint(float const & value) + { + union + { + float f; + uint u; + } fu; + + fu.f = value; + return fu.u; + } + + GLM_FUNC_QUALIFIER detail::tvec2 floatBitsToUint + ( + detail::tvec2 const & value + ) + { + return detail::tvec2( + floatBitsToUint(value.x), + floatBitsToUint(value.y)); + } + + GLM_FUNC_QUALIFIER detail::tvec3 floatBitsToUint + ( + detail::tvec3 const & value + ) + { + return detail::tvec3( + floatBitsToUint(value.x), + floatBitsToUint(value.y), + floatBitsToUint(value.z)); + } + + GLM_FUNC_QUALIFIER detail::tvec4 floatBitsToUint + ( + detail::tvec4 const & value + ) + { + return detail::tvec4( + floatBitsToUint(value.x), + floatBitsToUint(value.y), + floatBitsToUint(value.z), + floatBitsToUint(value.w)); + } + + GLM_FUNC_QUALIFIER float intBitsToFloat(int const & value) + { + union + { + float f; + int i; + } fi; + + fi.i = value; + return fi.f; + } + + GLM_FUNC_QUALIFIER detail::tvec2 intBitsToFloat + + ( + detail::tvec2 const & value + ) + { + return detail::tvec2( + intBitsToFloat(value.x), + intBitsToFloat(value.y)); + } + + GLM_FUNC_QUALIFIER detail::tvec3 intBitsToFloat + ( + detail::tvec3 const & value + ) + { + return detail::tvec3( + intBitsToFloat(value.x), + intBitsToFloat(value.y), + intBitsToFloat(value.z)); + } + + GLM_FUNC_QUALIFIER detail::tvec4 intBitsToFloat + ( + detail::tvec4 const & value + ) + { + return detail::tvec4( + intBitsToFloat(value.x), + intBitsToFloat(value.y), + intBitsToFloat(value.z), + intBitsToFloat(value.w)); + } + + GLM_FUNC_QUALIFIER float uintBitsToFloat(uint const & value) + { + union + { + float f; + uint u; + } fu; + + fu.u = value; + return fu.f; + } + + GLM_FUNC_QUALIFIER detail::tvec2 uintBitsToFloat + ( + detail::tvec2 const & value + ) + { + return detail::tvec2( + uintBitsToFloat(value.x), + uintBitsToFloat(value.y)); + } + + GLM_FUNC_QUALIFIER detail::tvec3 uintBitsToFloat + ( + detail::tvec3 const & value + ) + { + return detail::tvec3( + uintBitsToFloat(value.x), + uintBitsToFloat(value.y), + uintBitsToFloat(value.z)); + } + + GLM_FUNC_QUALIFIER detail::tvec4 uintBitsToFloat + ( + detail::tvec4 const & value + ) + { + return detail::tvec4( + uintBitsToFloat(value.x), + uintBitsToFloat(value.y), + uintBitsToFloat(value.z), + uintBitsToFloat(value.w)); + } + + template + GLM_FUNC_QUALIFIER genType fma + ( + genType const & a, + genType const & b, + genType const & c + ) + { + return a * b + c; + } + + template + GLM_FUNC_QUALIFIER genType frexp + ( + genType const & x, + int & exp + ) + { + return std::frexp(x, exp); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 frexp + ( + detail::tvec2 const & x, + detail::tvec2 & exp + ) + { + return std::frexp(x, exp); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 frexp + ( + detail::tvec3 const & x, + detail::tvec3 & exp + ) + { + return std::frexp(x, exp); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 frexp + ( + detail::tvec4 const & x, + detail::tvec4 & exp + ) + { + return std::frexp(x, exp); + } + + template + GLM_FUNC_QUALIFIER genType ldexp + ( + genType const & x, + int const & exp + ) + { + return std::frexp(x, exp); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 ldexp + ( + detail::tvec2 const & x, + detail::tvec2 const & exp + ) + { + return std::frexp(x, exp); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 ldexp + ( + detail::tvec3 const & x, + detail::tvec3 const & exp + ) + { + return std::frexp(x, exp); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 ldexp + ( + detail::tvec4 const & x, + detail::tvec4 const & exp + ) + { + return std::frexp(x, exp); + } + +}//namespace glm diff --git a/Part2/src/glm/core/func_exponential.hpp b/Part2/src/glm/core/func_exponential.hpp new file mode 100644 index 0000000..dc76fcb --- /dev/null +++ b/Part2/src/glm/core/func_exponential.hpp @@ -0,0 +1,123 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_exponential.hpp +/// @date 2008-08-08 / 2011-06-14 +/// @author Christophe Riccio +/// +/// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions +/// +/// @defgroup core_func_exponential Exponential functions +/// @ingroup core +/// +/// These all operate component-wise. The description is per component. +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef glm_core_func_exponential +#define glm_core_func_exponential GLM_VERSION + +namespace glm +{ + /// @addtogroup core_func_exponential + /// @{ + + /// Returns 'base' raised to the power 'exponent'. + /// + /// @param base Floating point value. pow function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. + /// @param exponent Floating point value representing the 'exponent'. + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL pow man page + /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions + template + GLM_FUNC_DECL genType pow(genType const & base, genType const & exponent); + + /// Returns the natural exponentiation of x, i.e., e^x. + /// + /// @param x exp function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL exp man page + /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions + template + GLM_FUNC_DECL genType exp(genType const & x); + + /// Returns the natural logarithm of x, i.e., + /// returns the value y which satisfies the equation x = e^y. + /// Results are undefined if x <= 0. + /// + /// @param x log function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision. + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL log man page + /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions + template + GLM_FUNC_DECL genType log(genType const & x); + + /// Returns 2 raised to the x power. + /// + /// @param x exp2 function is defined for input values of x defined in the range (inf-, inf+) in the limit of the type precision. + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL exp2 man page + /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions + template + GLM_FUNC_DECL genType exp2(genType const & x); + + /// Returns the base 2 log of x, i.e., returns the value y, + /// which satisfies the equation x = 2 ^ y. + /// + /// @param x log2 function is defined for input values of x defined in the range (0, inf+) in the limit of the type precision. + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL log2 man page + /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions + template + GLM_FUNC_DECL genType log2(genType const & x); + + /// Returns the positive square root of x. + /// + /// @param x sqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision. + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL sqrt man page + /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions + template + GLM_FUNC_DECL genType sqrt(genType const & x); + + /// Returns the reciprocal of the positive square root of x. + /// + /// @param x inversesqrt function is defined for input values of x defined in the range [0, inf+) in the limit of the type precision. + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL inversesqrt man page + /// @see GLSL 4.20.8 specification, section 8.2 Exponential Functions + template + GLM_FUNC_DECL genType inversesqrt(genType const & x); + + /// @} +}//namespace glm + +#include "func_exponential.inl" + +#endif//glm_core_func_exponential diff --git a/Part2/src/glm/core/func_exponential.inl b/Part2/src/glm/core/func_exponential.inl new file mode 100644 index 0000000..1b08786 --- /dev/null +++ b/Part2/src/glm/core/func_exponential.inl @@ -0,0 +1,156 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_exponential.inl +/// @date 2008-08-03 / 2011-06-15 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +namespace glm +{ + // pow + template + GLM_FUNC_QUALIFIER genType pow + ( + genType const & x, + genType const & y + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'pow' only accept floating-point input"); + + return genType(::std::pow(x, y)); + } + + VECTORIZE_VEC_VEC(pow) + + // exp + template + GLM_FUNC_QUALIFIER genType exp + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'exp' only accept floating-point input"); + + return genType(::std::exp(x)); + } + + VECTORIZE_VEC(exp) + + // log + template + GLM_FUNC_QUALIFIER genType log + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'log' only accept floating-point input"); + + return genType(::std::log(x)); + } + + VECTORIZE_VEC(log) + + //exp2, ln2 = 0.69314718055994530941723212145818f + template + GLM_FUNC_QUALIFIER genType exp2 + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'exp2' only accept floating-point input"); + + return genType(::std::exp(genType(0.69314718055994530941723212145818) * x)); + } + + VECTORIZE_VEC(exp2) + +namespace _detail +{ + template + struct _compute_log2 + { + template + T operator() (T const & Value) const; +/* + { + GLM_STATIC_ASSERT(0, "'log2' parameter has an invalid template parameter type. GLM core features only supports floating-point types, include for integer types support. Others types are not supported."); + return Value; + } +*/ + }; + + template <> + struct _compute_log2 + { + template + T operator() (T const & Value) const + { + return T(::std::log(Value)) / T(0.69314718055994530941723212145818); + } + }; + +}//namespace _detail + + // log2, ln2 = 0.69314718055994530941723212145818f + template + GLM_FUNC_QUALIFIER genType log2 + ( + genType const & x + ) + { + assert(x > genType(0)); // log2 is only defined on the range (0, inf] + return _detail::_compute_log2::ID>()(x); + } + + VECTORIZE_VEC(log2) + + // sqrt + template + GLM_FUNC_QUALIFIER genType sqrt + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'sqrt' only accept floating-point input"); + + return genType(::std::sqrt(x)); + } + + VECTORIZE_VEC(sqrt) + + template + GLM_FUNC_QUALIFIER genType inversesqrt + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'inversesqrt' only accept floating-point input"); + assert(x > genType(0)); + + return genType(1) / ::std::sqrt(x); + } + + VECTORIZE_VEC(inversesqrt) + +}//namespace glm diff --git a/Part2/src/glm/core/func_geometric.hpp b/Part2/src/glm/core/func_geometric.hpp new file mode 100644 index 0000000..c221084 --- /dev/null +++ b/Part2/src/glm/core/func_geometric.hpp @@ -0,0 +1,138 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_geometric.hpp +/// @date 2008-08-03 / 2011-06-14 +/// @author Christophe Riccio +/// +/// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions +/// +/// @defgroup core_func_geometric Geometric functions +/// @ingroup core +/// +/// These operate on vectors as vectors, not component-wise. +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef glm_core_func_geometric +#define glm_core_func_geometric GLM_VERSION + +namespace glm +{ + /// @addtogroup core_func_geometric + /// @{ + + /// Returns the length of x, i.e., sqrt(x * x). + /// + /// @tparam genType Floating-point vector types. + /// + /// @see GLSL length man page + /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions + template + GLM_FUNC_DECL typename genType::value_type length( + genType const & x); + + /// Returns the distance betwwen p0 and p1, i.e., length(p0 - p1). + /// + /// @tparam genType Floating-point vector types. + /// + /// @see GLSL distance man page + /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions + template + GLM_FUNC_DECL typename genType::value_type distance( + genType const & p0, + genType const & p1); + + /// Returns the dot product of x and y, i.e., result = x * y. + /// + /// @tparam genType Floating-point vector types. + /// + /// @see GLSL dot man page + /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions + template + GLM_FUNC_DECL typename genType::value_type dot( + genType const & x, + genType const & y); + + /// Returns the cross product of x and y. + /// + /// @tparam valType Floating-point scalar types. + /// + /// @see GLSL cross man page + /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions + template + GLM_FUNC_DECL detail::tvec3 cross( + detail::tvec3 const & x, + detail::tvec3 const & y); + + /// Returns a vector in the same direction as x but with length of 1. + /// + /// @see GLSL normalize man page + /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions + template + GLM_FUNC_DECL genType normalize( + genType const & x); + + /// If dot(Nref, I) < 0.0, return N, otherwise, return -N. + /// + /// @tparam genType Floating-point vector types. + /// + /// @see GLSL faceforward man page + /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions + template + GLM_FUNC_DECL genType faceforward( + genType const & N, + genType const & I, + genType const & Nref); + + /// For the incident vector I and surface orientation N, + /// returns the reflection direction : result = I - 2.0 * dot(N, I) * N. + /// + /// @tparam genType Floating-point vector types. + /// + /// @see GLSL reflect man page + /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions + template + GLM_FUNC_DECL genType reflect( + genType const & I, + genType const & N); + + /// For the incident vector I and surface normal N, + /// and the ratio of indices of refraction eta, + /// return the refraction vector. + /// + /// @tparam genType Floating-point vector types. + /// + /// @see GLSL refract man page + /// @see GLSL 4.20.8 specification, section 8.5 Geometric Functions + template + GLM_FUNC_DECL genType refract( + genType const & I, + genType const & N, + typename genType::value_type const & eta); + + /// @} +}//namespace glm + +#include "func_geometric.inl" + +#endif//glm_core_func_geometric diff --git a/Part2/src/glm/core/func_geometric.inl b/Part2/src/glm/core/func_geometric.inl new file mode 100644 index 0000000..259a0ff --- /dev/null +++ b/Part2/src/glm/core/func_geometric.inl @@ -0,0 +1,321 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_geometric.inl +/// @date 2008-08-03 / 2011-06-15 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +namespace glm +{ + // length + template + GLM_FUNC_QUALIFIER genType length + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'length' only accept floating-point inputs"); + + genType sqr = x * x; + return sqrt(sqr); + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec2::value_type length + ( + detail::tvec2 const & v + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'length' only accept floating-point inputs"); + + typename detail::tvec2::value_type sqr = v.x * v.x + v.y * v.y; + return sqrt(sqr); + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec3::value_type length + ( + detail::tvec3 const & v + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'length' only accept floating-point inputs"); + + typename detail::tvec3::value_type sqr = v.x * v.x + v.y * v.y + v.z * v.z; + return sqrt(sqr); + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec4::value_type length + ( + detail::tvec4 const & v + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'length' only accept floating-point inputs"); + + typename detail::tvec4::value_type sqr = v.x * v.x + v.y * v.y + v.z * v.z + v.w * v.w; + return sqrt(sqr); + } + + // distance + template + GLM_FUNC_QUALIFIER genType distance + ( + genType const & p0, + genType const & p1 + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'distance' only accept floating-point inputs"); + + return length(p1 - p0); + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec2::value_type distance + ( + detail::tvec2 const & p0, + detail::tvec2 const & p1 + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'distance' only accept floating-point inputs"); + + return length(p1 - p0); + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec3::value_type distance + ( + detail::tvec3 const & p0, + detail::tvec3 const & p1 + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'distance' only accept floating-point inputs"); + + return length(p1 - p0); + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec4::value_type distance + ( + detail::tvec4 const & p0, + detail::tvec4 const & p1 + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'distance' only accept floating-point inputs"); + + return length(p1 - p0); + } + + // dot + template + GLM_FUNC_QUALIFIER genType dot + ( + genType const & x, + genType const & y + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'dot' only accept floating-point inputs"); + + return x * y; + } + + template + GLM_FUNC_QUALIFIER typename detail::tvec2::value_type dot + ( + detail::tvec2 const & x, + detail::tvec2 const & y + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'dot' only accept floating-point inputs"); + + return x.x * y.x + x.y * y.y; + } + + template + GLM_FUNC_QUALIFIER T dot + ( + detail::tvec3 const & x, + detail::tvec3 const & y + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'dot' only accept floating-point inputs"); + + return x.x * y.x + x.y * y.y + x.z * y.z; + } +/* // SSE3 + GLM_FUNC_QUALIFIER float dot(const tvec4& x, const tvec4& y) + { + float Result; + __asm + { + mov esi, x + mov edi, y + movaps xmm0, [esi] + mulps xmm0, [edi] + haddps( _xmm0, _xmm0 ) + haddps( _xmm0, _xmm0 ) + movss Result, xmm0 + } + return Result; + } +*/ + template + GLM_FUNC_QUALIFIER T dot + ( + detail::tvec4 const & x, + detail::tvec4 const & y + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'dot' only accept floating-point inputs"); + + return x.x * y.x + x.y * y.y + x.z * y.z + x.w * y.w; + } + + // cross + template + GLM_FUNC_QUALIFIER detail::tvec3 cross + ( + detail::tvec3 const & x, + detail::tvec3 const & y + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'cross' only accept floating-point inputs"); + + return detail::tvec3( + x.y * y.z - y.y * x.z, + x.z * y.x - y.z * x.x, + x.x * y.y - y.x * x.y); + } + + // normalize + template + GLM_FUNC_QUALIFIER genType normalize + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'normalize' only accept floating-point inputs"); + + return x < genType(0) ? genType(-1) : genType(1); + } + + // According to issue 10 GLSL 1.10 specification, if length(x) == 0 then result is undefine and generate an error + template + GLM_FUNC_QUALIFIER detail::tvec2 normalize + ( + detail::tvec2 const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'normalize' only accept floating-point inputs"); + + typename detail::tvec2::value_type sqr = x.x * x.x + x.y * x.y; + return x * inversesqrt(sqr); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 normalize + ( + detail::tvec3 const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'normalize' only accept floating-point inputs"); + + typename detail::tvec3::value_type sqr = x.x * x.x + x.y * x.y + x.z * x.z; + return x * inversesqrt(sqr); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 normalize + ( + detail::tvec4 const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'normalize' only accept floating-point inputs"); + + typename detail::tvec4::value_type sqr = x.x * x.x + x.y * x.y + x.z * x.z + x.w * x.w; + return x * inversesqrt(sqr); + } + + // faceforward + template + GLM_FUNC_QUALIFIER genType faceforward + ( + genType const & N, + genType const & I, + genType const & Nref + ) + { + return dot(Nref, I) < 0 ? N : -N; + } + + // reflect + template + GLM_FUNC_QUALIFIER genType reflect + ( + genType const & I, + genType const & N + ) + { + return I - N * dot(N, I) * genType(2); + } + + // refract + template + GLM_FUNC_QUALIFIER genType refract + ( + genType const & I, + genType const & N, + genType const & eta + ) + { + //It could be a vector + //GLM_STATIC_ASSERT(detail::type::is_float); + + genType dotValue = dot(N, I); + genType k = genType(1) - eta * eta * (genType(1) - dotValue * dotValue); + if(k < genType(0)) + return genType(0); + else + return eta * I - (eta * dotValue + sqrt(k)) * N; + } + + template + GLM_FUNC_QUALIFIER genType refract + ( + genType const & I, + genType const & N, + typename genType::value_type const & eta + ) + { + //It could be a vector + //GLM_STATIC_ASSERT(detail::type::is_float); + + typename genType::value_type dotValue = dot(N, I); + typename genType::value_type k = typename genType::value_type(1) - eta * eta * (typename genType::value_type(1) - dotValue * dotValue); + if(k < typename genType::value_type(0)) + return genType(0); + else + return eta * I - (eta * dotValue + sqrt(k)) * N; + } + +}//namespace glm diff --git a/Part2/src/glm/core/func_integer.hpp b/Part2/src/glm/core/func_integer.hpp new file mode 100644 index 0000000..df9a401 --- /dev/null +++ b/Part2/src/glm/core/func_integer.hpp @@ -0,0 +1,201 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_integer.hpp +/// @date 2010-03-17 / 2011-06-18 +/// @author Christophe Riccio +/// +/// @see GLSL 4.20.8 specification, section 8.8 Integer Functions +/// +/// @defgroup core_func_integer Integer functions +/// @ingroup core +/// +/// These all operate component-wise. The description is per component. +/// The notation [a, b] means the set of bits from bit-number a through bit-number +/// b, inclusive. The lowest-order bit is bit 0. +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef glm_core_func_integer +#define glm_core_func_integer GLM_VERSION + +namespace glm +{ + /// @addtogroup core_func_integer + /// @{ + + /// Adds 32-bit unsigned integer x and y, returning the sum + /// modulo pow(2, 32). The value carry is set to 0 if the sum was + /// less than pow(2, 32), or to 1 otherwise. + /// + /// @tparam genUType Unsigned integer scalar or vector types. + /// + /// @see GLSL uaddCarry man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + template + GLM_FUNC_DECL genUType uaddCarry( + genUType const & x, + genUType const & y, + genUType & carry); + + /// Subtracts the 32-bit unsigned integer y from x, returning + /// the difference if non-negative, or pow(2, 32) plus the difference + /// otherwise. The value borrow is set to 0 if x >= y, or to 1 otherwise. + /// + /// @tparam genUType Unsigned integer scalar or vector types. + /// + /// @see GLSL usubBorrow man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + template + GLM_FUNC_DECL genUType usubBorrow( + genUType const & x, + genUType const & y, + genUType & borrow); + + /// Multiplies 32-bit integers x and y, producing a 64-bit + /// result. The 32 least-significant bits are returned in lsb. + /// The 32 most-significant bits are returned in msb. + /// + /// @tparam genUType Unsigned integer scalar or vector types. + /// + /// @see GLSL umulExtended man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + template + GLM_FUNC_DECL void umulExtended( + genUType const & x, + genUType const & y, + genUType & msb, + genUType & lsb); + + /// Multiplies 32-bit integers x and y, producing a 64-bit + /// result. The 32 least-significant bits are returned in lsb. + /// The 32 most-significant bits are returned in msb. + /// + /// @tparam genIType Signed integer scalar or vector types. + /// + /// @see GLSL imulExtended man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + template + GLM_FUNC_DECL void imulExtended( + genIType const & x, + genIType const & y, + genIType & msb, + genIType & lsb); + + /// Extracts bits [offset, offset + bits - 1] from value, + /// returning them in the least significant bits of the result. + /// For unsigned data types, the most significant bits of the + /// result will be set to zero. For signed data types, the + /// most significant bits will be set to the value of bit offset + base - 1. + /// + /// If bits is zero, the result will be zero. The result will be + /// undefined if offset or bits is negative, or if the sum of + /// offset and bits is greater than the number of bits used + /// to store the operand. + /// + /// @tparam genIUType Signed or unsigned integer scalar or vector types. + /// + /// @see GLSL bitfieldExtract man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + template + GLM_FUNC_DECL genIUType bitfieldExtract( + genIUType const & Value, + int const & Offset, + int const & Bits); + + /// Returns the insertion the bits least-significant bits of insert into base. + /// + /// The result will have bits [offset, offset + bits - 1] taken + /// from bits [0, bits - 1] of insert, and all other bits taken + /// directly from the corresponding bits of base. If bits is + /// zero, the result will simply be base. The result will be + /// undefined if offset or bits is negative, or if the sum of + /// offset and bits is greater than the number of bits used to + /// store the operand. + /// + /// @tparam genIUType Signed or unsigned integer scalar or vector types. + /// + /// @see GLSL bitfieldInsert man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + template + GLM_FUNC_DECL genIUType bitfieldInsert( + genIUType const & Base, + genIUType const & Insert, + int const & Offset, + int const & Bits); + + /// Returns the reversal of the bits of value. + /// The bit numbered n of the result will be taken from bit (bits - 1) - n of value, + /// where bits is the total number of bits used to represent value. + /// + /// @tparam genIUType Signed or unsigned integer scalar or vector types. + /// + /// @see GLSL bitfieldReverse man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + template + GLM_FUNC_DECL genIUType bitfieldReverse(genIUType const & Value); + + /// Returns the number of bits set to 1 in the binary representation of value. + /// + /// @tparam genIUType Signed or unsigned integer scalar or vector types. + /// + /// @see GLSL bitCount man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + /// + /// @todo Clarify the declaration to specify that scalars are suported. + template class genIUType> + GLM_FUNC_DECL typename genIUType::signed_type bitCount(genIUType const & Value); + + /// Returns the bit number of the least significant bit set to + /// 1 in the binary representation of value. + /// If value is zero, -1 will be returned. + /// + /// @tparam genIUType Signed or unsigned integer scalar or vector types. + /// + /// @see GLSL findLSB man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + /// + /// @todo Clarify the declaration to specify that scalars are suported. + template class genIUType> + GLM_FUNC_DECL typename genIUType::signed_type findLSB(genIUType const & Value); + + /// Returns the bit number of the most significant bit in the binary representation of value. + /// For positive integers, the result will be the bit number of the most significant bit set to 1. + /// For negative integers, the result will be the bit number of the most significant + /// bit set to 0. For a value of zero or negative one, -1 will be returned. + /// + /// @tparam genIUType Signed or unsigned integer scalar or vector types. + /// + /// @see GLSL findMSB man page + /// @see GLSL 4.20.8 specification, section 8.8 Integer Functions + /// + /// @todo Clarify the declaration to specify that scalars are suported. + template class genIUType> + GLM_FUNC_DECL typename genIUType::signed_type findMSB(genIUType const & Value); + + /// @} +}//namespace glm + +#include "func_integer.inl" + +#endif//glm_core_func_integer + diff --git a/Part2/src/glm/core/func_integer.inl b/Part2/src/glm/core/func_integer.inl new file mode 100644 index 0000000..ad8b1fe --- /dev/null +++ b/Part2/src/glm/core/func_integer.inl @@ -0,0 +1,648 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_integer.inl +/// @date 2010-03-17 / 2011-06-15 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +#if(GLM_ARCH != GLM_ARCH_PURE) +#if(GLM_COMPILER & GLM_COMPILER_VC) +# include +# pragma intrinsic(_BitScanReverse) +#endif//(GLM_COMPILER & GLM_COMPILER_VC) +#endif//(GLM_ARCH != GLM_ARCH_PURE) + +namespace glm +{ + // uaddCarry + template + GLM_FUNC_QUALIFIER genUType uaddCarry + ( + genUType const & x, + genUType const & y, + genUType & Carry + ) + { + detail::highp_uint_t Value64 = detail::highp_uint_t(x) + detail::highp_uint_t(y); + genUType Result = genUType(Value64 % (detail::highp_uint_t(1) << detail::highp_uint_t(32))); + Carry = (Value64 % (detail::highp_uint_t(1) << detail::highp_uint_t(32))) > 1 ? 1 : 0; + return Result; + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 uaddCarry + ( + detail::tvec2 const & x, + detail::tvec2 const & y, + detail::tvec2 & Carry + ) + { + return detail::tvec2( + uaddCarry(x[0], y[0], Carry[0]), + uaddCarry(x[1], y[1], Carry[1])); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 uaddCarry + ( + detail::tvec3 const & x, + detail::tvec3 const & y, + detail::tvec3 & Carry + ) + { + return detail::tvec3( + uaddCarry(x[0], y[0], Carry[0]), + uaddCarry(x[1], y[1], Carry[1]), + uaddCarry(x[2], y[2], Carry[2])); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 uaddCarry + ( + detail::tvec4 const & x, + detail::tvec4 const & y, + detail::tvec4 & Carry + ) + { + return detail::tvec4( + uaddCarry(x[0], y[0], Carry[0]), + uaddCarry(x[1], y[1], Carry[1]), + uaddCarry(x[2], y[2], Carry[2]), + uaddCarry(x[3], y[3], Carry[3])); + } + + // usubBorrow + template + GLM_FUNC_QUALIFIER genUType usubBorrow + ( + genUType const & x, + genUType const & y, + genUType & Borrow + ) + { + Borrow = x >= y ? 0 : 1; + if(x > y) + return genUType(detail::highp_int_t(x) - detail::highp_int_t(y)); + else + return genUType((detail::highp_int_t(1) << detail::highp_int_t(32)) + detail::highp_int_t(x) - detail::highp_int_t(y)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 usubBorrow + ( + detail::tvec2 const & x, + detail::tvec2 const & y, + detail::tvec2 & Borrow + ) + { + return detail::tvec2( + usubBorrow(x[0], y[0], Borrow[0]), + usubBorrow(x[1], y[1], Borrow[1])); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 usubBorrow + ( + detail::tvec3 const & x, + detail::tvec3 const & y, + detail::tvec3 & Borrow + ) + { + return detail::tvec3( + usubBorrow(x[0], y[0], Borrow[0]), + usubBorrow(x[1], y[1], Borrow[1]), + usubBorrow(x[2], y[2], Borrow[2])); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 usubBorrow + ( + detail::tvec4 const & x, + detail::tvec4 const & y, + detail::tvec4 & Borrow + ) + { + return detail::tvec4( + usubBorrow(x[0], y[0], Borrow[0]), + usubBorrow(x[1], y[1], Borrow[1]), + usubBorrow(x[2], y[2], Borrow[2]), + usubBorrow(x[3], y[3], Borrow[3])); + } + + // umulExtended + template + GLM_FUNC_QUALIFIER void umulExtended + ( + genUType const & x, + genUType const & y, + genUType & msb, + genUType & lsb + ) + { + detail::highp_uint_t ValueX64 = x; + detail::highp_uint_t ValueY64 = y; + detail::highp_uint_t Value64 = ValueX64 * ValueY64; + msb = *(genUType*)&genUType(Value64 & ((detail::highp_uint_t(1) << detail::highp_uint_t(32)) - detail::highp_uint_t(1))); + lsb = *(genUType*)&genUType(Value64 >> detail::highp_uint_t(32)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 umulExtended + ( + detail::tvec2 const & x, + detail::tvec2 const & y, + detail::tvec2 & msb, + detail::tvec2 & lsb + ) + { + return detail::tvec2( + umulExtended(x[0], y[0], msb, lsb), + umulExtended(x[1], y[1], msb, lsb)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 umulExtended + ( + detail::tvec3 const & x, + detail::tvec3 const & y, + detail::tvec3 & msb, + detail::tvec3 & lsb + ) + { + return detail::tvec3( + umulExtended(x[0], y[0], msb, lsb), + umulExtended(x[1], y[1], msb, lsb), + umulExtended(x[2], y[2], msb, lsb)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 umulExtended + ( + detail::tvec4 const & x, + detail::tvec4 const & y, + detail::tvec4 & msb, + detail::tvec4 & lsb + ) + { + return detail::tvec4( + umulExtended(x[0], y[0], msb, lsb), + umulExtended(x[1], y[1], msb, lsb), + umulExtended(x[2], y[2], msb, lsb), + umulExtended(x[3], y[3], msb, lsb)); + } + + // imulExtended + template + GLM_FUNC_QUALIFIER void imulExtended + ( + genIType const & x, + genIType const & y, + genIType & msb, + genIType & lsb + ) + { + detail::highp_int_t ValueX64 = x; + detail::highp_int_t ValueY64 = y; + detail::highp_int_t Value64 = ValueX64 * ValueY64; + msb = *(genIType*)&genIType(Value64 & ((detail::highp_uint_t(1) << detail::highp_uint_t(32)) - detail::highp_uint_t(1))); + lsb = *(genIType*)&genIType(Value64 >> detail::highp_uint_t(32)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 imulExtended + ( + detail::tvec2 const & x, + detail::tvec2 const & y, + detail::tvec2 & msb, + detail::tvec2 & lsb + ) + { + return detail::tvec2( + imulExtended(x[0], y[0], msb, lsb), + imulExtended(x[1], y[1], msb, lsb)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 imulExtended + ( + detail::tvec3 const & x, + detail::tvec3 const & y, + detail::tvec3 & msb, + detail::tvec3 & lsb + ) + { + return detail::tvec3( + imulExtended(x[0], y[0], msb, lsb), + imulExtended(x[1], y[1], msb, lsb), + imulExtended(x[2], y[2], msb, lsb)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 imulExtended + ( + detail::tvec4 const & x, + detail::tvec4 const & y, + detail::tvec4 & msb, + detail::tvec4 & lsb + ) + { + return detail::tvec4( + imulExtended(x[0], y[0], msb, lsb), + imulExtended(x[1], y[1], msb, lsb), + imulExtended(x[2], y[2], msb, lsb), + imulExtended(x[3], y[3], msb, lsb)); + } + + // bitfieldExtract + template + GLM_FUNC_QUALIFIER genIUType bitfieldExtract + ( + genIUType const & Value, + int const & Offset, + int const & Bits + ) + { + int GenSize = int(sizeof(genIUType)) << int(3); + + assert(Offset + Bits <= GenSize); + + genIUType ShiftLeft = Bits ? Value << (GenSize - (Bits + Offset)) : genIUType(0); + genIUType ShiftBack = ShiftLeft >> genIUType(GenSize - Bits); + + return ShiftBack; + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 bitfieldExtract + ( + detail::tvec2 const & Value, + int const & Offset, + int const & Bits + ) + { + return detail::tvec2( + bitfieldExtract(Value[0], Offset, Bits), + bitfieldExtract(Value[1], Offset, Bits)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 bitfieldExtract + ( + detail::tvec3 const & Value, + int const & Offset, + int const & Bits + ) + { + return detail::tvec3( + bitfieldExtract(Value[0], Offset, Bits), + bitfieldExtract(Value[1], Offset, Bits), + bitfieldExtract(Value[2], Offset, Bits)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 bitfieldExtract + ( + detail::tvec4 const & Value, + int const & Offset, + int const & Bits + ) + { + return detail::tvec4( + bitfieldExtract(Value[0], Offset, Bits), + bitfieldExtract(Value[1], Offset, Bits), + bitfieldExtract(Value[2], Offset, Bits), + bitfieldExtract(Value[3], Offset, Bits)); + } + + // bitfieldInsert + template + GLM_FUNC_QUALIFIER genIUType bitfieldInsert + ( + genIUType const & Base, + genIUType const & Insert, + int const & Offset, + int const & Bits + ) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'bitfieldInsert' only accept integer values"); + assert(Offset + Bits <= sizeof(genIUType)); + + if(Bits == 0) + return Base; + + genIUType Mask = 0; + for(int Bit = Offset; Bit < Offset + Bits; ++Bit) + Mask |= (1 << Bit); + + return (Base & ~Mask) | (Insert & Mask); + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 bitfieldInsert + ( + detail::tvec2 const & Base, + detail::tvec2 const & Insert, + int const & Offset, + int const & Bits + ) + { + return detail::tvec2( + bitfieldInsert(Base[0], Insert[0], Offset, Bits), + bitfieldInsert(Base[1], Insert[1], Offset, Bits)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 bitfieldInsert + ( + detail::tvec3 const & Base, + detail::tvec3 const & Insert, + int const & Offset, + int const & Bits + ) + { + return detail::tvec3( + bitfieldInsert(Base[0], Insert[0], Offset, Bits), + bitfieldInsert(Base[1], Insert[1], Offset, Bits), + bitfieldInsert(Base[2], Insert[2], Offset, Bits)); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 bitfieldInsert + ( + detail::tvec4 const & Base, + detail::tvec4 const & Insert, + int const & Offset, + int const & Bits + ) + { + return detail::tvec4( + bitfieldInsert(Base[0], Insert[0], Offset, Bits), + bitfieldInsert(Base[1], Insert[1], Offset, Bits), + bitfieldInsert(Base[2], Insert[2], Offset, Bits), + bitfieldInsert(Base[3], Insert[3], Offset, Bits)); + } + + // bitfieldReverse + template + GLM_FUNC_QUALIFIER genIUType bitfieldReverse(genIUType const & Value) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'bitfieldReverse' only accept integer values"); + + genIUType Out = 0; + std::size_t BitSize = sizeof(genIUType) * 8; + for(std::size_t i = 0; i < BitSize; ++i) + if(Value & (genIUType(1) << i)) + Out |= genIUType(1) << (BitSize - 1 - i); + return Out; + } + + VECTORIZE_VEC(bitfieldReverse) + + // bitCount + template + GLM_FUNC_QUALIFIER int bitCount(genIUType const & Value) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'bitCount' only accept integer values"); + + int Count = 0; + for(std::size_t i = 0; i < sizeof(genIUType) * std::size_t(8); ++i) + { + if(Value & (1 << i)) + ++Count; + } + return Count; + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 bitCount + ( + detail::tvec2 const & value + ) + { + return detail::tvec2( + bitCount(value[0]), + bitCount(value[1])); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 bitCount + ( + detail::tvec3 const & value + ) + { + return detail::tvec3( + bitCount(value[0]), + bitCount(value[1]), + bitCount(value[2])); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 bitCount + ( + detail::tvec4 const & value + ) + { + return detail::tvec4( + bitCount(value[0]), + bitCount(value[1]), + bitCount(value[2]), + bitCount(value[3])); + } + + // findLSB + template + GLM_FUNC_QUALIFIER int findLSB + ( + genIUType const & Value + ) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findLSB' only accept integer values"); + if(Value == 0) + return -1; + + genIUType Bit; + for(Bit = genIUType(0); !(Value & (1 << Bit)); ++Bit){} + return Bit; + } + + template + GLM_FUNC_QUALIFIER detail::tvec2 findLSB + ( + detail::tvec2 const & value + ) + { + return detail::tvec2( + findLSB(value[0]), + findLSB(value[1])); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 findLSB + ( + detail::tvec3 const & value + ) + { + return detail::tvec3( + findLSB(value[0]), + findLSB(value[1]), + findLSB(value[2])); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 findLSB + ( + detail::tvec4 const & value + ) + { + return detail::tvec4( + findLSB(value[0]), + findLSB(value[1]), + findLSB(value[2]), + findLSB(value[3])); + } + + // findMSB +#if((GLM_ARCH != GLM_ARCH_PURE) && (GLM_COMPILER & GLM_COMPILER_VC)) + + template + GLM_FUNC_QUALIFIER int findMSB + ( + genIUType const & Value + ) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findMSB' only accept integer values"); + if(Value == 0) + return -1; + + unsigned long Result(0); + _BitScanReverse(&Result, Value); + return int(Result); + } +/* +// __builtin_clz seems to be buggy as it crasks for some values, from 0x00200000 to 80000000 +#elif((GLM_ARCH != GLM_ARCH_PURE) && (GLM_COMPILER & GLM_COMPILER_GCC) && (GLM_COMPILER >= GLM_COMPILER_GCC40)) + + template + GLM_FUNC_QUALIFIER int findMSB + ( + genIUType const & Value + ) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findMSB' only accept integer values"); + if(Value == 0) + return -1; + + // clz returns the number or trailing 0-bits; see + // http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Other-Builtins.html + // + // NoteBecause __builtin_clz only works for unsigned ints, this + // implementation will not work for 64-bit integers. + // + return 31 - __builtin_clzl(Value); + } +*/ +#else + +/* SSE implementation idea + + __m128i const Zero = _mm_set_epi32( 0, 0, 0, 0); + __m128i const One = _mm_set_epi32( 1, 1, 1, 1); + __m128i Bit = _mm_set_epi32(-1, -1, -1, -1); + __m128i Tmp = _mm_set_epi32(Value, Value, Value, Value); + __m128i Mmi = Zero; + for(int i = 0; i < 32; ++i) + { + __m128i Shilt = _mm_and_si128(_mm_cmpgt_epi32(Tmp, One), One); + Tmp = _mm_srai_epi32(Tmp, One); + Bit = _mm_add_epi32(Bit, _mm_and_si128(Shilt, i)); + Mmi = _mm_and_si128(Mmi, One); + } + return Bit; + +*/ + + template + GLM_FUNC_QUALIFIER int findMSB + ( + genIUType const & Value + ) + { + GLM_STATIC_ASSERT(std::numeric_limits::is_integer, "'findMSB' only accept integer values"); + + if(Value == genIUType(0) || Value == genIUType(-1)) + return -1; + else if(Value > 0) + { + genIUType Bit = genIUType(-1); + for(genIUType tmp = Value; tmp > 0; tmp >>= 1, ++Bit){} + return Bit; + } + else //if(Value < 0) + { + int const BitCount(sizeof(genIUType) * 8); + int MostSignificantBit(-1); + for(int BitIndex(0); BitIndex < BitCount; ++BitIndex) + MostSignificantBit = (Value & (1 << BitIndex)) ? MostSignificantBit : BitIndex; + assert(MostSignificantBit >= 0); + return MostSignificantBit; + } + } +#endif//(GLM_COMPILER) + + template + GLM_FUNC_QUALIFIER detail::tvec2 findMSB + ( + detail::tvec2 const & value + ) + { + return detail::tvec2( + findMSB(value[0]), + findMSB(value[1])); + } + + template + GLM_FUNC_QUALIFIER detail::tvec3 findMSB + ( + detail::tvec3 const & value + ) + { + return detail::tvec3( + findMSB(value[0]), + findMSB(value[1]), + findMSB(value[2])); + } + + template + GLM_FUNC_QUALIFIER detail::tvec4 findMSB + ( + detail::tvec4 const & value + ) + { + return detail::tvec4( + findMSB(value[0]), + findMSB(value[1]), + findMSB(value[2]), + findMSB(value[3])); + } +}//namespace glm diff --git a/Part2/src/glm/core/func_matrix.hpp b/Part2/src/glm/core/func_matrix.hpp new file mode 100644 index 0000000..3c92cbb --- /dev/null +++ b/Part2/src/glm/core/func_matrix.hpp @@ -0,0 +1,150 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_matrix.hpp +/// @date 2008-08-03 / 2011-06-15 +/// @author Christophe Riccio +/// +/// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions +/// +/// @defgroup core_func_matrix Matrix functions +/// @ingroup core +/// +/// For each of the following built-in matrix functions, there is both a +/// single-precision floating point version, where all arguments and return values +/// are single precision, and a double-precision floating version, where all +/// arguments and return values are double precision. Only the single-precision +/// floating point version is shown. +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef GLM_CORE_func_matrix +#define GLM_CORE_func_matrix GLM_VERSION + +namespace glm +{ + /// @addtogroup core_func_matrix + /// @{ + + /// Multiply matrix x by matrix y component-wise, i.e., + /// result[i][j] is the scalar product of x[i][j] and y[i][j]. + /// + /// @tparam matType Floating-point matrix types. + /// + /// @see GLSL matrixCompMult man page + /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions + template + GLM_FUNC_DECL matType matrixCompMult( + matType const & x, + matType const & y); + + /// Treats the first parameter c as a column vector + /// and the second parameter r as a row vector + /// and does a linear algebraic matrix multiply c * r. + /// + /// @tparam matType Floating-point matrix types. + /// + /// @see GLSL outerProduct man page + /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions + /// + /// @todo Clarify the declaration to specify that matType doesn't have to be provided when used. + template + GLM_FUNC_DECL matType outerProduct( + vecType const & c, + vecType const & r); + + /// Returns the transposed matrix of x + /// + /// @tparam matType Floating-point matrix types. + /// + /// @see GLSL transpose man page + /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions + template + GLM_FUNC_DECL typename matType::transpose_type transpose( + matType const & x); + + /// Return the determinant of a mat2 matrix. + /// + /// @tparam valType Floating-point scalar types. + /// + /// @see GLSL determinant man page + /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions + template + GLM_FUNC_DECL typename detail::tmat2x2::value_type determinant( + detail::tmat2x2 const & m); + + /// Return the determinant of a mat3 matrix. + /// + /// @tparam valType Floating-point scalar types. + /// + /// @see GLSL determinant man page + /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions + template + GLM_FUNC_DECL typename detail::tmat3x3::value_type determinant( + detail::tmat3x3 const & m); + + /// Return the determinant of a mat4 matrix. + /// + /// @tparam valType Floating-point scalar types. + /// + /// @see GLSL determinant man page + /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions + template + GLM_FUNC_DECL typename detail::tmat4x4::value_type determinant( + detail::tmat4x4 const & m); + + /// Return the inverse of a mat2 matrix. + /// + /// @tparam valType Floating-point scalar types. + /// + /// @see GLSL inverse man page + /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions + template + GLM_FUNC_DECL detail::tmat2x2 inverse( + detail::tmat2x2 const & m); + + /// Return the inverse of a mat3 matrix. + /// + /// @tparam valType Floating-point scalar types. + /// + /// @see GLSL inverse man page + /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions + template + GLM_FUNC_DECL detail::tmat3x3 inverse( + detail::tmat3x3 const & m); + + /// Return the inverse of a mat4 matrix. + /// + /// @tparam valType Floating-point scalar types. + /// + /// @see GLSL inverse man page + /// @see GLSL 4.20.8 specification, section 8.6 Matrix Functions + template + GLM_FUNC_DECL detail::tmat4x4 inverse( + detail::tmat4x4 const & m); + + /// @} +}//namespace glm + +#include "func_matrix.inl" + +#endif//GLM_CORE_func_matrix diff --git a/Part2/src/glm/core/func_matrix.inl b/Part2/src/glm/core/func_matrix.inl new file mode 100644 index 0000000..d89d5d4 --- /dev/null +++ b/Part2/src/glm/core/func_matrix.inl @@ -0,0 +1,582 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_matrix.inl +/// @date 2008-03-08 / 2011-06-15 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +namespace glm +{ + // matrixCompMult + template + GLM_FUNC_QUALIFIER matType matrixCompMult + ( + matType const & x, + matType const & y + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'matrixCompMult' only accept floating-point inputs"); + + matType result(matType::null); + for(typename matType::size_type i = 0; i < matType::row_size(); ++i) + result[i] = x[i] * y[i]; + return result; + } + + // outerProduct + template + GLM_FUNC_QUALIFIER detail::tmat2x2 outerProduct + ( + detail::tvec2 const & c, + detail::tvec2 const & r + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); + + detail::tmat2x2 m(detail::tmat2x2::null); + m[0][0] = c[0] * r[0]; + m[0][1] = c[1] * r[0]; + m[1][0] = c[0] * r[1]; + m[1][1] = c[1] * r[1]; + return m; + } + + template + GLM_FUNC_QUALIFIER detail::tmat3x3 outerProduct + ( + detail::tvec3 const & c, + detail::tvec3 const & r + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); + + detail::tmat3x3 m(detail::tmat3x3::null); + for(typename detail::tmat3x3::size_type i(0); i < m.length(); ++i) + m[i] = c * r[i]; + return m; + } + + template + GLM_FUNC_QUALIFIER detail::tmat4x4 outerProduct + ( + detail::tvec4 const & c, + detail::tvec4 const & r + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); + + detail::tmat4x4 m(detail::tmat4x4::null); + for(typename detail::tmat4x4::size_type i(0); i < m.length(); ++i) + m[i] = c * r[i]; + return m; + } + + template + GLM_FUNC_QUALIFIER detail::tmat2x3 outerProduct + ( + detail::tvec3 const & c, + detail::tvec2 const & r + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); + + detail::tmat2x3 m(detail::tmat2x3::null); + m[0][0] = c.x * r.x; + m[0][1] = c.y * r.x; + m[0][2] = c.z * r.x; + m[1][0] = c.x * r.y; + m[1][1] = c.y * r.y; + m[1][2] = c.z * r.y; + return m; + } + + template + GLM_FUNC_QUALIFIER detail::tmat3x2 outerProduct + ( + detail::tvec2 const & c, + detail::tvec3 const & r + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); + + detail::tmat3x2 m(detail::tmat3x2::null); + m[0][0] = c.x * r.x; + m[0][1] = c.y * r.x; + m[1][0] = c.x * r.y; + m[1][1] = c.y * r.y; + m[2][0] = c.x * r.z; + m[2][1] = c.y * r.z; + return m; + } + + template + GLM_FUNC_QUALIFIER detail::tmat2x4 outerProduct + ( + detail::tvec4 const & c, + detail::tvec2 const & r + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); + + detail::tmat2x4 m(detail::tmat2x4::null); + m[0][0] = c.x * r.x; + m[0][1] = c.y * r.x; + m[0][2] = c.z * r.x; + m[0][3] = c.w * r.x; + m[1][0] = c.x * r.y; + m[1][1] = c.y * r.y; + m[1][2] = c.z * r.y; + m[1][3] = c.w * r.y; + return m; + } + + template + GLM_FUNC_QUALIFIER detail::tmat4x2 outerProduct + ( + detail::tvec2 const & c, + detail::tvec4 const & r + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); + + detail::tmat4x2 m(detail::tmat4x2::null); + m[0][0] = c.x * r.x; + m[0][1] = c.y * r.x; + m[1][0] = c.x * r.y; + m[1][1] = c.y * r.y; + m[2][0] = c.x * r.z; + m[2][1] = c.y * r.z; + m[3][0] = c.x * r.w; + m[3][1] = c.y * r.w; + return m; + } + + template + GLM_FUNC_QUALIFIER detail::tmat3x4 outerProduct + ( + detail::tvec4 const & c, + detail::tvec3 const & r + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); + + detail::tmat3x4 m(detail::tmat3x4::null); + m[0][0] = c.x * r.x; + m[0][1] = c.y * r.x; + m[0][2] = c.z * r.x; + m[0][3] = c.w * r.x; + m[1][0] = c.x * r.y; + m[1][1] = c.y * r.y; + m[1][2] = c.z * r.y; + m[1][3] = c.w * r.y; + m[2][0] = c.x * r.z; + m[2][1] = c.y * r.z; + m[2][2] = c.z * r.z; + m[2][3] = c.w * r.z; + return m; + } + + template + GLM_FUNC_QUALIFIER detail::tmat4x3 outerProduct + ( + detail::tvec3 const & c, + detail::tvec4 const & r + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'outerProduct' only accept floating-point inputs"); + + detail::tmat4x3 m(detail::tmat4x3::null); + m[0][0] = c.x * r.x; + m[0][1] = c.y * r.x; + m[0][2] = c.z * r.x; + m[1][0] = c.x * r.y; + m[1][1] = c.y * r.y; + m[1][2] = c.z * r.y; + m[2][0] = c.x * r.z; + m[2][1] = c.y * r.z; + m[2][2] = c.z * r.z; + m[3][0] = c.x * r.w; + m[3][1] = c.y * r.w; + m[3][2] = c.z * r.w; + return m; + } + + template + GLM_FUNC_QUALIFIER detail::tmat2x2 transpose + ( + detail::tmat2x2 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'transpose' only accept floating-point inputs"); + + detail::tmat2x2 result(detail::tmat2x2::null); + result[0][0] = m[0][0]; + result[0][1] = m[1][0]; + result[1][0] = m[0][1]; + result[1][1] = m[1][1]; + return result; + } + + template + GLM_FUNC_QUALIFIER detail::tmat3x3 transpose + ( + detail::tmat3x3 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'transpose' only accept floating-point inputs"); + + detail::tmat3x3 result(detail::tmat3x3::null); + result[0][0] = m[0][0]; + result[0][1] = m[1][0]; + result[0][2] = m[2][0]; + + result[1][0] = m[0][1]; + result[1][1] = m[1][1]; + result[1][2] = m[2][1]; + + result[2][0] = m[0][2]; + result[2][1] = m[1][2]; + result[2][2] = m[2][2]; + return result; + } + + template + GLM_FUNC_QUALIFIER detail::tmat4x4 transpose + ( + detail::tmat4x4 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'transpose' only accept floating-point inputs"); + + detail::tmat4x4 result(detail::tmat4x4::null); + result[0][0] = m[0][0]; + result[0][1] = m[1][0]; + result[0][2] = m[2][0]; + result[0][3] = m[3][0]; + + result[1][0] = m[0][1]; + result[1][1] = m[1][1]; + result[1][2] = m[2][1]; + result[1][3] = m[3][1]; + + result[2][0] = m[0][2]; + result[2][1] = m[1][2]; + result[2][2] = m[2][2]; + result[2][3] = m[3][2]; + + result[3][0] = m[0][3]; + result[3][1] = m[1][3]; + result[3][2] = m[2][3]; + result[3][3] = m[3][3]; + return result; + } + + template + GLM_FUNC_QUALIFIER detail::tmat2x3 transpose + ( + detail::tmat3x2 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'transpose' only accept floating-point inputs"); + + detail::tmat2x3 result(detail::tmat2x3::null); + result[0][0] = m[0][0]; + result[0][1] = m[1][0]; + result[0][2] = m[2][0]; + result[1][0] = m[0][1]; + result[1][1] = m[1][1]; + result[1][2] = m[2][1]; + return result; + } + + template + GLM_FUNC_QUALIFIER detail::tmat3x2 transpose + ( + detail::tmat2x3 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'transpose' only accept floating-point inputs"); + + detail::tmat3x2 result(detail::tmat3x2::null); + result[0][0] = m[0][0]; + result[0][1] = m[1][0]; + result[1][0] = m[0][1]; + result[1][1] = m[1][1]; + result[2][0] = m[0][2]; + result[2][1] = m[1][2]; + return result; + } + + template + GLM_FUNC_QUALIFIER detail::tmat2x4 transpose + ( + detail::tmat4x2 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'transpose' only accept floating-point inputs"); + + detail::tmat2x4 result(detail::tmat2x4::null); + result[0][0] = m[0][0]; + result[0][1] = m[1][0]; + result[0][2] = m[2][0]; + result[0][3] = m[3][0]; + result[1][0] = m[0][1]; + result[1][1] = m[1][1]; + result[1][2] = m[2][1]; + result[1][3] = m[3][1]; + return result; + } + + template + GLM_FUNC_QUALIFIER detail::tmat4x2 transpose + ( + detail::tmat2x4 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'transpose' only accept floating-point inputs"); + + detail::tmat4x2 result(detail::tmat4x2::null); + result[0][0] = m[0][0]; + result[0][1] = m[1][0]; + result[1][0] = m[0][1]; + result[1][1] = m[1][1]; + result[2][0] = m[0][2]; + result[2][1] = m[1][2]; + result[3][0] = m[0][3]; + result[3][1] = m[1][3]; + return result; + } + + template + GLM_FUNC_QUALIFIER detail::tmat3x4 transpose + ( + detail::tmat4x3 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'transpose' only accept floating-point inputs"); + + detail::tmat3x4 result(detail::tmat3x4::null); + result[0][0] = m[0][0]; + result[0][1] = m[1][0]; + result[0][2] = m[2][0]; + result[0][3] = m[3][0]; + result[1][0] = m[0][1]; + result[1][1] = m[1][1]; + result[1][2] = m[2][1]; + result[1][3] = m[3][1]; + result[2][0] = m[0][2]; + result[2][1] = m[1][2]; + result[2][2] = m[2][2]; + result[2][3] = m[3][2]; + return result; + } + + template + GLM_FUNC_QUALIFIER detail::tmat4x3 transpose + ( + detail::tmat3x4 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'transpose' only accept floating-point inputs"); + + detail::tmat4x3 result(detail::tmat4x3::null); + result[0][0] = m[0][0]; + result[0][1] = m[1][0]; + result[0][2] = m[2][0]; + result[1][0] = m[0][1]; + result[1][1] = m[1][1]; + result[1][2] = m[2][1]; + result[2][0] = m[0][2]; + result[2][1] = m[1][2]; + result[2][2] = m[2][2]; + result[3][0] = m[0][3]; + result[3][1] = m[1][3]; + result[3][2] = m[2][3]; + return result; + } + + template + GLM_FUNC_QUALIFIER typename detail::tmat2x2::value_type determinant + ( + detail::tmat2x2 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'determinant' only accept floating-point inputs"); + + return m[0][0] * m[1][1] - m[1][0] * m[0][1]; + } + + template + GLM_FUNC_QUALIFIER typename detail::tmat3x3::value_type determinant + ( + detail::tmat3x3 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'determinant' only accept floating-point inputs"); + + return + + m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2]) + - m[1][0] * (m[0][1] * m[2][2] - m[2][1] * m[0][2]) + + m[2][0] * (m[0][1] * m[1][2] - m[1][1] * m[0][2]); + } + + template + GLM_FUNC_QUALIFIER typename detail::tmat4x4::value_type determinant + ( + detail::tmat4x4 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'determinant' only accept floating-point inputs"); + + T SubFactor00 = m[2][2] * m[3][3] - m[3][2] * m[2][3]; + T SubFactor01 = m[2][1] * m[3][3] - m[3][1] * m[2][3]; + T SubFactor02 = m[2][1] * m[3][2] - m[3][1] * m[2][2]; + T SubFactor03 = m[2][0] * m[3][3] - m[3][0] * m[2][3]; + T SubFactor04 = m[2][0] * m[3][2] - m[3][0] * m[2][2]; + T SubFactor05 = m[2][0] * m[3][1] - m[3][0] * m[2][1]; + + detail::tvec4 DetCof( + + (m[1][1] * SubFactor00 - m[1][2] * SubFactor01 + m[1][3] * SubFactor02), + - (m[1][0] * SubFactor00 - m[1][2] * SubFactor03 + m[1][3] * SubFactor04), + + (m[1][0] * SubFactor01 - m[1][1] * SubFactor03 + m[1][3] * SubFactor05), + - (m[1][0] * SubFactor02 - m[1][1] * SubFactor04 + m[1][2] * SubFactor05)); + + return m[0][0] * DetCof[0] + + m[0][1] * DetCof[1] + + m[0][2] * DetCof[2] + + m[0][3] * DetCof[3]; + } + + template + GLM_FUNC_QUALIFIER detail::tmat2x2 inverse + ( + detail::tmat2x2 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'inverse' only accept floating-point inputs"); + + //valType Determinant = m[0][0] * m[1][1] - m[1][0] * m[0][1]; + T Determinant = determinant(m); + + detail::tmat2x2 Inverse( + + m[1][1] / Determinant, + - m[0][1] / Determinant, + - m[1][0] / Determinant, + + m[0][0] / Determinant); + + return Inverse; + } + + template + GLM_FUNC_QUALIFIER detail::tmat3x3 inverse + ( + detail::tmat3x3 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'inverse' only accept floating-point inputs"); + + //valType Determinant = m[0][0] * (m[1][1] * m[2][2] - m[2][1] * m[1][2]) + // - m[1][0] * (m[0][1] * m[2][2] - m[2][1] * m[0][2]) + // + m[2][0] * (m[0][1] * m[1][2] - m[1][1] * m[0][2]); + + T Determinant = determinant(m); + + detail::tmat3x3 Inverse(detail::tmat3x3::null); + Inverse[0][0] = + (m[1][1] * m[2][2] - m[2][1] * m[1][2]); + Inverse[1][0] = - (m[1][0] * m[2][2] - m[2][0] * m[1][2]); + Inverse[2][0] = + (m[1][0] * m[2][1] - m[2][0] * m[1][1]); + Inverse[0][1] = - (m[0][1] * m[2][2] - m[2][1] * m[0][2]); + Inverse[1][1] = + (m[0][0] * m[2][2] - m[2][0] * m[0][2]); + Inverse[2][1] = - (m[0][0] * m[2][1] - m[2][0] * m[0][1]); + Inverse[0][2] = + (m[0][1] * m[1][2] - m[1][1] * m[0][2]); + Inverse[1][2] = - (m[0][0] * m[1][2] - m[1][0] * m[0][2]); + Inverse[2][2] = + (m[0][0] * m[1][1] - m[1][0] * m[0][1]); + Inverse /= Determinant; + + return Inverse; + } + + template + GLM_FUNC_QUALIFIER detail::tmat4x4 inverse + ( + detail::tmat4x4 const & m + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'inverse' only accept floating-point inputs"); + + T Coef00 = m[2][2] * m[3][3] - m[3][2] * m[2][3]; + T Coef02 = m[1][2] * m[3][3] - m[3][2] * m[1][3]; + T Coef03 = m[1][2] * m[2][3] - m[2][2] * m[1][3]; + + T Coef04 = m[2][1] * m[3][3] - m[3][1] * m[2][3]; + T Coef06 = m[1][1] * m[3][3] - m[3][1] * m[1][3]; + T Coef07 = m[1][1] * m[2][3] - m[2][1] * m[1][3]; + + T Coef08 = m[2][1] * m[3][2] - m[3][1] * m[2][2]; + T Coef10 = m[1][1] * m[3][2] - m[3][1] * m[1][2]; + T Coef11 = m[1][1] * m[2][2] - m[2][1] * m[1][2]; + + T Coef12 = m[2][0] * m[3][3] - m[3][0] * m[2][3]; + T Coef14 = m[1][0] * m[3][3] - m[3][0] * m[1][3]; + T Coef15 = m[1][0] * m[2][3] - m[2][0] * m[1][3]; + + T Coef16 = m[2][0] * m[3][2] - m[3][0] * m[2][2]; + T Coef18 = m[1][0] * m[3][2] - m[3][0] * m[1][2]; + T Coef19 = m[1][0] * m[2][2] - m[2][0] * m[1][2]; + + T Coef20 = m[2][0] * m[3][1] - m[3][0] * m[2][1]; + T Coef22 = m[1][0] * m[3][1] - m[3][0] * m[1][1]; + T Coef23 = m[1][0] * m[2][1] - m[2][0] * m[1][1]; + + detail::tvec4 const SignA(+1, -1, +1, -1); + detail::tvec4 const SignB(-1, +1, -1, +1); + + detail::tvec4 Fac0(Coef00, Coef00, Coef02, Coef03); + detail::tvec4 Fac1(Coef04, Coef04, Coef06, Coef07); + detail::tvec4 Fac2(Coef08, Coef08, Coef10, Coef11); + detail::tvec4 Fac3(Coef12, Coef12, Coef14, Coef15); + detail::tvec4 Fac4(Coef16, Coef16, Coef18, Coef19); + detail::tvec4 Fac5(Coef20, Coef20, Coef22, Coef23); + + detail::tvec4 Vec0(m[1][0], m[0][0], m[0][0], m[0][0]); + detail::tvec4 Vec1(m[1][1], m[0][1], m[0][1], m[0][1]); + detail::tvec4 Vec2(m[1][2], m[0][2], m[0][2], m[0][2]); + detail::tvec4 Vec3(m[1][3], m[0][3], m[0][3], m[0][3]); + + detail::tvec4 Inv0 = SignA * (Vec1 * Fac0 - Vec2 * Fac1 + Vec3 * Fac2); + detail::tvec4 Inv1 = SignB * (Vec0 * Fac0 - Vec2 * Fac3 + Vec3 * Fac4); + detail::tvec4 Inv2 = SignA * (Vec0 * Fac1 - Vec1 * Fac3 + Vec3 * Fac5); + detail::tvec4 Inv3 = SignB * (Vec0 * Fac2 - Vec1 * Fac4 + Vec2 * Fac5); + + detail::tmat4x4 Inverse(Inv0, Inv1, Inv2, Inv3); + + detail::tvec4 Row0(Inverse[0][0], Inverse[1][0], Inverse[2][0], Inverse[3][0]); + + T Determinant = glm::dot(m[0], Row0); + + Inverse /= Determinant; + + return Inverse; + } +}//namespace glm diff --git a/Part2/src/glm/core/func_noise.hpp b/Part2/src/glm/core/func_noise.hpp new file mode 100644 index 0000000..3e5f874 --- /dev/null +++ b/Part2/src/glm/core/func_noise.hpp @@ -0,0 +1,87 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_noise.hpp +/// @date 2008-08-01 / 2011-06-18 +/// @author Christophe Riccio +/// +/// @see GLSL 4.20.8 specification, section 8.13 Noise Functions +/// +/// @defgroup core_func_noise Noise functions +/// @ingroup core +/// +/// Noise functions are stochastic functions that can be used to increase visual +/// complexity. Values returned by the following noise functions give the +/// appearance of randomness, but are not truly random. +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef glm_core_func_noise +#define glm_core_func_noise GLM_VERSION + +namespace glm +{ + /// @addtogroup core_func_noise + /// @{ + + /// Returns a 1D noise value based on the input value x. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL noise1 man page + /// @see GLSL 4.20.8 specification, section 8.13 Noise Functions + template + GLM_FUNC_DECL typename genType::value_type noise1(genType const & x); + + /// Returns a 2D noise value based on the input value x. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL noise2 man page + /// @see GLSL 4.20.8 specification, section 8.13 Noise Functions + template + GLM_FUNC_DECL detail::tvec2 noise2(genType const & x); + + /// Returns a 3D noise value based on the input value x. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL noise3 man page + /// @see GLSL 4.20.8 specification, section 8.13 Noise Functions + template + GLM_FUNC_DECL detail::tvec3 noise3(genType const & x); + + /// Returns a 4D noise value based on the input value x. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL noise4 man page + /// @see GLSL 4.20.8 specification, section 8.13 Noise Functions + template + GLM_FUNC_DECL detail::tvec4 noise4(genType const & x); + + /// @} +}//namespace glm + +#include "func_noise.inl" + +#endif//glm_core_func_noise diff --git a/Part2/src/glm/core/func_noise.inl b/Part2/src/glm/core/func_noise.inl new file mode 100644 index 0000000..68a1933 --- /dev/null +++ b/Part2/src/glm/core/func_noise.inl @@ -0,0 +1,364 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_noise.inl +/// @date 2008-08-01 / 2011-09-27 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +namespace glm +{ + template + GLM_FUNC_QUALIFIER T noise1(T const & x) + { + return noise1(glm::detail::tvec2(x, T(0))); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec2 noise2(T const & x) + { + return glm::detail::tvec2( + noise1(x + T(0.0)), + noise1(x + T(1.0))); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec3 noise3(T const & x) + { + return glm::detail::tvec3( + noise1(x - T(1.0)), + noise1(x + T(0.0)), + noise1(x + T(1.0))); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec4 noise4(T const & x) + { + return glm::detail::tvec4( + noise1(x - T(1.0)), + noise1(x + T(0.0)), + noise1(x + T(1.0)), + noise1(x + T(2.0))); + } + + template + GLM_FUNC_QUALIFIER T noise1(glm::detail::tvec2 const & v) + { + detail::tvec4 const C = detail::tvec4( + T( 0.211324865405187), // (3.0 - sqrt(3.0)) / 6.0 + T( 0.366025403784439), // 0.5 * (sqrt(3.0) - 1.0) + T(-0.577350269189626), // -1.0 + 2.0 * C.x + T( 0.024390243902439)); // 1.0 / 41.0 + + // First corner + detail::tvec2 i = floor(v + dot(v, detail::tvec2(C[1]))); + detail::tvec2 x0 = v - i + dot(i, detail::tvec2(C[0])); + + // Other corners + //i1.x = step( x0.y, x0.x ); // x0.x > x0.y ? 1.0 : 0.0 + //i1.y = 1.0 - i1.x; + detail::tvec2 i1 = (x0.x > x0.y) ? detail::tvec2(1, 0) : detail::tvec2(0, 1); + // x0 = x0 - 0.0 + 0.0 * C.xx ; + // x1 = x0 - i1 + 1.0 * C.xx ; + // x2 = x0 - 1.0 + 2.0 * C.xx ; + detail::tvec4 x12 = detail::tvec4(x0.x, x0.y, x0.x, x0.y) + detail::tvec4(C.x, C.x, C.z, C.z); + x12 = detail::tvec4(detail::tvec2(x12) - i1, x12.z, x12.w); + + // Permutations + i = mod(i, T(289)); // Avoid truncation effects in permutation + detail::tvec3 p = permute( + permute(i.y + detail::tvec3(T(0), i1.y, T(1))) + + i.x + detail::tvec3(T(0), i1.x, T(1))); + + detail::tvec3 m = max(T(0.5) - detail::tvec3( + dot(x0, x0), + dot(detail::tvec2(x12.x, x12.y), detail::tvec2(x12.x, x12.y)), + dot(detail::tvec2(x12.z, x12.w), detail::tvec2(x12.z, x12.w))), T(0)); + m = m * m ; + m = m * m ; + + // Gradients: 41 points uniformly over a line, mapped onto a diamond. + // The ring size 17*17 = 289 is close to a multiple of 41 (41*7 = 287) + + detail::tvec3 x = T(2) * fract(p * C.w) - T(1); + detail::tvec3 h = abs(x) - T(0.5); + detail::tvec3 ox = floor(x + T(0.5)); + detail::tvec3 a0 = x - ox; + + // Normalise gradients implicitly by scaling m + // Inlined for speed: m *= taylorInvSqrt( a0*a0 + h*h ); + m *= T(1.79284291400159) - T(0.85373472095314) * (a0 * a0 + h * h); + + // Compute final noise value at P + detail::tvec3 g; + g.x = a0.x * x0.x + h.x * x0.y; + //g.yz = a0.yz * x12.xz + h.yz * x12.yw; + g.y = a0.y * x12.x + h.y * x12.y; + g.z = a0.z * x12.z + h.z * x12.w; + return T(130) * dot(m, g); + } + + template + GLM_FUNC_QUALIFIER T noise1(detail::tvec3 const & v) + { + detail::tvec2 const C(1.0 / 6.0, 1.0 / 3.0); + detail::tvec4 const D(0.0, 0.5, 1.0, 2.0); + + // First corner + detail::tvec3 i(floor(v + dot(v, detail::tvec3(C.y)))); + detail::tvec3 x0(v - i + dot(i, detail::tvec3(C.x))); + + // Other corners + detail::tvec3 g(step(detail::tvec3(x0.y, x0.z, x0.x), x0)); + detail::tvec3 l(T(1) - g); + detail::tvec3 i1(min(g, detail::tvec3(l.z, l.x, l.y))); + detail::tvec3 i2(max(g, detail::tvec3(l.z, l.x, l.y))); + + // x0 = x0 - 0.0 + 0.0 * C.xxx; + // x1 = x0 - i1 + 1.0 * C.xxx; + // x2 = x0 - i2 + 2.0 * C.xxx; + // x3 = x0 - 1.0 + 3.0 * C.xxx; + detail::tvec3 x1(x0 - i1 + C.x); + detail::tvec3 x2(x0 - i2 + C.y); // 2.0*C.x = 1/3 = C.y + detail::tvec3 x3(x0 - D.y); // -1.0+3.0*C.x = -0.5 = -D.y + + // Permutations + i = mod289(i); + detail::tvec4 p(permute(permute(permute( + i.z + detail::tvec4(T(0), i1.z, i2.z, T(1))) + + i.y + detail::tvec4(T(0), i1.y, i2.y, T(1))) + + i.x + detail::tvec4(T(0), i1.x, i2.x, T(1)))); + + // Gradients: 7x7 points over a square, mapped onto an octahedron. + // The ring size 17*17 = 289 is close to a multiple of 49 (49*6 = 294) + T n_ = T(0.142857142857); // 1.0/7.0 + detail::tvec3 ns(n_ * detail::tvec3(D.w, D.y, D.z) - detail::tvec3(D.x, D.z, D.x)); + + detail::tvec4 j(p - T(49) * floor(p * ns.z * ns.z)); // mod(p,7*7) + + detail::tvec4 x_(floor(j * ns.z)); + detail::tvec4 y_(floor(j - T(7) * x_)); // mod(j,N) + + detail::tvec4 x(x_ * ns.x + ns.y); + detail::tvec4 y(y_ * ns.x + ns.y); + detail::tvec4 h(T(1) - abs(x) - abs(y)); + + detail::tvec4 b0(x.x, x.y, y.x, y.y); + detail::tvec4 b1(x.z, x.w, y.z, y.w); + + // vec4 s0 = vec4(lessThan(b0,0.0))*2.0 - 1.0; + // vec4 s1 = vec4(lessThan(b1,0.0))*2.0 - 1.0; + detail::tvec4 s0(floor(b0) * T(2) + T(1)); + detail::tvec4 s1(floor(b1) * T(2) + T(1)); + detail::tvec4 sh(-step(h, detail::tvec4(0.0))); + + detail::tvec4 a0 = detail::tvec4(b0.x, b0.z, b0.y, b0.w) + detail::tvec4(s0.x, s0.z, s0.y, s0.w) * detail::tvec4(sh.x, sh.x, sh.y, sh.y); + detail::tvec4 a1 = detail::tvec4(b1.x, b1.z, b1.y, b1.w) + detail::tvec4(s1.x, s1.z, s1.y, s1.w) * detail::tvec4(sh.z, sh.z, sh.w, sh.w); + + detail::tvec3 p0(a0.x, a0.y, h.x); + detail::tvec3 p1(a0.z, a0.w, h.y); + detail::tvec3 p2(a1.x, a1.y, h.z); + detail::tvec3 p3(a1.z, a1.w, h.w); + + // Normalise gradients + detail::tvec4 norm = taylorInvSqrt(detail::tvec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3))); + p0 *= norm.x; + p1 *= norm.y; + p2 *= norm.z; + p3 *= norm.w; + + // Mix final noise value + detail::tvec4 m = max(T(0.6) - detail::tvec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), T(0)); + m = m * m; + return T(42) * dot(m * m, detail::tvec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3))); + } + + template + GLM_FUNC_QUALIFIER T noise1(detail::tvec4 const & v) + { + detail::tvec4 const C( + 0.138196601125011, // (5 - sqrt(5))/20 G4 + 0.276393202250021, // 2 * G4 + 0.414589803375032, // 3 * G4 + -0.447213595499958); // -1 + 4 * G4 + + // (sqrt(5) - 1)/4 = F4, used once below + T const F4 = T(0.309016994374947451); + + // First corner + detail::tvec4 i = floor(v + dot(v, vec4(F4))); + detail::tvec4 x0 = v - i + dot(i, vec4(C.x)); + + // Other corners + + // Rank sorting originally contributed by Bill Licea-Kane, AMD (formerly ATI) + detail::tvec4 i0; + detail::tvec3 isX = step(detail::tvec3(x0.y, x0.z, x0.w), detail::tvec3(x0.x)); + detail::tvec3 isYZ = step(detail::tvec3(x0.z, x0.w, x0.w), detail::tvec3(x0.y, x0.y, x0.z)); + // i0.x = dot(isX, vec3(1.0)); + //i0.x = isX.x + isX.y + isX.z; + //i0.yzw = T(1) - isX; + i0 = detail::tvec4(isX.x + isX.y + isX.z, T(1) - isX); + // i0.y += dot(isYZ.xy, vec2(1.0)); + i0.y += isYZ.x + isYZ.y; + //i0.zw += 1.0 - detail::tvec2(isYZ.x, isYZ.y); + i0.z += T(1) - isYZ.x; + i0.w += T(1) - isYZ.y; + i0.z += isYZ.z; + i0.w += T(1) - isYZ.z; + + // i0 now contains the unique values 0,1,2,3 in each channel + detail::tvec4 i3 = clamp(i0, 0.0, 1.0); + detail::tvec4 i2 = clamp(i0 - 1.0, 0.0, 1.0); + detail::tvec4 i1 = clamp(i0 - 2.0, 0.0, 1.0); + + // x0 = x0 - 0.0 + 0.0 * C.xxxx + // x1 = x0 - i1 + 0.0 * C.xxxx + // x2 = x0 - i2 + 0.0 * C.xxxx + // x3 = x0 - i3 + 0.0 * C.xxxx + // x4 = x0 - 1.0 + 4.0 * C.xxxx + detail::tvec4 x1 = x0 - i1 + C.x; + detail::tvec4 x2 = x0 - i2 + C.y; + detail::tvec4 x3 = x0 - i3 + C.z; + detail::tvec4 x4 = x0 + C.w; + + // Permutations + i = mod(i, T(289)); + T j0 = permute(permute(permute(permute(i.w) + i.z) + i.y) + i.x); + detail::tvec4 j1 = permute(permute(permute(permute( + i.w + detail::tvec4(i1.w, i2.w, i3.w, T(1))) + + i.z + detail::tvec4(i1.z, i2.z, i3.z, T(1))) + + i.y + detail::tvec4(i1.y, i2.y, i3.y, T(1))) + + i.x + detail::tvec4(i1.x, i2.x, i3.x, T(1))); + + // Gradients: 7x7x6 points over a cube, mapped onto a 4-cross polytope + // 7*7*6 = 294, which is close to the ring size 17*17 = 289. + detail::tvec4 ip = detail::tvec4(T(1) / T(294), T(1) / T(49), T(1) / T(7), T(0)); + + detail::tvec4 p0 = grad4(j0, ip); + detail::tvec4 p1 = grad4(j1.x, ip); + detail::tvec4 p2 = grad4(j1.y, ip); + detail::tvec4 p3 = grad4(j1.z, ip); + detail::tvec4 p4 = grad4(j1.w, ip); + + // Normalise gradients + detail::tvec4 norm = taylorInvSqrt(detail::tvec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3))); + p0 *= norm.x; + p1 *= norm.y; + p2 *= norm.z; + p3 *= norm.w; + p4 *= taylorInvSqrt(dot(p4, p4)); + + // Mix contributions from the five corners + detail::tvec3 m0 = max(T(0.6) - detail::tvec3(dot(x0, x0), dot(x1, x1), dot(x2, x2)), T(0)); + detail::tvec2 m1 = max(T(0.6) - detail::tvec2(dot(x3, x3), dot(x4, x4) ), T(0)); + m0 = m0 * m0; + m1 = m1 * m1; + return T(49) * + (dot(m0 * m0, detail::tvec3(dot(p0, x0), dot(p1, x1), dot(p2, x2))) + + dot(m1 * m1, detail::tvec2(dot(p3, x3), dot(p4, x4)))); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec2 noise2(glm::detail::tvec2 const & x) + { + return glm::detail::tvec2( + noise1(x + glm::detail::tvec2(0.0)), + noise1(glm::detail::tvec2(0.0) - x)); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec2 noise2(glm::detail::tvec3 const & x) + { + return glm::detail::tvec2( + noise1(x + glm::detail::tvec3(0.0)), + noise1(glm::detail::tvec3(0.0) - x)); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec2 noise2(glm::detail::tvec4 const & x) + { + return glm::detail::tvec2( + noise1(x + glm::detail::tvec4(0.0)), + noise1(glm::detail::tvec4(0.0) - x)); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec3 noise3(glm::detail::tvec2 const & x) + { + return glm::detail::tvec3( + noise1(x - glm::detail::tvec2(1.0)), + noise1(x + glm::detail::tvec2(0.0)), + noise1(x + glm::detail::tvec2(1.0))); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec3 noise3(glm::detail::tvec3 const & x) + { + return glm::detail::tvec3( + noise1(x - glm::detail::tvec3(1.0)), + noise1(x + glm::detail::tvec3(0.0)), + noise1(x + glm::detail::tvec3(1.0))); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec3 noise3(glm::detail::tvec4 const & x) + { + return glm::detail::tvec3( + noise1(x - glm::detail::tvec4(1.0)), + noise1(x + glm::detail::tvec4(0.0)), + noise1(x + glm::detail::tvec4(1.0))); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec4 noise4(glm::detail::tvec2 const & x) + { + return glm::detail::tvec4( + noise1(x - glm::detail::tvec2(1.0)), + noise1(x + glm::detail::tvec2(0.0)), + noise1(x + glm::detail::tvec2(1.0)), + noise1(x + glm::detail::tvec2(2.0))); + } + + + template + GLM_FUNC_QUALIFIER glm::detail::tvec4 noise4(glm::detail::tvec3 const & x) + { + return glm::detail::tvec4( + noise1(x - glm::detail::tvec3(1.0)), + noise1(x + glm::detail::tvec3(0.0)), + noise1(x + glm::detail::tvec3(1.0)), + noise1(x + glm::detail::tvec3(2.0))); + } + + template + GLM_FUNC_QUALIFIER glm::detail::tvec4 noise4(glm::detail::tvec4 const & x) + { + return glm::detail::tvec4( + noise1(x - glm::detail::tvec4(1.0)), + noise1(x + glm::detail::tvec4(0.0)), + noise1(x + glm::detail::tvec4(1.0)), + noise1(x + glm::detail::tvec4(2.0))); + } + +}//namespace glm diff --git a/Part2/src/glm/core/func_packing.hpp b/Part2/src/glm/core/func_packing.hpp new file mode 100644 index 0000000..b4312e1 --- /dev/null +++ b/Part2/src/glm/core/func_packing.hpp @@ -0,0 +1,193 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_packing.hpp +/// @date 2010-03-17 / 2011-06-15 +/// @author Christophe Riccio +/// +/// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions +/// +/// @defgroup core_func_packing Floating-Point Pack and Unpack Functions +/// @ingroup core +/// +/// These functions do not operate component-wise, rather as described in each case. +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef GLM_CORE_func_packing +#define GLM_CORE_func_packing GLM_VERSION + +namespace glm +{ + /// @addtogroup core_func_packing + /// @{ + + //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. + //! Then, the results are packed into the returned 32-bit unsigned integer. + //! + //! The conversion for component c of v to fixed point is done as follows: + //! packUnorm2x16: round(clamp(c, 0, +1) * 65535.0) + //! + //! The first component of the vector will be written to the least significant bits of the output; + //! the last component will be written to the most significant bits. + //! + /// @see GLSL packUnorm2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL detail::uint32 packUnorm2x16(detail::tvec2 const & v); + + //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. + //! Then, the results are packed into the returned 32-bit unsigned integer. + //! + //! The conversion for component c of v to fixed point is done as follows: + //! packSnorm2x16: round(clamp(v, -1, +1) * 32767.0) + //! + //! The first component of the vector will be written to the least significant bits of the output; + //! the last component will be written to the most significant bits. + //! + /// @see GLSL packSnorm2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL detail::uint32 packSnorm2x16(detail::tvec2 const & v); + + //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. + //! Then, the results are packed into the returned 32-bit unsigned integer. + //! + //! The conversion for component c of v to fixed point is done as follows: + //! packUnorm4x8: round(clamp(c, 0, +1) * 255.0) + //! + //! The first component of the vector will be written to the least significant bits of the output; + //! the last component will be written to the most significant bits. + //! + /// @see GLSL packUnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL detail::uint32 packUnorm4x8(detail::tvec4 const & v); + + //! First, converts each component of the normalized floating-point value v into 8- or 16-bit integer values. + //! Then, the results are packed into the returned 32-bit unsigned integer. + //! + //! The conversion for component c of v to fixed point is done as follows: + //! packSnorm4x8: round(clamp(c, -1, +1) * 127.0) + //! + //! The first component of the vector will be written to the least significant bits of the output; + //! the last component will be written to the most significant bits. + //! + /// @see GLSL packSnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL detail::uint32 packSnorm4x8(detail::tvec4 const & v); + + //! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. + //! Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. + //! + //! The conversion for unpacked fixed-point value f to floating point is done as follows: + //! unpackUnorm2x16: f / 65535.0 + //! + //! The first component of the returned vector will be extracted from the least significant bits of the input; + //! the last component will be extracted from the most significant bits. + //! + /// @see GLSL unpackUnorm2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL detail::tvec2 unpackUnorm2x16(detail::uint32 const & p); + + //! First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. + //! Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. + //! + //! The conversion for unpacked fixed-point value f to floating point is done as follows: + //! unpackSnorm2x16: clamp(f / 32767.0, -1, +1) + //! + //! The first component of the returned vector will be extracted from the least significant bits of the input; + //! the last component will be extracted from the most significant bits. + //! + /// @see GLSL unpackSnorm2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL detail::tvec2 unpackSnorm2x16(detail::uint32 const & p); + + /// First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackUnorm4x8: f / 255.0 + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see GLSL unpackUnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL detail::tvec4 unpackUnorm4x8(detail::uint32 const & p); + + /// First, unpacks a single 32-bit unsigned integer p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers, or four 8-bit signed integers. + /// Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector. + /// + /// The conversion for unpacked fixed-point value f to floating point is done as follows: + /// unpackSnorm4x8: clamp(f / 127.0, -1, +1) + /// + /// The first component of the returned vector will be extracted from the least significant bits of the input; + /// the last component will be extracted from the most significant bits. + /// + /// @see GLSL unpackSnorm4x8 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL detail::tvec4 unpackSnorm4x8(detail::uint32 const & p); + + /// Returns a double-precision value obtained by packing the components of v into a 64-bit value. + /// If an IEEE 754 Inf or NaN is created, it will not signal, and the resulting floating point value is unspecified. + /// Otherwise, the bit- level representation of v is preserved. + /// The first vector component specifies the 32 least significant bits; + /// the second component specifies the 32 most significant bits. + /// + /// @see GLSL packDouble2x32 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL double packDouble2x32(detail::tvec2 const & v); + + /// Returns a two-component unsigned integer vector representation of v. + /// The bit-level representation of v is preserved. + /// The first component of the vector contains the 32 least significant bits of the double; + /// the second component consists the 32 most significant bits. + /// + /// @see GLSL unpackDouble2x32 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL detail::tvec2 unpackDouble2x32(double const & v); + + /// Returns an unsigned integer obtained by converting the components of a two-component floating-point vector + /// to the 16-bit floating-point representation found in the OpenGL Specification, + /// and then packing these two 16- bit integers into a 32-bit unsigned integer. + /// The first vector component specifies the 16 least-significant bits of the result; + /// the second component specifies the 16 most-significant bits. + /// + /// @see GLSL packHalf2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL uint packHalf2x16(vec2 const & v); + + /// Returns a two-component floating-point vector with components obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit values, + /// interpreting those values as 16-bit floating-point numbers according to the OpenGL Specification, + /// and converting them to 32-bit floating-point values. + /// The first component of the vector is obtained from the 16 least-significant bits of v; + /// the second component is obtained from the 16 most-significant bits of v. + /// + /// @see GLSL unpackHalf2x16 man page + /// @see GLSL 4.20.8 specification, section 8.4 Floating-Point Pack and Unpack Functions + GLM_FUNC_DECL vec2 unpackHalf2x16(uint const & v); + + /// @} +}//namespace glm + +#include "func_packing.inl" + +#endif//GLM_CORE_func_packing + diff --git a/Part2/src/glm/core/func_packing.inl b/Part2/src/glm/core/func_packing.inl new file mode 100644 index 0000000..e10e161 --- /dev/null +++ b/Part2/src/glm/core/func_packing.inl @@ -0,0 +1,208 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_packing.inl +/// @date 2010-03-17 / 2011-06-15 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +namespace glm +{ + GLM_FUNC_QUALIFIER detail::uint32 packUnorm2x16(detail::tvec2 const & v) + { + detail::uint16 A(detail::uint16(round(clamp(v.x, 0.0f, 1.0f) * 65535.0f))); + detail::uint16 B(detail::uint16(round(clamp(v.y, 0.0f, 1.0f) * 65535.0f))); + return detail::uint32((B << 16) | A); + } + + GLM_FUNC_QUALIFIER detail::tvec2 unpackUnorm2x16(detail::uint32 const & p) + { + detail::uint32 Mask16((1 << 16) - 1); + detail::uint32 A((p >> 0) & Mask16); + detail::uint32 B((p >> 16) & Mask16); + return detail::tvec2( + A * 1.0f / 65535.0f, + B * 1.0f / 65535.0f); + } + + GLM_FUNC_QUALIFIER detail::uint32 packSnorm2x16(detail::tvec2 const & v) + { + union iu + { + detail::int16 i; + detail::uint16 u; + } A, B; + + detail::tvec2 Unpack = clamp(v ,-1.0f, 1.0f) * 32767.0f; + A.i = detail::int16(round(Unpack.x)); + B.i = detail::int16(round(Unpack.y)); + detail::uint32 Pack = (detail::uint32(B.u) << 16) | (detail::uint32(A.u) << 0); + return Pack; + } + + GLM_FUNC_QUALIFIER detail::tvec2 unpackSnorm2x16(detail::uint32 const & p) + { + union iu + { + detail::int16 i; + detail::uint16 u; + } A, B; + + detail::uint32 Mask16((1 << 16) - 1); + A.u = detail::uint16((p >> 0) & Mask16); + B.u = detail::uint16((p >> 16) & Mask16); + detail::tvec2 Pack(A.i, B.i); + + return clamp(Pack * 1.0f / 32767.0f, -1.0f, 1.0f); + } + + GLM_FUNC_QUALIFIER detail::uint32 packUnorm4x8(detail::tvec4 const & v) + { + detail::uint8 A((detail::uint8)round(clamp(v.x, 0.0f, 1.0f) * 255.0f)); + detail::uint8 B((detail::uint8)round(clamp(v.y, 0.0f, 1.0f) * 255.0f)); + detail::uint8 C((detail::uint8)round(clamp(v.z, 0.0f, 1.0f) * 255.0f)); + detail::uint8 D((detail::uint8)round(clamp(v.w, 0.0f, 1.0f) * 255.0f)); + return detail::uint32((D << 24) | (C << 16) | (B << 8) | A); + } + + GLM_FUNC_QUALIFIER detail::tvec4 unpackUnorm4x8(detail::uint32 const & p) + { + detail::uint32 Mask8((1 << 8) - 1); + detail::uint32 A((p >> 0) & Mask8); + detail::uint32 B((p >> 8) & Mask8); + detail::uint32 C((p >> 16) & Mask8); + detail::uint32 D((p >> 24) & Mask8); + return detail::tvec4( + A * 1.0f / 255.0f, + B * 1.0f / 255.0f, + C * 1.0f / 255.0f, + D * 1.0f / 255.0f); + } + + GLM_FUNC_QUALIFIER detail::uint32 packSnorm4x8(detail::tvec4 const & v) + { + union iu + { + detail::int8 i; + detail::uint8 u; + } A, B, C, D; + + detail::tvec4 Unpack = clamp(v ,-1.0f, 1.0f) * 127.0f; + A.i = detail::int8(round(Unpack.x)); + B.i = detail::int8(round(Unpack.y)); + C.i = detail::int8(round(Unpack.z)); + D.i = detail::int8(round(Unpack.w)); + detail::uint32 Pack = (detail::uint32(D.u) << 24) | (detail::uint32(C.u) << 16) | (detail::uint32(B.u) << 8) | (detail::uint32(A.u) << 0); + return Pack; + } + + GLM_FUNC_QUALIFIER detail::tvec4 unpackSnorm4x8(detail::uint32 const & p) + { + union iu + { + detail::int8 i; + detail::uint8 u; + } A, B, C, D; + + detail::uint32 Mask8((1 << 8) - 1); + A.u = detail::uint8((p >> 0) & Mask8); + B.u = detail::uint8((p >> 8) & Mask8); + C.u = detail::uint8((p >> 16) & Mask8); + D.u = detail::uint8((p >> 24) & Mask8); + detail::tvec4 Pack(A.i, B.i, C.i, D.i); + + return clamp(Pack * 1.0f / 127.0f, -1.0f, 1.0f); + } + + GLM_FUNC_QUALIFIER double packDouble2x32(detail::tvec2 const & v) + { + struct uint32_pair + { + detail::uint32 x; + detail::uint32 y; + }; + + union helper + { + uint32_pair input; + double output; + } Helper; + + Helper.input.x = v.x; + Helper.input.y = v.y; + + return Helper.output; + //return *(double*)&v; + } + + GLM_FUNC_QUALIFIER detail::tvec2 unpackDouble2x32(double const & v) + { + struct uint32_pair + { + detail::uint32 x; + detail::uint32 y; + }; + + union helper + { + double input; + uint32_pair output; + } Helper; + + Helper.input = v; + + return detail::tvec2(Helper.output.x, Helper.output.y); + } + + GLM_FUNC_QUALIFIER uint packHalf2x16(detail::tvec2 const & v) + { + union helper + { + uint other; + struct + { + detail::hdata a, b; + } orig; + } Pack; + + Pack.orig.a = detail::toFloat16(v.x); + Pack.orig.b = detail::toFloat16(v.y); + return Pack.other; + } + + GLM_FUNC_QUALIFIER vec2 unpackHalf2x16(uint const & v) + { + union helper + { + uint other; + struct + { + detail::hdata a, b; + } orig; + } Unpack; + Unpack.other = v; + + return vec2(detail::toFloat32(Unpack.orig.a), detail::toFloat32(Unpack.orig.b)); + } +}//namespace glm + diff --git a/Part2/src/glm/core/func_trigonometric.hpp b/Part2/src/glm/core/func_trigonometric.hpp new file mode 100644 index 0000000..9954d9c --- /dev/null +++ b/Part2/src/glm/core/func_trigonometric.hpp @@ -0,0 +1,203 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_trigonometric.hpp +/// @date 2008-08-01 / 2011-06-15 +/// @author Christophe Riccio +/// +/// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions +/// +/// @defgroup core_func_trigonometric Angle and Trigonometry Functions +/// @ingroup core +/// +/// Function parameters specified as angle are assumed to be in units of radians. +/// In no case will any of these functions result in a divide by zero error. If +/// the divisor of a ratio is 0, then results will be undefined. +/// +/// These all operate component-wise. The description is per component. +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef GLM_CORE_func_trigonometric +#define GLM_CORE_func_trigonometric GLM_VERSION + +namespace glm +{ + /// @addtogroup core_func_trigonometric + /// @{ + + /// Converts degrees to radians and returns the result. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL radians man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType radians(genType const & degrees); + + /// Converts radians to degrees and returns the result. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL degrees man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType degrees(genType const & radians); + + /// The standard trigonometric sine function. + /// The values returned by this function will range from [-1, 1]. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL sin man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType sin(genType const & angle); + + /// The standard trigonometric cosine function. + /// The values returned by this function will range from [-1, 1]. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL cos man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType cos(genType const & angle); + + /// The standard trigonometric tangent function. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL tan man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType tan(genType const & angle); + + /// Arc sine. Returns an angle whose sine is x. + /// The range of values returned by this function is [-PI/2, PI/2]. + /// Results are undefined if |x| > 1. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL asin man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType asin(genType const & x); + + /// Arc cosine. Returns an angle whose sine is x. + /// The range of values returned by this function is [0, PI]. + /// Results are undefined if |x| > 1. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL acos man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType acos(genType const & x); + + /// Arc tangent. Returns an angle whose tangent is y/x. + /// The signs of x and y are used to determine what + /// quadrant the angle is in. The range of values returned + /// by this function is [-PI, PI]. Results are undefined + /// if x and y are both 0. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL atan man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType atan(genType const & y, genType const & x); + + /// Arc tangent. Returns an angle whose tangent is y_over_x. + /// The range of values returned by this function is [-PI/2, PI/2]. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL atan man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType atan(genType const & y_over_x); + + /// Returns the hyperbolic sine function, (exp(x) - exp(-x)) / 2 + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL sinh man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType sinh(genType const & angle); + + /// Returns the hyperbolic cosine function, (exp(x) + exp(-x)) / 2 + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL cosh man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType cosh(genType const & angle); + + /// Returns the hyperbolic tangent function, sinh(angle) / cosh(angle) + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL tanh man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType tanh(genType const & angle); + + /// Arc hyperbolic sine; returns the inverse of sinh. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL asinh man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType asinh(genType const & x); + + /// Arc hyperbolic cosine; returns the non-negative inverse + /// of cosh. Results are undefined if x < 1. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL acosh man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType acosh(genType const & x); + + /// Arc hyperbolic tangent; returns the inverse of tanh. + /// Results are undefined if abs(x) >= 1. + /// + /// @tparam genType Floating-point scalar or vector types. + /// + /// @see GLSL atanh man page + /// @see GLSL 4.20.8 specification, section 8.1 Angle and Trigonometry Functions + template + GLM_FUNC_DECL genType atanh(genType const & x); + + /// @} +}//namespace glm + +#include "func_trigonometric.inl" + +#endif//GLM_CORE_func_trigonometric + + diff --git a/Part2/src/glm/core/func_trigonometric.inl b/Part2/src/glm/core/func_trigonometric.inl new file mode 100644 index 0000000..bd59cd7 --- /dev/null +++ b/Part2/src/glm/core/func_trigonometric.inl @@ -0,0 +1,244 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_trigonometric.inl +/// @date 2008-08-03 / 2011-06-15 +/// @author Christophe Riccio +/////////////////////////////////////////////////////////////////////////////////// + +namespace glm +{ + // radians + template + GLM_FUNC_QUALIFIER genType radians + ( + genType const & degrees + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'radians' only accept floating-point input"); + + genType const pi = genType(3.1415926535897932384626433832795); + return degrees * (pi / genType(180)); + } + + VECTORIZE_VEC(radians) + + // degrees + template + GLM_FUNC_QUALIFIER genType degrees + ( + genType const & radians + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'degrees' only accept floating-point input"); + + const genType pi = genType(3.1415926535897932384626433832795); + return radians * (genType(180) / pi); + } + + VECTORIZE_VEC(degrees) + + // sin + template + GLM_FUNC_QUALIFIER genType sin + ( + genType const & angle + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'sin' only accept floating-point input"); + + return genType(::std::sin(angle)); + } + + VECTORIZE_VEC(sin) + + // cos + template + GLM_FUNC_QUALIFIER genType cos(genType const & angle) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'cos' only accept floating-point input"); + + return genType(::std::cos(angle)); + } + + VECTORIZE_VEC(cos) + + // tan + template + GLM_FUNC_QUALIFIER genType tan + ( + genType const & angle + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'tan' only accept floating-point input"); + + return genType(::std::tan(angle)); + } + + VECTORIZE_VEC(tan) + + // asin + template + GLM_FUNC_QUALIFIER genType asin + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'asin' only accept floating-point input"); + + return genType(::std::asin(x)); + } + + VECTORIZE_VEC(asin) + + // acos + template + GLM_FUNC_QUALIFIER genType acos + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'acos' only accept floating-point input"); + + return genType(::std::acos(x)); + } + + VECTORIZE_VEC(acos) + + // atan + template + GLM_FUNC_QUALIFIER genType atan + ( + genType const & y, + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'atan' only accept floating-point input"); + + return genType(::std::atan2(y, x)); + } + + VECTORIZE_VEC_VEC(atan) + + template + GLM_FUNC_QUALIFIER genType atan + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'atan' only accept floating-point input"); + + return genType(::std::atan(x)); + } + + VECTORIZE_VEC(atan) + + // sinh + template + GLM_FUNC_QUALIFIER genType sinh + ( + genType const & angle + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'sinh' only accept floating-point input"); + + return genType(std::sinh(angle)); + } + + VECTORIZE_VEC(sinh) + + // cosh + template + GLM_FUNC_QUALIFIER genType cosh + ( + genType const & angle + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'cosh' only accept floating-point input"); + + return genType(std::cosh(angle)); + } + + VECTORIZE_VEC(cosh) + + // tanh + template + GLM_FUNC_QUALIFIER genType tanh + ( + genType const & angle + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'tanh' only accept floating-point input"); + + return genType(std::tanh(angle)); + } + + VECTORIZE_VEC(tanh) + + // asinh + template + GLM_FUNC_QUALIFIER genType asinh + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'asinh' only accept floating-point input"); + + return (x < genType(0) ? genType(-1) : (x > genType(0) ? genType(1) : genType(0))) * log(abs(x) + sqrt(genType(1) + x * x)); + } + + VECTORIZE_VEC(asinh) + + // acosh + template + GLM_FUNC_QUALIFIER genType acosh + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'acosh' only accept floating-point input"); + + if(x < genType(1)) + return genType(0); + return log(x + sqrt(x * x - genType(1))); + } + + VECTORIZE_VEC(acosh) + + // atanh + template + GLM_FUNC_QUALIFIER genType atanh + ( + genType const & x + ) + { + GLM_STATIC_ASSERT(detail::type::is_float, "'atanh' only accept floating-point input"); + + if(abs(x) >= genType(1)) + return 0; + return genType(0.5) * log((genType(1) + x) / (genType(1) - x)); + } + + VECTORIZE_VEC(atanh) + +}//namespace glm diff --git a/Part2/src/glm/core/func_vector_relational.hpp b/Part2/src/glm/core/func_vector_relational.hpp new file mode 100644 index 0000000..4ffe14e --- /dev/null +++ b/Part2/src/glm/core/func_vector_relational.hpp @@ -0,0 +1,138 @@ +/////////////////////////////////////////////////////////////////////////////////// +/// OpenGL Mathematics (glm.g-truc.net) +/// +/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net) +/// Permission is hereby granted, free of charge, to any person obtaining a copy +/// of this software and associated documentation files (the "Software"), to deal +/// in the Software without restriction, including without limitation the rights +/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +/// copies of the Software, and to permit persons to whom the Software is +/// furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice shall be included in +/// all copies or substantial portions of the Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +/// THE SOFTWARE. +/// +/// @ref core +/// @file glm/core/func_vector_relational.hpp +/// @date 2008-08-03 / 2011-06-15 +/// @author Christophe Riccio +/// +/// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions +/// +/// @defgroup core_func_vector_relational Vector Relational Functions +/// @ingroup core +/// +/// Relational and equality operators (<, <=, >, >=, ==, !=) are defined to +/// operate on scalars and produce scalar Boolean results. For vector results, +/// use the following built-in functions. +/// +/// In all cases, the sizes of all the input and return vectors for any particular +/// call must match. +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef GLM_CORE_func_vector_relational +#define GLM_CORE_func_vector_relational GLM_VERSION + +#include "_detail.hpp" + +namespace glm +{ + /// @addtogroup core_func_vector_relational + /// @{ + + /// Returns the component-wise comparison result of x < y. + /// + /// @tparam vecType Floating-point or integer vector types. + /// + /// @see GLSL lessThan man page + /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions + template + GLM_FUNC_DECL typename vecType::bool_type lessThan(vecType const & x, vecType const & y); + + /// Returns the component-wise comparison of result x <= y. + /// + /// @tparam vecType Floating-point or integer vector types. + /// + /// @see GLSL lessThanEqual man page + /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions + template + GLM_FUNC_DECL typename vecType::bool_type lessThanEqual(vecType const & x, vecType const & y); + + /// Returns the component-wise comparison of result x > y. + /// + /// @tparam vecType Floating-point or integer vector types. + /// + /// @see GLSL greaterThan man page + /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions + template + GLM_FUNC_DECL typename vecType::bool_type greaterThan(vecType const & x, vecType const & y); + + /// Returns the component-wise comparison of result x >= y. + /// + /// @tparam vecType Floating-point or integer vector types. + /// + /// @see GLSL greaterThanEqual man page + /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions + template + GLM_FUNC_DECL typename vecType::bool_type greaterThanEqual(vecType const & x, vecType const & y); + + /// Returns the component-wise comparison of result x == y. + /// + /// @tparam vecType Floating-point, integer or boolean vector types. + /// + /// @see GLSL equal man page + /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions + template + GLM_FUNC_DECL typename vecType::bool_type equal(vecType const & x, vecType const & y); + + /// Returns the component-wise comparison of result x != y. + /// + /// @tparam vecType Floating-point, integer or boolean vector types. + /// + /// @see GLSL notEqual man page + /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions + template + GLM_FUNC_DECL typename vecType::bool_type notEqual(vecType const & x, vecType const & y); + + /// Returns true if any component of x is true. + /// + /// @tparam vecType Boolean vector types. + /// + /// @see GLSL any man page + /// @see GLSL 4.20.8 specification, section 8.7 Vector Relational Functions + template