├── .gitignore ├── README.md ├── external ├── gl3w │ ├── gl3w.c │ └── include │ │ └── GL3 │ │ ├── gl3.h │ │ └── gl3w.h ├── glfw │ ├── COPYING.txt │ ├── docs │ │ └── html │ │ │ ├── annotated.html │ │ │ ├── bc_s.png │ │ │ ├── bdwn.png │ │ │ ├── bug.html │ │ │ ├── build.html │ │ │ ├── build_8dox.html │ │ │ ├── classes.html │ │ │ ├── closed.png │ │ │ ├── compat.html │ │ │ ├── compat_8dox.html │ │ │ ├── compile.html │ │ │ ├── compile_8dox.html │ │ │ ├── context.html │ │ │ ├── context_8dox.html │ │ │ ├── dir_2ed3966b92992331bf8a66a32e738cef.html │ │ │ ├── dir_85715018e387ccbec8815d3563c0262a.html │ │ │ ├── dir_ced77f9823b212f18d14b97d44f17dc6.html │ │ │ ├── doxygen.css │ │ │ ├── doxygen.png │ │ │ ├── dynsections.js │ │ │ ├── extra.css │ │ │ ├── files.html │ │ │ ├── ftv2blank.png │ │ │ ├── ftv2cl.png │ │ │ ├── ftv2doc.png │ │ │ ├── ftv2folderclosed.png │ │ │ ├── ftv2folderopen.png │ │ │ ├── ftv2lastnode.png │ │ │ ├── ftv2link.png │ │ │ ├── ftv2mlastnode.png │ │ │ ├── ftv2mnode.png │ │ │ ├── ftv2mo.png │ │ │ ├── ftv2node.png │ │ │ ├── ftv2ns.png │ │ │ ├── ftv2plastnode.png │ │ │ ├── ftv2pnode.png │ │ │ ├── ftv2splitbar.png │ │ │ ├── ftv2vertline.png │ │ │ ├── functions.html │ │ │ ├── functions_vars.html │ │ │ ├── glfw3_8h.html │ │ │ ├── glfw3_8h_source.html │ │ │ ├── glfw3native_8h.html │ │ │ ├── glfw3native_8h_source.html │ │ │ ├── globals.html │ │ │ ├── globals_0x62.html │ │ │ ├── globals_0x63.html │ │ │ ├── globals_0x64.html │ │ │ ├── globals_0x65.html │ │ │ ├── globals_0x66.html │ │ │ ├── globals_0x67.html │ │ │ ├── globals_0x68.html │ │ │ ├── globals_0x69.html │ │ │ ├── globals_0x6a.html │ │ │ ├── globals_0x6b.html │ │ │ ├── globals_0x6c.html │ │ │ ├── globals_0x6d.html │ │ │ ├── globals_0x6e.html │ │ │ ├── globals_0x6f.html │ │ │ ├── globals_0x70.html │ │ │ ├── globals_0x72.html │ │ │ ├── globals_0x73.html │ │ │ ├── globals_0x74.html │ │ │ ├── globals_0x76.html │ │ │ ├── globals_0x77.html │ │ │ ├── globals_defs.html │ │ │ ├── globals_defs_0x62.html │ │ │ ├── globals_defs_0x63.html │ │ │ ├── globals_defs_0x64.html │ │ │ ├── globals_defs_0x66.html │ │ │ ├── globals_defs_0x67.html │ │ │ ├── globals_defs_0x69.html │ │ │ ├── globals_defs_0x6a.html │ │ │ ├── globals_defs_0x6b.html │ │ │ ├── globals_defs_0x6c.html │ │ │ ├── globals_defs_0x6d.html │ │ │ ├── globals_defs_0x6e.html │ │ │ ├── globals_defs_0x6f.html │ │ │ ├── globals_defs_0x70.html │ │ │ ├── globals_defs_0x72.html │ │ │ ├── globals_defs_0x73.html │ │ │ ├── globals_defs_0x76.html │ │ │ ├── globals_func.html │ │ │ ├── globals_type.html │ │ │ ├── group__buttons.html │ │ │ ├── group__clipboard.html │ │ │ ├── group__context.html │ │ │ ├── group__error.html │ │ │ ├── group__errors.html │ │ │ ├── group__init.html │ │ │ ├── group__input.html │ │ │ ├── group__joysticks.html │ │ │ ├── group__keys.html │ │ │ ├── group__mods.html │ │ │ ├── group__monitor.html │ │ │ ├── group__native.html │ │ │ ├── group__time.html │ │ │ ├── group__window.html │ │ │ ├── index.html │ │ │ ├── jquery.js │ │ │ ├── main_8dox.html │ │ │ ├── modules.html │ │ │ ├── monitor.html │ │ │ ├── monitor_8dox.html │ │ │ ├── moving.html │ │ │ ├── moving_8dox.html │ │ │ ├── nav_f.png │ │ │ ├── nav_g.png │ │ │ ├── nav_h.png │ │ │ ├── news.html │ │ │ ├── news_8dox.html │ │ │ ├── open.png │ │ │ ├── pages.html │ │ │ ├── quick.html │ │ │ ├── quick_8dox.html │ │ │ ├── search │ │ │ ├── all_62.html │ │ │ ├── all_62.js │ │ │ ├── all_63.html │ │ │ ├── all_63.js │ │ │ ├── all_65.html │ │ │ ├── all_65.js │ │ │ ├── all_67.html │ │ │ ├── all_67.js │ │ │ ├── all_68.html │ │ │ ├── all_68.js │ │ │ ├── all_69.html │ │ │ ├── all_69.js │ │ │ ├── all_6a.html │ │ │ ├── all_6a.js │ │ │ ├── all_6b.html │ │ │ ├── all_6b.js │ │ │ ├── all_6d.html │ │ │ ├── all_6d.js │ │ │ ├── all_6e.html │ │ │ ├── all_6e.js │ │ │ ├── all_71.html │ │ │ ├── all_71.js │ │ │ ├── all_72.html │ │ │ ├── all_72.js │ │ │ ├── all_73.html │ │ │ ├── all_73.js │ │ │ ├── all_74.html │ │ │ ├── all_74.js │ │ │ ├── all_77.html │ │ │ ├── all_77.js │ │ │ ├── classes_67.html │ │ │ ├── classes_67.js │ │ │ ├── close.png │ │ │ ├── defines_67.html │ │ │ ├── defines_67.js │ │ │ ├── files_62.html │ │ │ ├── files_62.js │ │ │ ├── files_63.html │ │ │ ├── files_63.js │ │ │ ├── files_67.html │ │ │ ├── files_67.js │ │ │ ├── files_6d.html │ │ │ ├── files_6d.js │ │ │ ├── files_6e.html │ │ │ ├── files_6e.js │ │ │ ├── files_71.html │ │ │ ├── files_71.js │ │ │ ├── files_77.html │ │ │ ├── files_77.js │ │ │ ├── functions_67.html │ │ │ ├── functions_67.js │ │ │ ├── groups_63.html │ │ │ ├── groups_63.js │ │ │ ├── groups_65.html │ │ │ ├── groups_65.js │ │ │ ├── groups_69.html │ │ │ ├── groups_69.js │ │ │ ├── groups_6a.html │ │ │ ├── groups_6a.js │ │ │ ├── groups_6b.html │ │ │ ├── groups_6b.js │ │ │ ├── groups_6d.html │ │ │ ├── groups_6d.js │ │ │ ├── groups_6e.html │ │ │ ├── groups_6e.js │ │ │ ├── groups_74.html │ │ │ ├── groups_74.js │ │ │ ├── groups_77.html │ │ │ ├── groups_77.js │ │ │ ├── mag_sel.png │ │ │ ├── nomatches.html │ │ │ ├── pages_62.html │ │ │ ├── pages_62.js │ │ │ ├── pages_63.html │ │ │ ├── pages_63.js │ │ │ ├── pages_67.html │ │ │ ├── pages_67.js │ │ │ ├── pages_6d.html │ │ │ ├── pages_6d.js │ │ │ ├── pages_6e.html │ │ │ ├── pages_6e.js │ │ │ ├── pages_73.html │ │ │ ├── pages_73.js │ │ │ ├── pages_77.html │ │ │ ├── pages_77.js │ │ │ ├── search.css │ │ │ ├── search.js │ │ │ ├── search_l.png │ │ │ ├── search_m.png │ │ │ ├── search_r.png │ │ │ ├── typedefs_67.html │ │ │ ├── typedefs_67.js │ │ │ ├── variables_62.html │ │ │ ├── variables_62.js │ │ │ ├── variables_67.html │ │ │ ├── variables_67.js │ │ │ ├── variables_68.html │ │ │ ├── variables_68.js │ │ │ ├── variables_72.html │ │ │ ├── variables_72.js │ │ │ ├── variables_73.html │ │ │ ├── variables_73.js │ │ │ ├── variables_77.html │ │ │ └── variables_77.js │ │ │ ├── structGLFWgammaramp.html │ │ │ ├── structGLFWvidmode.html │ │ │ ├── sync_off.png │ │ │ ├── sync_on.png │ │ │ ├── tab_a.png │ │ │ ├── tab_b.png │ │ │ ├── tab_h.png │ │ │ ├── tab_s.png │ │ │ ├── tabs.css │ │ │ ├── window.html │ │ │ └── window_8dox.html │ ├── include │ │ └── GLFW │ │ │ ├── glfw3.h │ │ │ └── glfw3native.h │ ├── lib-mingw │ │ ├── glfw3.dll │ │ ├── glfw3dll.a │ │ └── libglfw3.a │ ├── lib-msvc110 │ │ ├── glfw3.dll │ │ ├── glfw3.lib │ │ └── glfw3dll.lib │ └── lib-msvc120 │ │ ├── glfw3.dll │ │ ├── glfw3.lib │ │ └── glfw3dll.lib ├── glm │ ├── CMakeLists.txt │ ├── CTestConfig.cmake │ ├── copying.txt │ ├── doc │ │ ├── man.doxy │ │ ├── pages.doxy │ │ └── theme │ │ │ ├── background.jpg │ │ │ ├── doxygen.css │ │ │ └── tabs.css │ ├── glm │ │ ├── CMakeLists.txt │ │ ├── core │ │ │ ├── _detail.hpp │ │ │ ├── _fixes.hpp │ │ │ ├── _swizzle.hpp │ │ │ ├── _swizzle_func.hpp │ │ │ ├── _vectorize.hpp │ │ │ ├── dummy.cpp │ │ │ ├── func_common.hpp │ │ │ ├── func_common.inl │ │ │ ├── func_exponential.hpp │ │ │ ├── func_exponential.inl │ │ │ ├── func_geometric.hpp │ │ │ ├── func_geometric.inl │ │ │ ├── func_integer.hpp │ │ │ ├── func_integer.inl │ │ │ ├── func_matrix.hpp │ │ │ ├── func_matrix.inl │ │ │ ├── func_noise.hpp │ │ │ ├── func_noise.inl │ │ │ ├── func_packing.hpp │ │ │ ├── func_packing.inl │ │ │ ├── func_trigonometric.hpp │ │ │ ├── func_trigonometric.inl │ │ │ ├── func_vector_relational.hpp │ │ │ ├── func_vector_relational.inl │ │ │ ├── hint.hpp │ │ │ ├── intrinsic_common.hpp │ │ │ ├── intrinsic_common.inl │ │ │ ├── intrinsic_exponential.hpp │ │ │ ├── intrinsic_exponential.inl │ │ │ ├── intrinsic_geometric.hpp │ │ │ ├── intrinsic_geometric.inl │ │ │ ├── intrinsic_matrix.hpp │ │ │ ├── intrinsic_matrix.inl │ │ │ ├── intrinsic_trigonometric.hpp │ │ │ ├── intrinsic_trigonometric.inl │ │ │ ├── intrinsic_vector_relational.hpp │ │ │ ├── intrinsic_vector_relational.inl │ │ │ ├── setup.hpp │ │ │ ├── type.hpp │ │ │ ├── type_float.hpp │ │ │ ├── type_gentype.hpp │ │ │ ├── type_gentype.inl │ │ │ ├── type_half.hpp │ │ │ ├── type_half.inl │ │ │ ├── type_int.hpp │ │ │ ├── type_mat.hpp │ │ │ ├── type_mat.inl │ │ │ ├── type_mat2x2.hpp │ │ │ ├── type_mat2x2.inl │ │ │ ├── type_mat2x3.hpp │ │ │ ├── type_mat2x3.inl │ │ │ ├── type_mat2x4.hpp │ │ │ ├── type_mat2x4.inl │ │ │ ├── type_mat3x2.hpp │ │ │ ├── type_mat3x2.inl │ │ │ ├── type_mat3x3.hpp │ │ │ ├── type_mat3x3.inl │ │ │ ├── type_mat3x4.hpp │ │ │ ├── type_mat3x4.inl │ │ │ ├── type_mat4x2.hpp │ │ │ ├── type_mat4x2.inl │ │ │ ├── type_mat4x3.hpp │ │ │ ├── type_mat4x3.inl │ │ │ ├── type_mat4x4.hpp │ │ │ ├── type_mat4x4.inl │ │ │ ├── type_size.hpp │ │ │ ├── type_vec.hpp │ │ │ ├── type_vec.inl │ │ │ ├── type_vec1.hpp │ │ │ ├── type_vec1.inl │ │ │ ├── type_vec2.hpp │ │ │ ├── type_vec2.inl │ │ │ ├── type_vec3.hpp │ │ │ ├── type_vec3.inl │ │ │ ├── type_vec4.hpp │ │ │ └── type_vec4.inl │ │ ├── ext.hpp │ │ ├── glm.hpp │ │ ├── gtc │ │ │ ├── constants.inl │ │ │ ├── epsilon.hpp │ │ │ ├── epsilon.inl │ │ │ ├── half_float.hpp │ │ │ ├── half_float.inl │ │ │ ├── matrix_access.hpp │ │ │ ├── matrix_access.inl │ │ │ ├── matrix_integer.hpp │ │ │ ├── matrix_inverse.hpp │ │ │ ├── matrix_inverse.inl │ │ │ ├── matrix_transform.hpp │ │ │ ├── matrix_transform.inl │ │ │ ├── noise.hpp │ │ │ ├── noise.inl │ │ │ ├── quaternion.hpp │ │ │ ├── quaternion.inl │ │ │ ├── random.hpp │ │ │ ├── random.inl │ │ │ ├── reciprocal.hpp │ │ │ ├── reciprocal.inl │ │ │ ├── swizzle.hpp │ │ │ ├── swizzle.inl │ │ │ ├── type_precision.hpp │ │ │ ├── type_precision.inl │ │ │ ├── type_ptr.hpp │ │ │ ├── type_ptr.inl │ │ │ ├── ulp.hpp │ │ │ └── ulp.inl │ │ ├── gtx │ │ │ ├── associated_min_max.hpp │ │ │ ├── associated_min_max.inl │ │ │ ├── bit.hpp │ │ │ ├── bit.inl │ │ │ ├── closest_point.hpp │ │ │ ├── closest_point.inl │ │ │ ├── color_cast.hpp │ │ │ ├── color_cast.inl │ │ │ ├── color_space.hpp │ │ │ ├── color_space.inl │ │ │ ├── color_space_YCoCg.hpp │ │ │ ├── color_space_YCoCg.inl │ │ │ ├── compatibility.hpp │ │ │ ├── compatibility.inl │ │ │ ├── component_wise.hpp │ │ │ ├── component_wise.inl │ │ │ ├── constants.hpp │ │ │ ├── epsilon.hpp │ │ │ ├── euler_angles.hpp │ │ │ ├── euler_angles.inl │ │ │ ├── extend.hpp │ │ │ ├── extend.inl │ │ │ ├── extented_min_max.hpp │ │ │ ├── extented_min_max.inl │ │ │ ├── fast_exponential.hpp │ │ │ ├── fast_exponential.inl │ │ │ ├── fast_square_root.hpp │ │ │ ├── fast_square_root.inl │ │ │ ├── fast_trigonometry.hpp │ │ │ ├── fast_trigonometry.inl │ │ │ ├── gradient_paint.hpp │ │ │ ├── gradient_paint.inl │ │ │ ├── handed_coordinate_space.hpp │ │ │ ├── handed_coordinate_space.inl │ │ │ ├── inertia.hpp │ │ │ ├── inertia.inl │ │ │ ├── int_10_10_10_2.hpp │ │ │ ├── int_10_10_10_2.inl │ │ │ ├── integer.hpp │ │ │ ├── integer.inl │ │ │ ├── intersect.hpp │ │ │ ├── intersect.inl │ │ │ ├── log_base.hpp │ │ │ ├── log_base.inl │ │ │ ├── matrix_cross_product.hpp │ │ │ ├── matrix_cross_product.inl │ │ │ ├── matrix_interpolation.hpp │ │ │ ├── matrix_interpolation.inl │ │ │ ├── matrix_major_storage.hpp │ │ │ ├── matrix_major_storage.inl │ │ │ ├── matrix_operation.hpp │ │ │ ├── matrix_operation.inl │ │ │ ├── matrix_query.hpp │ │ │ ├── matrix_query.inl │ │ │ ├── mixed_product.hpp │ │ │ ├── mixed_product.inl │ │ │ ├── multiple.hpp │ │ │ ├── multiple.inl │ │ │ ├── noise.hpp │ │ │ ├── norm.hpp │ │ │ ├── norm.inl │ │ │ ├── normal.hpp │ │ │ ├── normal.inl │ │ │ ├── normalize_dot.hpp │ │ │ ├── normalize_dot.inl │ │ │ ├── number_precision.hpp │ │ │ ├── number_precision.inl │ │ │ ├── ocl_type.hpp │ │ │ ├── ocl_type.inl │ │ │ ├── optimum_pow.hpp │ │ │ ├── optimum_pow.inl │ │ │ ├── orthonormalize.hpp │ │ │ ├── orthonormalize.inl │ │ │ ├── perpendicular.hpp │ │ │ ├── perpendicular.inl │ │ │ ├── polar_coordinates.hpp │ │ │ ├── polar_coordinates.inl │ │ │ ├── projection.hpp │ │ │ ├── projection.inl │ │ │ ├── quaternion.hpp │ │ │ ├── quaternion.inl │ │ │ ├── random.hpp │ │ │ ├── raw_data.hpp │ │ │ ├── raw_data.inl │ │ │ ├── reciprocal.hpp │ │ │ ├── rotate_vector.hpp │ │ │ ├── rotate_vector.inl │ │ │ ├── simd_mat4.hpp │ │ │ ├── simd_mat4.inl │ │ │ ├── simd_vec4.hpp │ │ │ ├── simd_vec4.inl │ │ │ ├── spline.hpp │ │ │ ├── spline.inl │ │ │ ├── std_based_type.hpp │ │ │ ├── std_based_type.inl │ │ │ ├── string_cast.hpp │ │ │ ├── string_cast.inl │ │ │ ├── transform.hpp │ │ │ ├── transform.inl │ │ │ ├── transform2.hpp │ │ │ ├── transform2.inl │ │ │ ├── ulp.hpp │ │ │ ├── unsigned_int.hpp │ │ │ ├── unsigned_int.inl │ │ │ ├── vec1.hpp │ │ │ ├── vec1.inl │ │ │ ├── vector_access.hpp │ │ │ ├── vector_access.inl │ │ │ ├── vector_angle.hpp │ │ │ ├── vector_angle.inl │ │ │ ├── vector_query.hpp │ │ │ ├── vector_query.inl │ │ │ ├── verbose_operator.hpp │ │ │ ├── verbose_operator.inl │ │ │ ├── wrap.hpp │ │ │ └── wrap.inl │ │ └── virtrev │ │ │ └── xstream.hpp │ ├── readme.txt │ ├── test │ │ ├── CMakeLists.txt │ │ ├── bug │ │ │ └── CMakeLists.txt │ │ ├── core │ │ │ ├── CMakeLists.txt │ │ │ ├── core_func_common.cpp │ │ │ ├── core_func_exponential.cpp │ │ │ ├── core_func_geometric.cpp │ │ │ ├── core_func_integer.cpp │ │ │ ├── core_func_matrix.cpp │ │ │ ├── core_func_noise.cpp │ │ │ ├── core_func_packing.cpp │ │ │ ├── core_func_swizzle.cpp │ │ │ ├── core_func_trigonometric.cpp │ │ │ ├── core_func_vector_relational.cpp │ │ │ ├── core_setup_message.cpp │ │ │ ├── core_setup_precision.cpp │ │ │ ├── core_type_float.cpp │ │ │ ├── core_type_half.cpp │ │ │ ├── core_type_int.cpp │ │ │ ├── core_type_length.cpp │ │ │ ├── core_type_mat2x2.cpp │ │ │ ├── core_type_mat2x3.cpp │ │ │ ├── core_type_mat2x4.cpp │ │ │ ├── core_type_mat3x2.cpp │ │ │ ├── core_type_mat3x3.cpp │ │ │ ├── core_type_mat3x4.cpp │ │ │ ├── core_type_mat4x2.cpp │ │ │ ├── core_type_mat4x3.cpp │ │ │ ├── core_type_mat4x4.cpp │ │ │ ├── core_type_vec1.cpp │ │ │ ├── core_type_vec2.cpp │ │ │ ├── core_type_vec3.cpp │ │ │ └── core_type_vec4.cpp │ │ ├── external │ │ │ └── gli │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── core │ │ │ │ ├── dummy.cpp │ │ │ │ ├── generate_mipmaps.hpp │ │ │ │ ├── generate_mipmaps.inl │ │ │ │ ├── image2d.hpp │ │ │ │ ├── image2d.inl │ │ │ │ ├── operation.hpp │ │ │ │ ├── operation.inl │ │ │ │ ├── operator.hpp │ │ │ │ ├── operator.inl │ │ │ │ ├── shared_array.hpp │ │ │ │ ├── shared_array.inl │ │ │ │ ├── shared_ptr.hpp │ │ │ │ ├── shared_ptr.inl │ │ │ │ ├── size.hpp │ │ │ │ ├── size.inl │ │ │ │ ├── texture2d.hpp │ │ │ │ ├── texture2d.inl │ │ │ │ ├── texture2d_array.hpp │ │ │ │ ├── texture2d_array.inl │ │ │ │ ├── texture_cube.hpp │ │ │ │ ├── texture_cube.inl │ │ │ │ ├── texture_cube_array.hpp │ │ │ │ └── texture_cube_array.inl │ │ │ │ ├── gli.hpp │ │ │ │ └── gtx │ │ │ │ ├── compression.hpp │ │ │ │ ├── compression.inl │ │ │ │ ├── fetch.hpp │ │ │ │ ├── fetch.inl │ │ │ │ ├── gl_texture2d.hpp │ │ │ │ ├── gl_texture2d.inl │ │ │ │ ├── gradient.hpp │ │ │ │ ├── gradient.inl │ │ │ │ ├── loader.hpp │ │ │ │ ├── loader.inl │ │ │ │ ├── loader_dds10.hpp │ │ │ │ ├── loader_dds10.inl │ │ │ │ ├── loader_dds9.hpp │ │ │ │ ├── loader_dds9.inl │ │ │ │ ├── loader_tga.hpp │ │ │ │ ├── loader_tga.inl │ │ │ │ ├── wavelet.hpp │ │ │ │ └── wavelet.inl │ │ ├── glm.cppcheck │ │ ├── gtc │ │ │ ├── CMakeLists.txt │ │ │ ├── gtc_constants.cpp │ │ │ ├── gtc_epsilon.cpp │ │ │ ├── gtc_half_float.cpp │ │ │ ├── gtc_matrix_access.cpp │ │ │ ├── gtc_matrix_integer.cpp │ │ │ ├── gtc_matrix_inverse.cpp │ │ │ ├── gtc_matrix_transform.cpp │ │ │ ├── gtc_noise.cpp │ │ │ ├── gtc_quaternion.cpp │ │ │ ├── gtc_random.cpp │ │ │ ├── gtc_reciprocal.cpp │ │ │ ├── gtc_swizzle.cpp │ │ │ ├── gtc_type_precision.cpp │ │ │ ├── gtc_type_ptr.cpp │ │ │ └── gtc_ulp.cpp │ │ └── gtx │ │ │ ├── CMakeLists.txt │ │ │ ├── gtx_bit.cpp │ │ │ ├── gtx_gradient_paint.cpp │ │ │ ├── gtx_integer.cpp │ │ │ ├── gtx_matrix_interpolation.cpp │ │ │ ├── gtx_matrix_query.cpp │ │ │ ├── gtx_quaternion.cpp │ │ │ ├── gtx_random.cpp │ │ │ ├── gtx_rotate_vector.cpp │ │ │ ├── gtx_simd_mat4.cpp │ │ │ ├── gtx_simd_vec4.cpp │ │ │ ├── gtx_string_cast.cpp │ │ │ ├── gtx_vector_angle.cpp │ │ │ └── gtx_vector_query.cpp │ └── util │ │ ├── FindGLM.cmake │ │ ├── autoexp.txt │ │ ├── autoexp.vc2010.dat │ │ ├── glm.natvis │ │ └── usertype.dat └── libs │ └── glfw3.lib ├── include ├── Common.hpp ├── OpenGL.hpp └── ShaderProgram.hpp ├── premake4.lua ├── screenshots ├── pcf.png ├── vsm.png └── vsm_cubemap.png └── src ├── blurFragmentShader.glsl ├── blurVertexShader.glsl ├── common ├── Common.cpp ├── ShaderProgram.cpp └── gl3w.c ├── pcf ├── fragmentShader.glsl ├── main.cpp ├── shadowFragmentShader.glsl ├── shadowVertexShader.glsl └── vertexShader.glsl ├── vsm ├── fragmentShader.glsl ├── main.cpp ├── shadowFragmentShader.glsl ├── shadowVertexShader.glsl └── vertexShader.glsl └── vsmcube ├── fragmentShader.glsl ├── main.cpp ├── shadowFragmentShader.glsl ├── shadowVertexShader.glsl └── vertexShader.glsl /.gitignore: -------------------------------------------------------------------------------- 1 | #OS junk files 2 | [Tt]humbs.db 3 | *.DS_Store 4 | 5 | #Visual Studio files 6 | *.[Oo]bj 7 | *.user 8 | *.aps 9 | *.pch 10 | *.vspscc 11 | *.vssscc 12 | *_i.c 13 | *_p.c 14 | *.ncb 15 | *.suo 16 | *.tlb 17 | *.tlh 18 | *.bak 19 | *.[Cc]ache 20 | *.ilk 21 | *.log 22 | *.sbr 23 | *.sdf 24 | *.opensdf 25 | *.unsuccessfulbuild 26 | ipch/ 27 | obj/ 28 | [Bb]in/ 29 | [Dd]ebug*/ 30 | [Rr]elease*/ 31 | Ankh.NoLoad 32 | 33 | #Project files 34 | [Bb]uild/ 35 | 36 | # visual studio database projects 37 | *.dbmdl 38 | 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Shadow Mapping in OpenGL 3+ (Core Profile) 2 | ==================== 3 | 4 | Examples of shadow mapping with percentage-closer filtering, use of variance shadow maps (VSM), and VSM used with a cubemap. 5 | 6 | PCF 7 | ------------- 8 | ![PCF](https://raw.github.com/cforfang/opengl-shadowmapping/master/screenshots/pcf.png) 9 | 10 | VSM 11 | ------------- 12 | ![VSM](https://raw.github.com/cforfang/opengl-shadowmapping/master/screenshots/vsm.png) 13 | 14 | VSM + cubemap 15 | ------------- 16 | ![VSM + cubemap](https://raw.github.com/cforfang/opengl-shadowmapping/master/screenshots/vsm_cubemap.png) 17 | -------------------------------------------------------------------------------- /external/glfw/COPYING.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002-2006 Marcus Geelnard 2 | Copyright (c) 2006-2010 Camilla Berglund 3 | 4 | This software is provided 'as-is', without any express or implied 5 | warranty. In no event will the authors be held liable for any damages 6 | arising from the use of this software. 7 | 8 | Permission is granted to anyone to use this software for any purpose, 9 | including commercial applications, and to alter it and redistribute it 10 | freely, subject to the following restrictions: 11 | 12 | 1. The origin of this software must not be misrepresented; you must not 13 | claim that you wrote the original software. If you use this software 14 | in a product, an acknowledgment in the product documentation would 15 | be appreciated but is not required. 16 | 17 | 2. Altered source versions must be plainly marked as such, and must not 18 | be misrepresented as being the original software. 19 | 20 | 3. This notice may not be removed or altered from any source 21 | distribution. 22 | 23 | -------------------------------------------------------------------------------- /external/glfw/docs/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/bc_s.png -------------------------------------------------------------------------------- /external/glfw/docs/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/bdwn.png -------------------------------------------------------------------------------- /external/glfw/docs/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/closed.png -------------------------------------------------------------------------------- /external/glfw/docs/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/doxygen.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2blank.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2cl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2cl.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2doc.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2folderclosed.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2folderopen.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2lastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2lastnode.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2link.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2mlastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2mlastnode.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2mnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2mnode.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2mo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2mo.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2node.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2ns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2ns.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2plastnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2plastnode.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2pnode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2pnode.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2splitbar.png -------------------------------------------------------------------------------- /external/glfw/docs/html/ftv2vertline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/ftv2vertline.png -------------------------------------------------------------------------------- /external/glfw/docs/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/nav_f.png -------------------------------------------------------------------------------- /external/glfw/docs/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/nav_g.png -------------------------------------------------------------------------------- /external/glfw/docs/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/nav_h.png -------------------------------------------------------------------------------- /external/glfw/docs/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/open.png -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_62.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['blue',['blue',['../structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b',1,'GLFWgammaramp']]], 4 | ['bluebits',['blueBits',['../structGLFWvidmode.html#af310977f58d2e3b188175b6e3d314047',1,'GLFWvidmode']]], 5 | ['bug_20list',['Bug List',['../bug.html',1,'']]], 6 | ['building_20programs_20that_20use_20glfw',['Building programs that use GLFW',['../build.html',1,'']]], 7 | ['build_2edox',['build.dox',['../build_8dox.html',1,'']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['clipboard_20support',['Clipboard support',['../group__clipboard.html',1,'']]], 4 | ['compat_2edox',['compat.dox',['../compat_8dox.html',1,'']]], 5 | ['compiling_20glfw',['Compiling GLFW',['../compile.html',1,'']]], 6 | ['compile_2edox',['compile.dox',['../compile_8dox.html',1,'']]], 7 | ['context_20handling',['Context handling',['../group__context.html',1,'(Global Namespace)'],['../context.html',1,'(Global Namespace)']]], 8 | ['context_2edox',['context.dox',['../context_8dox.html',1,'']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_65.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_65.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error_20handling',['Error handling',['../group__error.html',1,'']]], 4 | ['error_20codes',['Error codes',['../group__errors.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_68.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['height',['height',['../structGLFWvidmode.html#ac65942a5f6981695517437a9d571d03c',1,'GLFWvidmode']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_69.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['initialization_20and_20version_20information',['Initialization and version information',['../group__init.html',1,'']]], 4 | ['input_20handling',['Input handling',['../group__input.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_6a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_6a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['joysticks',['Joysticks',['../group__joysticks.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_6b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_6b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['keyboard_20keys',['Keyboard keys',['../group__keys.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_6d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_6d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mouse_20buttons',['Mouse buttons',['../group__buttons.html',1,'']]], 4 | ['main_2edox',['main.dox',['../main_8dox.html',1,'']]], 5 | ['modifier_20key_20flags',['Modifier key flags',['../group__mods.html',1,'']]], 6 | ['monitor_20handling',['Monitor handling',['../group__monitor.html',1,'(Global Namespace)'],['../monitor.html',1,'(Global Namespace)']]], 7 | ['monitor_2edox',['monitor.dox',['../monitor_8dox.html',1,'']]], 8 | ['moving_20from_20glfw_202_20to_203',['Moving from GLFW 2 to 3',['../moving.html',1,'']]], 9 | ['moving_2edox',['moving.dox',['../moving_8dox.html',1,'']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_6e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['notitle',['notitle',['../index.html',1,'']]], 4 | ['native_20access',['Native access',['../group__native.html',1,'']]], 5 | ['new_20features',['New features',['../news.html',1,'']]], 6 | ['news_2edox',['news.dox',['../news_8dox.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_71.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_71.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['quick_2edox',['quick.dox',['../quick_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_72.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['red',['red',['../structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138',1,'GLFWgammaramp']]], 4 | ['redbits',['redBits',['../structGLFWvidmode.html#a6066c4ecd251098700062d3b735dba1b',1,'GLFWvidmode']]], 5 | ['refreshrate',['refreshRate',['../structGLFWvidmode.html#a791bdd6c7697b09f7e9c97054bf05649',1,'GLFWvidmode']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['standards_20conformance',['Standards conformance',['../compat.html',1,'']]], 4 | ['size',['size',['../structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5',1,'GLFWgammaramp']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_74.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['time_20input',['Time input',['../group__time.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_77.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/all_77.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['width',['width',['../structGLFWvidmode.html#a698dcb200562051a7249cb6ae154c71d',1,'GLFWvidmode']]], 4 | ['window_20handling',['Window handling',['../group__window.html',1,'(Global Namespace)'],['../window.html',1,'(Global Namespace)']]], 5 | ['window_2edox',['window.dox',['../window_8dox.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/classes_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/classes_67.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['glfwgammaramp',['GLFWgammaramp',['../structGLFWgammaramp.html',1,'']]], 4 | ['glfwvidmode',['GLFWvidmode',['../structGLFWvidmode.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/search/close.png -------------------------------------------------------------------------------- /external/glfw/docs/html/search/defines_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_62.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['build_2edox',['build.dox',['../build_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['compat_2edox',['compat.dox',['../compat_8dox.html',1,'']]], 4 | ['compile_2edox',['compile.dox',['../compile_8dox.html',1,'']]], 5 | ['context_2edox',['context.dox',['../context_8dox.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_67.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['glfw3_2eh',['glfw3.h',['../glfw3_8h.html',1,'']]], 4 | ['glfw3native_2eh',['glfw3native.h',['../glfw3native_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_6d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_6d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['main_2edox',['main.dox',['../main_8dox.html',1,'']]], 4 | ['monitor_2edox',['monitor.dox',['../monitor_8dox.html',1,'']]], 5 | ['moving_2edox',['moving.dox',['../moving_8dox.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_6e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['news_2edox',['news.dox',['../news_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_71.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_71.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['quick_2edox',['quick.dox',['../quick_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_77.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/files_77.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['window_2edox',['window.dox',['../window_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/functions_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['clipboard_20support',['Clipboard support',['../group__clipboard.html',1,'']]], 4 | ['context_20handling',['Context handling',['../group__context.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_65.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_65.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error_20handling',['Error handling',['../group__error.html',1,'']]], 4 | ['error_20codes',['Error codes',['../group__errors.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_69.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['initialization_20and_20version_20information',['Initialization and version information',['../group__init.html',1,'']]], 4 | ['input_20handling',['Input handling',['../group__input.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_6a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_6a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['joysticks',['Joysticks',['../group__joysticks.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_6b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_6b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['keyboard_20keys',['Keyboard keys',['../group__keys.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_6d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_6d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mouse_20buttons',['Mouse buttons',['../group__buttons.html',1,'']]], 4 | ['modifier_20key_20flags',['Modifier key flags',['../group__mods.html',1,'']]], 5 | ['monitor_20handling',['Monitor handling',['../group__monitor.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_6e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['native_20access',['Native access',['../group__native.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_74.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['time_20input',['Time input',['../group__time.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_77.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/groups_77.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['window_20handling',['Window handling',['../group__window.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/search/mag_sel.png -------------------------------------------------------------------------------- /external/glfw/docs/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_62.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['bug_20list',['Bug List',['../bug.html',1,'']]], 4 | ['building_20programs_20that_20use_20glfw',['Building programs that use GLFW',['../build.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_63.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['compiling_20glfw',['Compiling GLFW',['../compile.html',1,'']]], 4 | ['context_20handling_20guide',['Context handling guide',['../context.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_67.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getting_20started',['Getting started',['../quick.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_6d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_6d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['multi_2dmonitor_20guide',['Multi-monitor guide',['../monitor.html',1,'']]], 4 | ['moving_20from_20glfw_202_20to_203',['Moving from GLFW 2 to 3',['../moving.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_6e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['notitle',['notitle',['../index.html',1,'']]], 4 | ['new_20features',['New features',['../news.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['standards_20conformance',['Standards conformance',['../compat.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_77.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/pages_77.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['window_20handling_20guide',['Window handling guide',['../window.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/search/search_l.png -------------------------------------------------------------------------------- /external/glfw/docs/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/search/search_m.png -------------------------------------------------------------------------------- /external/glfw/docs/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/search/search_r.png -------------------------------------------------------------------------------- /external/glfw/docs/html/search/typedefs_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_62.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['blue',['blue',['../structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b',1,'GLFWgammaramp']]], 4 | ['bluebits',['blueBits',['../structGLFWvidmode.html#af310977f58d2e3b188175b6e3d314047',1,'GLFWvidmode']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_67.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['green',['green',['../structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a',1,'GLFWgammaramp']]], 4 | ['greenbits',['greenBits',['../structGLFWvidmode.html#a292fdd281f3485fb3ff102a5bda43faa',1,'GLFWvidmode']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_68.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['height',['height',['../structGLFWvidmode.html#ac65942a5f6981695517437a9d571d03c',1,'GLFWvidmode']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_72.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['red',['red',['../structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138',1,'GLFWgammaramp']]], 4 | ['redbits',['redBits',['../structGLFWvidmode.html#a6066c4ecd251098700062d3b735dba1b',1,'GLFWvidmode']]], 5 | ['refreshrate',['refreshRate',['../structGLFWvidmode.html#a791bdd6c7697b09f7e9c97054bf05649',1,'GLFWvidmode']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_73.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['size',['size',['../structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5',1,'GLFWgammaramp']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_77.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 16 |
Searching...
17 |
No Matches
18 | 24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /external/glfw/docs/html/search/variables_77.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['width',['width',['../structGLFWvidmode.html#a698dcb200562051a7249cb6ae154c71d',1,'GLFWvidmode']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /external/glfw/docs/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/sync_off.png -------------------------------------------------------------------------------- /external/glfw/docs/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/sync_on.png -------------------------------------------------------------------------------- /external/glfw/docs/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/tab_a.png -------------------------------------------------------------------------------- /external/glfw/docs/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/tab_b.png -------------------------------------------------------------------------------- /external/glfw/docs/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/tab_h.png -------------------------------------------------------------------------------- /external/glfw/docs/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/docs/html/tab_s.png -------------------------------------------------------------------------------- /external/glfw/docs/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 7 | } 8 | 9 | .tabs2 { 10 | font-size: 10px; 11 | } 12 | .tabs3 { 13 | font-size: 9px; 14 | } 15 | 16 | .tablist { 17 | margin: 0; 18 | padding: 0; 19 | display: table; 20 | } 21 | 22 | .tablist li { 23 | float: left; 24 | display: table-cell; 25 | background-image: url('tab_b.png'); 26 | line-height: 36px; 27 | list-style: none; 28 | } 29 | 30 | .tablist a { 31 | display: block; 32 | padding: 0 20px; 33 | font-weight: bold; 34 | background-image:url('tab_s.png'); 35 | background-repeat:no-repeat; 36 | background-position:right; 37 | color: #283A5D; 38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 39 | text-decoration: none; 40 | outline: none; 41 | } 42 | 43 | .tabs3 .tablist a { 44 | padding: 0 10px; 45 | } 46 | 47 | .tablist a:hover { 48 | background-image: url('tab_h.png'); 49 | background-repeat:repeat-x; 50 | color: #fff; 51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 52 | text-decoration: none; 53 | } 54 | 55 | .tablist li.current a { 56 | background-image: url('tab_a.png'); 57 | background-repeat:repeat-x; 58 | color: #fff; 59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 60 | } 61 | -------------------------------------------------------------------------------- /external/glfw/lib-mingw/glfw3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/lib-mingw/glfw3.dll -------------------------------------------------------------------------------- /external/glfw/lib-mingw/glfw3dll.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/lib-mingw/glfw3dll.a -------------------------------------------------------------------------------- /external/glfw/lib-mingw/libglfw3.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/lib-mingw/libglfw3.a -------------------------------------------------------------------------------- /external/glfw/lib-msvc110/glfw3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/lib-msvc110/glfw3.dll -------------------------------------------------------------------------------- /external/glfw/lib-msvc110/glfw3.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/lib-msvc110/glfw3.lib -------------------------------------------------------------------------------- /external/glfw/lib-msvc110/glfw3dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/lib-msvc110/glfw3dll.lib -------------------------------------------------------------------------------- /external/glfw/lib-msvc120/glfw3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/lib-msvc120/glfw3.dll -------------------------------------------------------------------------------- /external/glfw/lib-msvc120/glfw3.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/lib-msvc120/glfw3.lib -------------------------------------------------------------------------------- /external/glfw/lib-msvc120/glfw3dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glfw/lib-msvc120/glfw3dll.lib -------------------------------------------------------------------------------- /external/glm/CTestConfig.cmake: -------------------------------------------------------------------------------- 1 | ## This file should be placed in the root directory of your project. 2 | ## Then modify the CMakeLists.txt file in the root directory of your 3 | ## project to incorporate the testing dashboard. 4 | ## # The following are required to uses Dart and the Cdash dashboard 5 | ## ENABLE_TESTING() 6 | ## INCLUDE(CTest) 7 | set(CTEST_PROJECT_NAME "GLM") 8 | set(CTEST_NIGHTLY_START_TIME "00:00:00 EST") 9 | 10 | set(CTEST_DROP_METHOD "http") 11 | set(CTEST_DROP_SITE "my.cdash.org") 12 | set(CTEST_DROP_LOCATION "/submit.php?project=GLM") 13 | set(CTEST_DROP_SITE_CDASH TRUE) 14 | -------------------------------------------------------------------------------- /external/glm/copying.txt: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2005 - 2012 G-Truc Creation 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /external/glm/doc/theme/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glm/doc/theme/background.jpg -------------------------------------------------------------------------------- /external/glm/glm/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(NAME glm) 2 | 3 | file(GLOB ROOT_SOURCE *.cpp) 4 | file(GLOB ROOT_INLINE *.inl) 5 | file(GLOB ROOT_HEADER *.hpp) 6 | 7 | file(GLOB_RECURSE CORE_SOURCE ./core/*.cpp) 8 | file(GLOB_RECURSE CORE_INLINE ./core/*.inl) 9 | file(GLOB_RECURSE CORE_HEADER ./core/*.hpp) 10 | 11 | file(GLOB_RECURSE GTC_SOURCE ./gtc/*.cpp) 12 | file(GLOB_RECURSE GTC_INLINE ./gtc/*.inl) 13 | file(GLOB_RECURSE GTC_HEADER ./gtc/*.hpp) 14 | 15 | file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp) 16 | file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl) 17 | file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp) 18 | 19 | file(GLOB_RECURSE VIRTREV_SOURCE ./virtrev/*.cpp) 20 | file(GLOB_RECURSE VIRTREV_INLINE ./virtrev/*.inl) 21 | file(GLOB_RECURSE VIRTREV_HEADER ./virtrev/*.hpp) 22 | 23 | source_group("Core Files" FILES ${CORE_SOURCE}) 24 | source_group("Core Files" FILES ${CORE_INLINE}) 25 | source_group("Core Files" FILES ${CORE_HEADER}) 26 | source_group("GTC Files" FILES ${GTC_SOURCE}) 27 | source_group("GTC Files" FILES ${GTC_INLINE}) 28 | source_group("GTC Files" FILES ${GTC_HEADER}) 29 | source_group("GTX Files" FILES ${GTX_SOURCE}) 30 | source_group("GTX Files" FILES ${GTX_INLINE}) 31 | source_group("GTX Files" FILES ${GTX_HEADER}) 32 | source_group("VIRTREV Files" FILES ${VIRTREV_SOURCE}) 33 | source_group("VIRTREV Files" FILES ${VIRTREV_INLINE}) 34 | source_group("VIRTREV Files" FILES ${VIRTREV_HEADER}) 35 | 36 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) 37 | 38 | add_executable(${NAME} 39 | ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER} 40 | ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER} 41 | ${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER} 42 | ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER} 43 | ${VIRTREV_SOURCE} ${VIRTREV_INLINE} ${VIRTREV_HEADER}) 44 | -------------------------------------------------------------------------------- /external/glm/glm/core/dummy.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/core/dummy.cpp 25 | /// @date 2011-01-19 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /// 28 | /// GLM is a header only library. There is nothing to compile. 29 | /// dummy.cpp exist only a wordaround for CMake file. 30 | /////////////////////////////////////////////////////////////////////////////////// 31 | 32 | #define GLM_MESSAGES 33 | #include "../glm.hpp" 34 | 35 | //#error "GLM is a header only library" 36 | 37 | int main() 38 | { 39 | 40 | } 41 | -------------------------------------------------------------------------------- /external/glm/glm/core/func_common.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glm/glm/core/func_common.hpp -------------------------------------------------------------------------------- /external/glm/glm/core/func_common.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glm/glm/core/func_common.inl -------------------------------------------------------------------------------- /external/glm/glm/core/func_integer.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glm/glm/core/func_integer.hpp -------------------------------------------------------------------------------- /external/glm/glm/core/hint.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/core/hint.hpp 25 | /// @date 2008-08-14 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | 29 | #ifndef glm_core_type 30 | #define glm_core_type 31 | 32 | namespace glm 33 | { 34 | // Use dont_care, nicest and fastest to optimize implementations. 35 | class dont_care {}; 36 | class nicest {}; 37 | class fastest {}; 38 | }//namespace glm 39 | 40 | #endif//glm_core_type 41 | -------------------------------------------------------------------------------- /external/glm/glm/core/intrinsic_exponential.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/core/intrinsic_exponential.inl 25 | /// @date 2011-06-15 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | -------------------------------------------------------------------------------- /external/glm/glm/core/intrinsic_trigonometric.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/core/intrinsic_trigonometric.inl 25 | /// @date 2011-06-15 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | -------------------------------------------------------------------------------- /external/glm/glm/core/type_half.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glm/glm/core/type_half.inl -------------------------------------------------------------------------------- /external/glm/glm/core/type_mat.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/core/type_mat.inl 25 | /// @date 2011-06-15 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | -------------------------------------------------------------------------------- /external/glm/glm/core/type_size.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/core/type_size.hpp 25 | /// @date 2008-10-05 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | 29 | #ifndef glm_core_type_size 30 | #define glm_core_type_size 31 | 32 | #include 33 | 34 | namespace glm{ 35 | namespace detail 36 | { 37 | //typedef std::size_t size_t; 38 | typedef int sizeType; 39 | 40 | }//namespace detail 41 | }//namespace glm 42 | 43 | #endif//glm_core_type_size 44 | -------------------------------------------------------------------------------- /external/glm/glm/core/type_vec.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/core/type_vec.hpp 25 | /// @date 2010-01-26 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | 29 | #ifndef glm_core_type_vec 30 | #define glm_core_type_vec 31 | 32 | #include "type_gentype.hpp" 33 | 34 | namespace glm{ 35 | namespace detail 36 | { 37 | 38 | }//namespace detail 39 | }//namespace glm 40 | 41 | #endif//glm_core_type_vec 42 | -------------------------------------------------------------------------------- /external/glm/glm/core/type_vec.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref core 24 | /// @file glm/core/type_vec.inl 25 | /// @date 2011-06-15 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | -------------------------------------------------------------------------------- /external/glm/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /// 23 | /// @ref gtc_swizzle 24 | /// @file glm/gtc/swizzle.inl 25 | /// @date 2009-06-14 / 2011-06-15 26 | /// @author Christophe Riccio 27 | /////////////////////////////////////////////////////////////////////////////////// 28 | 29 | namespace glm 30 | { 31 | 32 | } 33 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/closest_point.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2005-12-30 5 | // Updated : 2008-10-05 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/closest_point.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef glm_gtx_closest_point 11 | #define glm_gtx_closest_point 12 | 13 | namespace glm 14 | { 15 | template 16 | GLM_FUNC_QUALIFIER detail::tvec3 closestPointOnLine 17 | ( 18 | detail::tvec3 const & point, 19 | detail::tvec3 const & a, 20 | detail::tvec3 const & b 21 | ) 22 | { 23 | valType LineLength = distance(a, b); 24 | detail::tvec3 Vector = point - a; 25 | detail::tvec3 LineDirection = (b - a) / LineLength; 26 | 27 | // Project Vector to LineDirection to get the distance of point from a 28 | valType Distance = dot(Vector, LineDirection); 29 | 30 | if(Distance <= valType(0)) return a; 31 | if(Distance >= LineLength) return b; 32 | return a + LineDirection * Distance; 33 | } 34 | }//namespace glm 35 | 36 | #endif//glm_gtx_closest_point 37 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/compatibility.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2007-03-16 5 | // Updated : 2008-10-24 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/compatibility.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | // isfinite 13 | template 14 | GLM_FUNC_QUALIFIER bool isfinite( 15 | genType const & x) 16 | { 17 | # if(GLM_COMPILER & GLM_COMPILER_VC) 18 | return _finite(x); 19 | # elif(GLM_COMPILER & GLM_COMPILER_GCC) 20 | # if(GLM_PLATFORM & GLM_PLATFORM_ANDROID) 21 | return _isfinite(x) != 0; 22 | # else 23 | return std::isfinite(x) != 0; 24 | # endif 25 | # else 26 | return std::isfinite(x) != 0; 27 | # endif 28 | } 29 | 30 | template 31 | GLM_FUNC_QUALIFIER detail::tvec2 isfinite( 32 | detail::tvec2 const & x) 33 | { 34 | return detail::tvec2( 35 | isfinite(x.x), 36 | isfinite(x.y)); 37 | } 38 | 39 | template 40 | GLM_FUNC_QUALIFIER detail::tvec3 isfinite( 41 | detail::tvec3 const & x) 42 | { 43 | return detail::tvec3( 44 | isfinite(x.x), 45 | isfinite(x.y), 46 | isfinite(x.z)); 47 | } 48 | 49 | template 50 | GLM_FUNC_QUALIFIER detail::tvec4 isfinite( 51 | detail::tvec4 const & x) 52 | { 53 | return detail::tvec4( 54 | isfinite(x.x), 55 | isfinite(x.y), 56 | isfinite(x.z), 57 | isfinite(x.w)); 58 | } 59 | 60 | }//namespace glm 61 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/component_wise.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2007-05-21 5 | // Updated : 2010-02-12 6 | // Licence : This source is under MIT License 7 | // File : gtx_component_wise.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER typename genType::value_type compAdd(genType const & v) 14 | { 15 | typename genType::size_type result = typename genType::value_type(0); 16 | for(typename genType::size_type i = 0; i < v.length(); ++i) 17 | result += v[i]; 18 | return result; 19 | } 20 | 21 | template 22 | GLM_FUNC_QUALIFIER typename genType::value_type compMul(genType const & v) 23 | { 24 | typename genType::value_type result = typename genType::value_type(1); 25 | for(typename genType::size_type i = 0; i < v.length(); ++i) 26 | result *= v[i]; 27 | return result; 28 | } 29 | 30 | template 31 | GLM_FUNC_QUALIFIER typename genType::value_type compMin(genType const & v) 32 | { 33 | typename genType::value_type result = typename genType::value_type(v[0]); 34 | for(typename genType::size_type i = 1; i < v.length(); ++i) 35 | result = min(result, v[i]); 36 | return result; 37 | } 38 | 39 | template 40 | GLM_FUNC_QUALIFIER typename genType::value_type compMax(genType const & v) 41 | { 42 | typename genType::value_type result = typename genType::value_type(v[0]); 43 | for(typename genType::size_type i = 1; i < v.length(); ++i) 44 | result = max(result, v[i]); 45 | return result; 46 | } 47 | }//namespace glm 48 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/constants.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /////////////////////////////////////////////////////////////////////////////////// 23 | 24 | #ifndef GLM_GTX_constants 25 | #define GLM_GTX_constants GLM_VERSION 26 | 27 | #include "../gtc/constants.hpp" 28 | 29 | #if(defined(GLM_MESSAGES)) 30 | # pragma message("GLM: GLM_GTX_constants extension is deprecated, include GLM_GTC_constants (glm/gtc/constants.hpp) instead") 31 | #endif 32 | 33 | #endif//GLM_GTX_constants 34 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/epsilon.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /////////////////////////////////////////////////////////////////////////////////// 23 | 24 | #if(defined(GLM_MESSAGES)) 25 | # pragma message("GLM: GLM_GTX_epsilon extension is deprecated, include GLM_GTC_epsilon (glm/gtc/epsilon) instead") 26 | #endif 27 | 28 | // Promoted: 29 | #include "../gtc/epsilon.hpp" 30 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/extend.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2006-01-07 5 | // Updated : 2008-10-05 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/extend.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | genType extend 14 | ( 15 | genType const & Origin, 16 | genType const & Source, 17 | genType const & Distance 18 | ) 19 | { 20 | return Origin + (Source - Origin) * Distance; 21 | } 22 | 23 | template 24 | detail::tvec2 extend 25 | ( 26 | detail::tvec2 const & Origin, 27 | detail::tvec2 const & Source, 28 | valType const & Distance 29 | ) 30 | { 31 | return Origin + (Source - Origin) * Distance; 32 | } 33 | 34 | template 35 | detail::tvec3 extend 36 | ( 37 | detail::tvec3 const & Origin, 38 | detail::tvec3 const & Source, 39 | valType const & Distance 40 | ) 41 | { 42 | return Origin + (Source - Origin) * Distance; 43 | } 44 | 45 | template 46 | detail::tvec4 extend 47 | ( 48 | detail::tvec4 const & Origin, 49 | detail::tvec4 const & Source, 50 | valType const & Distance 51 | ) 52 | { 53 | return Origin + (Source - Origin) * Distance; 54 | } 55 | }//namespace glm 56 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/gradient_paint.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2009-03-06 5 | // Updated : 2009-03-09 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/gradient_paint.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | valType radialGradient 14 | ( 15 | detail::tvec2 const & Center, 16 | valType const & Radius, 17 | detail::tvec2 const & Focal, 18 | detail::tvec2 const & Position 19 | ) 20 | { 21 | detail::tvec2 F = Focal - Center; 22 | detail::tvec2 D = Position - Focal; 23 | valType Radius2 = pow2(Radius); 24 | valType Fx2 = pow2(F.x); 25 | valType Fy2 = pow2(F.y); 26 | 27 | valType Numerator = (D.x * F.x + D.y * F.y) + sqrt(Radius2 * (pow2(D.x) + pow2(D.y)) - pow2(D.x * F.y - D.y * F.x)); 28 | valType Denominator = Radius2 - (Fx2 + Fy2); 29 | return Numerator / Denominator; 30 | } 31 | 32 | template 33 | valType linearGradient 34 | ( 35 | detail::tvec2 const & Point0, 36 | detail::tvec2 const & Point1, 37 | detail::tvec2 const & Position 38 | ) 39 | { 40 | detail::tvec2 Dist = Point1 - Point0; 41 | return (Dist.x * (Position.x - Point0.x) + Dist.y * (Position.y - Point0.y)) / glm::dot(Dist, Dist); 42 | } 43 | }//namespace glm 44 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/handed_coordinate_space.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2005-12-21 5 | // Updated : 2009-02-19 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/handed_coordinate_space.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER bool rightHanded 14 | ( 15 | detail::tvec3 const & tangent, 16 | detail::tvec3 const & binormal, 17 | detail::tvec3 const & normal 18 | ) 19 | { 20 | return dot(cross(normal, tangent), binormal) > T(0); 21 | } 22 | 23 | template 24 | GLM_FUNC_QUALIFIER bool leftHanded 25 | ( 26 | detail::tvec3 const & tangent, 27 | detail::tvec3 const & binormal, 28 | detail::tvec3 const & normal 29 | ) 30 | { 31 | return dot(cross(normal, tangent), binormal) < T(0); 32 | } 33 | }//namespace glm 34 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/int_10_10_10_2.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-07-07 5 | // Updated : 2010-07-07 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/int_10_10_10_2.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | GLM_FUNC_QUALIFIER dword uint10_10_10_2_cast 13 | ( 14 | glm::vec4 const & v 15 | ) 16 | { 17 | return dword(uint(v.x * 2047.f) << 0 | uint(v.y * 2047.f) << 10 | uint(v.z * 2047.f) << 20 | uint(v.w * 3.f) << 30); 18 | } 19 | }//namespace glm 20 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-10-24 5 | // Updated : 2008-10-24 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/log_base.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER genType log( 14 | genType const & x, 15 | genType const & base) 16 | { 17 | assert(x != genType(0)); 18 | 19 | return glm::log(x) / glm::log(base); 20 | } 21 | 22 | VECTORIZE_VEC_SCA(log) 23 | VECTORIZE_VEC_VEC(log) 24 | }//namespace glm 25 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/matrix_cross_product.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2005-12-21 5 | // Updated : 2005-12-21 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/matrix_cross_product.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER detail::tmat3x3 matrixCross3 14 | ( 15 | detail::tvec3 const & x 16 | ) 17 | { 18 | detail::tmat3x3 Result(T(0)); 19 | Result[0][1] = x.z; 20 | Result[1][0] = -x.z; 21 | Result[0][2] = -x.y; 22 | Result[2][0] = x.y; 23 | Result[1][2] = x.x; 24 | Result[2][1] = -x.x; 25 | return Result; 26 | } 27 | 28 | template 29 | GLM_FUNC_QUALIFIER detail::tmat4x4 matrixCross4 30 | ( 31 | detail::tvec3 const & x 32 | ) 33 | { 34 | detail::tmat4x4 Result(T(0)); 35 | Result[0][1] = x.z; 36 | Result[1][0] = -x.z; 37 | Result[0][2] = -x.y; 38 | Result[2][0] = x.y; 39 | Result[1][2] = x.x; 40 | Result[2][1] = -x.x; 41 | return Result; 42 | } 43 | 44 | }//namespace glm 45 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2007-04-03 5 | // Updated : 2008-09-17 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/mixed_product.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER valType mixedProduct 14 | ( 15 | detail::tvec3 const & v1, 16 | detail::tvec3 const & v2, 17 | detail::tvec3 const & v3 18 | ) 19 | { 20 | return dot(cross(v1, v2), v3); 21 | } 22 | }//namespace glm 23 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/noise.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /////////////////////////////////////////////////////////////////////////////////// 23 | 24 | #if(defined(GLM_MESSAGES)) 25 | # pragma message("GLM: GLM_GTX_random extension is deprecated, include GLM_GTC_random (glm/gtc/noise.hpp) instead") 26 | #endif 27 | 28 | // Promoted: 29 | #include "../gtc/noise.hpp" 30 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2005-12-21 5 | // Updated : 2011-06-07 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/normal.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER detail::tvec3 triangleNormal 14 | ( 15 | detail::tvec3 const & p1, 16 | detail::tvec3 const & p2, 17 | detail::tvec3 const & p3 18 | ) 19 | { 20 | return normalize(cross(p1 - p2, p1 - p3)); 21 | } 22 | }//namespace glm 23 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2007-05-10 5 | // Updated : 2007-05-10 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/number_precision.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/ocl_type.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glm/glm/gtx/ocl_type.inl -------------------------------------------------------------------------------- /external/glm/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2005-12-21 5 | // Updated : 2005-12-27 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/optimum_pow.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER genType pow2(const genType& x) 14 | { 15 | return x * x; 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER genType pow3(const genType& x) 20 | { 21 | return x * x * x; 22 | } 23 | 24 | template 25 | GLM_FUNC_QUALIFIER genType pow4(const genType& x) 26 | { 27 | return x * x * x * x; 28 | } 29 | 30 | GLM_FUNC_QUALIFIER bool powOfTwo(int x) 31 | { 32 | return !(x & (x - 1)); 33 | } 34 | 35 | GLM_FUNC_QUALIFIER detail::tvec2 powOfTwo(const detail::tvec2& x) 36 | { 37 | return detail::tvec2( 38 | powOfTwo(x.x), 39 | powOfTwo(x.y)); 40 | } 41 | 42 | GLM_FUNC_QUALIFIER detail::tvec3 powOfTwo(const detail::tvec3& x) 43 | { 44 | return detail::tvec3( 45 | powOfTwo(x.x), 46 | powOfTwo(x.y), 47 | powOfTwo(x.z)); 48 | } 49 | 50 | GLM_FUNC_QUALIFIER detail::tvec4 powOfTwo(const detail::tvec4& x) 51 | { 52 | return detail::tvec4( 53 | powOfTwo(x.x), 54 | powOfTwo(x.y), 55 | powOfTwo(x.z), 56 | powOfTwo(x.w)); 57 | } 58 | }//namespace glm 59 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/orthonormalize.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2005-12-21 5 | // Updated : 2005-12-21 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/orthonormalize.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER detail::tmat3x3 orthonormalize 14 | ( 15 | const detail::tmat3x3& m 16 | ) 17 | { 18 | detail::tmat3x3 r = m; 19 | 20 | r[0] = normalize(r[0]); 21 | 22 | float d0 = dot(r[0], r[1]); 23 | r[1] -= r[0] * d0; 24 | r[1] = normalize(r[1]); 25 | 26 | float d1 = dot(r[1], r[2]); 27 | d0 = dot(r[0], r[2]); 28 | r[2] -= r[0] * d0 + r[1] * d1; 29 | r[2] = normalize(r[2]); 30 | 31 | return r; 32 | } 33 | 34 | template 35 | GLM_FUNC_QUALIFIER detail::tvec3 orthonormalize 36 | ( 37 | const detail::tvec3& x, 38 | const detail::tvec3& y 39 | ) 40 | { 41 | return normalize(x - y * dot(y, x)); 42 | } 43 | }//namespace glm 44 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2005-12-21 5 | // Updated : 2009-03-06 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/perpendicular.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER vecType perp 14 | ( 15 | vecType const & x, 16 | vecType const & Normal 17 | ) 18 | { 19 | return x - proj(x, Normal); 20 | } 21 | }//namespace glm 22 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/polar_coordinates.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2007-03-06 5 | // Updated : 2009-05-01 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/polar_coordinates.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER detail::tvec3 polar 14 | ( 15 | detail::tvec3 const & euclidean 16 | ) 17 | { 18 | T const Length(length(euclidean)); 19 | detail::tvec3 const tmp(euclidean / Length); 20 | T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z)); 21 | 22 | #ifdef GLM_FORCE_RADIANS 23 | return detail::tvec3( 24 | atan(xz_dist, tmp.y), // latitude 25 | atan(tmp.x, tmp.z), // longitude 26 | xz_dist); // xz distance 27 | #else 28 | return detail::tvec3( 29 | degrees(atan(xz_dist, tmp.y)), // latitude 30 | degrees(atan(tmp.x, tmp.z)), // longitude 31 | xz_dist); // xz distance 32 | #endif 33 | } 34 | 35 | template 36 | GLM_FUNC_QUALIFIER detail::tvec3 euclidean 37 | ( 38 | detail::tvec3 const & polar 39 | ) 40 | { 41 | #ifdef GLM_FORCE_RADIANS 42 | T const latitude(polar.x); 43 | T const longitude(polar.y); 44 | #else 45 | T const latitude(radians(polar.x)); 46 | T const longitude(radians(polar.y)); 47 | #endif 48 | 49 | return detail::tvec3( 50 | cos(latitude) * sin(longitude), 51 | sin(latitude), 52 | cos(latitude) * cos(longitude)); 53 | } 54 | 55 | }//namespace glm 56 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2005-12-21 5 | // Updated : 2009-03-06 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/projection.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER vecType proj 14 | ( 15 | vecType const & x, 16 | vecType const & Normal 17 | ) 18 | { 19 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 20 | } 21 | }//namespace glm 22 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/random.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /////////////////////////////////////////////////////////////////////////////////// 23 | 24 | #if(defined(GLM_MESSAGES)) 25 | # pragma message("GLM: GLM_GTX_random extension is deprecated, include GLM_GTC_random instead") 26 | #endif 27 | 28 | // Promoted: 29 | #include "../gtc/random.hpp" 30 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-11-19 5 | // Updated : 2008-11-19 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/raw_data.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | // Dependency: 10 | // - GLM core 11 | /////////////////////////////////////////////////////////////////////////////////////////////////// 12 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/reciprocal.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /////////////////////////////////////////////////////////////////////////////////// 23 | 24 | #if(defined(GLM_MESSAGES)) 25 | # pragma message("GLM: GLM_GTX_reciprocal extension is deprecated, include GLM_GTC_reciprocal instead") 26 | #endif 27 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/simd_vec4.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glm/glm/gtx/simd_vec4.hpp -------------------------------------------------------------------------------- /external/glm/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-06-08 5 | // Updated : 2008-06-08 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/std_based_type.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/ulp.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /////////////////////////////////////////////////////////////////////////////////// 23 | 24 | #if(defined(GLM_MESSAGES)) 25 | # pragma message("GLM: GLM_GTX_ulp extension is deprecated, include GLM_GTC_ulp (glm/gtc/ulp.hpp) instead") 26 | #endif 27 | 28 | // Promoted: 29 | #include "../gtc/ulp.hpp" 30 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/unsigned_int.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////// 2 | /// OpenGL Mathematics (glm.g-truc.net) 3 | /// 4 | /// Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 5 | /// Permission is hereby granted, free of charge, to any person obtaining a copy 6 | /// of this software and associated documentation files (the "Software"), to deal 7 | /// in the Software without restriction, including without limitation the rights 8 | /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | /// copies of the Software, and to permit persons to whom the Software is 10 | /// furnished to do so, subject to the following conditions: 11 | /// 12 | /// The above copyright notice and this permission notice shall be included in 13 | /// all copies or substantial portions of the Software. 14 | /// 15 | /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | /// THE SOFTWARE. 22 | /////////////////////////////////////////////////////////////////////////////////// 23 | 24 | #if(defined(GLM_MESSAGES)) 25 | # pragma message("GLM: GLM_GTX_unsigned_int extension is deprecated, include GLM_GTX_integer instead") 26 | #endif 27 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/unsigned_int.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2005-12-24 5 | // Updated : 2008-10-07 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/unsigned_int.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | 13 | }//namespace glm 14 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/vec1.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glm/glm/gtx/vec1.inl -------------------------------------------------------------------------------- /external/glm/glm/gtx/vector_access.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2006-01-16 5 | // Updated : 2008-10-07 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/vector_access.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER void set 14 | ( 15 | detail::tvec2& v, 16 | valType const & x, 17 | valType const & y 18 | ) 19 | { 20 | v.x = x; 21 | v.y = y; 22 | } 23 | 24 | template 25 | GLM_FUNC_QUALIFIER void set 26 | ( 27 | detail::tvec3& v, 28 | valType const & x, 29 | valType const & y, 30 | valType const & z 31 | ) 32 | { 33 | v.x = x; 34 | v.y = y; 35 | v.z = z; 36 | } 37 | 38 | template 39 | GLM_FUNC_QUALIFIER void set 40 | ( 41 | detail::tvec4& v, 42 | valType const & x, 43 | valType const & y, 44 | valType const & z, 45 | valType const & w 46 | ) 47 | { 48 | v.x = x; 49 | v.y = y; 50 | v.z = z; 51 | v.w = w; 52 | } 53 | }//namespace glm 54 | -------------------------------------------------------------------------------- /external/glm/glm/gtx/vector_angle.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2005-12-30 5 | // Updated : 2008-09-29 6 | // Licence : This source is under MIT License 7 | // File : glm/gtx/vector_angle.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace glm 11 | { 12 | template 13 | GLM_FUNC_QUALIFIER typename genType::value_type angle 14 | ( 15 | genType const & x, 16 | genType const & y 17 | ) 18 | { 19 | return degrees(acos(dot(x, y))); 20 | } 21 | 22 | //! \todo epsilon is hard coded to 0.01 23 | template 24 | GLM_FUNC_QUALIFIER valType orientedAngle 25 | ( 26 | detail::tvec2 const & x, 27 | detail::tvec2 const & y 28 | ) 29 | { 30 | #ifdef GLM_FORCE_RADIANS 31 | valType const Angle(acos(dot(x, y))); 32 | #else 33 | valType const Angle(glm::degrees(acos(dot(x, y)))); 34 | #endif 35 | detail::tvec2 const TransformedVector(glm::rotate(x, Angle)); 36 | if(all(epsilonEqual(y, TransformedVector, valType(0.01)))) 37 | return Angle; 38 | else 39 | return -Angle; 40 | } 41 | 42 | template 43 | GLM_FUNC_QUALIFIER valType orientedAngle 44 | ( 45 | detail::tvec3 const & x, 46 | detail::tvec3 const & y, 47 | detail::tvec3 const & ref 48 | ) 49 | { 50 | valType const Angle(glm::degrees(glm::acos(glm::dot(x, y)))); 51 | 52 | if(glm::dot(ref, glm::cross(x, y)) < valType(0)) 53 | return -Angle; 54 | else 55 | return Angle; 56 | } 57 | }//namespace glm 58 | -------------------------------------------------------------------------------- /external/glm/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | function(glmCreateTestGTC NAME) 2 | set(SAMPLE_NAME test-${NAME}) 3 | add_executable(${SAMPLE_NAME} ${NAME}.cpp) 4 | 5 | add_test( 6 | NAME ${SAMPLE_NAME} 7 | COMMAND $ ) 8 | endfunction() 9 | 10 | add_subdirectory(bug) 11 | add_subdirectory(core) 12 | add_subdirectory(gtc) 13 | add_subdirectory(gtx) 14 | 15 | 16 | -------------------------------------------------------------------------------- /external/glm/test/bug/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/glm/test/bug/CMakeLists.txt -------------------------------------------------------------------------------- /external/glm/test/core/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | glmCreateTestGTC(core_type_float) 2 | glmCreateTestGTC(core_type_half) 3 | glmCreateTestGTC(core_type_int) 4 | glmCreateTestGTC(core_type_length) 5 | glmCreateTestGTC(core_type_mat2x2) 6 | glmCreateTestGTC(core_type_mat2x3) 7 | glmCreateTestGTC(core_type_mat2x4) 8 | glmCreateTestGTC(core_type_mat3x2) 9 | glmCreateTestGTC(core_type_mat3x3) 10 | glmCreateTestGTC(core_type_mat3x4) 11 | glmCreateTestGTC(core_type_mat4x2) 12 | glmCreateTestGTC(core_type_mat4x3) 13 | glmCreateTestGTC(core_type_mat4x4) 14 | glmCreateTestGTC(core_type_vec1) 15 | glmCreateTestGTC(core_type_vec2) 16 | glmCreateTestGTC(core_type_vec3) 17 | glmCreateTestGTC(core_type_vec4) 18 | glmCreateTestGTC(core_func_common) 19 | glmCreateTestGTC(core_func_exponential) 20 | glmCreateTestGTC(core_func_geometric) 21 | glmCreateTestGTC(core_func_integer) 22 | glmCreateTestGTC(core_func_matrix) 23 | glmCreateTestGTC(core_func_noise) 24 | glmCreateTestGTC(core_func_packing) 25 | glmCreateTestGTC(core_func_trigonometric) 26 | glmCreateTestGTC(core_func_vector_relational) 27 | glmCreateTestGTC(core_func_swizzle) 28 | glmCreateTestGTC(core_setup_message) 29 | glmCreateTestGTC(core_setup_precision) 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /external/glm/test/core/core_func_exponential.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2011-01-15 5 | // Updated : 2011-09-13 6 | // Licence : This source is under MIT licence 7 | // File : test/core/func_exponential.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | int main() 13 | { 14 | int Failed = 0; 15 | 16 | return Failed; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /external/glm/test/core/core_func_geometric.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2011-01-15 5 | // Updated : 2011-11-14 6 | // Licence : This source is under MIT licence 7 | // File : test/core/func_geometric.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int test_reflect() 14 | { 15 | int Error = 0; 16 | 17 | { 18 | glm::vec2 A(1.0f,-1.0f); 19 | glm::vec2 B(0.0f, 1.0f); 20 | glm::vec2 C = glm::reflect(A, B); 21 | Error += C == glm::vec2(1.0, 1.0) ? 0 : 1; 22 | } 23 | 24 | { 25 | glm::dvec2 A(1.0f,-1.0f); 26 | glm::dvec2 B(0.0f, 1.0f); 27 | glm::dvec2 C = glm::reflect(A, B); 28 | Error += C == glm::dvec2(1.0, 1.0) ? 0 : 1; 29 | } 30 | 31 | return Error; 32 | } 33 | 34 | int test_refract() 35 | { 36 | int Error = 0; 37 | 38 | { 39 | float A(-1.0f); 40 | float B(1.0f); 41 | float C = glm::refract(A, B, 0.5f); 42 | Error += C == -1.0f ? 0 : 1; 43 | } 44 | 45 | { 46 | glm::vec2 A(0.0f,-1.0f); 47 | glm::vec2 B(0.0f, 1.0f); 48 | glm::vec2 C = glm::refract(A, B, 0.5f); 49 | Error += glm::all(glm::epsilonEqual(C, glm::vec2(0.0, -1.0), 0.0001f)) ? 0 : 1; 50 | } 51 | 52 | { 53 | glm::dvec2 A(0.0f,-1.0f); 54 | glm::dvec2 B(0.0f, 1.0f); 55 | glm::dvec2 C = glm::refract(A, B, 0.5); 56 | Error += C == glm::dvec2(0.0, -1.0) ? 0 : 1; 57 | } 58 | 59 | return Error; 60 | } 61 | 62 | int main() 63 | { 64 | int Error(0); 65 | 66 | Error += test_reflect(); 67 | Error += test_refract(); 68 | 69 | return Error; 70 | } 71 | 72 | -------------------------------------------------------------------------------- /external/glm/test/core/core_func_noise.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2011-01-15 5 | // Updated : 2011-09-13 6 | // Licence : This source is under MIT licence 7 | // File : test/core/func_noise.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | int main() 13 | { 14 | int Failed = 0; 15 | 16 | return Failed; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /external/glm/test/core/core_func_trigonometric.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2011-01-15 5 | // Updated : 2011-09-13 6 | // Licence : This source is under MIT licence 7 | // File : test/core/func_trigonometric.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | int main() 13 | { 14 | int Failed = 0; 15 | 16 | return Failed; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /external/glm/test/core/core_func_vector_relational.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2011-01-15 5 | // Updated : 2011-09-13 6 | // Licence : This source is under MIT licence 7 | // File : test/core/vector_relational.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | int main() 13 | { 14 | int Failed = 0; 15 | 16 | return Failed; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /external/glm/test/core/core_type_float.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-08-31 5 | // Updated : 2011-05-06 6 | // Licence : This source is under MIT License 7 | // File : test/core/type_float.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | int test_float_size() 13 | { 14 | return 15 | sizeof(glm::float_t) != sizeof(glm::lowp_float) && 16 | sizeof(glm::float_t) != sizeof(glm::mediump_float) && 17 | sizeof(glm::float_t) != sizeof(glm::highp_float); 18 | } 19 | 20 | int test_float_precision() 21 | { 22 | return ( 23 | sizeof(glm::lowp_float) <= sizeof(glm::mediump_float) && 24 | sizeof(glm::mediump_float) <= sizeof(glm::highp_float)) ? 0 : 1; 25 | } 26 | 27 | int test_vec2() 28 | { 29 | return 0; 30 | } 31 | 32 | int main() 33 | { 34 | int Error = 0; 35 | 36 | Error += test_float_size(); 37 | Error += test_float_precision(); 38 | 39 | return Error; 40 | } 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /external/glm/test/core/core_type_int.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-08-31 5 | // Updated : 2011-05-06 6 | // Licence : This source is under MIT License 7 | // File : test/core/type_int.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | int test_int_size() 13 | { 14 | return 15 | sizeof(glm::int_t) != sizeof(glm::lowp_int) && 16 | sizeof(glm::int_t) != sizeof(glm::mediump_int) && 17 | sizeof(glm::int_t) != sizeof(glm::highp_int); 18 | } 19 | 20 | int test_uint_size() 21 | { 22 | return 23 | sizeof(glm::uint_t) != sizeof(glm::lowp_uint) && 24 | sizeof(glm::uint_t) != sizeof(glm::mediump_uint) && 25 | sizeof(glm::uint_t) != sizeof(glm::highp_uint); 26 | } 27 | 28 | int test_int_precision() 29 | { 30 | return ( 31 | sizeof(glm::lowp_int) <= sizeof(glm::mediump_int) && 32 | sizeof(glm::mediump_int) <= sizeof(glm::highp_int)) ? 0 : 1; 33 | } 34 | 35 | int test_uint_precision() 36 | { 37 | return ( 38 | sizeof(glm::lowp_uint) <= sizeof(glm::mediump_uint) && 39 | sizeof(glm::mediump_uint) <= sizeof(glm::highp_uint)) ? 0 : 1; 40 | } 41 | 42 | int main() 43 | { 44 | int Error = 0; 45 | 46 | Error += test_int_size(); 47 | Error += test_int_precision(); 48 | Error += test_uint_size(); 49 | Error += test_uint_precision(); 50 | 51 | return Error; 52 | } 53 | -------------------------------------------------------------------------------- /external/glm/test/core/core_type_mat2x3.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-08-31 5 | // Updated : 2008-08-31 6 | // Licence : This source is under MIT License 7 | // File : test/core/type_mat2x3.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | static int test_operators() 13 | { 14 | glm::mat2x3 l(1.0f); 15 | glm::mat2x3 m(1.0f); 16 | glm::vec2 u(1.0f); 17 | glm::vec3 v(1.0f); 18 | float x = 1.0f; 19 | glm::vec3 a = m * u; 20 | glm::vec2 b = v * m; 21 | glm::mat2x3 n = x / m; 22 | glm::mat2x3 o = m / x; 23 | glm::mat2x3 p = x * m; 24 | glm::mat2x3 q = m * x; 25 | bool R = m != q; 26 | bool S = m == l; 27 | 28 | return (S && !R) ? 0 : 1; 29 | } 30 | 31 | int main() 32 | { 33 | int Error = 0; 34 | 35 | Error += test_operators(); 36 | 37 | return Error; 38 | } 39 | -------------------------------------------------------------------------------- /external/glm/test/core/core_type_mat2x4.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-08-31 5 | // Updated : 2008-08-31 6 | // Licence : This source is under MIT License 7 | // File : test/core/type_mat2x4.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | static int test_operators() 13 | { 14 | glm::mat2x4 l(1.0f); 15 | glm::mat2x4 m(1.0f); 16 | glm::vec2 u(1.0f); 17 | glm::vec4 v(1.0f); 18 | float x = 1.0f; 19 | glm::vec4 a = m * u; 20 | glm::vec2 b = v * m; 21 | glm::mat2x4 n = x / m; 22 | glm::mat2x4 o = m / x; 23 | glm::mat2x4 p = x * m; 24 | glm::mat2x4 q = m * x; 25 | bool R = m != q; 26 | bool S = m == l; 27 | 28 | return (S && !R) ? 0 : 1; 29 | } 30 | 31 | int main() 32 | { 33 | int Error = 0; 34 | 35 | Error += test_operators(); 36 | 37 | return Error; 38 | } 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /external/glm/test/core/core_type_mat3x2.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-08-31 5 | // Updated : 2008-08-31 6 | // Licence : This source is under MIT License 7 | // File : test/core/type_mat3x2.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | static bool test_operators() 13 | { 14 | glm::mat3x2 l(1.0f); 15 | glm::mat3x2 m(1.0f); 16 | glm::vec3 u(1.0f); 17 | glm::vec2 v(1.0f); 18 | float x = 1.0f; 19 | glm::vec2 a = m * u; 20 | glm::vec3 b = v * m; 21 | glm::mat3x2 n = x / m; 22 | glm::mat3x2 o = m / x; 23 | glm::mat3x2 p = x * m; 24 | glm::mat3x2 q = m * x; 25 | bool R = m != q; 26 | bool S = m == l; 27 | 28 | return (S && !R) ? 0 : 1; 29 | } 30 | 31 | int main() 32 | { 33 | int Error = 0; 34 | 35 | Error += test_operators(); 36 | 37 | return Error; 38 | } 39 | 40 | 41 | -------------------------------------------------------------------------------- /external/glm/test/core/core_type_mat3x4.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-08-31 5 | // Updated : 2008-08-31 6 | // Licence : This source is under MIT License 7 | // File : test/core/type_mat3x4.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | static bool test_operators() 13 | { 14 | glm::mat3x4 l(1.0f); 15 | glm::mat3x4 m(1.0f); 16 | glm::vec3 u(1.0f); 17 | glm::vec4 v(1.0f); 18 | float x = 1.0f; 19 | glm::vec4 a = m * u; 20 | glm::vec3 b = v * m; 21 | glm::mat3x4 n = x / m; 22 | glm::mat3x4 o = m / x; 23 | glm::mat3x4 p = x * m; 24 | glm::mat3x4 q = m * x; 25 | bool R = m != q; 26 | bool S = m == l; 27 | 28 | return (S && !R) ? 0 : 1; 29 | } 30 | 31 | int main() 32 | { 33 | int Error = 0; 34 | 35 | Error += test_operators(); 36 | 37 | return Error; 38 | } 39 | 40 | -------------------------------------------------------------------------------- /external/glm/test/core/core_type_mat4x2.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-08-31 5 | // Updated : 2008-08-31 6 | // Licence : This source is under MIT License 7 | // File : test/core/type_mat4x2.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | static int test_operators() 13 | { 14 | glm::mat4x2 l(1.0f); 15 | glm::mat4x2 m(1.0f); 16 | glm::vec4 u(1.0f); 17 | glm::vec2 v(1.0f); 18 | float x = 1.0f; 19 | glm::vec2 a = m * u; 20 | glm::vec4 b = v * m; 21 | glm::mat4x2 n = x / m; 22 | glm::mat4x2 o = m / x; 23 | glm::mat4x2 p = x * m; 24 | glm::mat4x2 q = m * x; 25 | bool R = m != q; 26 | bool S = m == l; 27 | 28 | return (S && !R) ? 0 : 1; 29 | } 30 | 31 | int main() 32 | { 33 | int Error = 0; 34 | 35 | Error += test_operators(); 36 | 37 | return Error; 38 | } 39 | 40 | -------------------------------------------------------------------------------- /external/glm/test/core/core_type_mat4x3.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-08-31 5 | // Updated : 2008-08-31 6 | // Licence : This source is under MIT License 7 | // File : test/core/type_mat4x3.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | 12 | static int test_operators() 13 | { 14 | glm::mat4x3 l(1.0f); 15 | glm::mat4x3 m(1.0f); 16 | glm::vec4 u(1.0f); 17 | glm::vec3 v(1.0f); 18 | float x = 1.0f; 19 | glm::vec3 a = m * u; 20 | glm::vec4 b = v * m; 21 | glm::mat4x3 n = x / m; 22 | glm::mat4x3 o = m / x; 23 | glm::mat4x3 p = x * m; 24 | glm::mat4x3 q = m * x; 25 | bool R = m != q; 26 | bool S = m == l; 27 | 28 | return (S && !R) ? 0 : 1; 29 | } 30 | 31 | int main() 32 | { 33 | int Error = 0; 34 | 35 | Error += test_operators(); 36 | 37 | return Error; 38 | } 39 | 40 | 41 | -------------------------------------------------------------------------------- /external/glm/test/core/core_type_vec1.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-08-31 5 | // Updated : 2008-08-31 6 | // Licence : This source is under MIT License 7 | // File : test/core/type_vec1.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #define GLM_SWIZZLE 11 | #include 12 | 13 | static int test_operators() 14 | { 15 | glm::vec4 A(1.0f); 16 | glm::vec4 B(1.0f); 17 | bool R = A != B; 18 | bool S = A == B; 19 | 20 | return (S && !R) ? 0 : 1; 21 | } 22 | 23 | int main() 24 | { 25 | int Error = 0; 26 | 27 | Error += test_operators(); 28 | 29 | return Error; 30 | } 31 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(NAME gli) 2 | 3 | file(GLOB ROOT_SOURCE *.cpp) 4 | file(GLOB ROOT_INLINE *.inl) 5 | file(GLOB ROOT_HEADER *.hpp) 6 | 7 | file(GLOB_RECURSE CORE_SOURCE ./core/*.cpp) 8 | file(GLOB_RECURSE CORE_INLINE ./core/*.inl) 9 | file(GLOB_RECURSE CORE_HEADER ./core/*.hpp) 10 | 11 | file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp) 12 | file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl) 13 | file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp) 14 | 15 | source_group("Core Files" FILES ${CORE_SOURCE}) 16 | source_group("Core Files" FILES ${CORE_INLINE}) 17 | source_group("Core Files" FILES ${CORE_HEADER}) 18 | source_group("GTX Files" FILES ${GTX_SOURCE}) 19 | source_group("GTX Files" FILES ${GTX_INLINE}) 20 | source_group("GTX Files" FILES ${GTX_HEADER}) 21 | 22 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) 23 | 24 | add_executable(${NAME} 25 | ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER} 26 | ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER} 27 | ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER} ) 28 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/core/dummy.cpp: -------------------------------------------------------------------------------- 1 | int main() 2 | { 3 | 4 | } 5 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/core/generate_mipmaps.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-27 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/core/generate_mipmaps.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GENERATE_MIPMAPS_INCLUDED 11 | #define GLI_GENERATE_MIPMAPS_INCLUDED 12 | 13 | #include "texture2d.hpp" 14 | 15 | namespace gli 16 | { 17 | texture2D generateMipmaps( 18 | texture2D const & Texture, 19 | texture2D::level_type const & BaseLevel); 20 | 21 | }//namespace gli 22 | 23 | #include "generate_mipmaps.inl" 24 | 25 | #endif//GLI_GENERATE_MIPMAPS_INCLUDED 26 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/core/operator.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-01-19 5 | // Updated : 2010-01-19 6 | // Licence : This source is under MIT License 7 | // File : gli/core/operator.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_OPERATOR_INCLUDED 11 | #define GLI_OPERATOR_INCLUDED 12 | 13 | #include "texture2d.hpp" 14 | 15 | namespace gli{ 16 | namespace detail 17 | { 18 | 19 | }//namespace detail 20 | 21 | texture2D operator+(texture2D const & TextureA, texture2D const & TextureB); 22 | texture2D operator-(texture2D const & TextureA, texture2D const & TextureB); 23 | 24 | }//namespace gli 25 | 26 | #include "operator.inl" 27 | 28 | #endif//GLI_OPERATOR_INCLUDED 29 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/core/shared_array.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2005-06-13 6 | // Licence : This source is under MIT License 7 | // File : gli/shared_array.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_SHARED_ARRAY_INCLUDED 11 | #define GLI_SHARED_ARRAY_INCLUDED 12 | 13 | namespace gli 14 | { 15 | template 16 | class shared_array 17 | { 18 | public: 19 | 20 | shared_array(); 21 | shared_array(shared_array const & SharedArray); 22 | shared_array(T * Pointer); 23 | virtual ~shared_array(); 24 | 25 | void reset(); 26 | void reset(T * Pointer); 27 | 28 | T & operator*(); 29 | T * operator->(); 30 | T const & operator*() const; 31 | T const * const operator->() const; 32 | 33 | T * get(); 34 | T const * const get() const; 35 | 36 | shared_array & operator=(shared_array const & SharedArray); 37 | bool operator==(shared_array const & SharedArray) const; 38 | bool operator!=(shared_array const & SharedArray) const; 39 | 40 | private: 41 | int * Counter; 42 | T * Pointer; 43 | }; 44 | }//namespace gli 45 | 46 | #include "shared_array.inl" 47 | 48 | #endif //GLI_SHARED_ARRAY_INCLUDED 49 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/core/shared_ptr.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2005-06-13 6 | // Licence : This source is under MIT License 7 | // File : gli/fetch.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_SHARED_PTR_INCLUDED 11 | #define GLI_SHARED_PTR_INCLUDED 12 | 13 | namespace gli 14 | { 15 | template 16 | class shared_ptr 17 | { 18 | public: 19 | shared_ptr(); 20 | shared_ptr(shared_ptr const & SmartPtr); 21 | shared_ptr(T* pPointer); 22 | ~shared_ptr(); 23 | 24 | T& operator*(); 25 | T* operator->(); 26 | const T& operator*() const; 27 | const T* operator->() const; 28 | shared_ptr& operator=(shared_ptr const & SmartPtr); 29 | shared_ptr& operator=(T* pPointer); 30 | bool operator==(shared_ptr const & SmartPtr) const; 31 | bool operator!=(shared_ptr const & SmartPtr) const; 32 | 33 | private: 34 | int* m_pReference; 35 | T* m_pPointer; 36 | }; 37 | }//namespace gli 38 | 39 | #include "shared_ptr.inl" 40 | 41 | #endif //GLI_SHARED_PTR_INCLUDED 42 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/core/size.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-08 5 | // Updated : 2010-09-08 6 | // Licence : This source is under MIT License 7 | // File : gli/core/size.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_CORE_SIZE_INCLUDED 11 | #define GLI_CORE_SIZE_INCLUDED 12 | 13 | #include "texture2d.hpp" 14 | 15 | namespace gli 16 | { 17 | //template 18 | image2D::size_type size( 19 | image2D const & Image, 20 | image2D::size_type const & SizeType); 21 | 22 | //template 23 | texture2D::size_type size( 24 | texture2D const & Texture, 25 | texture2D::size_type const & SizeType); 26 | 27 | }//namespace gli 28 | 29 | #include "size.inl" 30 | 31 | #endif//GLI_CORE_SIZE_INCLUDED 32 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/core/size.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-09-08 6 | // Licence : This source is under MIT License 7 | // File : gli/core/size.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace gli 11 | { 12 | inline image2D::size_type size 13 | ( 14 | image2D const & Image, 15 | image2D::size_type const & SizeType 16 | ) 17 | { 18 | switch(SizeType) 19 | { 20 | case LINEAR_SIZE: 21 | return detail::sizeLinear(Image); 22 | case BLOCK_SIZE: 23 | return detail::sizeBlock(Image.format()); 24 | case BIT_PER_PIXEL: 25 | return detail::sizeBitPerPixel(Image.format()); 26 | case COMPONENT: 27 | return detail::sizeComponent(Image.format()); 28 | default: 29 | assert(0); 30 | return 0; 31 | }; 32 | } 33 | 34 | inline texture2D::size_type size 35 | ( 36 | texture2D const & Texture, 37 | texture2D::size_type const & SizeType 38 | ) 39 | { 40 | texture2D::size_type Size = 0; 41 | for(texture2D::level_type Level = 0; Level < Texture.levels(); ++Level) 42 | Size += size(Texture[Level], SizeType); 43 | 44 | return Size; 45 | } 46 | 47 | }//namespace 48 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gli.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-09-29 6 | // Licence : This source is under MIT License 7 | // File : gli/gli.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | /*! \mainpage OpenGL Image 11 | * 12 | */ 13 | 14 | #ifndef GLI_GLI_INCLUDED 15 | #define GLI_GLI_INCLUDED 16 | 17 | #define GLI_VERSION 31 18 | #define GLI_VERSION_MAJOR 0 19 | #define GLI_VERSION_MINOR 3 20 | #define GLI_VERSION_PATCH 1 21 | #define GLI_VERSION_REVISION 0 22 | 23 | #include "./core/texture2d.hpp" 24 | #include "./core/texture2d_array.hpp" 25 | #include "./core/texture_cube.hpp" 26 | #include "./core/texture_cube_array.hpp" 27 | #include "./core/size.hpp" 28 | #include "./core/operation.hpp" 29 | #include "./core/generate_mipmaps.hpp" 30 | 31 | #endif//GLI_GLI_INCLUDED 32 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/compression.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-01-09 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/compression.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_COMPRESSION_INCLUDED 11 | #define GLI_GTX_COMPRESSION_INCLUDED 12 | 13 | namespace gli{ 14 | namespace gtx{ 15 | namespace compression 16 | { 17 | 18 | 19 | }//namespace compression 20 | }//namespace gtx 21 | }//namespace gli 22 | 23 | namespace gli{using namespace gtx::compression;} 24 | 25 | #include "compression.inl" 26 | 27 | #endif//GLI_GTX_COMPRESSION_INCLUDED 28 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/compression.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-01-09 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/compression.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/fetch.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/fetch.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_FETCH_INCLUDED 11 | #define GLI_GTX_FETCH_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | 15 | namespace gli{ 16 | namespace gtx{ 17 | namespace fetch 18 | { 19 | template 20 | genType texelFetch( 21 | texture2D const & Texture, 22 | texture2D::dimensions_type const & Texcoord, 23 | texture2D::level_type const & Level); 24 | 25 | template 26 | genType textureLod( 27 | texture2D const & Texture, 28 | texture2D::texcoord_type const & Texcoord, 29 | texture2D::level_type const & Level); 30 | 31 | template 32 | void texelWrite( 33 | texture2D & Texture, 34 | texture2D::dimensions_type const & Texcoord, 35 | texture2D::level_type const & Level, 36 | genType const & Color); 37 | 38 | }//namespace fetch 39 | }//namespace gtx 40 | }//namespace gli 41 | 42 | namespace gli{using namespace gtx::fetch;} 43 | 44 | #include "fetch.inl" 45 | 46 | #endif//GLI_GTX_FETCH_INCLUDED 47 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/gl_texture2d.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-27 5 | // Updated : 2010-10-01 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/gl_texture2d.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_GL_TEXTURE2D_INCLUDED 11 | #define GLI_GTX_GL_TEXTURE2D_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | #include "../gtx/loader.hpp" 15 | 16 | #ifndef GL_VERSION_1_1 17 | #error "ERROR: OpenGL must be included before GLI_GTX_gl_texture2d" 18 | #endif//GL_VERSION_1_1 19 | 20 | namespace gli{ 21 | namespace gtx{ 22 | namespace gl_texture2d 23 | { 24 | GLuint createTexture2D(std::string const & Filename); 25 | }//namespace gl_texture2d 26 | }//namespace gtx 27 | }//namespace gli 28 | 29 | namespace gli{using namespace gtx::gl_texture2d;} 30 | 31 | #include "gl_texture2d.inl" 32 | 33 | #endif//GLI_GTX_GL_TEXTURE2D_INCLUDED 34 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/gradient.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2008-12-19 5 | // Updated : 2010-01-09 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/gradient.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_GRADIENT_INCLUDED 11 | #define GLI_GTX_GRADIENT_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | 15 | namespace gli{ 16 | namespace gtx{ 17 | namespace gradient 18 | { 19 | texture2D radial( 20 | texture2D::dimensions_type const & Size, 21 | texture2D::texcoord_type const & Center, 22 | float const & Radius, 23 | texture2D::texcoord_type const & Focal); 24 | 25 | texture2D linear( 26 | texture2D::dimensions_type const & Size, 27 | texture2D::texcoord_type const & Point0, 28 | texture2D::texcoord_type const & Point1); 29 | 30 | }//namespace gradient 31 | }//namespace gtx 32 | }//namespace gli 33 | 34 | namespace gli{using namespace gtx::gradient;} 35 | 36 | #include "gradient.inl" 37 | 38 | #endif//GLI_GTX_GRADIENT_INCLUDED 39 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/loader.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-08 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/loader.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_LOADER_INCLUDED 11 | #define GLI_GTX_LOADER_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | #include "../gtx/loader_dds9.hpp" 15 | #include "../gtx/loader_dds10.hpp" 16 | #include "../gtx/loader_tga.hpp" 17 | 18 | namespace gli{ 19 | namespace gtx{ 20 | namespace loader 21 | { 22 | inline texture2D load( 23 | std::string const & Filename); 24 | 25 | inline void save( 26 | texture2D const & Image, 27 | std::string const & Filename); 28 | 29 | }//namespace loader 30 | }//namespace gtx 31 | }//namespace gli 32 | 33 | namespace gli{using namespace gtx::loader;} 34 | 35 | #include "loader.inl" 36 | 37 | #endif//GLI_GTX_LOADER_INCLUDED 38 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/loader.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-08 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/loader.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | namespace gli{ 11 | namespace gtx{ 12 | namespace loader 13 | { 14 | inline texture2D load 15 | ( 16 | std::string const & Filename 17 | ) 18 | { 19 | if(Filename.find(".dds") != std::string::npos) 20 | return loadDDS10(Filename); 21 | else if(Filename.find(".tga") != std::string::npos) 22 | return loadTGA(Filename); 23 | else 24 | { 25 | assert(0); // File format not supported 26 | return texture2D(); 27 | } 28 | } 29 | 30 | inline void save 31 | ( 32 | texture2D const & Image, 33 | std::string const & Filename 34 | ) 35 | { 36 | if(Filename.find(".dds") != std::string::npos) 37 | saveDDS10(Image, Filename); 38 | else if(Filename.find(".tga") != std::string::npos) 39 | saveTGA(Image, Filename); 40 | else 41 | assert(0); // File format not supported 42 | } 43 | 44 | }//namespace loader 45 | }//namespace gtx 46 | }//namespace gli 47 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/loader_dds10.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-26 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/loader_dds10.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_LOADER_DDS10_INCLUDED 11 | #define GLI_GTX_LOADER_DDS10_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | #include 15 | 16 | namespace gli{ 17 | namespace gtx{ 18 | namespace loader_dds10 19 | { 20 | texture2D loadDDS10( 21 | std::string const & Filename); 22 | 23 | void saveDDS10( 24 | texture2D const & Image, 25 | std::string const & Filename); 26 | 27 | }//namespace loader_dds10 28 | }//namespace gtx 29 | }//namespace gli 30 | 31 | namespace gli{using namespace gtx::loader_dds10;} 32 | 33 | #include "loader_dds10.inl" 34 | 35 | #endif//GLI_GTX_LOADER_DDS10_INCLUDED 36 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/loader_dds9.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-08 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/loader_dds9.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_LOADER_DDS9_INCLUDED 11 | #define GLI_GTX_LOADER_DDS9_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | #include 15 | 16 | namespace gli{ 17 | namespace gtx{ 18 | namespace loader_dds9 19 | { 20 | texture2D loadDDS9( 21 | std::string const & Filename); 22 | 23 | void saveDDS9( 24 | texture2D const & Texture, 25 | std::string const & Filename); 26 | 27 | void saveTextureCubeDDS9( 28 | textureCube const & Texture, 29 | std::string const & Filename); 30 | 31 | }//namespace loader_dds9 32 | }//namespace gtx 33 | }//namespace gli 34 | 35 | namespace gli{using namespace gtx::loader_dds9;} 36 | 37 | #include "loader_dds9.inl" 38 | 39 | #endif//GLI_GTX_LOADER_DDS9_INCLUDED 40 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/loader_tga.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-08 5 | // Updated : 2010-09-27 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/loader_tga.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_LOADER_TGA_INCLUDED 11 | #define GLI_GTX_LOADER_TGA_INCLUDED 12 | 13 | #include "../gli.hpp" 14 | #include 15 | #include 16 | 17 | namespace gli{ 18 | namespace gtx{ 19 | namespace loader_tga 20 | { 21 | texture2D loadTGA( 22 | std::string const & Filename); 23 | 24 | void saveTGA( 25 | texture2D const & Image, 26 | std::string const & Filename); 27 | 28 | }//namespace loader_tga 29 | }//namespace gtx 30 | }//namespace gli 31 | 32 | namespace gli{using namespace gtx::loader_tga;} 33 | 34 | #include "loader_tga.inl" 35 | 36 | #endif//GLI_GTX_LOADER_TGA_INCLUDED 37 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/wavelet.hpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-01-09 5 | // Updated : 2010-01-09 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/wavelet.hpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #ifndef GLI_GTX_WAVELET_INCLUDED 11 | #define GLI_GTX_WAVELET_INCLUDED 12 | 13 | namespace gli{ 14 | namespace gtx{ 15 | namespace wavelet 16 | { 17 | 18 | 19 | }//namespace wavelet 20 | }//namespace gtx 21 | }//namespace gli 22 | 23 | namespace gli{using namespace gtx::wavelet;} 24 | 25 | #include "wavelet.inl" 26 | 27 | #endif//GLI_GTX_WAVELET_INCLUDED 28 | -------------------------------------------------------------------------------- /external/glm/test/external/gli/gtx/wavelet.inl: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-01-09 5 | // Updated : 2010-01-09 6 | // Licence : This source is under MIT License 7 | // File : gli/gtx/wavelet.inl 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | -------------------------------------------------------------------------------- /external/glm/test/glm.cppcheck: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /external/glm/test/gtc/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | glmCreateTestGTC(gtc_constants) 2 | glmCreateTestGTC(gtc_epsilon) 3 | glmCreateTestGTC(gtc_half_float) 4 | glmCreateTestGTC(gtc_matrix_access) 5 | glmCreateTestGTC(gtc_matrix_integer) 6 | glmCreateTestGTC(gtc_matrix_inverse) 7 | glmCreateTestGTC(gtc_matrix_transform) 8 | glmCreateTestGTC(gtc_noise) 9 | glmCreateTestGTC(gtc_quaternion) 10 | glmCreateTestGTC(gtc_random) 11 | glmCreateTestGTC(gtc_reciprocal) 12 | glmCreateTestGTC(gtc_swizzle) 13 | glmCreateTestGTC(gtc_type_precision) 14 | glmCreateTestGTC(gtc_type_ptr) 15 | glmCreateTestGTC(gtc_ulp) 16 | -------------------------------------------------------------------------------- /external/glm/test/gtc/gtc_constants.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2012-09-19 5 | // Updated : 2012-09-19 6 | // Licence : This source is under MIT licence 7 | // File : test/gtc/constants.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | int Error(0); 16 | 17 | float MinHalf = 0.0f; 18 | while (glm::half(MinHalf) == glm::half(0.0f)) 19 | MinHalf += std::numeric_limits::epsilon(); 20 | 21 | return Error; 22 | } 23 | -------------------------------------------------------------------------------- /external/glm/test/gtc/gtc_matrix_integer.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-16 5 | // Updated : 2010-09-16 6 | // Licence : This source is under MIT licence 7 | // File : test/gtc/matrix_integer.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | int Error = 0; 16 | 17 | return Error; 18 | } 19 | -------------------------------------------------------------------------------- /external/glm/test/gtc/gtc_matrix_inverse.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-16 5 | // Updated : 2010-09-16 6 | // Licence : This source is under MIT licence 7 | // File : test/gtc/matrix_inverse.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | int Error = 0; 16 | 17 | return Error; 18 | } 19 | -------------------------------------------------------------------------------- /external/glm/test/gtc/gtc_matrix_transform.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-16 5 | // Updated : 2010-09-16 6 | // Licence : This source is under MIT licence 7 | // File : test/gtc/matrix_transform.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | int Error = 0; 16 | 17 | glm::mat4 Pick = glm::pickMatrix(glm::vec2(1, 2), glm::vec2(3, 4), glm::ivec4(0, 0, 320, 240)); 18 | 19 | return Error; 20 | } 21 | -------------------------------------------------------------------------------- /external/glm/test/gtc/gtc_reciprocal.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2012-09-19 5 | // Updated : 2012-09-19 6 | // Licence : This source is under MIT licence 7 | // File : test/gtc/reciprocal.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | int Error(0); 16 | 17 | 18 | 19 | return Error; 20 | } 21 | 22 | 23 | -------------------------------------------------------------------------------- /external/glm/test/gtx/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | glmCreateTestGTC(gtx_bit) 2 | glmCreateTestGTC(gtx_gradient_paint) 3 | glmCreateTestGTC(gtx_integer) 4 | glmCreateTestGTC(gtx_matrix_interpolation) 5 | glmCreateTestGTC(gtx_matrix_query) 6 | glmCreateTestGTC(gtx_quaternion) 7 | glmCreateTestGTC(gtx_rotate_vector) 8 | glmCreateTestGTC(gtx_simd_vec4) 9 | glmCreateTestGTC(gtx_simd_mat4) 10 | glmCreateTestGTC(gtx_string_cast) 11 | glmCreateTestGTC(gtx_vector_angle) 12 | glmCreateTestGTC(gtx_vector_query) 13 | -------------------------------------------------------------------------------- /external/glm/test/gtx/gtx_gradient_paint.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2011-10-13 5 | // Updated : 2011-10-13 6 | // Licence : This source is under MIT licence 7 | // File : test/gtx/gradient_paint.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int test_radialGradient() 14 | { 15 | int Error = 0; 16 | 17 | float Gradient = glm::radialGradient(glm::vec2(0), 1.0f, glm::vec2(1), glm::vec2(0.5)); 18 | Error += Gradient != 0.0f ? 0 : 1; 19 | 20 | return Error; 21 | } 22 | 23 | int test_linearGradient() 24 | { 25 | int Error = 0; 26 | 27 | float Gradient = glm::linearGradient(glm::vec2(0), glm::vec2(1), glm::vec2(0.5)); 28 | Error += Gradient != 0.0f ? 0 : 1; 29 | 30 | return Error; 31 | } 32 | 33 | int main() 34 | { 35 | int Error = 0; 36 | 37 | Error += test_radialGradient(); 38 | Error += test_linearGradient(); 39 | 40 | return Error; 41 | } 42 | 43 | 44 | -------------------------------------------------------------------------------- /external/glm/test/gtx/gtx_matrix_interpolation.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2012-09-19 5 | // Updated : 2012-09-19 6 | // Licence : This source is under MIT licence 7 | // File : test/gtx/matrix_interpolation.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int main() 14 | { 15 | int Error(0); 16 | 17 | 18 | 19 | return Error; 20 | } 21 | 22 | 23 | -------------------------------------------------------------------------------- /external/glm/test/gtx/gtx_matrix_query.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2011-11-22 5 | // Updated : 2011-11-22 6 | // Licence : This source is under MIT licence 7 | // File : test/gtx/matrix_query.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | 13 | int test_isNull() 14 | { 15 | int Error(0); 16 | 17 | bool TestA = glm::isNull(glm::mat4(0), 0.00001f); 18 | Error += TestA ? 0 : 1; 19 | 20 | return Error; 21 | } 22 | 23 | int test_isIdentity() 24 | { 25 | int Error(0); 26 | 27 | { 28 | bool TestA = glm::isIdentity(glm::mat2(1), 0.00001f); 29 | Error += TestA ? 0 : 1; 30 | } 31 | { 32 | bool TestA = glm::isIdentity(glm::mat3(1), 0.00001f); 33 | Error += TestA ? 0 : 1; 34 | } 35 | { 36 | bool TestA = glm::isIdentity(glm::mat4(1), 0.00001f); 37 | Error += TestA ? 0 : 1; 38 | } 39 | 40 | return Error; 41 | } 42 | 43 | int test_isNormalized() 44 | { 45 | int Error(0); 46 | 47 | bool TestA = glm::isNormalized(glm::mat4(1), 0.00001f); 48 | Error += TestA ? 0 : 1; 49 | 50 | return Error; 51 | } 52 | 53 | int test_isOrthogonal() 54 | { 55 | int Error(0); 56 | 57 | bool TestA = glm::isOrthogonal(glm::mat4(1), 0.00001f); 58 | Error += TestA ? 0 : 1; 59 | 60 | return Error; 61 | } 62 | 63 | int main() 64 | { 65 | int Error(0); 66 | 67 | Error += test_isNull(); 68 | Error += test_isIdentity(); 69 | Error += test_isNormalized(); 70 | Error += test_isOrthogonal(); 71 | 72 | return Error; 73 | } 74 | 75 | 76 | -------------------------------------------------------------------------------- /external/glm/test/gtx/gtx_simd_vec4.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////////////////////////// 2 | // OpenGL Mathematics Copyright (c) 2005 - 2012 G-Truc Creation (www.g-truc.net) 3 | /////////////////////////////////////////////////////////////////////////////////////////////////// 4 | // Created : 2010-09-16 5 | // Updated : 2010-09-16 6 | // Licence : This source is under MIT licence 7 | // File : test/gtx/simd-vec4.cpp 8 | /////////////////////////////////////////////////////////////////////////////////////////////////// 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | #if(GLM_ARCH != GLM_ARCH_PURE) 15 | 16 | int main() 17 | { 18 | glm::simdVec4 A1(0.0f, 0.1f, 0.2f, 0.3f); 19 | glm::simdVec4 B1(0.4f, 0.5f, 0.6f, 0.7f); 20 | glm::simdVec4 C1 = A1 + B1; 21 | glm::simdVec4 D1 = A1.swizzle(); 22 | glm::simdVec4 E1(glm::vec4(1.0f)); 23 | glm::vec4 F1 = glm::vec4_cast(E1); 24 | //glm::vec4 G1(E1); 25 | 26 | //printf("A1(%2.3f, %2.3f, %2.3f, %2.3f)\n", A1.x, A1.y, A1.z, A1.w); 27 | //printf("B1(%2.3f, %2.3f, %2.3f, %2.3f)\n", B1.x, B1.y, B1.z, B1.w); 28 | //printf("C1(%2.3f, %2.3f, %2.3f, %2.3f)\n", C1.x, C1.y, C1.z, C1.w); 29 | //printf("D1(%2.3f, %2.3f, %2.3f, %2.3f)\n", D1.x, D1.y, D1.z, D1.w); 30 | 31 | return 0; 32 | } 33 | 34 | #else 35 | 36 | int main() 37 | { 38 | int Error = 0; 39 | 40 | return Error; 41 | } 42 | 43 | #endif//(GLM_ARCH != GLM_ARCH_PURE) 44 | -------------------------------------------------------------------------------- /external/glm/util/autoexp.txt: -------------------------------------------------------------------------------- 1 | [Visualizer] 2 | 3 | glm::detail::tvec2<*>{ 4 | preview ( 5 | #(#($c.x,$c.y)) 6 | ) 7 | children ( 8 | #([x]: $c.x,[y]: $c.y) 9 | ) 10 | } 11 | 12 | glm::detail::tvec3<*>{ 13 | preview ( 14 | #($e.x,$e.y,$e.z) 15 | ) 16 | children ( 17 | #([x]: $e.x,[y]: $e.y,[z]: $e.z) 18 | ) 19 | } 20 | 21 | glm::detail::tvec4<*>{ 22 | preview ( 23 | #($c.x,$c.y,$c.z,$c.w) 24 | ) 25 | children ( 26 | #([x]: $e.x,[y]: $e.y,[z]: $e.z, #([w]: $e.w)) 27 | ) 28 | } 29 | -------------------------------------------------------------------------------- /external/glm/util/glm.natvis: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ({x}, {y}) 7 | 8 | x 9 | y 10 | 11 | 12 | 13 | ({x}, {y}, {z}) 14 | 15 | x 16 | y 17 | z 18 | 19 | 20 | 21 | ({x}, {y}, {z}, {w}) 22 | 23 | x 24 | y 25 | z 26 | w 27 | 28 | 29 | -------------------------------------------------------------------------------- /external/libs/glfw3.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/external/libs/glfw3.lib -------------------------------------------------------------------------------- /include/Common.hpp: -------------------------------------------------------------------------------- 1 | #ifndef COMMON_HPP 2 | #define COMMON_HPP 3 | 4 | #include "OpenGL.hpp" 5 | #include 6 | 7 | namespace texture 8 | { 9 | GLuint Create2D(GLint internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type); 10 | 11 | enum Filtering { NEAREST, LINEAR, MIPMAP }; 12 | void SetFiltering2D(GLuint texture, Filtering filtering); 13 | 14 | enum WrapMode { ClampEdge, ClampBorder, Repeat }; 15 | void SetWrapMode2D(GLuint texture, WrapMode mode, GLfloat border = 0.0f); 16 | 17 | GLuint Framebuffer(int colorTex, int depthTex); 18 | }; 19 | 20 | // OpenGL-error callback function 21 | // Used when GL_ARB_debug_output is supported 22 | void APIENTRY DebugFunc(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, 23 | const GLchar* message, GLvoid* userParam); 24 | 25 | struct Mesh 26 | { 27 | GLuint vao; 28 | GLuint vbo; 29 | }; 30 | 31 | Mesh create_quad(); 32 | Mesh create_cube(); 33 | void delete_mesh(Mesh m); 34 | 35 | bool init_opengl( int width, int height, GLFWwindow** ppWindow ); 36 | 37 | #endif -------------------------------------------------------------------------------- /include/OpenGL.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifndef OpenGL_h__ 3 | #define OpenGL_h__ 4 | 5 | #include 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #endif // OpenGL_h__ -------------------------------------------------------------------------------- /screenshots/pcf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/screenshots/pcf.png -------------------------------------------------------------------------------- /screenshots/vsm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/screenshots/vsm.png -------------------------------------------------------------------------------- /screenshots/vsm_cubemap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cforfang/opengl-shadowmapping/ec4db016daf66c610679785d48ea0ef12c6d2ad5/screenshots/vsm_cubemap.png -------------------------------------------------------------------------------- /src/blurFragmentShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | in vec2 Texcoord; 3 | 4 | uniform sampler2D textureSource; 5 | uniform vec2 ScaleU; 6 | 7 | out vec4 outColor; 8 | 9 | void main() 10 | { 11 | vec4 color = vec4(0.0); 12 | color += texture2D( textureSource, Texcoord.st + vec2( -3.0*ScaleU.x, -3.0*ScaleU.y ) ) * 0.015625; 13 | color += texture2D( textureSource, Texcoord.st + vec2( -2.0*ScaleU.x, -2.0*ScaleU.y ) )*0.09375; 14 | color += texture2D( textureSource, Texcoord.st + vec2( -1.0*ScaleU.x, -1.0*ScaleU.y ) )*0.234375; 15 | color += texture2D( textureSource, Texcoord.st + vec2( 0.0 , 0.0) )*0.3125; 16 | color += texture2D( textureSource, Texcoord.st + vec2( 1.0*ScaleU.x, 1.0*ScaleU.y ) )*0.234375; 17 | color += texture2D( textureSource, Texcoord.st + vec2( 2.0*ScaleU.x, 2.0*ScaleU.y ) )*0.09375; 18 | color += texture2D( textureSource, Texcoord.st + vec2( 3.0*ScaleU.x, -3.0*ScaleU.y ) ) * 0.015625; 19 | outColor = vec4(color.xyz, 1.0); 20 | }; -------------------------------------------------------------------------------- /src/blurVertexShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location = 0) in vec3 position; 4 | layout(location = 2) in vec2 texcoord; 5 | 6 | out vec2 Texcoord; 7 | 8 | void main() 9 | { 10 | gl_Position = vec4(position, 1.0); 11 | Texcoord = texcoord; 12 | }; -------------------------------------------------------------------------------- /src/pcf/shadowFragmentShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | void main() 4 | {} -------------------------------------------------------------------------------- /src/pcf/shadowVertexShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location = 0) in vec3 position; 4 | 5 | uniform mat4 cameraToShadowProjector; 6 | uniform mat4 model; 7 | 8 | void main() { 9 | gl_Position = cameraToShadowProjector * model * vec4(position, 1.0); 10 | } -------------------------------------------------------------------------------- /src/pcf/vertexShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location = 0) in vec3 position; 4 | layout(location = 1) in vec3 normal; 5 | layout(location = 2) in vec2 texcoord; 6 | 7 | out vec4 vneye; 8 | out vec4 vpeye; 9 | out vec4 sc; 10 | out vec2 Texcoord; 11 | 12 | uniform mat4 cameraToShadowProjector; 13 | uniform mat4 model, view, proj; 14 | 15 | const mat4 bias = mat4( 0.5, 0.0, 0.0, 0.0, 16 | 0.0, 0.5, 0.0, 0.0, 17 | 0.0, 0.0, 0.5, 0.0, 18 | 0.5, 0.5, 0.5, 1.0); 19 | 20 | void main() { 21 | Texcoord = texcoord; 22 | gl_Position = proj * view * model * vec4(position, 1.0f); 23 | vneye = view * model * vec4(normal, 0.0f); 24 | vpeye = view * model * vec4(position, 1.0); 25 | sc = bias * cameraToShadowProjector * model * vec4(position, 1.0f); 26 | } -------------------------------------------------------------------------------- /src/vsm/shadowFragmentShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec4 v_position; 4 | out vec4 outColor; 5 | 6 | // From http://fabiensanglard.net/shadowmappingVSM/index.php 7 | void main() 8 | { 9 | float depth = v_position.z / v_position.w; 10 | depth = depth * 0.5 + 0.5; 11 | 12 | float moment1 = depth; 13 | float moment2 = depth * depth; 14 | 15 | float dx = dFdx(depth); 16 | float dy = dFdy(depth); 17 | moment2 += 0.25*(dx*dx+dy*dy); 18 | outColor = vec4( moment1, moment2, 0.0, 0.0); 19 | }; -------------------------------------------------------------------------------- /src/vsm/shadowVertexShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location = 0) in vec3 position; 4 | out vec4 v_position; 5 | 6 | uniform mat4 cameraToShadowView; 7 | uniform mat4 cameraToShadowProjector; 8 | uniform mat4 model; 9 | 10 | void main() { 11 | gl_Position = cameraToShadowProjector * model * vec4(position, 1.0); 12 | v_position = gl_Position; 13 | }; -------------------------------------------------------------------------------- /src/vsm/vertexShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location = 0) in vec3 position; 4 | layout(location = 1) in vec3 normal; 5 | layout(location = 2) in vec2 texcoord; 6 | 7 | out vec4 vneye; 8 | out vec4 vpeye; 9 | out vec4 sc; 10 | out vec2 Texcoord; 11 | 12 | uniform mat4 cameraToShadowProjector; 13 | uniform mat4 model, view, proj; 14 | 15 | void main() { 16 | Texcoord = texcoord; 17 | gl_Position = proj * view * model * vec4(position, 1.0f); 18 | vneye = view * model * vec4(normal, 0.0f); 19 | vpeye = view * model * vec4(position, 1.0); 20 | sc = cameraToShadowProjector * model * vec4(position, 1.0f); 21 | } -------------------------------------------------------------------------------- /src/vsmcube/shadowFragmentShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec4 v_position; 4 | out vec4 outColor; 5 | 6 | void main() { 7 | float depth = length( vec3(v_position) ) / 20; 8 | 9 | float moment1 = depth; 10 | float moment2 = depth * depth; 11 | 12 | float dx = dFdx(depth); 13 | float dy = dFdy(depth); 14 | moment2 += 0.25*(dx*dx+dy*dy); 15 | 16 | outColor = vec4( moment1, moment2, 0.0, 0.0); 17 | }; -------------------------------------------------------------------------------- /src/vsmcube/shadowVertexShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location = 0) in vec3 position; 4 | 5 | out vec4 v_position; 6 | 7 | uniform mat4 cameraToShadowView; 8 | uniform mat4 cameraToShadowProjector; 9 | uniform mat4 model; 10 | 11 | void main() { 12 | gl_Position = cameraToShadowProjector * model * vec4(position, 1.0); 13 | v_position = cameraToShadowView * model * vec4(position, 1.0); 14 | }; -------------------------------------------------------------------------------- /src/vsmcube/vertexShader.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | layout(location = 0) in vec3 position; 4 | layout(location = 1) in vec3 normal; 5 | layout(location = 2) in vec2 texcoord; 6 | 7 | out vec4 vneye; 8 | out vec4 vpeye; 9 | out vec4 sc; 10 | out vec2 Texcoord; 11 | 12 | uniform mat4 model, view, proj; 13 | 14 | void main() { 15 | Texcoord = texcoord; 16 | gl_Position = proj * view * model * vec4(position, 1.0f); 17 | vneye = view * model * vec4(normal, 0.0f); 18 | vpeye = view * model * vec4(position, 1.0); 19 | } --------------------------------------------------------------------------------