From 7da461cf3fb48cee15522c3e3b26ff4dd486a15c Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Mon, 1 Jun 2015 20:57:24 +0200 Subject: [PATCH] Libraries upgraded to VC12. Except for OpenAL. OpenAL is special. Also broken. --- Escape-the-Dawn/Escape-the-Dawn.vcxproj | 14 +- Escape-the-Dawn/Escape-the-Dawn.vcxproj.orig | 183 - Escape-the-Dawn/GameWorld.cpp.orig | 169 - Escape-the-Dawn/OpenAL32.dll | Bin 538624 -> 0 bytes Libraries/glm-0.9.5.2/CMakeLists.txt | 133 - Libraries/glm-0.9.5.2/CTestConfig.cmake | 13 - Libraries/glm-0.9.5.2/glm/detail/dummy.cpp | 82 - Libraries/glm-0.9.5.2/test/.DS_Store | Bin 6148 -> 0 bytes Libraries/glm-0.9.5.2/test/CMakeLists.txt | 15 - Libraries/glm-0.9.5.2/test/bug/CMakeLists.txt | 0 .../glm-0.9.5.2/test/core/CMakeLists.txt | 32 - .../test/core/core_func_common.cpp | 645 --- .../test/core/core_func_exponential.cpp | 45 - .../test/core/core_func_geometric.cpp | 72 - .../test/core/core_func_integer.cpp | 235 - .../test/core/core_func_matrix.cpp | 251 -- .../glm-0.9.5.2/test/core/core_func_noise.cpp | 18 - .../test/core/core_func_packing.cpp | 165 - .../test/core/core_func_swizzle.cpp | 87 - .../test/core/core_func_trigonometric.cpp | 19 - .../test/core/core_func_vector_relational.cpp | 19 - .../test/core/core_setup_message.cpp | 260 -- .../test/core/core_setup_precision.cpp | 67 - .../glm-0.9.5.2/test/core/core_type_cast.cpp | 98 - .../glm-0.9.5.2/test/core/core_type_float.cpp | 41 - .../glm-0.9.5.2/test/core/core_type_int.cpp | 53 - .../test/core/core_type_length.cpp | 89 - .../test/core/core_type_mat2x2.cpp | 111 - .../test/core/core_type_mat2x3.cpp | 84 - .../test/core/core_type_mat2x4.cpp | 87 - .../test/core/core_type_mat3x2.cpp | 90 - .../test/core/core_type_mat3x3.cpp | 150 - .../test/core/core_type_mat3x4.cpp | 89 - .../test/core/core_type_mat4x2.cpp | 93 - .../test/core/core_type_mat4x3.cpp | 94 - .../test/core/core_type_mat4x4.cpp | 257 -- .../glm-0.9.5.2/test/core/core_type_vec1.cpp | 58 - .../glm-0.9.5.2/test/core/core_type_vec2.cpp | 286 -- .../glm-0.9.5.2/test/core/core_type_vec3.cpp | 455 -- .../glm-0.9.5.2/test/core/core_type_vec4.cpp | 390 -- .../test/external/gli/CMakeLists.txt | 27 - .../test/external/gli/core/dummy.cpp | 4 - .../external/gli/core/generate_mipmaps.hpp | 25 - .../external/gli/core/generate_mipmaps.inl | 69 - .../test/external/gli/core/image2d.hpp | 169 - .../test/external/gli/core/image2d.inl | 229 - .../test/external/gli/core/operation.hpp | 82 - .../test/external/gli/core/operation.inl | 233 - .../test/external/gli/core/operator.hpp | 28 - .../test/external/gli/core/operator.inl | 210 - .../test/external/gli/core/shared_array.hpp | 48 - .../test/external/gli/core/shared_array.inl | 151 - .../test/external/gli/core/shared_ptr.hpp | 41 - .../test/external/gli/core/shared_ptr.inl | 125 - .../test/external/gli/core/size.hpp | 31 - .../test/external/gli/core/size.inl | 47 - .../test/external/gli/core/texture2d.hpp | 122 - .../test/external/gli/core/texture2d.inl | 304 -- .../external/gli/core/texture2d_array.hpp | 59 - .../external/gli/core/texture2d_array.inl | 78 - .../test/external/gli/core/texture_cube.hpp | 65 - .../test/external/gli/core/texture_cube.inl | 70 - .../external/gli/core/texture_cube_array.hpp | 59 - .../external/gli/core/texture_cube_array.inl | 72 - .../glm-0.9.5.2/test/external/gli/gli.hpp | 31 - .../test/external/gli/gtx/compression.hpp | 27 - .../test/external/gli/gtx/compression.inl | 8 - .../test/external/gli/gtx/fetch.hpp | 46 - .../test/external/gli/gtx/fetch.inl | 91 - .../test/external/gli/gtx/gl_texture2d.hpp | 33 - .../test/external/gli/gtx/gl_texture2d.inl | 210 - .../test/external/gli/gtx/gradient.hpp | 38 - .../test/external/gli/gtx/gradient.inl | 74 - .../test/external/gli/gtx/loader.hpp | 37 - .../test/external/gli/gtx/loader.inl | 46 - .../test/external/gli/gtx/loader_dds10.hpp | 35 - .../test/external/gli/gtx/loader_dds10.inl | 595 --- .../test/external/gli/gtx/loader_dds9.hpp | 39 - .../test/external/gli/gtx/loader_dds9.inl | 790 ---- .../test/external/gli/gtx/loader_tga.hpp | 36 - .../test/external/gli/gtx/loader_tga.inl | 159 - .../test/external/gli/gtx/wavelet.hpp | 27 - .../test/external/gli/gtx/wavelet.inl | 8 - Libraries/glm-0.9.5.2/test/glm.cppcheck | 6 - Libraries/glm-0.9.5.2/test/gtc/CMakeLists.txt | 14 - .../glm-0.9.5.2/test/gtc/gtc_constants.cpp | 38 - .../glm-0.9.5.2/test/gtc/gtc_epsilon.cpp | 87 - .../test/gtc/gtc_matrix_access.cpp | 391 -- .../test/gtc/gtc_matrix_integer.cpp | 18 - .../test/gtc/gtc_matrix_inverse.cpp | 18 - .../test/gtc/gtc_matrix_transform.cpp | 26 - Libraries/glm-0.9.5.2/test/gtc/gtc_noise.cpp | 199 - .../glm-0.9.5.2/test/gtc/gtc_packing.cpp | 267 -- .../glm-0.9.5.2/test/gtc/gtc_quaternion.cpp | 284 -- Libraries/glm-0.9.5.2/test/gtc/gtc_random.cpp | 197 - .../glm-0.9.5.2/test/gtc/gtc_reciprocal.cpp | 18 - .../test/gtc/gtc_type_precision.cpp | 900 ---- .../glm-0.9.5.2/test/gtc/gtc_type_ptr.cpp | 262 -- Libraries/glm-0.9.5.2/test/gtc/gtc_ulp.cpp | 107 - Libraries/glm-0.9.5.2/test/gtx/CMakeLists.txt | 46 - .../test/gtx/gtx_associated_min_max.cpp | 19 - Libraries/glm-0.9.5.2/test/gtx/gtx_bit.cpp | 515 --- .../test/gtx/gtx_closest_point.cpp | 19 - .../glm-0.9.5.2/test/gtx/gtx_color_space.cpp | 19 - .../test/gtx/gtx_color_space_YCoCg.cpp | 19 - .../test/gtx/gtx_compatibility.cpp | 19 - .../test/gtx/gtx_component_wise.cpp | 19 - .../test/gtx/gtx_dual_quaternion.cpp | 175 - .../glm-0.9.5.2/test/gtx/gtx_euler_angle.cpp | 43 - Libraries/glm-0.9.5.2/test/gtx/gtx_extend.cpp | 19 - .../test/gtx/gtx_extented_min_max.cpp | 19 - .../test/gtx/gtx_fast_exponential.cpp | 19 - .../test/gtx/gtx_fast_square_root.cpp | 37 - .../test/gtx/gtx_fast_trigonometry.cpp | 19 - .../test/gtx/gtx_gradient_paint.cpp | 43 - .../test/gtx/gtx_handed_coordinate_space.cpp | 19 - .../glm-0.9.5.2/test/gtx/gtx_inertia.cpp | 19 - .../test/gtx/gtx_int_10_10_10_2.cpp | 18 - .../glm-0.9.5.2/test/gtx/gtx_integer.cpp | 72 - .../glm-0.9.5.2/test/gtx/gtx_intersect.cpp | 19 - Libraries/glm-0.9.5.2/test/gtx/gtx_io.cpp | 140 - .../glm-0.9.5.2/test/gtx/gtx_log_base.cpp | 19 - .../test/gtx/gtx_matrix_cross_product.cpp | 19 - .../test/gtx/gtx_matrix_interpolation.cpp | 20 - .../test/gtx/gtx_matrix_major_storage.cpp | 19 - .../test/gtx/gtx_matrix_operation.cpp | 19 - .../glm-0.9.5.2/test/gtx/gtx_matrix_query.cpp | 75 - .../test/gtx/gtx_mixed_product.cpp | 18 - .../glm-0.9.5.2/test/gtx/gtx_multiple.cpp | 116 - Libraries/glm-0.9.5.2/test/gtx/gtx_norm.cpp | 19 - Libraries/glm-0.9.5.2/test/gtx/gtx_normal.cpp | 19 - .../test/gtx/gtx_normalize_dot.cpp | 19 - .../test/gtx/gtx_number_precision.cpp | 19 - .../glm-0.9.5.2/test/gtx/gtx_optimum_pow.cpp | 20 - .../test/gtx/gtx_orthonormalize.cpp | 20 - .../test/gtx/gtx_perpendicular.cpp | 20 - .../test/gtx/gtx_polar_coordinates.cpp | 20 - .../glm-0.9.5.2/test/gtx/gtx_projection.cpp | 20 - .../glm-0.9.5.2/test/gtx/gtx_quaternion.cpp | 99 - Libraries/glm-0.9.5.2/test/gtx/gtx_random.cpp | 99 - .../test/gtx/gtx_rotate_normalized_axis.cpp | 38 - .../test/gtx/gtx_rotate_vector.cpp | 85 - .../test/gtx/gtx_scalar_relational.cpp | 180 - .../glm-0.9.5.2/test/gtx/gtx_simd_mat4.cpp | 305 -- .../glm-0.9.5.2/test/gtx/gtx_simd_vec4.cpp | 50 - Libraries/glm-0.9.5.2/test/gtx/gtx_spline.cpp | 108 - .../glm-0.9.5.2/test/gtx/gtx_string_cast.cpp | 90 - .../glm-0.9.5.2/test/gtx/gtx_vector_angle.cpp | 69 - .../glm-0.9.5.2/test/gtx/gtx_vector_query.cpp | 89 - Libraries/glm-0.9.5.2/util/FindGLM.cmake | 63 - Libraries/glm-0.9.5.2/util/autoexp.txt | 28 - Libraries/glm-0.9.5.2/util/autoexp.vc2010.dat | 3896 ----------------- Libraries/glm-0.9.5.2/util/glm.natvis | 31 - Libraries/glm-0.9.5.2/util/usertype.dat | 407 -- .../{glm-0.9.5.2 => glm-0.9.5.3}/copying.txt | 0 .../glm/CMakeLists.txt | 0 .../glm/common.hpp | 0 .../glm/detail/_features.hpp | 0 .../glm/detail/_fixes.hpp | 0 .../glm/detail/_literals.hpp | 0 .../glm/detail/_noise.hpp | 0 .../glm/detail/_swizzle.hpp | 0 .../glm/detail/_swizzle_func.hpp | 0 .../glm/detail/_vectorize.hpp | 0 Libraries/glm-0.9.5.3/glm/detail/dummy.cpp | 190 + .../glm/detail/func_common.hpp | 0 .../glm/detail/func_common.inl | 0 .../glm/detail/func_exponential.hpp | 0 .../glm/detail/func_exponential.inl | 28 +- .../glm/detail/func_geometric.hpp | 0 .../glm/detail/func_geometric.inl | 15 +- .../glm/detail/func_integer.hpp | 0 .../glm/detail/func_integer.inl | 18 +- .../glm/detail/func_matrix.hpp | 0 .../glm/detail/func_matrix.inl | 0 .../glm/detail/func_noise.hpp | 0 .../glm/detail/func_noise.inl | 0 .../glm/detail/func_packing.hpp | 0 .../glm/detail/func_packing.inl | 0 .../glm/detail/func_trigonometric.hpp | 0 .../glm/detail/func_trigonometric.inl | 0 .../glm/detail/func_vector_relational.hpp | 0 .../glm/detail/func_vector_relational.inl | 0 .../glm/detail/glm.cpp | 0 .../glm/detail/hint.hpp | 0 .../glm/detail/intrinsic_common.hpp | 0 .../glm/detail/intrinsic_common.inl | 0 .../glm/detail/intrinsic_exponential.hpp | 0 .../glm/detail/intrinsic_exponential.inl | 0 .../glm/detail/intrinsic_geometric.hpp | 0 .../glm/detail/intrinsic_geometric.inl | 2 +- .../glm/detail/intrinsic_integer.hpp | 0 .../glm/detail/intrinsic_integer.inl | 0 .../glm/detail/intrinsic_matrix.hpp | 0 .../glm/detail/intrinsic_matrix.inl | 0 .../glm/detail/intrinsic_trigonometric.hpp | 0 .../glm/detail/intrinsic_trigonometric.inl | 0 .../detail/intrinsic_vector_relational.hpp | 0 .../detail/intrinsic_vector_relational.inl | 0 .../glm/detail/precision.hpp | 0 .../glm/detail/precision.inl | 0 .../glm/detail/setup.hpp | 61 +- .../glm/detail/type_float.hpp | 0 .../glm/detail/type_gentype.hpp | 0 .../glm/detail/type_gentype.inl | 0 .../glm/detail/type_half.hpp | 0 .../glm/detail/type_half.inl | 0 .../glm/detail/type_int.hpp | 0 .../glm/detail/type_mat.hpp | 0 .../glm/detail/type_mat.inl | 0 .../glm/detail/type_mat2x2.hpp | 0 .../glm/detail/type_mat2x2.inl | 0 .../glm/detail/type_mat2x3.hpp | 2 +- .../glm/detail/type_mat2x3.inl | 0 .../glm/detail/type_mat2x4.hpp | 0 .../glm/detail/type_mat2x4.inl | 0 .../glm/detail/type_mat3x2.hpp | 0 .../glm/detail/type_mat3x2.inl | 0 .../glm/detail/type_mat3x3.hpp | 0 .../glm/detail/type_mat3x3.inl | 0 .../glm/detail/type_mat3x4.hpp | 0 .../glm/detail/type_mat3x4.inl | 0 .../glm/detail/type_mat4x2.hpp | 0 .../glm/detail/type_mat4x2.inl | 0 .../glm/detail/type_mat4x3.hpp | 0 .../glm/detail/type_mat4x3.inl | 0 .../glm/detail/type_mat4x4.hpp | 0 .../glm/detail/type_mat4x4.inl | 0 .../glm/detail/type_vec.hpp | 0 .../glm/detail/type_vec.inl | 0 .../glm/detail/type_vec1.hpp | 0 .../glm/detail/type_vec1.inl | 0 .../glm/detail/type_vec2.hpp | 0 .../glm/detail/type_vec2.inl | 0 .../glm/detail/type_vec3.hpp | 0 .../glm/detail/type_vec3.inl | 0 .../glm/detail/type_vec4.hpp | 0 .../glm/detail/type_vec4.inl | 0 .../glm/exponential.hpp | 0 .../{glm-0.9.5.2 => glm-0.9.5.3}/glm/ext.hpp | 4 +- .../{glm-0.9.5.2 => glm-0.9.5.3}/glm/fwd.hpp | 0 .../glm/geometric.hpp | 0 .../{glm-0.9.5.2 => glm-0.9.5.3}/glm/glm.hpp | 0 .../glm/gtc/constants.hpp | 0 .../glm/gtc/constants.inl | 0 .../glm/gtc/epsilon.hpp | 0 .../glm/gtc/epsilon.inl | 0 .../glm/gtc/matrix_access.hpp | 8 +- .../glm/gtc/matrix_access.inl | 0 .../glm/gtc/matrix_integer.hpp | 0 .../glm/gtc/matrix_inverse.hpp | 4 +- .../glm/gtc/matrix_inverse.inl | 0 .../glm/gtc/matrix_transform.hpp | 0 .../glm/gtc/matrix_transform.inl | 21 - .../glm/gtc/noise.hpp | 6 +- .../glm/gtc/noise.inl | 0 .../glm/gtc/packing.hpp | 0 .../glm/gtc/packing.inl | 0 .../glm/gtc/quaternion.hpp | 0 .../glm/gtc/quaternion.inl | 0 .../glm/gtc/random.hpp | 0 .../glm/gtc/random.inl | 0 .../glm/gtc/reciprocal.hpp | 0 .../glm/gtc/reciprocal.inl | 0 .../glm/gtc/type_precision.hpp | 0 .../glm/gtc/type_precision.inl | 0 .../glm/gtc/type_ptr.hpp | 0 .../glm/gtc/type_ptr.inl | 0 .../glm/gtc/ulp.hpp | 0 .../glm/gtc/ulp.inl | 44 +- .../glm/gtx/associated_min_max.hpp | 12 +- .../glm/gtx/associated_min_max.inl | 0 .../glm/gtx/bit.hpp | 0 .../glm/gtx/bit.inl | 136 +- .../glm/gtx/closest_point.hpp | 2 +- .../glm/gtx/closest_point.inl | 0 .../glm/gtx/color_space.hpp | 12 +- .../glm/gtx/color_space.inl | 0 .../glm/gtx/color_space_YCoCg.hpp | 8 +- .../glm/gtx/color_space_YCoCg.inl | 0 .../glm/gtx/compatibility.hpp | 8 +- .../glm/gtx/compatibility.inl | 16 +- .../glm/gtx/component_wise.hpp | 8 +- .../glm/gtx/component_wise.inl | 0 .../glm/gtx/constants.hpp | 0 .../glm/gtx/dual_quaternion.hpp | 54 +- .../glm/gtx/dual_quaternion.inl | 0 .../glm/gtx/epsilon.hpp | 0 .../glm/gtx/euler_angles.hpp | 30 +- .../glm/gtx/euler_angles.inl | 36 +- .../glm/gtx/extend.hpp | 0 .../glm/gtx/extend.inl | 0 .../glm/gtx/extented_min_max.hpp | 72 +- .../glm/gtx/extented_min_max.inl | 48 +- .../glm/gtx/fast_exponential.hpp | 14 +- .../glm/gtx/fast_exponential.inl | 0 .../glm/gtx/fast_square_root.hpp | 0 .../glm/gtx/fast_square_root.inl | 14 +- .../glm/gtx/fast_trigonometry.hpp | 26 +- .../glm/gtx/fast_trigonometry.inl | 0 .../glm/gtx/gradient_paint.hpp | 4 +- .../glm/gtx/gradient_paint.inl | 4 +- .../glm/gtx/handed_coordinate_space.hpp | 4 +- .../glm/gtx/handed_coordinate_space.inl | 0 .../glm/gtx/inertia.hpp | 0 .../glm/gtx/inertia.inl | 0 .../glm/gtx/int_10_10_10_2.hpp | 2 +- .../glm/gtx/int_10_10_10_2.inl | 0 .../glm/gtx/integer.hpp | 20 +- .../glm/gtx/integer.inl | 0 .../glm/gtx/intersect.hpp | 12 +- .../glm/gtx/intersect.inl | 0 .../glm/gtx/io.hpp | 0 .../glm/gtx/io.inl | 0 .../glm/gtx/log_base.hpp | 2 +- .../glm/gtx/log_base.inl | 0 .../glm/gtx/matrix_cross_product.hpp | 4 +- .../glm/gtx/matrix_cross_product.inl | 0 .../glm/gtx/matrix_interpolation.hpp | 8 +- .../glm/gtx/matrix_interpolation.inl | 0 .../glm/gtx/matrix_major_storage.hpp | 24 +- .../glm/gtx/matrix_major_storage.inl | 0 .../glm/gtx/matrix_operation.hpp | 18 +- .../glm/gtx/matrix_operation.inl | 0 .../glm/gtx/matrix_query.hpp | 16 +- .../glm/gtx/matrix_query.inl | 47 +- .../glm/gtx/matrix_transform_2d.hpp | 105 + .../glm/gtx/matrix_transform_2d.inl | 97 + .../glm/gtx/mixed_product.hpp | 2 +- .../glm/gtx/mixed_product.inl | 0 .../glm/gtx/multiple.hpp | 4 +- .../glm/gtx/multiple.inl | 0 .../glm/gtx/noise.hpp | 0 .../glm/gtx/norm.hpp | 20 +- .../glm/gtx/norm.inl | 0 .../glm/gtx/normal.hpp | 4 +- .../glm/gtx/normal.inl | 0 .../glm/gtx/normalize_dot.hpp | 4 +- .../glm/gtx/normalize_dot.inl | 0 .../glm/gtx/number_precision.hpp | 0 .../glm/gtx/number_precision.inl | 0 .../glm/gtx/optimum_pow.hpp | 14 +- .../glm/gtx/optimum_pow.inl | 0 .../glm/gtx/orthonormalize.hpp | 6 +- .../glm/gtx/orthonormalize.inl | 0 .../glm/gtx/perpendicular.hpp | 2 +- .../glm/gtx/perpendicular.inl | 0 .../glm/gtx/polar_coordinates.hpp | 4 +- .../glm/gtx/polar_coordinates.inl | 0 .../glm/gtx/projection.hpp | 2 +- .../glm/gtx/projection.inl | 0 .../glm/gtx/quaternion.hpp | 36 +- .../glm/gtx/quaternion.inl | 0 .../glm/gtx/random.hpp | 0 .../glm/gtx/raw_data.hpp | 1 + .../glm/gtx/raw_data.inl | 0 .../glm/gtx/reciprocal.hpp | 0 .../glm/gtx/rotate_normalized_axis.hpp | 4 +- .../glm/gtx/rotate_normalized_axis.inl | 0 .../glm/gtx/rotate_vector.hpp | 20 +- .../glm/gtx/rotate_vector.inl | 0 .../glm/gtx/scalar_relational.hpp | 0 .../glm/gtx/scalar_relational.inl | 0 .../glm/gtx/simd_mat4.hpp | 0 .../glm/gtx/simd_mat4.inl | 0 .../glm/gtx/simd_quat.hpp | 2 - .../glm/gtx/simd_quat.inl | 2 +- .../glm/gtx/simd_vec4.hpp | 0 .../glm/gtx/simd_vec4.inl | 0 .../glm/gtx/spline.hpp | 0 .../glm/gtx/spline.inl | 0 .../glm/gtx/std_based_type.hpp | 0 .../glm/gtx/std_based_type.inl | 0 .../glm/gtx/string_cast.hpp | 7 +- .../glm/gtx/string_cast.inl | 6 +- .../glm/gtx/transform.hpp | 6 +- .../glm/gtx/transform.inl | 0 .../glm/gtx/transform2.hpp | 18 +- .../glm/gtx/transform2.inl | 0 .../glm/gtx/ulp.hpp | 0 .../glm/gtx/unsigned_int.hpp | 0 .../glm/gtx/unsigned_int.inl | 0 .../glm/gtx/vec1.hpp | 0 .../glm/gtx/vec1.inl | 0 .../glm/gtx/vector_angle.hpp | 6 +- .../glm/gtx/vector_angle.inl | 0 .../glm/gtx/vector_query.hpp | 12 +- .../glm/gtx/vector_query.inl | 16 +- .../glm/gtx/wrap.hpp | 0 .../glm/gtx/wrap.inl | 0 .../glm/integer.hpp | 0 .../glm/mat2x2.hpp | 0 .../glm/mat2x3.hpp | 0 .../glm/mat2x4.hpp | 0 .../glm/mat3x2.hpp | 0 .../glm/mat3x3.hpp | 0 .../glm/mat3x4.hpp | 0 .../glm/mat4x2.hpp | 0 .../glm/mat4x3.hpp | 0 .../glm/mat4x4.hpp | 0 .../glm/matrix.hpp | 0 .../glm/packing.hpp | 0 .../glm/trigonometric.hpp | 0 .../{glm-0.9.5.2 => glm-0.9.5.3}/glm/vec2.hpp | 0 .../{glm-0.9.5.2 => glm-0.9.5.3}/glm/vec3.hpp | 0 .../{glm-0.9.5.2 => glm-0.9.5.3}/glm/vec4.hpp | 0 .../glm/vector_relational.hpp | 0 .../glm/virtrev/xstream.hpp | 0 .../{glm-0.9.5.2 => glm-0.9.5.3}/readme.txt | 17 + 409 files changed, 963 insertions(+), 20531 deletions(-) delete mode 100644 Escape-the-Dawn/Escape-the-Dawn.vcxproj.orig delete mode 100644 Escape-the-Dawn/GameWorld.cpp.orig delete mode 100644 Escape-the-Dawn/OpenAL32.dll delete mode 100644 Libraries/glm-0.9.5.2/CMakeLists.txt delete mode 100644 Libraries/glm-0.9.5.2/CTestConfig.cmake delete mode 100644 Libraries/glm-0.9.5.2/glm/detail/dummy.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/.DS_Store delete mode 100644 Libraries/glm-0.9.5.2/test/CMakeLists.txt delete mode 100644 Libraries/glm-0.9.5.2/test/bug/CMakeLists.txt delete mode 100644 Libraries/glm-0.9.5.2/test/core/CMakeLists.txt delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_func_common.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_func_exponential.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_func_geometric.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_func_integer.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_func_matrix.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_func_noise.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_func_packing.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_func_swizzle.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_func_trigonometric.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_func_vector_relational.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_setup_message.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_setup_precision.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_cast.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_float.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_int.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_length.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_mat2x2.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_mat2x3.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_mat2x4.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_mat3x2.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_mat3x3.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_mat3x4.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_mat4x2.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_mat4x3.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_mat4x4.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_vec1.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_vec2.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_vec3.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/core/core_type_vec4.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/CMakeLists.txt delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/dummy.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/generate_mipmaps.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/generate_mipmaps.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/image2d.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/image2d.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/operation.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/operation.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/operator.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/operator.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/shared_array.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/shared_array.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/shared_ptr.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/shared_ptr.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/size.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/size.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/texture2d.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/texture2d.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/texture2d_array.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/texture2d_array.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/texture_cube.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/texture_cube.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/texture_cube_array.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/core/texture_cube_array.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gli.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/compression.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/compression.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/fetch.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/fetch.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/gl_texture2d.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/gl_texture2d.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/gradient.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/gradient.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/loader.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/loader.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/loader_dds10.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/loader_dds10.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/loader_dds9.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/loader_dds9.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/loader_tga.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/loader_tga.inl delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/wavelet.hpp delete mode 100644 Libraries/glm-0.9.5.2/test/external/gli/gtx/wavelet.inl delete mode 100644 Libraries/glm-0.9.5.2/test/glm.cppcheck delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/CMakeLists.txt delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_constants.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_epsilon.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_matrix_access.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_matrix_integer.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_matrix_inverse.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_matrix_transform.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_noise.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_packing.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_quaternion.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_random.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_reciprocal.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_type_precision.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_type_ptr.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtc/gtc_ulp.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/CMakeLists.txt delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_associated_min_max.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_bit.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_closest_point.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_color_space.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_color_space_YCoCg.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_compatibility.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_component_wise.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_dual_quaternion.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_euler_angle.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_extend.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_extented_min_max.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_fast_exponential.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_fast_square_root.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_fast_trigonometry.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_gradient_paint.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_handed_coordinate_space.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_inertia.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_int_10_10_10_2.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_integer.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_intersect.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_io.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_log_base.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_matrix_cross_product.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_matrix_interpolation.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_matrix_major_storage.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_matrix_operation.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_matrix_query.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_mixed_product.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_multiple.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_norm.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_normal.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_normalize_dot.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_number_precision.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_optimum_pow.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_orthonormalize.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_perpendicular.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_polar_coordinates.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_projection.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_quaternion.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_random.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_rotate_normalized_axis.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_rotate_vector.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_scalar_relational.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_simd_mat4.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_simd_vec4.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_spline.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_string_cast.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_vector_angle.cpp delete mode 100644 Libraries/glm-0.9.5.2/test/gtx/gtx_vector_query.cpp delete mode 100644 Libraries/glm-0.9.5.2/util/FindGLM.cmake delete mode 100644 Libraries/glm-0.9.5.2/util/autoexp.txt delete mode 100644 Libraries/glm-0.9.5.2/util/autoexp.vc2010.dat delete mode 100644 Libraries/glm-0.9.5.2/util/glm.natvis delete mode 100644 Libraries/glm-0.9.5.2/util/usertype.dat rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/copying.txt (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/CMakeLists.txt (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/common.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/_features.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/_fixes.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/_literals.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/_noise.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/_swizzle.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/_swizzle_func.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/_vectorize.hpp (100%) create mode 100644 Libraries/glm-0.9.5.3/glm/detail/dummy.cpp rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_common.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_common.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_exponential.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_exponential.inl (84%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_geometric.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_geometric.inl (93%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_integer.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_integer.inl (97%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_matrix.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_matrix.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_noise.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_noise.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_packing.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_packing.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_trigonometric.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_trigonometric.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_vector_relational.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/func_vector_relational.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/glm.cpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/hint.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_common.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_common.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_exponential.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_exponential.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_geometric.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_geometric.inl (98%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_integer.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_integer.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_matrix.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_matrix.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_trigonometric.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_trigonometric.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_vector_relational.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/intrinsic_vector_relational.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/precision.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/precision.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/setup.hpp (94%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_float.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_gentype.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_gentype.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_half.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_half.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_int.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat2x2.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat2x2.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat2x3.hpp (99%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat2x3.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat2x4.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat2x4.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat3x2.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat3x2.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat3x3.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat3x3.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat3x4.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat3x4.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat4x2.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat4x2.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat4x3.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat4x3.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat4x4.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_mat4x4.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_vec.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_vec.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_vec1.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_vec1.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_vec2.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_vec2.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_vec3.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_vec3.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_vec4.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/detail/type_vec4.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/exponential.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/ext.hpp (98%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/fwd.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/geometric.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/glm.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/constants.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/constants.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/epsilon.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/epsilon.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/matrix_access.hpp (94%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/matrix_access.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/matrix_integer.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/matrix_inverse.hpp (95%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/matrix_inverse.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/matrix_transform.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/matrix_transform.inl (94%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/noise.hpp (97%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/noise.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/packing.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/packing.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/quaternion.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/quaternion.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/random.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/random.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/reciprocal.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/reciprocal.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/type_precision.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/type_precision.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/type_ptr.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/type_ptr.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/ulp.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtc/ulp.inl (85%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/associated_min_max.hpp (94%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/associated_min_max.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/bit.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/bit.inl (73%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/closest_point.hpp (97%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/closest_point.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/color_space.hpp (92%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/color_space.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/color_space_YCoCg.hpp (94%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/color_space_YCoCg.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/compatibility.hpp (94%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/compatibility.inl (86%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/component_wise.hpp (92%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/component_wise.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/constants.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/dual_quaternion.hpp (85%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/dual_quaternion.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/epsilon.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/euler_angles.hpp (82%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/euler_angles.inl (88%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/extend.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/extend.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/extented_min_max.hpp (85%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/extented_min_max.inl (83%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/fast_exponential.hpp (92%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/fast_exponential.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/fast_square_root.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/fast_square_root.inl (82%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/fast_trigonometry.hpp (84%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/fast_trigonometry.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/gradient_paint.hpp (97%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/gradient_paint.inl (94%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/handed_coordinate_space.hpp (97%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/handed_coordinate_space.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/inertia.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/inertia.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/int_10_10_10_2.hpp (95%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/int_10_10_10_2.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/integer.hpp (88%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/integer.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/intersect.hpp (94%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/intersect.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/io.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/io.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/log_base.hpp (98%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/log_base.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/matrix_cross_product.hpp (96%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/matrix_cross_product.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/matrix_interpolation.hpp (94%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/matrix_interpolation.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/matrix_major_storage.hpp (89%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/matrix_major_storage.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/matrix_operation.hpp (88%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/matrix_operation.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/matrix_query.hpp (83%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/matrix_query.inl (81%) create mode 100644 Libraries/glm-0.9.5.3/glm/gtx/matrix_transform_2d.hpp create mode 100644 Libraries/glm-0.9.5.3/glm/gtx/matrix_transform_2d.inl rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/mixed_product.hpp (98%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/mixed_product.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/multiple.hpp (97%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/multiple.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/noise.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/norm.hpp (92%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/norm.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/normal.hpp (96%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/normal.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/normalize_dot.hpp (95%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/normalize_dot.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/number_precision.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/number_precision.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/optimum_pow.hpp (87%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/optimum_pow.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/orthonormalize.hpp (94%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/orthonormalize.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/perpendicular.hpp (98%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/perpendicular.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/polar_coordinates.hpp (96%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/polar_coordinates.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/projection.hpp (98%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/projection.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/quaternion.hpp (88%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/quaternion.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/random.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/raw_data.hpp (98%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/raw_data.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/reciprocal.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/rotate_normalized_axis.hpp (96%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/rotate_normalized_axis.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/rotate_vector.hpp (90%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/rotate_vector.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/scalar_relational.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/scalar_relational.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/simd_mat4.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/simd_mat4.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/simd_quat.hpp (99%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/simd_quat.inl (99%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/simd_vec4.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/simd_vec4.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/spline.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/spline.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/std_based_type.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/std_based_type.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/string_cast.hpp (91%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/string_cast.inl (99%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/transform.hpp (95%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/transform.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/transform2.hpp (91%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/transform2.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/ulp.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/unsigned_int.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/unsigned_int.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/vec1.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/vec1.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/vector_angle.hpp (95%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/vector_angle.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/vector_query.hpp (85%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/vector_query.inl (86%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/wrap.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/gtx/wrap.inl (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/integer.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/mat2x2.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/mat2x3.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/mat2x4.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/mat3x2.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/mat3x3.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/mat3x4.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/mat4x2.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/mat4x3.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/mat4x4.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/matrix.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/packing.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/trigonometric.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/vec2.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/vec3.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/vec4.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/vector_relational.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/glm/virtrev/xstream.hpp (100%) rename Libraries/{glm-0.9.5.2 => glm-0.9.5.3}/readme.txt (97%) diff --git a/Escape-the-Dawn/Escape-the-Dawn.vcxproj b/Escape-the-Dawn/Escape-the-Dawn.vcxproj index f5ecc5c..a67e889 100644 --- a/Escape-the-Dawn/Escape-the-Dawn.vcxproj +++ b/Escape-the-Dawn/Escape-the-Dawn.vcxproj @@ -1,5 +1,5 @@  - + Debug @@ -19,14 +19,14 @@ Application true MultiByte - v110 + v120 Application false true MultiByte - v110 + v120 @@ -40,17 +40,17 @@ - $(BOOST_ROOT)\lib32-msvc-11.0;$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\lib\Win32\Debug;$(SolutionDir)\Libraries\SOIL\lib\Debug;$(SolutionDir)\Libraries\glew-1.10.0\lib\Debug\Win32;$(SolutionDir)\Libraries\glfw-3.0.4\lib\Debug;$(LibraryPath) + $(BOOST_ROOT)\lib32-msvc-12.0;$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\lib\Win32\Debug;$(SolutionDir)\Libraries\SOIL\lib\Debug;$(SolutionDir)\Libraries\glew-1.10.0\lib\Debug\Win32;$(SolutionDir)\Libraries\glfw-3.0.4\lib\Debug;$(LibraryPath) $(SolutionDir)bin\ $(SolutionDir)obj\$(ProjectName)\ $(ProjectName)-$(Configuration) - $(BOOST_ROOT);$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\include;$(SolutionDir)\Libraries\SOIL\src;$(ProjectDir);$(SolutionDir)\Libraries;$(SolutionDir)\Libraries\glew-1.10.0\include;$(SolutionDir)\Libraries\glfw-3.0.4\include;$(SolutionDir)\Libraries\glm-0.9.5.2;$(IncludePath) + $(BOOST_ROOT);$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\include;$(SolutionDir)\Libraries\SOIL\src;$(ProjectDir);$(SolutionDir)\Libraries;$(SolutionDir)\Libraries\glew-1.10.0\include;$(SolutionDir)\Libraries\glfw-3.0.4\include;$(SolutionDir)\Libraries\glm-0.9.5.3;$(IncludePath) - $(BOOST_ROOT);$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\include;$(SolutionDir)\Libraries\SOIL\src;$(ProjectDir);$(SolutionDir)\Libraries;$(SolutionDir)\Libraries\glew-1.10.0\include;$(SolutionDir)\Libraries\glfw-3.0.4\include;$(SolutionDir)\Libraries\glm-0.9.5.2;$(IncludePath) + $(BOOST_ROOT);$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\include;$(SolutionDir)\Libraries\SOIL\src;$(ProjectDir);$(SolutionDir)\Libraries;$(SolutionDir)\Libraries\glew-1.10.0\include;$(SolutionDir)\Libraries\glfw-3.0.4\include;$(SolutionDir)\Libraries\glm-0.9.5.3;$(IncludePath) - $(BOOST_ROOT)\lib32-msvc-11.0;$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\lib\Win32\Release;$(SolutionDir)\Libraries\SOIL\lib\Release;$(SolutionDir)\Libraries\glew-1.10.0\lib\Release\Win32;$(SolutionDir)\Libraries\glfw-3.0.4\lib\Release;$(LibraryPath) + $(BOOST_ROOT)\lib32-msvc-12.0;$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\lib\Win32\Release;$(SolutionDir)\Libraries\SOIL\lib\Release;$(SolutionDir)\Libraries\glew-1.10.0\lib\Release\Win32;$(SolutionDir)\Libraries\glfw-3.0.4\lib\Release;$(LibraryPath) $(SolutionDir)bin\ $(SolutionDir)obj\$(ProjectName)\ $(ProjectName)-$(Configuration) diff --git a/Escape-the-Dawn/Escape-the-Dawn.vcxproj.orig b/Escape-the-Dawn/Escape-the-Dawn.vcxproj.orig deleted file mode 100644 index 7f9c2d5..0000000 --- a/Escape-the-Dawn/Escape-the-Dawn.vcxproj.orig +++ /dev/null @@ -1,183 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {FE405CFA-8FCE-4867-92CF-797E73B36482} - EscapetheDawn - - - - Application - true - MultiByte - v110 - - - Application - false - true - MultiByte - v110 - - - - - - - - - - - - - - $(BOOST_ROOT)\lib32-msvc-11.0;$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\lib\Win32\Debug;$(SolutionDir)\Libraries\SOIL\lib\Debug;$(SolutionDir)\Libraries\glew-1.10.0\lib\Debug\Win32;$(SolutionDir)\Libraries\glfw-3.0.4\lib\Debug;$(LibraryPath) - $(SolutionDir)bin\ - $(SolutionDir)obj\$(ProjectName)\ - $(ProjectName)-$(Configuration) - $(BOOST_ROOT);$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\include;$(SolutionDir)\Libraries\SOIL\src;$(ProjectDir);$(SolutionDir)\Libraries;$(SolutionDir)\Libraries\glew-1.10.0\include;$(SolutionDir)\Libraries\glfw-3.0.4\include;$(SolutionDir)\Libraries\glm-0.9.5.2;$(IncludePath) - - - $(BOOST_ROOT);$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\include;$(SolutionDir)\Libraries\SOIL\src;$(ProjectDir);$(SolutionDir)\Libraries;$(SolutionDir)\Libraries\glew-1.10.0\include;$(SolutionDir)\Libraries\glfw-3.0.4\include;$(SolutionDir)\Libraries\glm-0.9.5.2;$(IncludePath) - - - $(BOOST_ROOT)\lib32-msvc-11.0;$(SolutionDir)\Libraries\openal-soft-1.15.1-bin\lib\Win32\Release;$(SolutionDir)\Libraries\SOIL\lib\Release;$(SolutionDir)\Libraries\glew-1.10.0\lib\Release\Win32;$(SolutionDir)\Libraries\glfw-3.0.4\lib\Release;$(LibraryPath) - $(SolutionDir)bin\ - $(SolutionDir)obj\$(ProjectName)\ - $(ProjectName)-$(Configuration) - - - - Level3 - Disabled - GLEW_STATIC;DEBUG;%(PreprocessorDefinitions) - NotUsing - - - true - Console - OpenAL32.lib;opengl32.lib;glu32.lib;SOIL.lib;glew32sd.lib;glfw3.lib;%(AdditionalDependencies) - - - - - OpenAL32.lib;opengl32.lib;glu32.lib;SOIL.lib;glew32sd.lib;glfw3.lib - - - - - - - - Level3 - MaxSpeed - true - true - GLEW_STATIC;DEBUG;%(PreprocessorDefinitions) - NotUsing - ProgramDatabase - true - - - true - true - OpenAL32.lib;opengl32.lib;glu32.lib;SOIL.lib;glew32s.lib;glfw3.lib;%(AdditionalDependencies) - - - OpenAL32.lib;opengl32.lib;glu32.lib;SOIL.lib;glew32s.lib;glfw3.lib; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Escape-the-Dawn/GameWorld.cpp.orig b/Escape-the-Dawn/GameWorld.cpp.orig deleted file mode 100644 index 12d11a3..0000000 --- a/Escape-the-Dawn/GameWorld.cpp.orig +++ /dev/null @@ -1,169 +0,0 @@ -#include "GameWorld.h" - - -void GameWorld::Initialize() -{ - World::Initialize(); - - AddSystem("LevelGenerationSystem"); - AddSystem("InputSystem"); - AddSystem("CollisionSystem"); - //AddSystem("ParticleSystem"); - AddSystem("PlayerSystem"); - AddSystem("SoundSystem"); - AddSystem("RenderSystem"); - - std::shared_ptr transform; - std::shared_ptr model; - std::shared_ptr pointLight; - std::shared_ptr camera; - std::shared_ptr bounds; - std::shared_ptr collision; - std::shared_ptr soundEmitter; - EntityID ent; - - - - - // Fucking lights - ent = CreateEntity(); - transform = AddComponent(ent, "Transform"); - transform->Position = glm::vec3(0.f, 7.f, 0.f); - pointLight = AddComponent(ent, "PointLight"); - pointLight->Specular = glm::vec3(1.0, 1.0, 1.0); - pointLight->Diffuse = glm::vec3(0.0, 0.0, 5.0); - pointLight->constantAttenuation = 0.f; - pointLight->linearAttenuation = 1.f; - pointLight->quadraticAttenuation = 0.f; - pointLight->spotExponent = 0.0f; - model = AddComponent(ent, "Model"); - model->ModelFile = "Models/sphere.obj"; - ent = CreateEntity(); - transform = AddComponent(ent, "Transform"); - transform->Position = glm::vec3(10.f, 7.f, 0.f); - pointLight = AddComponent(ent, "PointLight"); - pointLight->Specular = glm::vec3(1.0, 1.0, 1.0); - pointLight->Diffuse = glm::vec3(0.0, 5.0, 0.0); - pointLight->constantAttenuation = 0.f; - pointLight->linearAttenuation = 1.f; - pointLight->quadraticAttenuation = 0.f; - pointLight->spotExponent = 0.0f; - model = AddComponent(ent, "Model"); - model->ModelFile = "Models/sphere.obj"; - ent = CreateEntity(); - transform = AddComponent(ent, "Transform"); - transform->Position = glm::vec3(-10.f, 7.f, 0.f); - pointLight = AddComponent(ent, "PointLight"); - pointLight->Specular = glm::vec3(1.0, 1.0, 1.0); - pointLight->Diffuse = glm::vec3(5.0, 0.0, 0.0); - pointLight->constantAttenuation = 0.f; - pointLight->linearAttenuation = 1.f; - pointLight->quadraticAttenuation = 0.f; - pointLight->spotExponent = 0.0f; - model = AddComponent(ent, "Model"); - model->ModelFile = "Models/sphere.obj"; - - //ground - ent = CreateEntity(); - transform = AddComponent(ent, "Transform"); - transform->Position = glm::vec3(0.f, 0.f, 0.f); - model = AddComponent(ent, "Model"); - model->ModelFile = "Models/plane.obj"; - - // Player - m_Player = CreateEntity(); - SetProperty(m_Player, "Name", std::string("PlayerShip")); - transform = AddComponent(m_Player, "Transform"); - transform->Position = glm::vec3(0.f, 2.f, -5.f); - transform->Scale = glm::vec3(1.0f); - model = AddComponent(m_Player, "Model"); - model->ModelFile = "Models/ship.obj"; - pointLight = AddComponent(m_Player, "PointLight"); - pointLight->Specular = glm::vec3(1.0, 1.0, 1.0); - pointLight->Diffuse = glm::vec3(0.4, 0.4, 1.0); - pointLight->constantAttenuation = 0.f; - pointLight->linearAttenuation = 1.f; - pointLight->quadraticAttenuation = 0.f; - pointLight->spotExponent = 0.0f; - AddComponent(m_Player, "Input"); - collision = AddComponent(m_Player, "Collision"); - collision->Phantom = false; - collision->Interested = true; - bounds = AddComponent(m_Player, "Bounds"); -<<<<<<< HEAD - bounds->Origin = glm::vec3(transform->Position.x, transform->Position.y - 4, transform->Position.z + 3); - bounds->VolumeVector = glm::vec3(4.f,0.7f,4); - soundEmitter = AddComponent(m_Player, "SoundEmitter"); - soundEmitter->Loop = true; - soundEmitter->MaxDistance = FLT_MAX; - soundEmitter->ReferenceDistance = 10; - soundEmitter->Gain = 1; - soundEmitter->Pitch = 1; - soundEmitter->Path = "Sounds/hallelujah.wav"; - GetSystem("SoundSystem")->PlaySound(soundEmitter); -======= - bounds->Origin = glm::vec3(0, 0, 2.f); - bounds->VolumeVector = glm::vec3(4.f, 0.7f, 1); ->>>>>>> f76c0b336f87a259a7eabf3c532fc885f155a605 - - - // Camera - entcamera = CreateEntity(m_Player); - SetProperty(entcamera, "Name", std::string("Camera")); - transform = AddComponent(entcamera, "Transform"); - AddComponent(entcamera, "Input"); - transform->Position = glm::vec3(0.f, 10.f, 14.f); - camera = AddComponent(entcamera, "Camera"); - camera->FOV = 45.f; - camera->FarClip = 1000.f; - camera->NearClip = 0.01f; - transform->Orientation = glm::angleAxis(glm::radians(15.0f),glm::vec3(1,0,0)); - - - - - /*ent = CreateEntity(); - transform = AddComponent(ent, "Transform"); - transform->Position = glm::vec3(10.f, 4.f, 0.f); - model = AddComponent(ent, "Model"); - model->ModelFile = "Models/ship.obj"; - collision = AddComponent(player2, "Collision"); - collision->Phantom = false; - bounds = AddComponent(player2, "Bounds"); - bounds->Origin = transform->Position; - bounds->VolumeVector = glm::vec3(2.f,2.f,2.f);*/ -} - -void GameWorld::Update(double dt) -{ - World::Update(dt); -} - -void GameWorld::RegisterComponents() -{ - m_ComponentFactory.Register("Bounds", []() { return new Components::Bounds(); }); - m_ComponentFactory.Register("Camera", []() { return new Components::Camera(); }); - m_ComponentFactory.Register("Collision", []() { return new Components::Collision(); }); - m_ComponentFactory.Register("DirectionalLight", []() { return new Components::DirectionalLight(); }); - m_ComponentFactory.Register("Input", []() { return new Components::Input(); }); - m_ComponentFactory.Register("Model", []() { return new Components::Model(); }); - m_ComponentFactory.Register("ParticleEmitter", []() { return new Components::ParticleEmitter(); }); - m_ComponentFactory.Register("PointLight", []() { return new Components::PointLight(); }); - m_ComponentFactory.Register("PowerUp", []() { return new Components::PowerUp(); }); - m_ComponentFactory.Register("SoundEmitter", []() { return new Components::SoundEmitter(); }); - m_ComponentFactory.Register("Sprite", []() { return new Components::Sprite(); }); - m_ComponentFactory.Register("Stat", []() { return new Components::Stat(); }); - m_ComponentFactory.Register("Template", []() { return new Components::Template(); }); - m_ComponentFactory.Register("Transform", []() { return new Components::Transform(); }); -} - -void GameWorld::RegisterSystems() -{ - m_SystemFactory.Register("LevelGenerationSystem", [this]() { return new Systems::LevelGenerationSystem(this); }); - m_SystemFactory.Register("InputSystem", [this]() { return new Systems::InputSystem(this, m_Renderer); }); - m_SystemFactory.Register("CollisionSystem", [this]() { return new Systems::CollisionSystem(this); }); - //m_SystemFactory.Register("ParticleSystem", [this]() { return new Systems::ParticleSystem(this); }); - m_SystemFactory.Register("PlayerSystem", [this]() { return new Systems::PlayerSystem(this); }); - m_SystemFactory.Register("SoundSystem", [this]() { return new Systems::SoundSystem(this); }); - m_SystemFactory.Register("RenderSystem", [this]() { return new Systems::RenderSystem(this, m_Renderer); }); -} \ No newline at end of file diff --git a/Escape-the-Dawn/OpenAL32.dll b/Escape-the-Dawn/OpenAL32.dll deleted file mode 100644 index 9c8932e5fb275c533a5ac9bb5a6fe289c2106a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538624 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 Nz%d9MgFx#L_&-s&b|?S< diff --git a/Libraries/glm-0.9.5.2/CMakeLists.txt b/Libraries/glm-0.9.5.2/CMakeLists.txt deleted file mode 100644 index 6971a67..0000000 --- a/Libraries/glm-0.9.5.2/CMakeLists.txt +++ /dev/null @@ -1,133 +0,0 @@ -cmake_minimum_required(VERSION 2.6 FATAL_ERROR) -cmake_policy(VERSION 2.6) - -project(glm) -enable_testing() - -add_definitions(-D_CRT_SECURE_NO_WARNINGS) - -option(GLM_TEST_ENABLE "GLM test" OFF) -if(NOT GLM_TEST_ENABLE) - message(FATAL_ERROR "GLM is a header only library, no need to build it. Set the option GLM_TEST_ENABLE with ON to build and run the test bench") -endif() - -if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND UNIX)) - option(GLM_TEST_ENABLE_CXX_98 "Enable C++ 98" OFF) - option(GLM_TEST_ENABLE_CXX_0X "Enable C++ 0x" OFF) - option(GLM_TEST_ENABLE_CXX_11 "Enable C++ 11" OFF) - option(GLM_TEST_ENABLE_CXX_1Y "Enable C++ 1y" OFF) - option(GLM_TEST_ENABLE_CXX_PEDANTIC "Pedantic" ON) - - if(GLM_TEST_ENABLE_CXX_PEDANTIC) - add_definitions(-pedantic) - endif() - - if(GLM_TEST_ENABLE_CXX_1Y) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++1y") - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - set(CMAKE_CXX_FLAGS "-std=c++1y") - elseif(GLM_TEST_ENABLE_CXX_11) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11") - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - set(CMAKE_CXX_FLAGS "-std=c++11") - elseif(GLM_TEST_ENABLE_CXX_0X) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++0x") - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - set(CMAKE_CXX_FLAGS "-std=c++0x") - elseif(GLM_TEST_ENABLE_CXX_98) - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++98") - set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++") - set(CMAKE_CXX_FLAGS "-std=c++98") - endif() -endif() - -if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") OR (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") AND WIN32)) - option(GLM_TEST_ENABLE_MS_EXTENSIONS "Enable MS extensions" OFF) - - if(NOT GLM_TEST_ENABLE_MS_EXTENSIONS) - add_definitions(/Za) - endif() -endif() - -option(GLM_TEST_ENABLE_SIMD_SSE2 "Enable SSE2 optimizations" OFF) -option(GLM_TEST_ENABLE_SIMD_SSE3 "Enable SSE3 optimizations" OFF) -option(GLM_TEST_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF) -option(GLM_TEST_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF) -option(GLM_TEST_FORCE_PURE "Force 'pure' instructions" OFF) - -if(GLM_TEST_FORCE_PURE) - add_definitions(-DGLM_FORCE_PURE) - - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-mfpmath=387) - elseif(MSVC) - add_definitions(/arch:IA32) - endif() -elseif(GLM_TEST_ENABLE_AVX2) - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-mavx2) - elseif(GLM_USE_INTEL) - add_definitions(/QxAVX2) - elseif(MSVC) - add_definitions(/arch:AVX2) - endif() -elseif(GLM_TEST_ENABLE_AVX) - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-mavx) - elseif(GLM_USE_INTEL) - add_definitions(/QxAVX) - elseif(MSVC) - add_definitions(/arch:AVX) - endif() -elseif(GLM_TEST_ENABLE_SSE3) - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-msse3) - elseif(GLM_USE_INTEL) - add_definitions(/QxSSE3) - elseif(MSVC) - add_definitions(/arch:SSE2) # VC doesn't support /arch:SSE3 - endif() -elseif(GLM_TEST_ENABLE_SSE2) - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-msse2) - elseif(GLM_USE_INTEL) - add_definitions(/QxSSE2) - elseif(MSVC) - if(NOT CMAKE_CL_64) - add_definitions(/arch:SSE2) - endif() - endif() -endif() - -option(GLM_TEST_ENABLE_FAST_MATH "Enable fast math optimizations" OFF) -if(GLM_TEST_ENABLE_FAST_MATH) - if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-ffast-math) - endif() - - if(MSVC) - add_definitions(/fp:fast) - endif() -elseif(NOT GLM_TEST_ENABLE_FAST_MATH) - if(MSVC) - add_definitions(/fp:precise) - endif() -endif() - -if(CMAKE_COMPILER_IS_GNUCXX) - #add_definitions(-S) - #add_definitions(-s) - #add_definitions(-m32) - #add_definitions(-O3) - - #add_definitions(-fprofile-arcs -ftest-coverage) gcov - #ctest_enable_coverage() -endif() - -include_directories(".") -include_directories("./test/external") - -add_subdirectory(glm) -add_subdirectory(test) - -install(DIRECTORY glm DESTINATION include) diff --git a/Libraries/glm-0.9.5.2/CTestConfig.cmake b/Libraries/glm-0.9.5.2/CTestConfig.cmake deleted file mode 100644 index d338835..0000000 --- a/Libraries/glm-0.9.5.2/CTestConfig.cmake +++ /dev/null @@ -1,13 +0,0 @@ -## This file should be placed in the root directory of your project. -## Then modify the CMakeLists.txt file in the root directory of your -## project to incorporate the testing dashboard. -## # The following are required to uses Dart and the Cdash dashboard -## ENABLE_TESTING() -## INCLUDE(CTest) -set(CTEST_PROJECT_NAME "GLM") -set(CTEST_NIGHTLY_START_TIME "00:00:00 EST") - -set(CTEST_DROP_METHOD "http") -set(CTEST_DROP_SITE "my.cdash.org") -set(CTEST_DROP_LOCATION "/submit.php?project=GLM") -set(CTEST_DROP_SITE_CDASH TRUE) diff --git a/Libraries/glm-0.9.5.2/glm/detail/dummy.cpp b/Libraries/glm-0.9.5.2/glm/detail/dummy.cpp deleted file mode 100644 index a95afcd..0000000 --- a/Libraries/glm-0.9.5.2/glm/detail/dummy.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////// -/// OpenGL Mathematics (glm.g-truc.net) -/// -/// Copyright (c) 2005 - 2014 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_FORCE_RADIANS -#define GLM_MESSAGES -#include "../glm.hpp" -#include -/* -#if(GLM_ARCH & GLM_ARCH_SSE2) -struct float4 -{ - union - { - struct {float r, g, b, a;}; - struct {float s, t, p, q;}; - struct {float x, y, z, w;}; - __m128 data; - }; -}; - -int test_simd() -{ - float4 f; - - - - return 0; -} - -#endif//GLM_ARCH -*/ - -template -class C; - -template -class C -{ -public: - T value; -}; - -int main() -{ -/* -# if(GLM_ARCH & GLM_ARCH_SSE2) - test_simd(); -# endif -*/ - - C<> c; - - return 0; -} diff --git a/Libraries/glm-0.9.5.2/test/.DS_Store b/Libraries/glm-0.9.5.2/test/.DS_Store deleted file mode 100644 index 8ade767ef29b6543cad69f0bb5ad98a05af8e97c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~J!%6%427R!7lt%jx}3%b$PET#pTHLgIN&DOV3O2x^gR7ES*H$5cmnB-G%I%Z zD|S`@Z2$T80!#olbXV*=%*>dtaKQ)8U#I)^{dT>u;#J@&VrHyNnC;iLL0pQvfVyTmjO&;ssLc!1UOG})p;=82 zR;?Ceh}WZ?+UmMqI#RP8R>OzYoz15hnq@nzF`-!xQ4j$Um=RcIKKc27r2jVm&svm< zfC&6E0=7P!4tu^-ovjbA=k?dB`g+i*aXG_}p8zI)6mRKa+;6_1_R^8c3Qa!(fk8n8 H{*=HsSh^91 diff --git a/Libraries/glm-0.9.5.2/test/CMakeLists.txt b/Libraries/glm-0.9.5.2/test/CMakeLists.txt deleted file mode 100644 index 0d4acb9..0000000 --- a/Libraries/glm-0.9.5.2/test/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -function(glmCreateTestGTC NAME) - set(SAMPLE_NAME test-${NAME}) - add_executable(${SAMPLE_NAME} ${NAME}.cpp) - - add_test( - NAME ${SAMPLE_NAME} - COMMAND $ ) -endfunction() - -add_subdirectory(bug) -add_subdirectory(core) -add_subdirectory(gtc) -add_subdirectory(gtx) - - diff --git a/Libraries/glm-0.9.5.2/test/bug/CMakeLists.txt b/Libraries/glm-0.9.5.2/test/bug/CMakeLists.txt deleted file mode 100644 index e69de29..0000000 diff --git a/Libraries/glm-0.9.5.2/test/core/CMakeLists.txt b/Libraries/glm-0.9.5.2/test/core/CMakeLists.txt deleted file mode 100644 index 0f5b9b4..0000000 --- a/Libraries/glm-0.9.5.2/test/core/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -glmCreateTestGTC(core_type_cast) -glmCreateTestGTC(core_type_float) -glmCreateTestGTC(core_type_int) -glmCreateTestGTC(core_type_length) -glmCreateTestGTC(core_type_mat2x2) -glmCreateTestGTC(core_type_mat2x3) -glmCreateTestGTC(core_type_mat2x4) -glmCreateTestGTC(core_type_mat3x2) -glmCreateTestGTC(core_type_mat3x3) -glmCreateTestGTC(core_type_mat3x4) -glmCreateTestGTC(core_type_mat4x2) -glmCreateTestGTC(core_type_mat4x3) -glmCreateTestGTC(core_type_mat4x4) -glmCreateTestGTC(core_type_vec1) -glmCreateTestGTC(core_type_vec2) -glmCreateTestGTC(core_type_vec3) -glmCreateTestGTC(core_type_vec4) -glmCreateTestGTC(core_func_common) -glmCreateTestGTC(core_func_exponential) -glmCreateTestGTC(core_func_geometric) -glmCreateTestGTC(core_func_integer) -glmCreateTestGTC(core_func_matrix) -glmCreateTestGTC(core_func_noise) -glmCreateTestGTC(core_func_packing) -glmCreateTestGTC(core_func_trigonometric) -glmCreateTestGTC(core_func_vector_relational) -glmCreateTestGTC(core_func_swizzle) -glmCreateTestGTC(core_setup_message) -glmCreateTestGTC(core_setup_precision) - - - diff --git a/Libraries/glm-0.9.5.2/test/core/core_func_common.cpp b/Libraries/glm-0.9.5.2/test/core/core_func_common.cpp deleted file mode 100644 index 0c509d3..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_func_common.cpp +++ /dev/null @@ -1,645 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/func_common.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -//#include -//#include -//#include -#define GLM_FORCE_RADIANS -#include -#include -#include -#include - -int test_modf() -{ - int Error(0); - - { - float X(1.5f); - float I(0.0f); - float A = glm::modf(X, I); - - Error += I == 1.0f ? 0 : 1; - Error += A == 0.5f ? 0 : 1; - } - - { - glm::vec4 X(1.1f, 1.2f, 1.5f, 1.7f); - glm::vec4 I(0.0f); - glm::vec4 A = glm::modf(X, I); - - Error += I == glm::vec4(1.0f) ? 0 : 1; - Error += glm::all(glm::epsilonEqual(A, glm::vec4(0.1f, 0.2f, 0.5f, 0.7f), 0.00001f)) ? 0 : 1; - } - - { - glm::dvec4 X(1.1, 1.2, 1.5, 1.7); - glm::dvec4 I(0.0); - glm::dvec4 A = glm::modf(X, I); - - Error += I == glm::dvec4(1.0) ? 0 : 1; - Error += glm::all(glm::epsilonEqual(A, glm::dvec4(0.1, 0.2, 0.5, 0.7), 0.000000001)) ? 0 : 1; - } - - { - double X(1.5); - double I(0.0); - double A = glm::modf(X, I); - - Error += I == 1.0 ? 0 : 1; - Error += A == 0.5 ? 0 : 1; - } - - return Error; -} - -int test_floatBitsToInt() -{ - int Error = 0; - - { - float A = 1.0f; - int B = glm::floatBitsToInt(A); - float C = glm::intBitsToFloat(B); - int D = *(int*)&A; - Error += B == D ? 0 : 1; - Error += A == C ? 0 : 1; - } - - { - glm::vec2 A(1.0f, 2.0f); - glm::ivec2 B = glm::floatBitsToInt(A); - glm::vec2 C = glm::intBitsToFloat(B); - Error += B.x == *(int*)&(A.x) ? 0 : 1; - Error += B.y == *(int*)&(A.y) ? 0 : 1; - Error += A == C? 0 : 1; - } - - { - glm::vec3 A(1.0f, 2.0f, 3.0f); - glm::ivec3 B = glm::floatBitsToInt(A); - glm::vec3 C = glm::intBitsToFloat(B); - Error += B.x == *(int*)&(A.x) ? 0 : 1; - Error += B.y == *(int*)&(A.y) ? 0 : 1; - Error += B.z == *(int*)&(A.z) ? 0 : 1; - Error += A == C? 0 : 1; - } - - { - glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); - glm::ivec4 B = glm::floatBitsToInt(A); - glm::vec4 C = glm::intBitsToFloat(B); - Error += B.x == *(int*)&(A.x) ? 0 : 1; - Error += B.y == *(int*)&(A.y) ? 0 : 1; - Error += B.z == *(int*)&(A.z) ? 0 : 1; - Error += B.w == *(int*)&(A.w) ? 0 : 1; - Error += A == C? 0 : 1; - } - - return Error; -} - -int test_floatBitsToUint() -{ - int Error = 0; - - { - float A = 1.0f; - glm::uint B = glm::floatBitsToUint(A); - float C = glm::intBitsToFloat(B); - Error += B == *(glm::uint*)&A ? 0 : 1; - Error += A == C? 0 : 1; - } - - { - glm::vec2 A(1.0f, 2.0f); - glm::uvec2 B = glm::floatBitsToUint(A); - glm::vec2 C = glm::uintBitsToFloat(B); - Error += B.x == *(glm::uint*)&(A.x) ? 0 : 1; - Error += B.y == *(glm::uint*)&(A.y) ? 0 : 1; - Error += A == C ? 0 : 1; - } - - { - glm::vec3 A(1.0f, 2.0f, 3.0f); - glm::uvec3 B = glm::floatBitsToUint(A); - glm::vec3 C = glm::uintBitsToFloat(B); - Error += B.x == *(glm::uint*)&(A.x) ? 0 : 1; - Error += B.y == *(glm::uint*)&(A.y) ? 0 : 1; - Error += B.z == *(glm::uint*)&(A.z) ? 0 : 1; - Error += A == C? 0 : 1; - } - - { - glm::vec4 A(1.0f, 2.0f, 3.0f, 4.0f); - glm::uvec4 B = glm::floatBitsToUint(A); - glm::vec4 C = glm::uintBitsToFloat(B); - Error += B.x == *(glm::uint*)&(A.x) ? 0 : 1; - Error += B.y == *(glm::uint*)&(A.y) ? 0 : 1; - Error += B.z == *(glm::uint*)&(A.z) ? 0 : 1; - Error += B.w == *(glm::uint*)&(A.w) ? 0 : 1; - Error += A == C? 0 : 1; - } - - return Error; -} - -namespace test_mix -{ - template - struct test - { - T x; - T y; - B a; - T Result; - }; - - test TestBool[] = - { - {0.0f, 1.0f, false, 0.0f}, - {0.0f, 1.0f, true, 1.0f}, - {-1.0f, 1.0f, false, -1.0f}, - {-1.0f, 1.0f, true, 1.0f} - }; - - test TestFloat[] = - { - {0.0f, 1.0f, 0.0f, 0.0f}, - {0.0f, 1.0f, 1.0f, 1.0f}, - {-1.0f, 1.0f, 0.0f, -1.0f}, - {-1.0f, 1.0f, 1.0f, 1.0f} - }; - - test TestVec2Bool[] = - { - {glm::vec2(0.0f), glm::vec2(1.0f), false, glm::vec2(0.0f)}, - {glm::vec2(0.0f), glm::vec2(1.0f), true, glm::vec2(1.0f)}, - {glm::vec2(-1.0f), glm::vec2(1.0f), false, glm::vec2(-1.0f)}, - {glm::vec2(-1.0f), glm::vec2(1.0f), true, glm::vec2(1.0f)} - }; - - test TestBVec2[] = - { - {glm::vec2(0.0f), glm::vec2(1.0f), glm::bvec2(false), glm::vec2(0.0f)}, - {glm::vec2(0.0f), glm::vec2(1.0f), glm::bvec2(true), glm::vec2(1.0f)}, - {glm::vec2(-1.0f), glm::vec2(1.0f), glm::bvec2(false), glm::vec2(-1.0f)}, - {glm::vec2(-1.0f), glm::vec2(1.0f), glm::bvec2(true), glm::vec2(1.0f)}, - {glm::vec2(-1.0f), glm::vec2(1.0f), glm::bvec2(true, false), glm::vec2(1.0f, -1.0f)} - }; - - test TestVec3Bool[] = - { - {glm::vec3(0.0f), glm::vec3(1.0f), false, glm::vec3(0.0f)}, - {glm::vec3(0.0f), glm::vec3(1.0f), true, glm::vec3(1.0f)}, - {glm::vec3(-1.0f), glm::vec3(1.0f), false, glm::vec3(-1.0f)}, - {glm::vec3(-1.0f), glm::vec3(1.0f), true, glm::vec3(1.0f)} - }; - - test TestBVec3[] = - { - {glm::vec3(0.0f), glm::vec3(1.0f), glm::bvec3(false), glm::vec3(0.0f)}, - {glm::vec3(0.0f), glm::vec3(1.0f), glm::bvec3(true), glm::vec3(1.0f)}, - {glm::vec3(-1.0f), glm::vec3(1.0f), glm::bvec3(false), glm::vec3(-1.0f)}, - {glm::vec3(-1.0f), glm::vec3(1.0f), glm::bvec3(true), glm::vec3(1.0f)}, - {glm::vec3(1.0f, 2.0f, 3.0f), glm::vec3(4.0f, 5.0f, 6.0f), glm::bvec3(true, false, true), glm::vec3(4.0f, 2.0f, 6.0f)} - }; - - test TestVec4Bool[] = - { - {glm::vec4(0.0f), glm::vec4(1.0f), false, glm::vec4(0.0f)}, - {glm::vec4(0.0f), glm::vec4(1.0f), true, glm::vec4(1.0f)}, - {glm::vec4(-1.0f), glm::vec4(1.0f), false, glm::vec4(-1.0f)}, - {glm::vec4(-1.0f), glm::vec4(1.0f), true, glm::vec4(1.0f)} - }; - - test TestBVec4[] = - { - {glm::vec4(0.0f), glm::vec4(1.0f), glm::bvec4(false), glm::vec4(0.0f)}, - {glm::vec4(0.0f), glm::vec4(1.0f), glm::bvec4(true), glm::vec4(1.0f)}, - {glm::vec4(-1.0f), glm::vec4(1.0f), glm::bvec4(false), glm::vec4(-1.0f)}, - {glm::vec4(-1.0f), glm::vec4(1.0f), glm::bvec4(true), glm::vec4(1.0f)}, - {glm::vec4(1.0f, 2.0f, 3.0f, 4.0f), glm::vec4(5.0f, 6.0f, 7.0f, 8.0f), glm::bvec4(true, false, true, false), glm::vec4(5.0f, 2.0f, 7.0f, 4.0f)} - }; - - int run() - { - int Error = 0; - - // Float with bool - { - for(std::size_t i = 0; i < sizeof(TestBool) / sizeof(test); ++i) - { - float Result = glm::mix(TestBool[i].x, TestBool[i].y, TestBool[i].a); - Error += glm::epsilonEqual(Result, TestBool[i].Result, glm::epsilon()) ? 0 : 1; - } - } - - // Float with float - { - for(std::size_t i = 0; i < sizeof(TestFloat) / sizeof(test); ++i) - { - float Result = glm::mix(TestFloat[i].x, TestFloat[i].y, TestFloat[i].a); - Error += glm::epsilonEqual(Result, TestFloat[i].Result, glm::epsilon()) ? 0 : 1; - } - } - - // vec2 with bool - { - for(std::size_t i = 0; i < sizeof(TestVec2Bool) / sizeof(test); ++i) - { - glm::vec2 Result = glm::mix(TestVec2Bool[i].x, TestVec2Bool[i].y, TestVec2Bool[i].a); - Error += glm::epsilonEqual(Result.x, TestVec2Bool[i].Result.x, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.y, TestVec2Bool[i].Result.y, glm::epsilon()) ? 0 : 1; - } - } - - // vec2 with bvec2 - { - for(std::size_t i = 0; i < sizeof(TestBVec2) / sizeof(test); ++i) - { - glm::vec2 Result = glm::mix(TestBVec2[i].x, TestBVec2[i].y, TestBVec2[i].a); - Error += glm::epsilonEqual(Result.x, TestBVec2[i].Result.x, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.y, TestBVec2[i].Result.y, glm::epsilon()) ? 0 : 1; - } - } - - // vec3 with bool - { - for(std::size_t i = 0; i < sizeof(TestVec3Bool) / sizeof(test); ++i) - { - glm::vec3 Result = glm::mix(TestVec3Bool[i].x, TestVec3Bool[i].y, TestVec3Bool[i].a); - Error += glm::epsilonEqual(Result.x, TestVec3Bool[i].Result.x, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.y, TestVec3Bool[i].Result.y, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.z, TestVec3Bool[i].Result.z, glm::epsilon()) ? 0 : 1; - } - } - - // vec3 with bvec3 - { - for(std::size_t i = 0; i < sizeof(TestBVec3) / sizeof(test); ++i) - { - glm::vec3 Result = glm::mix(TestBVec3[i].x, TestBVec3[i].y, TestBVec3[i].a); - Error += glm::epsilonEqual(Result.x, TestBVec3[i].Result.x, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.y, TestBVec3[i].Result.y, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.z, TestBVec3[i].Result.z, glm::epsilon()) ? 0 : 1; - } - } - - // vec4 with bool - { - for(std::size_t i = 0; i < sizeof(TestVec4Bool) / sizeof(test); ++i) - { - glm::vec4 Result = glm::mix(TestVec4Bool[i].x, TestVec4Bool[i].y, TestVec4Bool[i].a); - Error += glm::epsilonEqual(Result.x, TestVec4Bool[i].Result.x, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.y, TestVec4Bool[i].Result.y, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.z, TestVec4Bool[i].Result.z, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.w, TestVec4Bool[i].Result.w, glm::epsilon()) ? 0 : 1; - } - } - - // vec4 with bvec4 - { - for(std::size_t i = 0; i < sizeof(TestBVec4) / sizeof(test); ++i) - { - glm::vec4 Result = glm::mix(TestBVec4[i].x, TestBVec4[i].y, TestBVec4[i].a); - Error += glm::epsilonEqual(Result.x, TestBVec4[i].Result.x, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.y, TestBVec4[i].Result.y, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.z, TestBVec4[i].Result.z, glm::epsilon()) ? 0 : 1; - Error += glm::epsilonEqual(Result.w, TestBVec4[i].Result.w, glm::epsilon()) ? 0 : 1; - } - } - - return Error; - } -}//namespace test_mix - -namespace test_step -{ - template - struct test - { - EDGE edge; - VEC x; - VEC result; - }; - - test TestVec4Scalar [] = - { - { 0.0f, glm::vec4(1.0f, 2.0f, 3.0f, 4.0f), glm::vec4(1.0f) }, - { 1.0f, glm::vec4(1.0f, 2.0f, 3.0f, 4.0f), glm::vec4(1.0f) }, - { 0.0f, glm::vec4(-1.0f, -2.0f, -3.0f, -4.0f), glm::vec4(0.0f) } - }; - - test TestVec4Vector [] = - { - { glm::vec4(-1.0f, -2.0f, -3.0f, -4.0f), glm::vec4(-2.0f, -3.0f, -4.0f, -5.0f), glm::vec4(0.0f) }, - { glm::vec4( 0.0f, 1.0f, 2.0f, 3.0f), glm::vec4( 1.0f, 2.0f, 3.0f, 4.0f), glm::vec4(1.0f) }, - { glm::vec4( 2.0f, 3.0f, 4.0f, 5.0f), glm::vec4( 1.0f, 2.0f, 3.0f, 4.0f), glm::vec4(0.0f) }, - { glm::vec4( 0.0f, 1.0f, 2.0f, 3.0f), glm::vec4(-1.0f,-2.0f,-3.0f,-4.0f), glm::vec4(0.0f) } - }; - - int run() - { - int Error = 0; - - // vec4 and float - { - for (std::size_t i = 0; i < sizeof(TestVec4Scalar) / sizeof(test); ++i) - { - glm::vec4 Result = glm::step(TestVec4Scalar[i].edge, TestVec4Scalar[i].x); - Error += glm::all(glm::epsilonEqual(Result, TestVec4Scalar[i].result, glm::epsilon())) ? 0 : 1; - } - } - - // vec4 and vec4 - { - for (std::size_t i = 0; i < sizeof(TestVec4Vector) / sizeof(test); ++i) - { - glm::vec4 Result = glm::step(TestVec4Vector[i].edge, TestVec4Vector[i].x); - Error += glm::all(glm::epsilonEqual(Result, TestVec4Vector[i].result, glm::epsilon())) ? 0 : 1; - } - } - - return Error; - } -}//namespace test_step - -int test_round() -{ - int Error = 0; - - { - float A = glm::round(0.0f); - Error += A == 0.0f ? 0 : 1; - float B = glm::round(0.5f); - Error += B == 1.0f ? 0 : 1; - float C = glm::round(1.0f); - Error += C == 1.0f ? 0 : 1; - float D = glm::round(0.1f); - Error += D == 0.0f ? 0 : 1; - float E = glm::round(0.9f); - Error += E == 1.0f ? 0 : 1; - float F = glm::round(1.5f); - Error += F == 2.0f ? 0 : 1; - float G = glm::round(1.9f); - Error += G == 2.0f ? 0 : 1; - -#if GLM_LANG >= GLM_LANG_CXX11 - float A1 = glm::round(0.0f); - Error += A1 == A ? 0 : 1; - float B1 = glm::round(0.5f); - Error += B1 == B ? 0 : 1; - float C1 = glm::round(1.0f); - Error += C1 == C ? 0 : 1; - float D1 = glm::round(0.1f); - Error += D1 == D ? 0 : 1; - float E1 = glm::round(0.9f); - Error += E1 == E ? 0 : 1; - float F1 = glm::round(1.5f); - Error += F == F ? 0 : 1; - float G1 = glm::round(1.9f); - Error += G1 == G ? 0 : 1; -#endif // GLM_LANG >= GLM_CXX0X - } - - { - float A = glm::round(-0.0f); - Error += A == 0.0f ? 0 : 1; - float B = glm::round(-0.5f); - Error += B == -1.0f ? 0 : 1; - float C = glm::round(-1.0f); - Error += C == -1.0f ? 0 : 1; - float D = glm::round(-0.1f); - Error += D == 0.0f ? 0 : 1; - float E = glm::round(-0.9f); - Error += E == -1.0f ? 0 : 1; - float F = glm::round(-1.5f); - Error += F == -2.0f ? 0 : 1; - float G = glm::round(-1.9f); - Error += G == -2.0f ? 0 : 1; - } - - return Error; -} - -int test_roundEven() -{ - int Error = 0; - - { - float A = glm::roundEven(-1.5f); - Error += glm::epsilonEqual(A, -2.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - { - float A = glm::roundEven(1.5f); - Error += glm::epsilonEqual(A, 2.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - - { - float A = glm::roundEven(-3.5f); - Error += glm::epsilonEqual(A, -4.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - { - float A = glm::roundEven(3.5f); - Error += glm::epsilonEqual(A, 4.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - - { - float A = glm::roundEven(-2.5f); - Error += glm::epsilonEqual(A, -2.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - { - float A = glm::roundEven(2.5f); - Error += glm::epsilonEqual(A, 2.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - - { - float A = glm::roundEven(-2.4f); - Error += glm::epsilonEqual(A, -2.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - { - float A = glm::roundEven(2.4f); - Error += glm::epsilonEqual(A, 2.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - - { - float A = glm::roundEven(-2.6f); - Error += glm::epsilonEqual(A, -3.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - { - float A = glm::roundEven(2.6f); - Error += glm::epsilonEqual(A, 3.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - - { - float A = glm::roundEven(-2.0f); - Error += glm::epsilonEqual(A, -2.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - { - float A = glm::roundEven(2.0f); - Error += glm::epsilonEqual(A, 2.0f, 0.0001f) ? 0 : 1; - Error += 0; - } - - { - float A = glm::roundEven(0.0f); - Error += A == 0.0f ? 0 : 1; - float B = glm::roundEven(0.5f); - Error += B == 0.0f ? 0 : 1; - float C = glm::roundEven(1.0f); - Error += C == 1.0f ? 0 : 1; - float D = glm::roundEven(0.1f); - Error += D == 0.0f ? 0 : 1; - float E = glm::roundEven(0.9f); - Error += E == 1.0f ? 0 : 1; - float F = glm::roundEven(1.5f); - Error += F == 2.0f ? 0 : 1; - float G = glm::roundEven(1.9f); - Error += G == 2.0f ? 0 : 1; - } - - { - float A = glm::roundEven(-0.0f); - Error += A == 0.0f ? 0 : 1; - float B = glm::roundEven(-0.5f); - Error += B == -0.0f ? 0 : 1; - float C = glm::roundEven(-1.0f); - Error += C == -1.0f ? 0 : 1; - float D = glm::roundEven(-0.1f); - Error += D == 0.0f ? 0 : 1; - float E = glm::roundEven(-0.9f); - Error += E == -1.0f ? 0 : 1; - float F = glm::roundEven(-1.5f); - Error += F == -2.0f ? 0 : 1; - float G = glm::roundEven(-1.9f); - Error += G == -2.0f ? 0 : 1; - } - - { - float A = glm::roundEven(1.5f); - Error += A == 2.0f ? 0 : 1; - float B = glm::roundEven(2.5f); - Error += B == 2.0f ? 0 : 1; - float C = glm::roundEven(3.5f); - Error += C == 4.0f ? 0 : 1; - float D = glm::roundEven(4.5f); - Error += D == 4.0f ? 0 : 1; - float E = glm::roundEven(5.5f); - Error += E == 6.0f ? 0 : 1; - float F = glm::roundEven(6.5f); - Error += F == 6.0f ? 0 : 1; - float G = glm::roundEven(7.5f); - Error += G == 8.0f ? 0 : 1; - } - - { - float A = glm::roundEven(-1.5f); - Error += A == -2.0f ? 0 : 1; - float B = glm::roundEven(-2.5f); - Error += B == -2.0f ? 0 : 1; - float C = glm::roundEven(-3.5f); - Error += C == -4.0f ? 0 : 1; - float D = glm::roundEven(-4.5f); - Error += D == -4.0f ? 0 : 1; - float E = glm::roundEven(-5.5f); - Error += E == -6.0f ? 0 : 1; - float F = glm::roundEven(-6.5f); - Error += F == -6.0f ? 0 : 1; - float G = glm::roundEven(-7.5f); - Error += G == -8.0f ? 0 : 1; - } - - return Error; -} - -int test_isnan() -{ - int Error = 0; - - float Zero_f = 0.0; - double Zero_d = 0.0; - - { - Error += true == glm::isnan(0.0/Zero_d) ? 0 : 1; - Error += true == glm::any(glm::isnan(glm::dvec2(0.0 / Zero_d))) ? 0 : 1; - Error += true == glm::any(glm::isnan(glm::dvec3(0.0 / Zero_d))) ? 0 : 1; - Error += true == glm::any(glm::isnan(glm::dvec4(0.0 / Zero_d))) ? 0 : 1; - } - - { - Error += true == glm::isnan(0.0f/Zero_f) ? 0 : 1; - Error += true == glm::any(glm::isnan(glm::vec2(0.0f/Zero_f))) ? 0 : 1; - Error += true == glm::any(glm::isnan(glm::vec3(0.0f/Zero_f))) ? 0 : 1; - Error += true == glm::any(glm::isnan(glm::vec4(0.0f/Zero_f))) ? 0 : 1; - } - - return Error; -} - -int test_isinf() -{ - int Error = 0; - - float Zero_f = 0.0; - double Zero_d = 0.0; - - { - Error += true == glm::isinf( 1.0/Zero_d) ? 0 : 1; - Error += true == glm::isinf(-1.0/Zero_d) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::dvec2( 1.0/Zero_d))) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::dvec2(-1.0/Zero_d))) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::dvec3( 1.0/Zero_d))) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::dvec3(-1.0/Zero_d))) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::dvec4( 1.0/Zero_d))) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::dvec4(-1.0/Zero_d))) ? 0 : 1; - } - - { - Error += true == glm::isinf( 1.0f/Zero_f) ? 0 : 1; - Error += true == glm::isinf(-1.0f/Zero_f) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::vec2( 1.0f/Zero_f))) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::vec2(-1.0f/Zero_f))) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::vec3( 1.0f/Zero_f))) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::vec3(-1.0f/Zero_f))) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::vec4( 1.0f/Zero_f))) ? 0 : 1; - Error += true == glm::any(glm::isinf(glm::vec4(-1.0f/Zero_f))) ? 0 : 1; - } - - return Error; -} - -int main() -{ - int Error(0); - - Error += test_modf(); - Error += test_floatBitsToInt(); - Error += test_floatBitsToUint(); - Error += test_step::run(); - Error += test_mix::run(); - Error += test_round(); - Error += test_roundEven(); - Error += test_isnan(); - //Error += test_isinf(); - - return Error; -} - diff --git a/Libraries/glm-0.9.5.2/test/core/core_func_exponential.cpp b/Libraries/glm-0.9.5.2/test/core/core_func_exponential.cpp deleted file mode 100644 index 04d0036..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_func_exponential.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/func_exponential.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#define GLM_FORCE_RADIANS -#include -#include -#include - -namespace inversesqrt -{ - int test() - { - int Error(0); - - glm::uint ulp(0); - float diff(0.0f); - - for(float f = 0.001f; f < 10.f; f *= 1.001f) - { - glm::lowp_fvec1 lowp_v = glm::inversesqrt(glm::lowp_fvec1(f)); - float defaultp_v = glm::inversesqrt(f); - - ulp = glm::max(glm::float_distance(lowp_v.x, defaultp_v), ulp); - diff = glm::abs(lowp_v.x - defaultp_v); - } - - return Error; - } -}//namespace inversesqrt - -int main() -{ - int Error(0); - - Error += inversesqrt::test(); - - return Error; -} - diff --git a/Libraries/glm-0.9.5.2/test/core/core_func_geometric.cpp b/Libraries/glm-0.9.5.2/test/core/core_func_geometric.cpp deleted file mode 100644 index 88eb4c7..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_func_geometric.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-11-14 -// Licence : This source is under MIT licence -// File : test/core/func_geometric.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#define GLM_FORCE_RADIANS -#include -#include - -int test_reflect() -{ - int Error = 0; - - { - glm::vec2 A(1.0f,-1.0f); - glm::vec2 B(0.0f, 1.0f); - glm::vec2 C = glm::reflect(A, B); - Error += C == glm::vec2(1.0, 1.0) ? 0 : 1; - } - - { - glm::dvec2 A(1.0f,-1.0f); - glm::dvec2 B(0.0f, 1.0f); - glm::dvec2 C = glm::reflect(A, B); - Error += C == glm::dvec2(1.0, 1.0) ? 0 : 1; - } - - return Error; -} - -int test_refract() -{ - int Error = 0; - - { - float A(-1.0f); - float B(1.0f); - float C = glm::refract(A, B, 0.5f); - Error += C == -1.0f ? 0 : 1; - } - - { - glm::vec2 A(0.0f,-1.0f); - glm::vec2 B(0.0f, 1.0f); - glm::vec2 C = glm::refract(A, B, 0.5f); - Error += glm::all(glm::epsilonEqual(C, glm::vec2(0.0, -1.0), 0.0001f)) ? 0 : 1; - } - - { - glm::dvec2 A(0.0f,-1.0f); - glm::dvec2 B(0.0f, 1.0f); - glm::dvec2 C = glm::refract(A, B, 0.5); - Error += C == glm::dvec2(0.0, -1.0) ? 0 : 1; - } - - return Error; -} - -int main() -{ - int Error(0); - - Error += test_reflect(); - Error += test_refract(); - - return Error; -} - diff --git a/Libraries/glm-0.9.5.2/test/core/core_func_integer.cpp b/Libraries/glm-0.9.5.2/test/core/core_func_integer.cpp deleted file mode 100644 index d1fcec8..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_func_integer.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-05-03 -// Updated : 2011-05-03 -// Licence : This source is under MIT licence -// File : test/core/func_integer.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#define GLM_FORCE_RADIANS -#include -#include - -enum result -{ - SUCCESS, - FAIL, - ASSERT, - STATIC_ASSERT -}; - -namespace bitfieldExtract -{ - template - struct type - { - genType Value; - sizeType BitFirst; - sizeType BitCount; - genType Return; - result Result; - }; - - typedef type typeU32; - - typeU32 const Data32[] = - { - {0xffffffff, 8, 0, 0x00000000, SUCCESS}, - {0x00000000, 0,32, 0x00000000, SUCCESS}, - {0xffffffff, 0,32, 0xffffffff, SUCCESS}, - {0x0f0f0f0f, 0,32, 0x0f0f0f0f, SUCCESS}, - {0x00000000, 8, 0, 0x00000000, SUCCESS}, - {0x80000000,31, 1, 0x00000001, SUCCESS}, - {0x7fffffff,31, 1, 0x00000000, SUCCESS}, - {0x00000300, 8, 8, 0x00000003, SUCCESS}, - {0x0000ff00, 8, 8, 0x000000ff, SUCCESS}, - {0xfffffff0, 0, 5, 0x00000010, SUCCESS}, - {0x000000ff, 1, 3, 0x00000007, SUCCESS}, - {0x000000ff, 0, 3, 0x00000007, SUCCESS}, - {0x00000000, 0, 2, 0x00000000, SUCCESS}, - {0xffffffff, 0, 8, 0x000000ff, SUCCESS}, - {0xffff0000,16,16, 0x0000ffff, SUCCESS}, - {0xfffffff0, 0, 8, 0x00000000, FAIL}, - {0xffffffff,16,16, 0x00000000, FAIL}, - //{0xffffffff,32, 1, 0x00000000, ASSERT}, // Throw an assert - //{0xffffffff, 0,33, 0x00000000, ASSERT}, // Throw an assert - //{0xffffffff,16,16, 0x00000000, ASSERT}, // Throw an assert - }; - - int test() - { - glm::uint count = sizeof(Data32) / sizeof(typeU32); - - for(glm::uint i = 0; i < count; ++i) - { - glm::uint Return = glm::bitfieldExtract( - Data32[i].Value, - Data32[i].BitFirst, - Data32[i].BitCount); - - bool Compare = Data32[i].Return == Return; - - if(Data32[i].Result == SUCCESS && Compare) - continue; - else if(Data32[i].Result == FAIL && !Compare) - continue; - - std::cout << "glm::bitfieldExtract test fail on test " << i << std::endl; - return 1; - } - - return 0; - } -}//extractField - -namespace bitfieldReverse -{ - template - struct type - { - genType Value; - genType Return; - result Result; - }; - - typedef type typeU32; - - typeU32 const Data32[] = - { - {0xffffffff, 0xffffffff, SUCCESS}, - {0x00000000, 0x00000000, SUCCESS}, - {0xf0000000, 0x0000000f, SUCCESS}, - }; - - int test() - { - glm::uint count = sizeof(Data32) / sizeof(typeU32); - - for(glm::uint i = 0; i < count; ++i) - { - glm::uint Return = glm::bitfieldReverse( - Data32[i].Value); - - bool Compare = Data32[i].Return == Return; - - if(Data32[i].Result == SUCCESS && Compare) - continue; - else if(Data32[i].Result == FAIL && !Compare) - continue; - - std::cout << "glm::bitfieldReverse test fail on test " << i << std::endl; - return 1; - } - - return 0; - } -}//bitRevert - -namespace findMSB -{ - template - struct type - { - genType Value; - genType Return; - }; - - type const DataI32[] = - { - {0x00000000, -1}, - {0x00000001, 0}, - {0x00000002, 1}, - {0x00000003, 1}, - {0x00000004, 2}, - {0x00000005, 2}, - {0x00000007, 2}, - {0x00000008, 3}, - {0x00000010, 4}, - {0x00000020, 5}, - {0x00000040, 6}, - {0x00000080, 7}, - {0x00000100, 8}, - {0x00000200, 9}, - {0x00000400, 10}, - {0x00000800, 11}, - {0x00001000, 12}, - {0x00002000, 13}, - {0x00004000, 14}, - {0x00008000, 15}, - {0x00010000, 16}, - {0x00020000, 17}, - {0x00040000, 18}, - {0x00080000, 19}, - {0x00100000, 20}, - {0x00200000, 21}, - {0x00400000, 22}, - {0x00800000, 23}, - {0x01000000, 24}, - {0x02000000, 25}, - {0x04000000, 26}, - {0x08000000, 27}, - {0x10000000, 28}, - {0x20000000, 29}, - {0x40000000, 30} - }; - - int test() - { - int Error(0); - - for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(type); ++i) - { - int Result = glm::findMSB(DataI32[i].Value); - Error += DataI32[i].Return == Result ? 0 : 1; - assert(!Error); - } - - return Error; - } -}//findMSB - -namespace findLSB -{ - template - struct type - { - genType Value; - genType Return; - }; - - type const DataI32[] = - { - {0x00000001, 0}, - {0x00000003, 0}, - {0x00000002, 1} - }; - - int test() - { - int Error(0); - - for(std::size_t i = 0; i < sizeof(DataI32) / sizeof(type); ++i) - { - int Result = glm::findLSB(DataI32[i].Value); - Error += DataI32[i].Return == Result ? 0 : 1; - assert(!Error); - } - - return Error; - } -}//findLSB - -int main() -{ - int Error = 0; - - std::cout << "sizeof(glm::uint64): " << sizeof(glm::detail::uint64) << std::endl; - - Error += ::bitfieldExtract::test(); - Error += ::bitfieldReverse::test(); - Error += ::findMSB::test(); - Error += ::findLSB::test(); - - return Error; -} diff --git a/Libraries/glm-0.9.5.2/test/core/core_func_matrix.cpp b/Libraries/glm-0.9.5.2/test/core/core_func_matrix.cpp deleted file mode 100644 index 1b609f3..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_func_matrix.cpp +++ /dev/null @@ -1,251 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2012-05-02 -// Licence : This source is under MIT licence -// File : test/core/func_matrix.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#define GLM_FORCE_RADIANS -#include -#include -#include -#include -#include -#include - -using namespace glm; - -int test_matrixCompMult() -{ - int Error(0); - - { - mat2 m(0, 1, 2, 3); - mat2 n = matrixCompMult(m, m); - Error += n == mat2(0, 1, 4, 9) ? 0 : 1; - } - - { - mat2x3 m(0, 1, 2, 3, 4, 5); - mat2x3 n = matrixCompMult(m, m); - Error += n == mat2x3(0, 1, 4, 9, 16, 25) ? 0 : 1; - } - - { - mat2x4 m(0, 1, 2, 3, 4, 5, 6, 7); - mat2x4 n = matrixCompMult(m, m); - Error += n == mat2x4(0, 1, 4, 9, 16, 25, 36, 49) ? 0 : 1; - } - - { - mat3 m(0, 1, 2, 3, 4, 5, 6, 7, 8); - mat3 n = matrixCompMult(m, m); - Error += n == mat3(0, 1, 4, 9, 16, 25, 36, 49, 64) ? 0 : 1; - } - - { - mat3x2 m(0, 1, 2, 3, 4, 5); - mat3x2 n = matrixCompMult(m, m); - Error += n == mat3x2(0, 1, 4, 9, 16, 25) ? 0 : 1; - } - - { - mat3x4 m(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); - mat3x4 n = matrixCompMult(m, m); - Error += n == mat3x4(0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121) ? 0 : 1; - } - - { - mat4 m(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); - mat4 n = matrixCompMult(m, m); - Error += n == mat4(0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225) ? 0 : 1; - } - - { - mat4x2 m(0, 1, 2, 3, 4, 5, 6, 7); - mat4x2 n = matrixCompMult(m, m); - Error += n == mat4x2(0, 1, 4, 9, 16, 25, 36, 49) ? 0 : 1; - } - - { - mat4x3 m(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); - mat4x3 n = matrixCompMult(m, m); - Error += n == mat4x3(0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121) ? 0 : 1; - } - - return Error; -} - -int test_outerProduct() -{ - glm::mat4 m = glm::outerProduct(glm::vec4(1.0f), glm::vec4(1.0f)); - - return 0; -} - -int test_transpose() -{ - int Error(0); - - { - mat2 m(0, 1, 2, 3); - mat2 t = transpose(m); - Error += t == mat2(0, 2, 1, 3) ? 0 : 1; - } - - { - mat2x3 m(0, 1, 2, 3, 4, 5); - mat3x2 t = transpose(m); - Error += t == mat3x2(0, 3, 1, 4, 2, 5) ? 0 : 1; - } - - { - mat2x4 m(0, 1, 2, 3, 4, 5, 6, 7); - mat4x2 t = transpose(m); - Error += t == mat4x2(0, 4, 1, 5, 2, 6, 3, 7) ? 0 : 1; - } - - { - mat3 m(0, 1, 2, 3, 4, 5, 6, 7, 8); - mat3 t = transpose(m); - Error += t == mat3(0, 3, 6, 1, 4, 7, 2, 5, 8) ? 0 : 1; - } - - { - mat3x2 m(0, 1, 2, 3, 4, 5); - mat2x3 t = transpose(m); - Error += t == mat2x3(0, 2, 4, 1, 3, 5) ? 0 : 1; - } - - { - mat3x4 m(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); - mat4x3 t = transpose(m); - Error += t == mat4x3(0, 4, 8, 1, 5, 9, 2, 6, 10, 3, 7, 11) ? 0 : 1; - } - - { - mat4 m(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); - mat4 t = transpose(m); - Error += t == mat4(0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15) ? 0 : 1; - } - - { - mat4x2 m(0, 1, 2, 3, 4, 5, 6, 7); - mat2x4 t = transpose(m); - Error += t == mat2x4(0, 2, 4, 6, 1, 3, 5, 7) ? 0 : 1; - } - - { - mat4x3 m(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); - mat3x4 t = transpose(m); - Error += t == mat3x4(0, 3, 6, 9, 1, 4, 7, 10, 2, 5, 8, 11) ? 0 : 1; - } - - return Error; -} - -int test_determinant() -{ - - - return 0; -} - -int test_inverse() -{ - int Failed(0); - - glm::mat4x4 A4x4( - glm::vec4(1, 0, 1, 0), - glm::vec4(0, 1, 0, 0), - glm::vec4(0, 0, 1, 0), - glm::vec4(0, 0, 0, 1)); - glm::mat4x4 B4x4 = inverse(A4x4); - glm::mat4x4 I4x4 = A4x4 * B4x4; - Failed += I4x4 == glm::mat4x4(1) ? 0 : 1; - - glm::mat3x3 A3x3( - glm::vec3(1, 0, 1), - glm::vec3(0, 1, 0), - glm::vec3(0, 0, 1)); - glm::mat3x3 B3x3 = glm::inverse(A3x3); - glm::mat3x3 I3x3 = A3x3 * B3x3; - Failed += I3x3 == glm::mat3x3(1) ? 0 : 1; - - glm::mat2x2 A2x2( - glm::vec2(1, 1), - glm::vec2(0, 1)); - glm::mat2x2 B2x2 = glm::inverse(A2x2); - glm::mat2x2 I2x2 = A2x2 * B2x2; - Failed += I2x2 == glm::mat2x2(1) ? 0 : 1; - - - - return Failed; -} - -std::size_t const Count(10000000); - -template -int test_inverse_perf(std::size_t Instance, char const * Message) -{ - std::vector TestInputs; - TestInputs.resize(Count); - std::vector TestOutputs; - TestOutputs.resize(TestInputs.size()); - - VEC3 Axis(glm::normalize(VEC3(1.0f, 2.0f, 3.0f))); - - for(std::size_t i = 0; i < TestInputs.size(); ++i) - { - typename MAT4::value_type f = static_cast(i + Instance) * typename MAT4::value_type(0.1) + typename MAT4::value_type(0.1); - TestInputs[i] = glm::rotate(glm::translate(MAT4(1), Axis * f), f, Axis); - //TestInputs[i] = glm::translate(MAT4(1), Axis * f); - } - - std::clock_t StartTime = std::clock(); - - for(std::size_t i = 0; i < TestInputs.size(); ++i) - TestOutputs[i] = glm::inverse(TestInputs[i]); - - std::clock_t EndTime = std::clock(); - - for(std::size_t i = 0; i < TestInputs.size(); ++i) - TestOutputs[i] = TestOutputs[i] * TestInputs[i]; - - typename MAT4::value_type Diff(0); - for(std::size_t Entry = 0; Entry < TestOutputs.size(); ++Entry) - { - MAT4 i(1.0); - MAT4 m(TestOutputs[Entry]); - for(glm::length_t y = 0; y < m.length(); ++y) - for(glm::length_t x = 0; x < m[y].length(); ++x) - Diff = glm::max(m[y][x], i[y][x]); - } - - //glm::uint Ulp = 0; - //Ulp = glm::max(glm::float_distance(*Dst, *Src), Ulp); - - printf("inverse<%s>(%f): %d\n", Message, Diff, EndTime - StartTime); - - return 0; -}; - -int main() -{ - int Error(0); - Error += test_matrixCompMult(); - Error += test_outerProduct(); - Error += test_transpose(); - Error += test_determinant(); - Error += test_inverse(); - for(std::size_t i = 0; i < 1; ++i) - { - Error += test_inverse_perf(i, "mat4"); - Error += test_inverse_perf(i, "dmat4"); - } - return Error; -} - diff --git a/Libraries/glm-0.9.5.2/test/core/core_func_noise.cpp b/Libraries/glm-0.9.5.2/test/core/core_func_noise.cpp deleted file mode 100644 index 5d967a6..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_func_noise.cpp +++ /dev/null @@ -1,18 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/func_noise.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#define GLM_FORCE_RADIANS - -int main() -{ - int Failed = 0; - - return Failed; -} - diff --git a/Libraries/glm-0.9.5.2/test/core/core_func_packing.cpp b/Libraries/glm-0.9.5.2/test/core/core_func_packing.cpp deleted file mode 100644 index 4364493..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_func_packing.cpp +++ /dev/null @@ -1,165 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/func_packing.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#define GLM_FORCE_RADIANS -#include -#include -#include -#include -#include - -int test_packUnorm2x16() -{ - int Error = 0; -/* - std::vector A; - A.push_back(glm::hvec2(glm::half( 1.0f), glm::half( 0.0f))); - A.push_back(glm::hvec2(glm::half( 0.5f), glm::half( 0.7f))); - A.push_back(glm::hvec2(glm::half( 0.1f), glm::half( 0.2f))); -*/ - std::vector A; - A.push_back(glm::vec2(1.0f, 0.0f)); - A.push_back(glm::vec2(0.5f, 0.7f)); - A.push_back(glm::vec2(0.1f, 0.2f)); - - for(std::size_t i = 0; i < A.size(); ++i) - { - glm::vec2 B(A[i]); - glm::uint32 C = glm::packUnorm2x16(B); - glm::vec2 D = glm::unpackUnorm2x16(C); - Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 65535.f)) ? 0 : 1; - assert(!Error); - } - - return Error; -} - -int test_packSnorm2x16() -{ - int Error = 0; - - std::vector A; - A.push_back(glm::vec2( 1.0f, 0.0f)); - A.push_back(glm::vec2(-0.5f,-0.7f)); - A.push_back(glm::vec2(-0.1f, 0.1f)); - - for(std::size_t i = 0; i < A.size(); ++i) - { - glm::vec2 B(A[i]); - glm::uint32 C = glm::packSnorm2x16(B); - glm::vec2 D = glm::unpackSnorm2x16(C); - Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 32767.0f * 2.0f)) ? 0 : 1; - assert(!Error); - } - - return Error; -} - -int test_packUnorm4x8() -{ - int Error = 0; - - std::vector A; - A.push_back(glm::vec4(1.0f, 0.7f, 0.3f, 0.0f)); - A.push_back(glm::vec4(0.5f, 0.1f, 0.2f, 0.3f)); - - for(std::size_t i = 0; i < A.size(); ++i) - { - glm::vec4 B(A[i]); - glm::uint32 C = glm::packUnorm4x8(B); - glm::vec4 D = glm::unpackUnorm4x8(C); - Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 255.f)) ? 0 : 1; - assert(!Error); - } - - return Error; -} - -int test_packSnorm4x8() -{ - int Error = 0; - - std::vector A; - A.push_back(glm::vec4( 1.0f, 0.0f,-0.5f,-1.0f)); - A.push_back(glm::vec4(-0.7f,-0.1f, 0.1f, 0.7f)); - - for(std::size_t i = 0; i < A.size(); ++i) - { - glm::vec4 B(A[i]); - glm::uint32 C = glm::packSnorm4x8(B); - glm::vec4 D = glm::unpackSnorm4x8(C); - Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 127.f)) ? 0 : 1; - assert(!Error); - } - - return Error; -} - -int test_packHalf2x16() -{ - int Error = 0; -/* - std::vector A; - A.push_back(glm::hvec2(glm::half( 1.0f), glm::half( 2.0f))); - A.push_back(glm::hvec2(glm::half(-1.0f), glm::half(-2.0f))); - A.push_back(glm::hvec2(glm::half(-1.1f), glm::half( 1.1f))); -*/ - std::vector A; - A.push_back(glm::vec2( 1.0f, 2.0f)); - A.push_back(glm::vec2(-1.0f,-2.0f)); - A.push_back(glm::vec2(-1.1f, 1.1f)); - - for(std::size_t i = 0; i < A.size(); ++i) - { - glm::vec2 B(A[i]); - glm::uint C = glm::packHalf2x16(B); - glm::vec2 D = glm::unpackHalf2x16(C); - //Error += B == D ? 0 : 1; - Error += glm::all(glm::epsilonEqual(B, D, 1.0f / 127.f)) ? 0 : 1; - assert(!Error); - } - - return Error; -} - -int test_packDouble2x32() -{ - int Error = 0; - - std::vector A; - A.push_back(glm::uvec2( 1, 2)); - A.push_back(glm::uvec2(-1,-2)); - A.push_back(glm::uvec2(-1000, 1100)); - - for(std::size_t i = 0; i < A.size(); ++i) - { - glm::uvec2 B(A[i]); - double C = glm::packDouble2x32(B); - glm::uvec2 D = glm::unpackDouble2x32(C); - Error += B == D ? 0 : 1; - assert(!Error); - } - - return Error; -} - -int main() -{ - int Error = 0; - - Error += test_packSnorm4x8(); - Error += test_packUnorm4x8(); - Error += test_packSnorm2x16(); - Error += test_packUnorm2x16(); - Error += test_packHalf2x16(); - Error += test_packDouble2x32(); - - return Error; -} - diff --git a/Libraries/glm-0.9.5.2/test/core/core_func_swizzle.cpp b/Libraries/glm-0.9.5.2/test/core/core_func_swizzle.cpp deleted file mode 100644 index 1d7a7a8..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_func_swizzle.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-10-16 -// Updated : 2011-10-16 -// Licence : This source is under MIT License -// File : test/core/core_func_swizzle.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#define GLM_FORCE_RADIANS -#define GLM_MESSAGES -#define GLM_SWIZZLE -#include - -int test_ivec2_swizzle() -{ - int Error = 0; - - glm::ivec2 A(1, 2); - glm::ivec2 B = A.yx(); - glm::ivec2 C = B.yx(); - - Error += A != B ? 0 : 1; - Error += A == C ? 0 : 1; - - return Error; -} - -int test_ivec3_swizzle() -{ - int Error = 0; - - glm::ivec3 A(1, 2, 3); - glm::ivec3 B = A.zyx(); - glm::ivec3 C = B.zyx(); - - Error += A != B ? 0 : 1; - Error += A == C ? 0 : 1; - - return Error; -} - -int test_ivec4_swizzle() -{ - int Error = 0; - - glm::ivec4 A(1, 2, 3, 4); - glm::ivec4 B = A.wzyx(); - glm::ivec4 C = B.wzyx(); - - Error += A != B ? 0 : 1; - Error += A == C ? 0 : 1; - - return Error; -} - -int test_vec4_swizzle() -{ - int Error = 0; - - glm::vec4 A(1, 2, 3, 4); - glm::vec4 B = A.wzyx(); - glm::vec4 C = B.wzyx(); - - float f = glm::dot(C.wzyx(), C.xyzw()); - - Error += A != B ? 0 : 1; - Error += A == C ? 0 : 1; - - return Error; -} - -int main() -{ - int Error = 0; - - Error += test_ivec2_swizzle(); - Error += test_ivec3_swizzle(); - Error += test_ivec4_swizzle(); - - Error += test_vec4_swizzle(); - - return Error; -} - - - diff --git a/Libraries/glm-0.9.5.2/test/core/core_func_trigonometric.cpp b/Libraries/glm-0.9.5.2/test/core/core_func_trigonometric.cpp deleted file mode 100644 index 0dda2a3..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_func_trigonometric.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/func_trigonometric.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#define GLM_FORCE_RADIANS -#include - -int main() -{ - int Failed = 0; - - return Failed; -} - diff --git a/Libraries/glm-0.9.5.2/test/core/core_func_vector_relational.cpp b/Libraries/glm-0.9.5.2/test/core/core_func_vector_relational.cpp deleted file mode 100644 index 46e64df..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_func_vector_relational.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-01-15 -// Updated : 2011-09-13 -// Licence : This source is under MIT licence -// File : test/core/vector_relational.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#define GLM_FORCE_RADIANS -#include - -int main() -{ - int Error(0); - - return Error; -} - diff --git a/Libraries/glm-0.9.5.2/test/core/core_setup_message.cpp b/Libraries/glm-0.9.5.2/test/core/core_setup_message.cpp deleted file mode 100644 index 2d2409e..0000000 --- a/Libraries/glm-0.9.5.2/test/core/core_setup_message.cpp +++ /dev/null @@ -1,260 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////// -// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Created : 2011-05-31 -// Updated : 2013-08-27 -// Licence : This source is under MIT License -// File : test/core/setup_message.cpp -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#define GLM_MESSAGES -#include -#include - -int test_compiler() -{ - int Error(0); - - if(GLM_COMPILER & GLM_COMPILER_VC) - { - std::cout << "GLM_COMPILER_VC" << std::endl; - - switch(GLM_COMPILER) - { - case GLM_COMPILER_VC8: - std::cout << "GLM_COMPILER_VC8" << std::endl; - break; - case GLM_COMPILER_VC9: - std::cout << "GLM_COMPILER_VC9" << std::endl; - break; - case GLM_COMPILER_VC10: - std::cout << "GLM_COMPILER_VC10" << std::endl; - break; - case GLM_COMPILER_VC11: - std::cout << "GLM_COMPILER_VC11" << std::endl; - break; - case GLM_COMPILER_VC12: - std::cout << "GLM_COMPILER_VC12" << std::endl; - break; - default: - std::cout << "Visual C++ version not detected" << std::endl; - Error += 1; - break; - } - } - else if(GLM_COMPILER & GLM_COMPILER_GCC) - { - std::cout << "GLM_COMPILER_GCC" << std::endl; - - switch(GLM_COMPILER) - { - case GLM_COMPILER_GCC34: - std::cout << "GLM_COMPILER_GCC34" << std::endl; - break; - case GLM_COMPILER_GCC35: - std::cout << "GLM_COMPILER_GCC35" << std::endl; - break; - case GLM_COMPILER_GCC40: - std::cout << "GLM_COMPILER_GCC40" << std::endl; - break; - case GLM_COMPILER_GCC41: - std::cout << "GLM_COMPILER_GCC41" << std::endl; - break; - case GLM_COMPILER_GCC42: - std::cout << "GLM_COMPILER_GCC42" << std::endl; - break; - case GLM_COMPILER_GCC43: - std::cout << "GLM_COMPILER_GCC43" << std::endl; - break; - case GLM_COMPILER_GCC44: - std::cout << "GLM_COMPILER_GCC44" << std::endl; - break; - case GLM_COMPILER_GCC45: - std::cout << "GLM_COMPILER_GCC45" << std::endl; - break; - case GLM_COMPILER_GCC46: - std::cout << "GLM_COMPILER_GCC46" << std::endl; - break; - case GLM_COMPILER_GCC47: - std::cout << "GLM_COMPILER_GCC47" << std::endl; - break; - case GLM_COMPILER_GCC48: - std::cout << "GLM_COMPILER_GCC48" << std::endl; - break; - case GLM_COMPILER_GCC49: - std::cout << "GLM_COMPILER_GCC49" << std::endl; - break; - default: - std::cout << "GCC version not detected" << std::endl; - Error += 1; - break; - } - } - else if(GLM_COMPILER & GLM_COMPILER_BC) - { - std::cout << "GLM_COMPILER_BC" << std::endl; - } - else if(GLM_COMPILER & GLM_COMPILER_CODEWARRIOR) - { - std::cout << "GLM_COMPILER_CODEWARRIOR" << std::endl; - } - else if(GLM_COMPILER & GLM_COMPILER_CUDA) - { - std::cout << "GLM_COMPILER_CUDA" << std::endl; - } - else if(GLM_COMPILER & GLM_COMPILER_CLANG) - { -# ifdef __clang_major__ - std::cout << "GLM_COMPILER_CLANG " << __clang_major__ << "." << __clang_minor__ << std::endl; -# endif - switch(GLM_COMPILER) - { - case GLM_COMPILER_CLANG26: - std::cout << "GLM_COMPILER_CLANG26" << std::endl; - break; - case GLM_COMPILER_CLANG27: - std::cout << "GLM_COMPILER_CLANG27" << std::endl; - break; - case GLM_COMPILER_CLANG28: - std::cout << "GLM_COMPILER_CLANG28" << std::endl; - break; - case GLM_COMPILER_CLANG29: - std::cout << "GLM_COMPILER_CLANG29" << std::endl; - break; - case GLM_COMPILER_CLANG30: - std::cout << "GLM_COMPILER_CLANG30" << std::endl; - break; - case GLM_COMPILER_CLANG31: - std::cout << "GLM_COMPILER_CLANG31" << std::endl; - break; - case GLM_COMPILER_CLANG32: - std::cout << "GLM_COMPILER_CLANG32" << std::endl; - break; - case GLM_COMPILER_CLANG33: - std::cout << "GLM_COMPILER_CLANG33" << std::endl; - break; - case GLM_COMPILER_CLANG40: - std::cout << "GLM_COMPILER_CLANG40" << std::endl; - break; - case GLM_COMPILER_CLANG41: - std::cout << "GLM_COMPILER_CLANG41" << std::endl; - break; - case GLM_COMPILER_CLANG42: - std::cout << "GLM_COMPILER_CLANG42" << std::endl; - break; - case GLM_COMPILER_CLANG43: - std::cout << "GLM_COMPILER_CLANG43" << std::endl; - break; - default: - std::cout << "Clang version not detected" << std::endl; - break; - } - } - else if(GLM_COMPILER & GLM_COMPILER_LLVM_GCC) - { - std::cout << "GLM_COMPILER_LLVM_GCC" << std::endl; - - } - else if(GLM_COMPILER & GLM_COMPILER_INTEL) - { - std::cout << "GLM_COMPILER_INTEL" << std::endl; - switch(GLM_COMPILER) - { - case GLM_COMPILER_INTEL9: - std::cout << "GLM_COMPILER_INTEL9" << std::endl; - break; - case GLM_COMPILER_INTEL10_0: - std::cout << "GLM_COMPILER_INTEL10_0" << std::endl; - break; - case GLM_COMPILER_INTEL10_1: - std::cout << "GLM_COMPILER_INTEL10_1" << std::endl; - break; - case GLM_COMPILER_INTEL11_0: - std::cout << "GLM_COMPILER_INTEL11_0" << std::endl; - break; - case GLM_COMPILER_INTEL11_1: - std::cout << "GLM_COMPILER_INTEL11_1" << std::endl; - break; - case GLM_COMPILER_INTEL12_1: - std::cout << "GLM_COMPILER_INTEL12_1" << std::endl; - break; - case GLM_COMPILER_INTEL13_0: - std::cout << "GLM_COMPILER_INTEL13_0" << std::endl; - break; - default: - std::cout << "Intel compiler version not detected" << std::endl; - Error += 1; - break; - } - } - else - { - std::cout << "Undetected compiler" << std::endl; - Error += 1; - } - - return Error; -} - -int test_model() -{ - int Error = 0; - - Error += ((sizeof(void*) == 4) && (GLM_MODEL == GLM_MODEL_32)) || ((sizeof(void*) == 8) && (GLM_MODEL == GLM_MODEL_64)) ? 0 : 1; - - if(GLM_MODEL == GLM_MODEL_32) - std::cout << "GLM_MODEL_32" << std::endl; - else if(GLM_MODEL == GLM_MODEL_64) - std::cout << "GLM_MODEL_64" << std::endl; - - return Error; -} - -int test_cpp_version() -{ - std::cout << "__cplusplus: " << __cplusplus << std::endl; - - return 0; -} - -int test_operators() -{ - glm::vec3 A(1.0f); - glm::vec3 B(1.0f); - bool R = A != B; - bool S = A == B; - - return (S && !R) ? 0 : 1; -} - -template -struct vec -{ - -}; - -template