├── .clang_complete ├── .doxyfile ├── .gitignore ├── .vimrc ├── CMakeLists.txt ├── Config.cmake.in ├── LICENSE ├── README.md ├── cmake └── FindVulkan.cmake ├── doc └── html │ ├── annotated.html │ ├── arrowdown.png │ ├── arrowright.png │ ├── bc_s.png │ ├── bdwn.png │ ├── classes.html │ ├── classvku_1_1_color_attachment_image-members.html │ ├── classvku_1_1_color_attachment_image.html │ ├── classvku_1_1_color_attachment_image.png │ ├── classvku_1_1_compute_pipeline_maker-members.html │ ├── classvku_1_1_compute_pipeline_maker.html │ ├── classvku_1_1_depth_stencil_image-members.html │ ├── classvku_1_1_depth_stencil_image.html │ ├── classvku_1_1_depth_stencil_image.png │ ├── classvku_1_1_descriptor_set_layout_maker-members.html │ ├── classvku_1_1_descriptor_set_layout_maker.html │ ├── classvku_1_1_descriptor_set_maker-members.html │ ├── classvku_1_1_descriptor_set_maker.html │ ├── classvku_1_1_descriptor_set_updater-members.html │ ├── classvku_1_1_descriptor_set_updater.html │ ├── classvku_1_1_framework-members.html │ ├── classvku_1_1_framework.html │ ├── classvku_1_1_generic_buffer-members.html │ ├── classvku_1_1_generic_buffer.html │ ├── classvku_1_1_generic_buffer.png │ ├── classvku_1_1_generic_image-members.html │ ├── classvku_1_1_generic_image.html │ ├── classvku_1_1_generic_image.png │ ├── classvku_1_1_host_index_buffer-members.html │ ├── classvku_1_1_host_index_buffer.html │ ├── classvku_1_1_host_index_buffer.png │ ├── classvku_1_1_host_vertex_buffer-members.html │ ├── classvku_1_1_host_vertex_buffer.html │ ├── classvku_1_1_host_vertex_buffer.png │ ├── classvku_1_1_index_buffer-members.html │ ├── classvku_1_1_index_buffer.html │ ├── classvku_1_1_index_buffer.png │ ├── classvku_1_1_k_t_x_file_layout-members.html │ ├── classvku_1_1_k_t_x_file_layout.html │ ├── classvku_1_1_pipeline_layout_maker-members.html │ ├── classvku_1_1_pipeline_layout_maker.html │ ├── classvku_1_1_pipeline_maker-members.html │ ├── classvku_1_1_pipeline_maker.html │ ├── classvku_1_1_renderpass_maker-members.html │ ├── classvku_1_1_renderpass_maker.html │ ├── classvku_1_1_sampler_maker-members.html │ ├── classvku_1_1_sampler_maker.html │ ├── classvku_1_1_shader_module-members.html │ ├── classvku_1_1_shader_module.html │ ├── classvku_1_1_texture_image2_d-members.html │ ├── classvku_1_1_texture_image2_d.html │ ├── classvku_1_1_texture_image2_d.png │ ├── classvku_1_1_texture_image_cube-members.html │ ├── classvku_1_1_texture_image_cube.html │ ├── classvku_1_1_texture_image_cube.png │ ├── classvku_1_1_uniform_buffer-members.html │ ├── classvku_1_1_uniform_buffer.html │ ├── classvku_1_1_uniform_buffer.png │ ├── classvku_1_1_vertex_buffer-members.html │ ├── classvku_1_1_vertex_buffer.html │ ├── classvku_1_1_vertex_buffer.png │ ├── classvku_1_1_window-members.html │ ├── classvku_1_1_window.html │ ├── closed.png │ ├── dir_995fe1d227c607390ad9698aa181d942.html │ ├── dir_d44c64559bbebec7f509842c48db8b23.html │ ├── doc.png │ ├── doxygen.css │ ├── doxygen.png │ ├── dynsections.js │ ├── files.html │ ├── folderclosed.png │ ├── folderopen.png │ ├── functions.html │ ├── functions_func.html │ ├── hierarchy.html │ ├── index.html │ ├── jquery.js │ ├── menu.js │ ├── menudata.js │ ├── namespacemembers.html │ ├── namespacemembers_func.html │ ├── namespaces.html │ ├── namespacevku.html │ ├── nav_f.png │ ├── nav_g.png │ ├── nav_h.png │ ├── open.png │ ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_10.html │ ├── all_10.js │ ├── all_11.html │ ├── all_11.js │ ├── all_12.html │ ├── all_12.js │ ├── all_13.html │ ├── all_13.js │ ├── all_14.html │ ├── all_14.js │ ├── all_15.html │ ├── all_15.js │ ├── all_2.html │ ├── all_2.js │ ├── all_3.html │ ├── all_3.js │ ├── all_4.html │ ├── all_4.js │ ├── all_5.html │ ├── all_5.js │ ├── all_6.html │ ├── all_6.js │ ├── all_7.html │ ├── all_7.js │ ├── all_8.html │ ├── all_8.js │ ├── all_9.html │ ├── all_9.js │ ├── all_a.html │ ├── all_a.js │ ├── all_b.html │ ├── all_b.js │ ├── all_c.html │ ├── all_c.js │ ├── all_d.html │ ├── all_d.js │ ├── all_e.html │ ├── all_e.js │ ├── all_f.html │ ├── all_f.js │ ├── classes_0.html │ ├── classes_0.js │ ├── classes_1.html │ ├── classes_1.js │ ├── classes_2.html │ ├── classes_2.js │ ├── classes_3.html │ ├── classes_3.js │ ├── classes_4.html │ ├── classes_4.js │ ├── classes_5.html │ ├── classes_5.js │ ├── classes_6.html │ ├── classes_6.js │ ├── classes_7.html │ ├── classes_7.js │ ├── classes_8.html │ ├── classes_8.js │ ├── classes_9.html │ ├── classes_9.js │ ├── classes_a.html │ ├── classes_a.js │ ├── classes_b.html │ ├── classes_b.js │ ├── classes_c.html │ ├── classes_c.js │ ├── classes_d.html │ ├── classes_d.js │ ├── classes_e.html │ ├── classes_e.js │ ├── close.png │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── functions_10.html │ ├── functions_10.js │ ├── functions_11.html │ ├── functions_11.js │ ├── functions_12.html │ ├── functions_12.js │ ├── functions_13.html │ ├── functions_13.js │ ├── functions_14.html │ ├── functions_14.js │ ├── functions_2.html │ ├── functions_2.js │ ├── functions_3.html │ ├── functions_3.js │ ├── functions_4.html │ ├── functions_4.js │ ├── functions_5.html │ ├── functions_5.js │ ├── functions_6.html │ ├── functions_6.js │ ├── functions_7.html │ ├── functions_7.js │ ├── functions_8.html │ ├── functions_8.js │ ├── functions_9.html │ ├── functions_9.js │ ├── functions_a.html │ ├── functions_a.js │ ├── functions_b.html │ ├── functions_b.js │ ├── functions_c.html │ ├── functions_c.js │ ├── functions_d.html │ ├── functions_d.js │ ├── functions_e.html │ ├── functions_e.js │ ├── functions_f.html │ ├── functions_f.js │ ├── mag_sel.png │ ├── namespaces_0.html │ ├── namespaces_0.js │ ├── nomatches.html │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ └── searchdata.js │ ├── splitbar.png │ ├── structvku_1_1_block_params-members.html │ ├── structvku_1_1_block_params.html │ ├── structvku_1_1_generic_image_1_1_state-members.html │ ├── structvku_1_1_generic_image_1_1_state.html │ ├── structvku_1_1_shader_module_1_1_variable-members.html │ ├── structvku_1_1_shader_module_1_1_variable.html │ ├── sync_off.png │ ├── sync_on.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ ├── tabs.css │ ├── vku_8hpp_source.html │ └── vku__framework_8hpp_source.html ├── examples ├── CMakeLists.txt ├── README.md ├── crystalLogo │ ├── Inspiration.README │ ├── content.frag │ ├── content.vert │ ├── crystalLogo.cpp │ ├── cube.frag │ ├── cube.vert │ ├── imag_logo.c │ ├── imag_text1.c │ ├── imag_text2.c │ ├── reflectionPlane.frag │ ├── reflectionPlane.vert │ ├── reflectionReflector.frag │ └── reflectionReflector.vert ├── cybertruck │ ├── cybertruck.cpp │ ├── cybertruck.frag │ └── cybertruck.vert ├── dynamicUniformBuffer │ ├── dynamicUniformBuffer.cpp │ ├── dynamicUniformBuffer.frag │ └── dynamicUniformBuffer.vert ├── fdtd2d │ ├── fdtd2d.cpp │ ├── fdtd2d.vert │ ├── fdtd2dpass0.frag │ ├── fdtd2dpass1.frag │ ├── fdtd2dpass2.frag │ └── references.txt ├── fdtd2dUpml │ ├── fdtd2dUpml.cpp │ ├── fdtd2dUpml.vert │ ├── fdtd2dUpmlpass0.frag │ ├── fdtd2dUpmlpass1.frag │ ├── fdtd2dUpmlpass2.frag │ └── references.txt ├── flockaroo │ ├── advection.frag │ ├── flockaroo.cpp │ ├── flockaroo.frag │ └── flockaroo.vert ├── gumbo │ ├── GumboTranslatedScaledTransposed97to108.h │ ├── gumbo.cpp │ ├── gumbo.frag │ ├── gumbo.geom │ ├── gumbo.tesc │ ├── gumbo.tese │ └── gumbo.vert ├── helloCompute │ ├── helloCompute.comp │ └── helloCompute.cpp ├── helloGeometryShader │ ├── helloGeometryShader.cpp │ ├── helloGeometryShader.frag │ ├── helloGeometryShader.geom │ └── helloGeometryShader.vert ├── helloInstancing │ ├── helloInstancing.cpp │ ├── helloInstancing.frag │ └── helloInstancing.vert ├── helloTesselationShader │ ├── helloTesselationShader.cpp │ ├── helloTesselationShader.frag │ ├── helloTesselationShader.geom │ ├── helloTesselationShader.tesc │ ├── helloTesselationShader.tese │ └── helloTesselationShader.vert ├── helloTriangle │ ├── helloTriangle.cpp │ ├── helloTriangle.frag │ └── helloTriangle.vert ├── okretnica.ktx ├── perlinNoise │ ├── icosphereGenerator.hpp │ ├── perlinNoise.cpp │ ├── perlinNoise.frag │ ├── perlinNoise.vert │ └── readme.txt ├── pushConstants │ ├── pushConstants.cpp │ ├── pushConstants.frag │ └── pushConstants.vert ├── renderToCubemapByMultiview │ ├── renderToCubemapByMultiview.cpp │ ├── renderToCubemapByMultiview.frag │ ├── renderToCubemapByMultiview.vert │ ├── renderToCubemapByMultiviewPass2.frag │ └── renderToCubemapByMultiviewPass2.vert ├── teapot │ ├── teapot.cpp │ ├── teapot.frag │ ├── teapot.shadow.frag │ ├── teapot.shadow.vert │ └── teapot.vert ├── texture │ ├── texture.cpp │ ├── texture.frag │ └── texture.vert ├── threaded │ ├── threaded.cpp │ ├── threaded.frag │ └── threaded.vert └── uniforms │ ├── uniforms.cpp │ ├── uniforms.frag │ └── uniforms.vert ├── external ├── andyzip │ ├── algorithm.hpp │ ├── autocorr.hpp │ ├── brotli_data.hpp │ ├── brotli_decoder.hpp │ ├── deflate_decoder.hpp │ ├── deflate_encoder.hpp │ ├── huffman_table.hpp │ └── zipfile_reader.hpp ├── gilgamesh │ ├── decoders │ │ ├── fbx_decoder.hpp │ │ └── pdb_decoder.hpp │ ├── distance_field.hpp │ ├── encoders │ │ ├── fbx_encoder.hpp │ │ └── ply_encoder.hpp │ ├── mesh.hpp │ ├── scene.hpp │ └── shapes │ │ ├── box.hpp │ │ ├── cylinder.hpp │ │ ├── sphere.hpp │ │ ├── spline.hpp │ │ └── teapot.hpp ├── glfw │ ├── .gitrepo │ ├── .mailmap │ ├── CMake │ │ ├── GenerateMappings.cmake │ │ ├── Info.plist.in │ │ ├── cmake_uninstall.cmake.in │ │ ├── glfw3.pc.in │ │ ├── glfw3Config.cmake.in │ │ ├── i686-w64-mingw32-clang.cmake │ │ ├── i686-w64-mingw32.cmake │ │ ├── modules │ │ │ ├── FindEpollShim.cmake │ │ │ ├── FindOSMesa.cmake │ │ │ ├── FindWaylandProtocols.cmake │ │ │ └── FindXKBCommon.cmake │ │ ├── x86_64-w64-mingw32-clang.cmake │ │ └── x86_64-w64-mingw32.cmake │ ├── CMakeLists.txt │ ├── LICENSE.md │ ├── README.md │ ├── deps │ │ ├── getopt.c │ │ ├── getopt.h │ │ ├── glad │ │ │ ├── gl.h │ │ │ ├── khrplatform.h │ │ │ ├── vk_platform.h │ │ │ └── vulkan.h │ │ ├── glad_gl.c │ │ ├── glad_vulkan.c │ │ ├── linmath.h │ │ ├── mingw │ │ │ ├── _mingw_dxhelper.h │ │ │ ├── dinput.h │ │ │ └── xinput.h │ │ ├── nuklear.h │ │ ├── nuklear_glfw_gl2.h │ │ ├── stb_image_write.h │ │ ├── tinycthread.c │ │ ├── tinycthread.h │ │ └── vs2008 │ │ │ └── stdint.h │ ├── docs │ │ ├── CMakeLists.txt │ │ ├── CODEOWNERS │ │ ├── CONTRIBUTING.md │ │ ├── Doxyfile.in │ │ ├── DoxygenLayout.xml │ │ ├── SUPPORT.md │ │ ├── build.dox │ │ ├── compat.dox │ │ ├── compile.dox │ │ ├── context.dox │ │ ├── extra.css │ │ ├── extra.less │ │ ├── footer.html │ │ ├── header.html │ │ ├── input.dox │ │ ├── internal.dox │ │ ├── intro.dox │ │ ├── main.dox │ │ ├── monitor.dox │ │ ├── moving.dox │ │ ├── news.dox │ │ ├── quick.dox │ │ ├── spaces.svg │ │ ├── vulkan.dox │ │ └── window.dox │ ├── examples │ │ ├── CMakeLists.txt │ │ ├── boing.c │ │ ├── gears.c │ │ ├── glfw.icns │ │ ├── glfw.ico │ │ ├── glfw.rc │ │ ├── heightmap.c │ │ ├── offscreen.c │ │ ├── particles.c │ │ ├── sharing.c │ │ ├── splitview.c │ │ ├── triangle-opengl.c │ │ └── wave.c │ ├── include │ │ └── GLFW │ │ │ ├── glfw3.h │ │ │ └── glfw3native.h │ ├── src │ │ ├── CMakeLists.txt │ │ ├── cocoa_init.m │ │ ├── cocoa_joystick.h │ │ ├── cocoa_joystick.m │ │ ├── cocoa_monitor.m │ │ ├── cocoa_platform.h │ │ ├── cocoa_time.c │ │ ├── cocoa_window.m │ │ ├── context.c │ │ ├── egl_context.c │ │ ├── egl_context.h │ │ ├── glfw.rc.in │ │ ├── glfw_config.h.in │ │ ├── glx_context.c │ │ ├── glx_context.h │ │ ├── init.c │ │ ├── input.c │ │ ├── internal.h │ │ ├── linux_joystick.c │ │ ├── linux_joystick.h │ │ ├── mappings.h │ │ ├── mappings.h.in │ │ ├── monitor.c │ │ ├── nsgl_context.h │ │ ├── nsgl_context.m │ │ ├── null_init.c │ │ ├── null_joystick.c │ │ ├── null_joystick.h │ │ ├── null_monitor.c │ │ ├── null_platform.h │ │ ├── null_window.c │ │ ├── osmesa_context.c │ │ ├── osmesa_context.h │ │ ├── posix_thread.c │ │ ├── posix_thread.h │ │ ├── posix_time.c │ │ ├── posix_time.h │ │ ├── vulkan.c │ │ ├── wgl_context.c │ │ ├── wgl_context.h │ │ ├── win32_init.c │ │ ├── win32_joystick.c │ │ ├── win32_joystick.h │ │ ├── win32_monitor.c │ │ ├── win32_platform.h │ │ ├── win32_thread.c │ │ ├── win32_time.c │ │ ├── win32_window.c │ │ ├── window.c │ │ ├── wl_init.c │ │ ├── wl_monitor.c │ │ ├── wl_platform.h │ │ ├── wl_window.c │ │ ├── x11_init.c │ │ ├── x11_monitor.c │ │ ├── x11_platform.h │ │ ├── x11_window.c │ │ ├── xkb_unicode.c │ │ └── xkb_unicode.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── clipboard.c │ │ ├── cursor.c │ │ ├── empty.c │ │ ├── events.c │ │ ├── gamma.c │ │ ├── glfwinfo.c │ │ ├── icon.c │ │ ├── iconify.c │ │ ├── inputlag.c │ │ ├── joysticks.c │ │ ├── monitors.c │ │ ├── msaa.c │ │ ├── opacity.c │ │ ├── reopen.c │ │ ├── tearing.c │ │ ├── threads.c │ │ ├── timeout.c │ │ ├── title.c │ │ ├── triangle-vulkan.c │ │ └── windows.c ├── glm │ ├── CMakeLists.txt │ ├── common.hpp │ ├── detail │ │ ├── _features.hpp │ │ ├── _fixes.hpp │ │ ├── _noise.hpp │ │ ├── _swizzle.hpp │ │ ├── _swizzle_func.hpp │ │ ├── _vectorize.hpp │ │ ├── compute_vector_relational.hpp │ │ ├── dummy.cpp │ │ ├── func_common.inl │ │ ├── func_common_simd.inl │ │ ├── func_exponential.inl │ │ ├── func_exponential_simd.inl │ │ ├── func_geometric.inl │ │ ├── func_geometric_simd.inl │ │ ├── func_integer.inl │ │ ├── func_integer_simd.inl │ │ ├── func_matrix.inl │ │ ├── func_matrix_simd.inl │ │ ├── func_packing.inl │ │ ├── func_packing_simd.inl │ │ ├── func_trigonometric.inl │ │ ├── func_trigonometric_simd.inl │ │ ├── func_vector_relational.inl │ │ ├── func_vector_relational_simd.inl │ │ ├── glm.cpp │ │ ├── qualifier.hpp │ │ ├── setup.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_mat4x4_simd.inl │ │ ├── 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 │ │ └── type_vec4_simd.inl │ ├── exponential.hpp │ ├── ext.hpp │ ├── ext │ │ ├── vec1.hpp │ │ ├── vec1.inl │ │ ├── vector_relational.hpp │ │ └── vector_relational.inl │ ├── fwd.hpp │ ├── geometric.hpp │ ├── glm.hpp │ ├── gtc │ │ ├── bitfield.hpp │ │ ├── bitfield.inl │ │ ├── color_space.hpp │ │ ├── color_space.inl │ │ ├── constants.hpp │ │ ├── constants.inl │ │ ├── epsilon.hpp │ │ ├── epsilon.inl │ │ ├── integer.hpp │ │ ├── integer.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 │ │ ├── packing.hpp │ │ ├── packing.inl │ │ ├── quaternion.hpp │ │ ├── quaternion.inl │ │ ├── quaternion_simd.inl │ │ ├── random.hpp │ │ ├── random.inl │ │ ├── reciprocal.hpp │ │ ├── reciprocal.inl │ │ ├── round.hpp │ │ ├── round.inl │ │ ├── type_aligned.hpp │ │ ├── type_precision.hpp │ │ ├── type_precision.inl │ │ ├── type_ptr.hpp │ │ ├── type_ptr.inl │ │ ├── ulp.hpp │ │ ├── ulp.inl │ │ ├── vec1.hpp │ │ └── vec1.inl │ ├── gtx │ │ ├── associated_min_max.hpp │ │ ├── associated_min_max.inl │ │ ├── bit.hpp │ │ ├── bit.inl │ │ ├── closest_point.hpp │ │ ├── closest_point.inl │ │ ├── color_encoding.hpp │ │ ├── color_encoding.inl │ │ ├── color_space.hpp │ │ ├── color_space.inl │ │ ├── color_space_YCoCg.hpp │ │ ├── color_space_YCoCg.inl │ │ ├── common.hpp │ │ ├── common.inl │ │ ├── compatibility.hpp │ │ ├── compatibility.inl │ │ ├── component_wise.hpp │ │ ├── component_wise.inl │ │ ├── dual_quaternion.hpp │ │ ├── dual_quaternion.inl │ │ ├── euler_angles.hpp │ │ ├── euler_angles.inl │ │ ├── extend.hpp │ │ ├── extend.inl │ │ ├── extended_min_max.hpp │ │ ├── extended_min_max.inl │ │ ├── exterior_product.hpp │ │ ├── exterior_product.inl │ │ ├── fast_exponential.hpp │ │ ├── fast_exponential.inl │ │ ├── fast_square_root.hpp │ │ ├── fast_square_root.inl │ │ ├── fast_trigonometry.hpp │ │ ├── fast_trigonometry.inl │ │ ├── float_notmalize.inl │ │ ├── functions.hpp │ │ ├── functions.inl │ │ ├── gradient_paint.hpp │ │ ├── gradient_paint.inl │ │ ├── handed_coordinate_space.hpp │ │ ├── handed_coordinate_space.inl │ │ ├── hash.hpp │ │ ├── hash.inl │ │ ├── integer.hpp │ │ ├── integer.inl │ │ ├── intersect.hpp │ │ ├── intersect.inl │ │ ├── io.hpp │ │ ├── io.inl │ │ ├── log_base.hpp │ │ ├── log_base.inl │ │ ├── matrix_cross_product.hpp │ │ ├── matrix_cross_product.inl │ │ ├── matrix_decompose.hpp │ │ ├── matrix_decompose.inl │ │ ├── matrix_factorisation.hpp │ │ ├── matrix_factorisation.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 │ │ ├── matrix_transform_2d.hpp │ │ ├── matrix_transform_2d.inl │ │ ├── mixed_product.hpp │ │ ├── mixed_product.inl │ │ ├── norm.hpp │ │ ├── norm.inl │ │ ├── normal.hpp │ │ ├── normal.inl │ │ ├── normalize_dot.hpp │ │ ├── normalize_dot.inl │ │ ├── number_precision.hpp │ │ ├── number_precision.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 │ │ ├── range.hpp │ │ ├── raw_data.hpp │ │ ├── raw_data.inl │ │ ├── rotate_normalized_axis.hpp │ │ ├── rotate_normalized_axis.inl │ │ ├── rotate_vector.hpp │ │ ├── rotate_vector.inl │ │ ├── scalar_multiplication.hpp │ │ ├── scalar_relational.hpp │ │ ├── scalar_relational.inl │ │ ├── spline.hpp │ │ ├── spline.inl │ │ ├── std_based_type.hpp │ │ ├── std_based_type.inl │ │ ├── string_cast.hpp │ │ ├── string_cast.inl │ │ ├── texture.hpp │ │ ├── texture.inl │ │ ├── transform.hpp │ │ ├── transform.inl │ │ ├── transform2.hpp │ │ ├── transform2.inl │ │ ├── type_aligned.hpp │ │ ├── type_aligned.inl │ │ ├── type_trait.hpp │ │ ├── type_trait.inl │ │ ├── vec_swizzle.hpp │ │ ├── vector_angle.hpp │ │ ├── vector_angle.inl │ │ ├── vector_query.hpp │ │ ├── vector_query.inl │ │ ├── wrap.hpp │ │ └── wrap.inl │ ├── integer.hpp │ ├── mat2x2.hpp │ ├── mat2x3.hpp │ ├── mat2x4.hpp │ ├── mat3x2.hpp │ ├── mat3x3.hpp │ ├── mat3x4.hpp │ ├── mat4x2.hpp │ ├── mat4x3.hpp │ ├── mat4x4.hpp │ ├── matrix.hpp │ ├── packing.hpp │ ├── simd │ │ ├── common.h │ │ ├── exponential.h │ │ ├── geometric.h │ │ ├── integer.h │ │ ├── matrix.h │ │ ├── packing.h │ │ ├── platform.h │ │ ├── trigonometric.h │ │ └── vector_relational.h │ ├── trigonometric.hpp │ ├── vec2.hpp │ ├── vec3.hpp │ ├── vec4.hpp │ └── vector_relational.hpp ├── shaderc │ ├── shaderc.h │ └── shaderc.hpp └── stb │ └── stb_truetype.h └── include └── vku ├── vku.hpp └── vku_framework.hpp /.clang_complete: -------------------------------------------------------------------------------- 1 | -Iexternal 2 | 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | *~ 3 | *.swp 4 | 5 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | :set path+=external/ 2 | :set path+=external/vulkan 3 | -------------------------------------------------------------------------------- /Config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | include( "${CMAKE_CURRENT_LIST_DIR}/VookooTargets.cmake" ) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Vookoo contributors 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 all 13 | 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /doc/html/arrowdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/arrowdown.png -------------------------------------------------------------------------------- /doc/html/arrowright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/arrowright.png -------------------------------------------------------------------------------- /doc/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/bc_s.png -------------------------------------------------------------------------------- /doc/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/bdwn.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_color_attachment_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_color_attachment_image.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_depth_stencil_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_depth_stencil_image.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_generic_buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_generic_buffer.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_generic_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_generic_image.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_host_index_buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_host_index_buffer.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_host_vertex_buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_host_vertex_buffer.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_index_buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_index_buffer.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_texture_image2_d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_texture_image2_d.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_texture_image_cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_texture_image_cube.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_uniform_buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_uniform_buffer.png -------------------------------------------------------------------------------- /doc/html/classvku_1_1_vertex_buffer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/classvku_1_1_vertex_buffer.png -------------------------------------------------------------------------------- /doc/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/closed.png -------------------------------------------------------------------------------- /doc/html/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/doc.png -------------------------------------------------------------------------------- /doc/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/doxygen.png -------------------------------------------------------------------------------- /doc/html/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/folderclosed.png -------------------------------------------------------------------------------- /doc/html/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/folderopen.png -------------------------------------------------------------------------------- /doc/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/nav_f.png -------------------------------------------------------------------------------- /doc/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/nav_g.png -------------------------------------------------------------------------------- /doc/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/nav_h.png -------------------------------------------------------------------------------- /doc/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/open.png -------------------------------------------------------------------------------- /doc/html/search/all_0.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 | -------------------------------------------------------------------------------- /doc/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['attachmentbegin',['attachmentBegin',['../classvku_1_1_renderpass_maker.html#a95f7a27a27e148a2e8c52c9f743bed27',1,'vku::RenderpassMaker']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_1.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 | -------------------------------------------------------------------------------- /doc/html/search/all_10.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 | -------------------------------------------------------------------------------- /doc/html/search/all_11.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 | -------------------------------------------------------------------------------- /doc/html/search/all_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['textureimage2d',['TextureImage2D',['../classvku_1_1_texture_image2_d.html',1,'vku']]], 4 | ['textureimagecube',['TextureImageCube',['../classvku_1_1_texture_image_cube.html',1,'vku']]], 5 | ['topology',['topology',['../classvku_1_1_pipeline_maker.html#a343de9cb421ae768fc3fcbca61c032a4',1,'vku::PipelineMaker']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/all_12.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 | -------------------------------------------------------------------------------- /doc/html/search/all_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uniformbuffer',['UniformBuffer',['../classvku_1_1_uniform_buffer.html',1,'vku']]], 4 | ['uniformbuffer',['UniformBuffer',['../classvku_1_1_uniform_buffer.html#a36bb1de28b41be840827a4fb5fdf167d',1,'vku::UniformBuffer']]], 5 | ['update',['update',['../classvku_1_1_descriptor_set_updater.html#a446aacfa42c09673fda44d4c6ab6ac2b',1,'vku::DescriptorSetUpdater::update()'],['../classvku_1_1_generic_image.html#acb8c6d17aab252d180951d4b2e240daf',1,'vku::GenericImage::update()']]], 6 | ['updatelocal',['updateLocal',['../classvku_1_1_generic_buffer.html#ac9a9f76789a98fd3b2804179528778c9',1,'vku::GenericBuffer']]], 7 | ['upload',['upload',['../classvku_1_1_generic_buffer.html#a770899713b2e2602abf6933512d08139',1,'vku::GenericBuffer']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /doc/html/search/all_13.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 | -------------------------------------------------------------------------------- /doc/html/search/all_13.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['variable',['Variable',['../structvku_1_1_shader_module_1_1_variable.html',1,'vku::ShaderModule']]], 4 | ['vertexattribute',['vertexAttribute',['../classvku_1_1_pipeline_maker.html#ac7af7f5007cfbab4534fad71673abd5e',1,'vku::PipelineMaker::vertexAttribute(uint32_t location_, uint32_t binding_, vk::Format format_, uint32_t offset_)'],['../classvku_1_1_pipeline_maker.html#ad06328651baaf6ee92b83eac1df7e42c',1,'vku::PipelineMaker::vertexAttribute(const vk::VertexInputAttributeDescription &desc)']]], 5 | ['vertexbinding',['vertexBinding',['../classvku_1_1_pipeline_maker.html#a0b9d1e02a67658e407e55a12da085ef3',1,'vku::PipelineMaker::vertexBinding(uint32_t binding_, uint32_t stride_, vk::VertexInputRate inputRate_=vk::VertexInputRate::eVertex)'],['../classvku_1_1_pipeline_maker.html#a980b5587c3b543c9dd838276e1469589',1,'vku::PipelineMaker::vertexBinding(const vk::VertexInputBindingDescription &desc)']]], 6 | ['vertexbuffer',['VertexBuffer',['../classvku_1_1_vertex_buffer.html',1,'vku']]], 7 | ['viewport',['viewport',['../classvku_1_1_pipeline_maker.html#a6168c49367ececa1a43f912d97c79a90',1,'vku::PipelineMaker']]], 8 | ['vku',['vku',['../namespacevku.html',1,'']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /doc/html/search/all_14.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 | -------------------------------------------------------------------------------- /doc/html/search/all_14.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['width',['width',['../classvku_1_1_window.html#a313d031caea0a2ebd0c7ba3d28fc0a72',1,'vku::Window']]], 4 | ['window',['Window',['../classvku_1_1_window.html',1,'vku']]], 5 | ['window',['Window',['../classvku_1_1_window.html#afa10614c5dee3dda4393a0e83a337330',1,'vku::Window']]], 6 | ['write',['write',['../classvku_1_1_shader_module.html#a6b4016f1ef72e8587cbdd5a2e7a3cf20',1,'vku::ShaderModule']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /doc/html/search/all_15.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 | -------------------------------------------------------------------------------- /doc/html/search/all_15.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eframework',['~Framework',['../classvku_1_1_framework.html#a4690bf772209a235299a896896f36a59',1,'vku::Framework']]], 4 | ['_7ewindow',['~Window',['../classvku_1_1_window.html#a7e577aa4b8d71daf4aecf3262ebb2248',1,'vku::Window']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/all_2.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 | -------------------------------------------------------------------------------- /doc/html/search/all_3.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 | -------------------------------------------------------------------------------- /doc/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['depthstencilimage',['DepthStencilImage',['../classvku_1_1_depth_stencil_image.html',1,'vku']]], 4 | ['depthstencilstate',['depthStencilState',['../classvku_1_1_pipeline_maker.html#a25539d7f6a8da453c574a4d7dc5dfc3d',1,'vku::PipelineMaker']]], 5 | ['descriptorpool',['descriptorPool',['../classvku_1_1_framework.html#adc1825bb6f9201a715e8d749feee3c39',1,'vku::Framework']]], 6 | ['descriptorsetlayout',['descriptorSetLayout',['../classvku_1_1_pipeline_layout_maker.html#ae30a82eae50f845a4c9d640072ec19ae',1,'vku::PipelineLayoutMaker']]], 7 | ['descriptorsetlayoutmaker',['DescriptorSetLayoutMaker',['../classvku_1_1_descriptor_set_layout_maker.html',1,'vku']]], 8 | ['descriptorsetmaker',['DescriptorSetMaker',['../classvku_1_1_descriptor_set_maker.html',1,'vku']]], 9 | ['descriptorsetupdater',['DescriptorSetUpdater',['../classvku_1_1_descriptor_set_updater.html',1,'vku']]], 10 | ['device',['device',['../classvku_1_1_framework.html#a39fa9cb694b8fe66d5f647635aaca77c',1,'vku::Framework']]], 11 | ['draw',['draw',['../classvku_1_1_window.html#a74ee0b88b51ee7b749a5f6efb597bc53',1,'vku::Window']]], 12 | ['dumpcaps',['dumpCaps',['../classvku_1_1_window.html#a62280edb5e49822c97ee4e841d5bd67c',1,'vku::Window']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /doc/html/search/all_4.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 | -------------------------------------------------------------------------------- /doc/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['executeimmediately',['executeImmediately',['../namespacevku.html#aa54bca0655780089e9bf9e69faa5409c',1,'vku']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_5.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 | -------------------------------------------------------------------------------- /doc/html/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['findmemorytypeindex',['findMemoryTypeIndex',['../namespacevku.html#aa07bc50f2524352a4a5ad0f7f7c5d1c4',1,'vku']]], 4 | ['format',['format',['../namespacevku.html#afa75447fe4ebe4d91cdfb542bc3b62fd',1,'vku']]], 5 | ['framebuffers',['framebuffers',['../classvku_1_1_window.html#ae5b21152f302ef2079f9dd600039a157',1,'vku::Window']]], 6 | ['framework',['Framework',['../classvku_1_1_framework.html',1,'vku']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /doc/html/search/all_6.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 | -------------------------------------------------------------------------------- /doc/html/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['genericbuffer',['GenericBuffer',['../classvku_1_1_generic_buffer.html',1,'vku']]], 4 | ['genericimage',['GenericImage',['../classvku_1_1_generic_image.html',1,'vku']]], 5 | ['getblockparams',['getBlockParams',['../namespacevku.html#afdfc323041bdc5b104fe74dc0e3ebd51',1,'vku']]], 6 | ['getvariables',['getVariables',['../classvku_1_1_shader_module.html#abaa70001f3fde3da030e19ced6a83eec',1,'vku::ShaderModule']]], 7 | ['gltovkformat',['GLtoVKFormat',['../namespacevku.html#ad3ff66eaca06a157824fb6ef93dad176',1,'vku']]], 8 | ['graphicsqueue',['graphicsQueue',['../classvku_1_1_framework.html#a0dfef6c7f9b451393d6286d48ee4213e',1,'vku::Framework']]], 9 | ['graphicsqueuefamilyindex',['graphicsQueueFamilyIndex',['../classvku_1_1_framework.html#a9a09279a046254b71d9575de369b585c',1,'vku::Framework']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /doc/html/search/all_7.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 | -------------------------------------------------------------------------------- /doc/html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['height',['height',['../classvku_1_1_window.html#a863f047752ac4e0710f004b9c6d0b7b0',1,'vku::Window']]], 4 | ['hostindexbuffer',['HostIndexBuffer',['../classvku_1_1_host_index_buffer.html',1,'vku']]], 5 | ['hostvertexbuffer',['HostVertexBuffer',['../classvku_1_1_host_vertex_buffer.html',1,'vku']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/all_8.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 | -------------------------------------------------------------------------------- /doc/html/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['image',['image',['../classvku_1_1_descriptor_set_updater.html#abeacc301ab5a1f9e22abf6a15176e4fe',1,'vku::DescriptorSetUpdater']]], 4 | ['imageacquiresemaphore',['imageAcquireSemaphore',['../classvku_1_1_window.html#a776998d6551da1e1b4462dfcc7437b85',1,'vku::Window']]], 5 | ['images',['images',['../classvku_1_1_window.html#a65c379ad182e74d44db997e2be55f9fb',1,'vku::Window']]], 6 | ['imageviews',['imageViews',['../classvku_1_1_window.html#a50eeab1453c2c5e985f2df1f62de6565',1,'vku::Window']]], 7 | ['indexbuffer',['IndexBuffer',['../classvku_1_1_index_buffer.html',1,'vku']]], 8 | ['inputassemblystate',['inputAssemblyState',['../classvku_1_1_pipeline_maker.html#a1b29512daeb596e0d6219b7df879b835',1,'vku::PipelineMaker']]], 9 | ['instance',['instance',['../classvku_1_1_framework.html#ab61c9f55d26e4ee6b5d699d50deeb0ad',1,'vku::Framework']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /doc/html/search/all_9.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 | -------------------------------------------------------------------------------- /doc/html/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ktxfilelayout',['KTXFileLayout',['../classvku_1_1_k_t_x_file_layout.html',1,'vku']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_a.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 | -------------------------------------------------------------------------------- /doc/html/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['layout',['layout',['../classvku_1_1_descriptor_set_maker.html#a62a8c7f32a40a8535ef371fa640aca55',1,'vku::DescriptorSetMaker']]], 4 | ['loadfile',['loadFile',['../namespacevku.html#a9fc0f6cd010c99146f9a4fd4e3c6f7a4',1,'vku']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/all_b.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 | -------------------------------------------------------------------------------- /doc/html/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['magfilter',['magFilter',['../classvku_1_1_sampler_maker.html#aa99e99c0653952636e1a9ac4292e7231',1,'vku::SamplerMaker']]], 4 | ['minfilter',['minFilter',['../classvku_1_1_sampler_maker.html#aa852a66015501cc21d3f4c6be1a43809',1,'vku::SamplerMaker']]], 5 | ['mipmapmode',['mipmapMode',['../classvku_1_1_sampler_maker.html#adfa6bcbe3c6155d541992e8433fb7382',1,'vku::SamplerMaker']]], 6 | ['mipscale',['mipScale',['../namespacevku.html#ae8475db9e7cdccfe8176781789e803f5',1,'vku']]], 7 | ['module',['module',['../classvku_1_1_compute_pipeline_maker.html#a89c203b12348fda39182df8993f38544',1,'vku::ComputePipelineMaker']]], 8 | ['multisamplestate',['multisampleState',['../classvku_1_1_pipeline_maker.html#a546c0208f58bf27489d59b1290b9cc5f',1,'vku::PipelineMaker']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /doc/html/search/all_c.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 | -------------------------------------------------------------------------------- /doc/html/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['numimageindices',['numImageIndices',['../classvku_1_1_window.html#ae72647dc506298b8aa36388b6eddd918',1,'vku::Window']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_d.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 | -------------------------------------------------------------------------------- /doc/html/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ok',['ok',['../classvku_1_1_descriptor_set_updater.html#a8ac74db5920ea9bdf1dcc6533159566a',1,'vku::DescriptorSetUpdater::ok()'],['../classvku_1_1_framework.html#a40135064e21a5c6d38c209c3194a152d',1,'vku::Framework::ok()'],['../classvku_1_1_window.html#ab316980670759352a77bcfea54f2018f',1,'vku::Window::ok()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/all_e.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 | -------------------------------------------------------------------------------- /doc/html/search/all_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['physicaldevice',['physicalDevice',['../classvku_1_1_framework.html#a0490d0fe0d8276ede4de6e557c24718b',1,'vku::Framework']]], 4 | ['pipelinecache',['pipelineCache',['../classvku_1_1_framework.html#ad45b3d217f4ae39480b65d6558a962b7',1,'vku::Framework']]], 5 | ['pipelinelayoutmaker',['PipelineLayoutMaker',['../classvku_1_1_pipeline_layout_maker.html',1,'vku']]], 6 | ['pipelinemaker',['PipelineMaker',['../classvku_1_1_pipeline_maker.html',1,'vku']]], 7 | ['presentqueue',['presentQueue',['../classvku_1_1_window.html#af965a82c0d4db0cd2ec6d69b1aa6295a',1,'vku::Window']]], 8 | ['presentqueuefamily',['presentQueueFamily',['../classvku_1_1_window.html#a38e18f5134cee0a1aec52d4e05ba01cb',1,'vku::Window']]], 9 | ['primitiverestartenable',['primitiveRestartEnable',['../classvku_1_1_pipeline_maker.html#a4ac69ba51b670aea6542ad13d91ff5fe',1,'vku::PipelineMaker']]], 10 | ['pushconstantrange',['pushConstantRange',['../classvku_1_1_pipeline_layout_maker.html#a69c02b6a3d0606448746e0924ccb45b0',1,'vku::PipelineLayoutMaker']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /doc/html/search/all_f.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 | -------------------------------------------------------------------------------- /doc/html/search/all_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['rasterizationstate',['rasterizationState',['../classvku_1_1_pipeline_maker.html#aad86de40ee5bcbfa1ffda0e2b0a93500',1,'vku::PipelineMaker']]], 4 | ['renderpass',['renderPass',['../classvku_1_1_window.html#a1de0612826ca9e7c95976b21ba97cfbc',1,'vku::Window']]], 5 | ['renderpassmaker',['RenderpassMaker',['../classvku_1_1_renderpass_maker.html',1,'vku']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/classes_0.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['blockparams',['BlockParams',['../structvku_1_1_block_params.html',1,'vku']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/classes_1.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['colorattachmentimage',['ColorAttachmentImage',['../classvku_1_1_color_attachment_image.html',1,'vku']]], 4 | ['computepipelinemaker',['ComputePipelineMaker',['../classvku_1_1_compute_pipeline_maker.html',1,'vku']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/classes_2.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['depthstencilimage',['DepthStencilImage',['../classvku_1_1_depth_stencil_image.html',1,'vku']]], 4 | ['descriptorsetlayoutmaker',['DescriptorSetLayoutMaker',['../classvku_1_1_descriptor_set_layout_maker.html',1,'vku']]], 5 | ['descriptorsetmaker',['DescriptorSetMaker',['../classvku_1_1_descriptor_set_maker.html',1,'vku']]], 6 | ['descriptorsetupdater',['DescriptorSetUpdater',['../classvku_1_1_descriptor_set_updater.html',1,'vku']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /doc/html/search/classes_3.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['framework',['Framework',['../classvku_1_1_framework.html',1,'vku']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/classes_4.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['genericbuffer',['GenericBuffer',['../classvku_1_1_generic_buffer.html',1,'vku']]], 4 | ['genericimage',['GenericImage',['../classvku_1_1_generic_image.html',1,'vku']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/classes_5.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['hostindexbuffer',['HostIndexBuffer',['../classvku_1_1_host_index_buffer.html',1,'vku']]], 4 | ['hostvertexbuffer',['HostVertexBuffer',['../classvku_1_1_host_vertex_buffer.html',1,'vku']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/classes_6.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['indexbuffer',['IndexBuffer',['../classvku_1_1_index_buffer.html',1,'vku']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/classes_7.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ktxfilelayout',['KTXFileLayout',['../classvku_1_1_k_t_x_file_layout.html',1,'vku']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/classes_8.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pipelinelayoutmaker',['PipelineLayoutMaker',['../classvku_1_1_pipeline_layout_maker.html',1,'vku']]], 4 | ['pipelinemaker',['PipelineMaker',['../classvku_1_1_pipeline_maker.html',1,'vku']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/classes_9.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['renderpassmaker',['RenderpassMaker',['../classvku_1_1_renderpass_maker.html',1,'vku']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/classes_a.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['samplermaker',['SamplerMaker',['../classvku_1_1_sampler_maker.html',1,'vku']]], 4 | ['shadermodule',['ShaderModule',['../classvku_1_1_shader_module.html',1,'vku']]], 5 | ['state',['State',['../structvku_1_1_generic_image_1_1_state.html',1,'vku::GenericImage']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/classes_b.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['textureimage2d',['TextureImage2D',['../classvku_1_1_texture_image2_d.html',1,'vku']]], 4 | ['textureimagecube',['TextureImageCube',['../classvku_1_1_texture_image_cube.html',1,'vku']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/classes_c.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uniformbuffer',['UniformBuffer',['../classvku_1_1_uniform_buffer.html',1,'vku']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/classes_d.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['variable',['Variable',['../structvku_1_1_shader_module_1_1_variable.html',1,'vku::ShaderModule']]], 4 | ['vertexbuffer',['VertexBuffer',['../classvku_1_1_vertex_buffer.html',1,'vku']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/classes_e.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 | -------------------------------------------------------------------------------- /doc/html/search/classes_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['window',['Window',['../classvku_1_1_window.html',1,'vku']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/search/close.png -------------------------------------------------------------------------------- /doc/html/search/functions_0.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['attachmentbegin',['attachmentBegin',['../classvku_1_1_renderpass_maker.html#a95f7a27a27e148a2e8c52c9f743bed27',1,'vku::RenderpassMaker']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_1.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_10.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_10.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['topology',['topology',['../classvku_1_1_pipeline_maker.html#a343de9cb421ae768fc3fcbca61c032a4',1,'vku::PipelineMaker']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_11.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['uniformbuffer',['UniformBuffer',['../classvku_1_1_uniform_buffer.html#a36bb1de28b41be840827a4fb5fdf167d',1,'vku::UniformBuffer']]], 4 | ['update',['update',['../classvku_1_1_descriptor_set_updater.html#a446aacfa42c09673fda44d4c6ab6ac2b',1,'vku::DescriptorSetUpdater::update()'],['../classvku_1_1_generic_image.html#acb8c6d17aab252d180951d4b2e240daf',1,'vku::GenericImage::update()']]], 5 | ['updatelocal',['updateLocal',['../classvku_1_1_generic_buffer.html#ac9a9f76789a98fd3b2804179528778c9',1,'vku::GenericBuffer']]], 6 | ['upload',['upload',['../classvku_1_1_generic_buffer.html#a770899713b2e2602abf6933512d08139',1,'vku::GenericBuffer']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /doc/html/search/functions_12.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vertexattribute',['vertexAttribute',['../classvku_1_1_pipeline_maker.html#ac7af7f5007cfbab4534fad71673abd5e',1,'vku::PipelineMaker::vertexAttribute(uint32_t location_, uint32_t binding_, vk::Format format_, uint32_t offset_)'],['../classvku_1_1_pipeline_maker.html#ad06328651baaf6ee92b83eac1df7e42c',1,'vku::PipelineMaker::vertexAttribute(const vk::VertexInputAttributeDescription &desc)']]], 4 | ['vertexbinding',['vertexBinding',['../classvku_1_1_pipeline_maker.html#a0b9d1e02a67658e407e55a12da085ef3',1,'vku::PipelineMaker::vertexBinding(uint32_t binding_, uint32_t stride_, vk::VertexInputRate inputRate_=vk::VertexInputRate::eVertex)'],['../classvku_1_1_pipeline_maker.html#a980b5587c3b543c9dd838276e1469589',1,'vku::PipelineMaker::vertexBinding(const vk::VertexInputBindingDescription &desc)']]], 5 | ['viewport',['viewport',['../classvku_1_1_pipeline_maker.html#a6168c49367ececa1a43f912d97c79a90',1,'vku::PipelineMaker']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/functions_13.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_13.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['width',['width',['../classvku_1_1_window.html#a313d031caea0a2ebd0c7ba3d28fc0a72',1,'vku::Window']]], 4 | ['window',['Window',['../classvku_1_1_window.html#afa10614c5dee3dda4393a0e83a337330',1,'vku::Window']]], 5 | ['write',['write',['../classvku_1_1_shader_module.html#a6b4016f1ef72e8587cbdd5a2e7a3cf20',1,'vku::ShaderModule']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/functions_14.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_14.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['_7eframework',['~Framework',['../classvku_1_1_framework.html#a4690bf772209a235299a896896f36a59',1,'vku::Framework']]], 4 | ['_7ewindow',['~Window',['../classvku_1_1_window.html#a7e577aa4b8d71daf4aecf3262ebb2248',1,'vku::Window']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/functions_2.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_3.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['depthstencilstate',['depthStencilState',['../classvku_1_1_pipeline_maker.html#a25539d7f6a8da453c574a4d7dc5dfc3d',1,'vku::PipelineMaker']]], 4 | ['descriptorpool',['descriptorPool',['../classvku_1_1_framework.html#adc1825bb6f9201a715e8d749feee3c39',1,'vku::Framework']]], 5 | ['descriptorsetlayout',['descriptorSetLayout',['../classvku_1_1_pipeline_layout_maker.html#ae30a82eae50f845a4c9d640072ec19ae',1,'vku::PipelineLayoutMaker']]], 6 | ['device',['device',['../classvku_1_1_framework.html#a39fa9cb694b8fe66d5f647635aaca77c',1,'vku::Framework']]], 7 | ['draw',['draw',['../classvku_1_1_window.html#a74ee0b88b51ee7b749a5f6efb597bc53',1,'vku::Window']]], 8 | ['dumpcaps',['dumpCaps',['../classvku_1_1_window.html#a62280edb5e49822c97ee4e841d5bd67c',1,'vku::Window']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /doc/html/search/functions_4.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['executeimmediately',['executeImmediately',['../namespacevku.html#aa54bca0655780089e9bf9e69faa5409c',1,'vku']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_5.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['findmemorytypeindex',['findMemoryTypeIndex',['../namespacevku.html#aa07bc50f2524352a4a5ad0f7f7c5d1c4',1,'vku']]], 4 | ['format',['format',['../namespacevku.html#afa75447fe4ebe4d91cdfb542bc3b62fd',1,'vku']]], 5 | ['framebuffers',['framebuffers',['../classvku_1_1_window.html#ae5b21152f302ef2079f9dd600039a157',1,'vku::Window']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /doc/html/search/functions_6.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getblockparams',['getBlockParams',['../namespacevku.html#afdfc323041bdc5b104fe74dc0e3ebd51',1,'vku']]], 4 | ['getvariables',['getVariables',['../classvku_1_1_shader_module.html#abaa70001f3fde3da030e19ced6a83eec',1,'vku::ShaderModule']]], 5 | ['gltovkformat',['GLtoVKFormat',['../namespacevku.html#ad3ff66eaca06a157824fb6ef93dad176',1,'vku']]], 6 | ['graphicsqueue',['graphicsQueue',['../classvku_1_1_framework.html#a0dfef6c7f9b451393d6286d48ee4213e',1,'vku::Framework']]], 7 | ['graphicsqueuefamilyindex',['graphicsQueueFamilyIndex',['../classvku_1_1_framework.html#a9a09279a046254b71d9575de369b585c',1,'vku::Framework']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /doc/html/search/functions_7.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['height',['height',['../classvku_1_1_window.html#a863f047752ac4e0710f004b9c6d0b7b0',1,'vku::Window']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_8.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['image',['image',['../classvku_1_1_descriptor_set_updater.html#abeacc301ab5a1f9e22abf6a15176e4fe',1,'vku::DescriptorSetUpdater']]], 4 | ['imageacquiresemaphore',['imageAcquireSemaphore',['../classvku_1_1_window.html#a776998d6551da1e1b4462dfcc7437b85',1,'vku::Window']]], 5 | ['images',['images',['../classvku_1_1_window.html#a65c379ad182e74d44db997e2be55f9fb',1,'vku::Window']]], 6 | ['imageviews',['imageViews',['../classvku_1_1_window.html#a50eeab1453c2c5e985f2df1f62de6565',1,'vku::Window']]], 7 | ['inputassemblystate',['inputAssemblyState',['../classvku_1_1_pipeline_maker.html#a1b29512daeb596e0d6219b7df879b835',1,'vku::PipelineMaker']]], 8 | ['instance',['instance',['../classvku_1_1_framework.html#ab61c9f55d26e4ee6b5d699d50deeb0ad',1,'vku::Framework']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /doc/html/search/functions_9.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['layout',['layout',['../classvku_1_1_descriptor_set_maker.html#a62a8c7f32a40a8535ef371fa640aca55',1,'vku::DescriptorSetMaker']]], 4 | ['loadfile',['loadFile',['../namespacevku.html#a9fc0f6cd010c99146f9a4fd4e3c6f7a4',1,'vku']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/functions_a.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['magfilter',['magFilter',['../classvku_1_1_sampler_maker.html#aa99e99c0653952636e1a9ac4292e7231',1,'vku::SamplerMaker']]], 4 | ['minfilter',['minFilter',['../classvku_1_1_sampler_maker.html#aa852a66015501cc21d3f4c6be1a43809',1,'vku::SamplerMaker']]], 5 | ['mipmapmode',['mipmapMode',['../classvku_1_1_sampler_maker.html#adfa6bcbe3c6155d541992e8433fb7382',1,'vku::SamplerMaker']]], 6 | ['mipscale',['mipScale',['../namespacevku.html#ae8475db9e7cdccfe8176781789e803f5',1,'vku']]], 7 | ['module',['module',['../classvku_1_1_compute_pipeline_maker.html#a89c203b12348fda39182df8993f38544',1,'vku::ComputePipelineMaker']]], 8 | ['multisamplestate',['multisampleState',['../classvku_1_1_pipeline_maker.html#a546c0208f58bf27489d59b1290b9cc5f',1,'vku::PipelineMaker']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /doc/html/search/functions_b.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['numimageindices',['numImageIndices',['../classvku_1_1_window.html#ae72647dc506298b8aa36388b6eddd918',1,'vku::Window']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_c.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ok',['ok',['../classvku_1_1_descriptor_set_updater.html#a8ac74db5920ea9bdf1dcc6533159566a',1,'vku::DescriptorSetUpdater::ok()'],['../classvku_1_1_framework.html#a40135064e21a5c6d38c209c3194a152d',1,'vku::Framework::ok()'],['../classvku_1_1_window.html#ab316980670759352a77bcfea54f2018f',1,'vku::Window::ok()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/functions_d.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['physicaldevice',['physicalDevice',['../classvku_1_1_framework.html#a0490d0fe0d8276ede4de6e557c24718b',1,'vku::Framework']]], 4 | ['pipelinecache',['pipelineCache',['../classvku_1_1_framework.html#ad45b3d217f4ae39480b65d6558a962b7',1,'vku::Framework']]], 5 | ['presentqueue',['presentQueue',['../classvku_1_1_window.html#af965a82c0d4db0cd2ec6d69b1aa6295a',1,'vku::Window']]], 6 | ['presentqueuefamily',['presentQueueFamily',['../classvku_1_1_window.html#a38e18f5134cee0a1aec52d4e05ba01cb',1,'vku::Window']]], 7 | ['primitiverestartenable',['primitiveRestartEnable',['../classvku_1_1_pipeline_maker.html#a4ac69ba51b670aea6542ad13d91ff5fe',1,'vku::PipelineMaker']]], 8 | ['pushconstantrange',['pushConstantRange',['../classvku_1_1_pipeline_layout_maker.html#a69c02b6a3d0606448746e0924ccb45b0',1,'vku::PipelineLayoutMaker']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /doc/html/search/functions_e.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 | -------------------------------------------------------------------------------- /doc/html/search/functions_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['rasterizationstate',['rasterizationState',['../classvku_1_1_pipeline_maker.html#aad86de40ee5bcbfa1ffda0e2b0a93500',1,'vku::PipelineMaker']]], 4 | ['renderpass',['renderPass',['../classvku_1_1_window.html#a1de0612826ca9e7c95976b21ba97cfbc',1,'vku::Window']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /doc/html/search/functions_f.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 | -------------------------------------------------------------------------------- /doc/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/search/mag_sel.png -------------------------------------------------------------------------------- /doc/html/search/namespaces_0.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 | -------------------------------------------------------------------------------- /doc/html/search/namespaces_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vku',['vku',['../namespacevku.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /doc/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /doc/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/search/search_l.png -------------------------------------------------------------------------------- /doc/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/search/search_m.png -------------------------------------------------------------------------------- /doc/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/search/search_r.png -------------------------------------------------------------------------------- /doc/html/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "abcdefghiklmnoprstuvw~", 4 | 1: "bcdfghikprstuvw", 5 | 2: "v", 6 | 3: "abcdefghilmnoprstuvw~" 7 | }; 8 | 9 | var indexSectionNames = 10 | { 11 | 0: "all", 12 | 1: "classes", 13 | 2: "namespaces", 14 | 3: "functions" 15 | }; 16 | 17 | var indexSectionLabels = 18 | { 19 | 0: "All", 20 | 1: "Classes", 21 | 2: "Namespaces", 22 | 3: "Functions" 23 | }; 24 | 25 | -------------------------------------------------------------------------------- /doc/html/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/splitbar.png -------------------------------------------------------------------------------- /doc/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/sync_off.png -------------------------------------------------------------------------------- /doc/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/sync_on.png -------------------------------------------------------------------------------- /doc/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/tab_a.png -------------------------------------------------------------------------------- /doc/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/tab_b.png -------------------------------------------------------------------------------- /doc/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/tab_h.png -------------------------------------------------------------------------------- /doc/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/doc/html/tab_s.png -------------------------------------------------------------------------------- /doc/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 | -------------------------------------------------------------------------------- /examples/README.md: -------------------------------------------------------------------------------- 1 | Installation on Ubuntu 2 | ====================== 3 | 4 | Download SDK from [https://vulkan.lunarg.com/sdk/home#linux] 5 | 6 | This example is 1.0.65.0: 7 | 8 | mkdir ~/vulkan 9 | cd ~/vulkan 10 | cp ~/Downloads/vulkansdk-linux-x86_64-1.0.65.0.run . 11 | chmod ugo+x vulkansdk-linux-x86_64-1.0.65.0.run 12 | ./vulkansdk-linux-x86_64-1.0.65.0.run 13 | sudo apt install libvulkan-dev libxinerama-dev libxcursor-dev libxrandr-dev x11-xserver-utils 14 | 15 | Hack your ~/.bashrc 16 | 17 | export VULKAN_SDK=/home//vulkan/VulkanSDK/1.0.65.0/ 18 | export PATH=$PATH:$VULKAN_SDK/x86_64/bin 19 | export LD_LIBRARY_PATH=$VULKAN_SDK/x86_64/ 20 | export VK_LAYER_PATH=$VULKAN_SDK/x86_64/etc/explicit_layer.d 21 | 22 | Run a new shell (ctrl-alt-T) 23 | 24 | -------------------------------------------------------------------------------- /examples/crystalLogo/Inspiration.README: -------------------------------------------------------------------------------- 1 | How to Create the Apple Fifth Avenue Cube in WebGL 2 | 3 | A tutorial on how to re-create the Apple Fifth Avenue Cube animation using WebGL. 4 | By Lorenzo Cadamuro in Tutorials on December 20, 2019 5 | 6 | https://tympanus.net/codrops/2019/12/20/how-to-create-the-apple-fifth-avenue-cube-in-webgl/ 7 | 8 | -------------------------------------------------------------------------------- /examples/crystalLogo/content.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 a_position; 4 | layout(location = 1) in vec2 a_uv; 5 | 6 | // UBO must be aligned to 16-byte manually to match c++ 7 | layout (binding = 0) uniform Uniform { 8 | mat4 u_projection; 9 | mat4 u_view; 10 | mat4 u_world; 11 | } u; 12 | 13 | #define u_projection u.u_projection 14 | #define u_view u.u_view 15 | #define u_world u.u_world 16 | 17 | layout(location = 0) out vec2 v_uv; 18 | 19 | void main() { 20 | v_uv = a_uv; 21 | 22 | gl_Position = u_projection * u_view * u_world * vec4(a_position, 1); 23 | } 24 | -------------------------------------------------------------------------------- /examples/crystalLogo/crystalLogo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/crystalLogo/crystalLogo.cpp -------------------------------------------------------------------------------- /examples/crystalLogo/cube.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 a_position; 4 | layout(location = 1) in vec3 a_center; 5 | layout(location = 2) in vec2 a_uv; 6 | layout(location = 3) in vec3 a_color; 7 | 8 | // UBO must be aligned to 16-byte manually to match c++ 9 | layout (binding = 0) uniform Uniform { 10 | mat4 u_projection; 11 | mat4 u_view; 12 | mat4 u_world; 13 | } u; 14 | 15 | #define u_projection u.u_projection 16 | #define u_view u.u_view 17 | #define u_world u.u_world 18 | 19 | layout(location = 0) out vec3 v_normal; 20 | layout(location = 1) out vec3 v_center; 21 | layout(location = 2) out vec3 v_point; 22 | layout(location = 3) out vec2 v_uv; 23 | layout(location = 4) out vec3 v_color; 24 | layout(location = 5) out float v_depth; 25 | 26 | void main() { 27 | vec4 center = u_projection * u_view * u_world * vec4(a_center, 1.0); 28 | vec4 position = u_projection * u_view * u_world * vec4(a_position, 1.0); 29 | 30 | v_normal = normalize(a_position); 31 | v_center = center.xyz; 32 | v_point = position.xyz; 33 | v_uv = a_uv; 34 | v_color = a_color; 35 | v_depth = (mat3(u_view) * mat3(u_world) * a_position).z; 36 | 37 | gl_Position = position; 38 | } 39 | -------------------------------------------------------------------------------- /examples/crystalLogo/reflectionPlane.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout (binding = 1) uniform samplerCube u_texture; // https://satellitnorden.wordpress.com/2018/01/23/vulkan-adventures-cube-map-tutorial/ 4 | 5 | layout(location = 0) in vec4 vUv; 6 | 7 | layout(location = 0) out vec4 FragColor; 8 | 9 | void main() { 10 | FragColor = texture(u_texture, vUv.xyz); // https://satellitnorden.wordpress.com/2018/01/23/vulkan-adventures-cube-map-tutorial/ 11 | } 12 | -------------------------------------------------------------------------------- /examples/crystalLogo/reflectionPlane.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 a_position; 4 | 5 | // UBO must be aligned to 16-byte manually to match c++ 6 | layout (binding = 0) uniform Uniform { 7 | mat4 u_textureMatrix; 8 | mat4 u_world; 9 | } u; 10 | 11 | #define u_textureMatrix u.u_textureMatrix 12 | #define u_world u.u_world 13 | 14 | layout(location = 0) out vec4 vUv; 15 | 16 | void main() { 17 | vUv = u_textureMatrix * vec4(a_position, 1.0); 18 | 19 | gl_Position = u_world * vec4(a_position, 1.0); 20 | } 21 | -------------------------------------------------------------------------------- /examples/crystalLogo/reflectionReflector.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | // UBO must be aligned to 16-byte manually to match c++ 4 | layout (binding = 1) uniform Uniform { 5 | float u_depthOpacity; 6 | } u; 7 | 8 | #define u_depthOpacity u.u_depthOpacity 9 | 10 | layout (binding = 2) uniform sampler2D u_texture; // contentFBO 11 | 12 | layout(location = 0) in vec2 v_uv; 13 | layout(location = 1) in float v_z; 14 | 15 | layout(location = 0) out vec4 FragColor; 16 | 17 | void main() { 18 | vec4 vtexture = texture(u_texture, v_uv); 19 | vtexture.a -= u_depthOpacity * v_z; 20 | 21 | FragColor = vtexture; 22 | } 23 | -------------------------------------------------------------------------------- /examples/cybertruck/cybertruck.frag: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/cybertruck/cybertruck.frag -------------------------------------------------------------------------------- /examples/cybertruck/cybertruck.vert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/cybertruck/cybertruck.vert -------------------------------------------------------------------------------- /examples/dynamicUniformBuffer/dynamicUniformBuffer.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 fragColour; 4 | 5 | layout(location = 0) out vec4 outColour; 6 | 7 | void main() { 8 | // Copy interpolated colour to the screen. 9 | outColour = vec4(fragColour, 1); 10 | } 11 | -------------------------------------------------------------------------------- /examples/dynamicUniformBuffer/dynamicUniformBuffer.vert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/dynamicUniformBuffer/dynamicUniformBuffer.vert -------------------------------------------------------------------------------- /examples/fdtd2d/fdtd2d.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 pos; 4 | 5 | out gl_PerVertex { 6 | vec4 gl_Position; 7 | }; 8 | 9 | void main() { 10 | gl_Position = vec4(pos, 1.0); 11 | } 12 | -------------------------------------------------------------------------------- /examples/fdtd2d/references.txt: -------------------------------------------------------------------------------- 1 | https://eecs.wsu.edu/~schneidj/ufdtd/ 2 | -------------------------------------------------------------------------------- /examples/fdtd2dUpml/fdtd2dUpml.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 pos; 4 | 5 | out gl_PerVertex { 6 | vec4 gl_Position; 7 | }; 8 | 9 | void main() { 10 | gl_Position = vec4(pos, 1.0); 11 | } 12 | -------------------------------------------------------------------------------- /examples/fdtd2dUpml/references.txt: -------------------------------------------------------------------------------- 1 | https://eecs.wsu.edu/~schneidj/ufdtd/ 2 | -------------------------------------------------------------------------------- /examples/flockaroo/flockaroo.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 pos; 4 | 5 | out gl_PerVertex { 6 | vec4 gl_Position; 7 | }; 8 | 9 | void main() { 10 | gl_Position = vec4(pos, 1.0); 11 | } 12 | -------------------------------------------------------------------------------- /examples/gumbo/gumbo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/gumbo/gumbo.cpp -------------------------------------------------------------------------------- /examples/gumbo/gumbo.geom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/gumbo/gumbo.geom -------------------------------------------------------------------------------- /examples/gumbo/gumbo.tesc: -------------------------------------------------------------------------------- 1 | #version 460 core 2 | // original: https://prideout.net/blog/old/blog/index.html@p=49.html 3 | // modified to be compatible with vulkan 4 | 5 | layout( vertices = 16 ) out; 6 | 7 | layout(location = 0) in vec3 vPosition[]; 8 | layout(location = 0) out vec3 tcPosition[]; 9 | 10 | layout (binding = 0) uniform Uniform0 { 11 | mat4 Projection; 12 | mat4 View; 13 | mat4 GeometryTransform; 14 | float TessLevelInner; 15 | float TessLevelOuter; 16 | float PatchID; 17 | float padding; 18 | } u0; 19 | 20 | in gl_PerVertex 21 | { 22 | vec4 gl_Position; 23 | //float gl_PointSize; 24 | //float gl_ClipDistance[]; 25 | } gl_in[gl_MaxPatchVertices]; 26 | 27 | out gl_PerVertex 28 | { 29 | vec4 gl_Position; 30 | //float gl_PointSize; 31 | //float gl_ClipDistance[]; 32 | } gl_out[]; 33 | 34 | #define ID gl_InvocationID 35 | 36 | void main() 37 | { 38 | tcPosition[ID] = vPosition[ID]; 39 | 40 | //barrier(); 41 | if (ID == 0) { 42 | gl_TessLevelInner[0] = u0.TessLevelInner; 43 | gl_TessLevelInner[1] = u0.TessLevelInner; 44 | gl_TessLevelOuter[0] = u0.TessLevelOuter; 45 | gl_TessLevelOuter[1] = u0.TessLevelOuter; 46 | gl_TessLevelOuter[2] = u0.TessLevelOuter; 47 | gl_TessLevelOuter[3] = u0.TessLevelOuter; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /examples/gumbo/gumbo.vert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/gumbo/gumbo.vert -------------------------------------------------------------------------------- /examples/helloCompute/helloCompute.comp: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | // Get a value in through push constants 4 | layout (push_constant) uniform Uniform { 5 | float value; 6 | } u; 7 | 8 | // Write values out through a storage buffer 9 | layout(std430, binding=0) buffer Buffer { 10 | float values[]; 11 | } b; 12 | 13 | void main() { 14 | // id is 0..N-1 15 | uint id = gl_GlobalInvocationID.x; 16 | 17 | // Store the value in the output buffer. 18 | // Note: id may be greater than the number of instances 19 | // and you may need to check against the size of the values array. 20 | b.values[id] = float(id) + u.value; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /examples/helloGeometryShader/helloGeometryShader.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 fragColour; 4 | 5 | layout(location = 0) out vec4 outColour; 6 | 7 | void main() { 8 | // Copy interpolated colour to the screen. 9 | outColour = vec4(fragColour, 1); 10 | } 11 | -------------------------------------------------------------------------------- /examples/helloGeometryShader/helloGeometryShader.geom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/helloGeometryShader/helloGeometryShader.geom -------------------------------------------------------------------------------- /examples/helloGeometryShader/helloGeometryShader.vert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/helloGeometryShader/helloGeometryShader.vert -------------------------------------------------------------------------------- /examples/helloInstancing/helloInstancing.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 fragColour; 4 | 5 | layout(location = 0) out vec4 outColour; 6 | 7 | void main() { 8 | // Copy interpolated colour to the screen. 9 | outColour = vec4(fragColour, 1); 10 | } 11 | -------------------------------------------------------------------------------- /examples/helloInstancing/helloInstancing.vert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/helloInstancing/helloInstancing.vert -------------------------------------------------------------------------------- /examples/helloTesselationShader/helloTesselationShader.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 fragColour; 4 | 5 | layout(location = 0) out vec4 outColour; 6 | 7 | void main() { 8 | // Copy interpolated colour to the screen. 9 | outColour = vec4(fragColour, 1); 10 | } 11 | -------------------------------------------------------------------------------- /examples/helloTesselationShader/helloTesselationShader.geom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/helloTesselationShader/helloTesselationShader.geom -------------------------------------------------------------------------------- /examples/helloTesselationShader/helloTesselationShader.tesc: -------------------------------------------------------------------------------- 1 | #version 420 2 | // https://web.engr.oregonstate.edu/~mjb/cs519/Handouts/tessellation.1pp.pdf 3 | // .tesc for a tessellation control shader 4 | 5 | layout( vertices = 3 ) out; 6 | 7 | layout(location = 0) in vec3 inColour[]; 8 | layout(location = 0) out vec3 outColour[3]; 9 | 10 | in gl_PerVertex 11 | { 12 | vec4 gl_Position; 13 | //float gl_PointSize; 14 | //float gl_ClipDistance[]; 15 | } gl_in[gl_MaxPatchVertices]; 16 | 17 | out gl_PerVertex 18 | { 19 | vec4 gl_Position; 20 | //float gl_PointSize; 21 | //float gl_ClipDistance[]; 22 | } gl_out[]; 23 | 24 | void main( ) 25 | { 26 | if (gl_InvocationID == 0) 27 | { 28 | float inner = 3.0; 29 | gl_TessLevelInner[0] = inner; 30 | float outer = 8.0; 31 | gl_TessLevelOuter[0] = outer; 32 | gl_TessLevelOuter[1] = outer; 33 | gl_TessLevelOuter[2] = outer; 34 | } 35 | 36 | gl_out[ gl_InvocationID ].gl_Position = gl_in[ gl_InvocationID ].gl_Position; 37 | outColour[ gl_InvocationID ] = inColour[ gl_InvocationID ]; 38 | } 39 | -------------------------------------------------------------------------------- /examples/helloTesselationShader/helloTesselationShader.tese: -------------------------------------------------------------------------------- 1 | #version 420 2 | // https://web.engr.oregonstate.edu/~mjb/cs519/Handouts/tessellation.1pp.pdf 3 | // .tese for a tessellation evaluation shader 4 | 5 | layout( triangles, equal_spacing ) in; 6 | 7 | layout(location = 0) in vec3 patch_color[]; 8 | layout(location = 0) out vec3 tes_color; 9 | 10 | in gl_PerVertex 11 | { 12 | vec4 gl_Position; 13 | //float gl_PointSize; 14 | //float gl_ClipDistance[]; 15 | } gl_in[gl_MaxPatchVertices]; 16 | 17 | out gl_PerVertex { 18 | vec4 gl_Position; 19 | //float gl_PointSize; 20 | //float gl_ClipDistance[]; 21 | }; 22 | 23 | void main( ) 24 | { 25 | gl_Position = gl_TessCoord.x * gl_in[0].gl_Position + 26 | gl_TessCoord.y * gl_in[1].gl_Position + 27 | gl_TessCoord.z * gl_in[2].gl_Position; 28 | tes_color = gl_TessCoord.x * patch_color[0] + 29 | gl_TessCoord.y * patch_color[1] + 30 | gl_TessCoord.z * patch_color[2]; 31 | } 32 | -------------------------------------------------------------------------------- /examples/helloTesselationShader/helloTesselationShader.vert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/helloTesselationShader/helloTesselationShader.vert -------------------------------------------------------------------------------- /examples/helloTriangle/helloTriangle.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 fragColour; 4 | 5 | layout(location = 0) out vec4 outColour; 6 | 7 | void main() { 8 | // Copy interpolated colour to the screen. 9 | outColour = vec4(fragColour, 1); 10 | } 11 | -------------------------------------------------------------------------------- /examples/helloTriangle/helloTriangle.vert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/helloTriangle/helloTriangle.vert -------------------------------------------------------------------------------- /examples/okretnica.ktx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/okretnica.ktx -------------------------------------------------------------------------------- /examples/perlinNoise/perlinNoise.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/perlinNoise/perlinNoise.cpp -------------------------------------------------------------------------------- /examples/perlinNoise/perlinNoise.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout (set = 0, binding = 1) uniform sampler2D tExplosion; 4 | 5 | layout(location = 0) in float noise; 6 | 7 | layout(location = 0) out vec4 outColour; 8 | 9 | float random( vec3 scale, float seed ){ 10 | return fract( sin( dot( gl_FragCoord.xyz + seed, scale ) ) * 43758.5453 + seed ) ; 11 | } 12 | 13 | void main() { 14 | 15 | // get a random offset 16 | float r = .01 * random( vec3( 12.9898, 78.233, 151.7182 ), 0.0 ); 17 | // lookup vertically in the texture, using noise and offset 18 | // to get the right RGB colour 19 | vec2 tPos = vec2( 0, 1.4 * noise + r ); 20 | vec4 color = texture( tExplosion, tPos ); 21 | 22 | outColour = vec4( color.rgb, 1.0 ); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /examples/perlinNoise/perlinNoise.vert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/perlinNoise/perlinNoise.vert -------------------------------------------------------------------------------- /examples/perlinNoise/readme.txt: -------------------------------------------------------------------------------- 1 | References: 2 | https://www.clicktorelease.com/blog/vertex-displacement-noise-3d-webgl-glsl-three-js/ 3 | https://github.com/egeozgul/3D-Icosphere-Generator/blob/master/icosphereGenerator.hpp 4 | https://www.clicktorelease.com/code/perlin/explosion.png 5 | https://github.com/ashima/webgl-noise 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/pushConstants/pushConstants.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 fragColour; 4 | layout(location = 0) out vec4 outColour; 5 | 6 | layout (push_constant) uniform Uniform { 7 | vec4 colour; 8 | mat4 rotation; 9 | } u; 10 | 11 | void main() { 12 | // Copy interpolated colour to the screen. 13 | outColour = vec4(fragColour, 1) * u.colour; 14 | } 15 | -------------------------------------------------------------------------------- /examples/pushConstants/pushConstants.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec2 inPosition; 4 | layout(location = 1) in vec3 inColour; 5 | layout(location = 0) out vec3 fragColour; 6 | 7 | layout (push_constant) uniform Uniform { 8 | vec4 colour; 9 | mat4 rotation; 10 | } u; 11 | 12 | out gl_PerVertex { 13 | vec4 gl_Position; 14 | }; 15 | 16 | void main() { 17 | // Rotate and copy 2D position to 3D + depth 18 | gl_Position = u.rotation * vec4(inPosition, 0.0, 1.0); 19 | 20 | // Copy colour to the fragment shader. 21 | fragColour = inColour; 22 | } 23 | -------------------------------------------------------------------------------- /examples/renderToCubemapByMultiview/renderToCubemapByMultiview.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/examples/renderToCubemapByMultiview/renderToCubemapByMultiview.cpp -------------------------------------------------------------------------------- /examples/renderToCubemapByMultiview/renderToCubemapByMultiview.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec4 v_color; 4 | 5 | layout(location = 0) out vec4 FragColor; 6 | 7 | void main() { 8 | FragColor = v_color; 9 | } 10 | -------------------------------------------------------------------------------- /examples/renderToCubemapByMultiview/renderToCubemapByMultiview.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | #extension GL_EXT_multiview : enable 3 | 4 | layout(location = 0) in vec4 a_position; 5 | 6 | layout(location = 0) out vec4 v_color; 7 | 8 | layout (push_constant) uniform PushConstant { 9 | vec4 color[6]; // 6 for all the cubemap faces to be rendered 10 | } p; 11 | 12 | // UBO must be aligned to 16-byte manually to match c++ 13 | layout (binding = 0) uniform Uniform { 14 | mat4 projection; 15 | mat4 view; 16 | mat4 world; 17 | } u; 18 | 19 | out gl_PerVertex { 20 | vec4 gl_Position; 21 | }; 22 | 23 | void main() { 24 | v_color = p.color[gl_ViewIndex]; 25 | gl_Position = u.projection * u.view * a_position; 26 | } 27 | -------------------------------------------------------------------------------- /examples/renderToCubemapByMultiview/renderToCubemapByMultiviewPass2.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 v_direction; 4 | 5 | layout(location = 0) out vec4 FragColor; 6 | 7 | layout (binding = 1) uniform samplerCube u_cubemap; 8 | 9 | void main() { 10 | FragColor = texture(u_cubemap, v_direction); 11 | } 12 | -------------------------------------------------------------------------------- /examples/renderToCubemapByMultiview/renderToCubemapByMultiviewPass2.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 a_position; 4 | 5 | layout(location = 0) out vec3 v_direction; 6 | 7 | // UBO must be aligned to 16-byte manually to match c++ 8 | layout (binding = 0) uniform Uniform { 9 | mat4 projection; 10 | mat4 view; 11 | mat4 world; 12 | } u; 13 | 14 | out gl_PerVertex { 15 | vec4 gl_Position; 16 | }; 17 | 18 | void main() { 19 | v_direction = normalize(a_position); 20 | gl_Position = u.projection * u.view * u.world * vec4(a_position, 1.0); 21 | } 22 | -------------------------------------------------------------------------------- /examples/teapot/teapot.frag: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | layout(location = 0) in vec3 inNormal; 4 | layout(location = 1) in vec2 inUv; 5 | layout(location = 2) in vec3 inCameraDir; 6 | layout(location = 3) in vec4 inLightSpacePos; 7 | layout(location = 4) in vec3 inLightDir; 8 | 9 | layout(location = 0) out vec4 outColour; 10 | 11 | layout (binding = 0) uniform Uniform { 12 | mat4 modelToPerspective; 13 | mat4 modelToWorld; 14 | mat4 normalToWorld; 15 | mat4 modelToLight; 16 | vec4 cameraPos; 17 | vec4 lightPos; 18 | } u; 19 | 20 | layout (binding = 1) uniform samplerCube cubeMap; 21 | layout (binding = 2) uniform sampler2D shadowMap; 22 | 23 | void main() { 24 | vec3 cameraDir = normalize(inCameraDir); 25 | vec3 normal = normalize(inNormal); 26 | vec3 lightDir = normalize(inLightDir); 27 | 28 | vec3 reflectDir = normalize(reflect(-cameraDir, normal)); 29 | vec3 reflect = texture(cubeMap, reflectDir).xyz; 30 | 31 | vec3 ambient = vec3(0.3, 0.3, 0.1); 32 | vec3 diffuse = vec3(0.9, 0.9, 0.1); 33 | vec3 specular = vec3(0.3, 0.3, 0.3); 34 | 35 | float diffuseFactor = max(0.0, dot(normal, lightDir)); 36 | float shadowDepth = textureProj(shadowMap, inLightSpacePos).x; 37 | float expectedDepth = inLightSpacePos.z / inLightSpacePos.w; 38 | float shadowFactor = expectedDepth < shadowDepth ? 1.0 : 0.0; 39 | outColour = vec4(ambient + diffuse * diffuseFactor * shadowFactor + specular * reflect, 1); 40 | } 41 | 42 | -------------------------------------------------------------------------------- /examples/teapot/teapot.shadow.frag: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | void main() { 4 | } 5 | 6 | -------------------------------------------------------------------------------- /examples/teapot/teapot.shadow.vert: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | layout(location = 0) in vec3 inPosition; 4 | layout(location = 1) in vec3 inNormal; 5 | layout(location = 2) in vec2 inUv; 6 | 7 | layout (binding = 0) uniform Uniform { 8 | mat4 modelToPerspective; 9 | mat4 modelToWorld; 10 | mat4 normalToWorld; 11 | mat4 modelToLight; 12 | vec4 cameraPos; 13 | } u; 14 | 15 | out gl_PerVertex { 16 | vec4 gl_Position; 17 | }; 18 | 19 | void main() { 20 | gl_Position = u.modelToLight * vec4(inPosition.xyz, 1.0); 21 | } 22 | 23 | -------------------------------------------------------------------------------- /examples/texture/texture.frag: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | layout(location = 0) in vec3 fragColor; 4 | 5 | layout(location = 0) out vec4 outColor; 6 | 7 | layout (binding = 0) uniform UBO 8 | { 9 | vec4 colour; 10 | } ubo; 11 | 12 | layout (binding = 1) uniform sampler2D samp; 13 | 14 | void main() { 15 | outColor = texture(samp, fragColor.xy * 8.0f); 16 | } 17 | 18 | -------------------------------------------------------------------------------- /examples/texture/texture.vert: -------------------------------------------------------------------------------- 1 | #version 450 2 | 3 | layout(location = 0) in vec2 inPosition; 4 | layout(location = 1) in vec3 inColor; 5 | 6 | layout(location = 0) out vec3 fragColor; 7 | 8 | out gl_PerVertex { 9 | vec4 gl_Position; 10 | }; 11 | 12 | void main() { 13 | gl_Position = vec4(inPosition, 0.0, 1.0); 14 | fragColor = inColor; 15 | } 16 | -------------------------------------------------------------------------------- /examples/threaded/threaded.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 fragColour; 4 | layout(location = 0) out vec4 outColour; 5 | 6 | layout (push_constant) uniform Uniform { 7 | vec4 colour; 8 | mat4 rotation; 9 | } u; 10 | 11 | void main() { 12 | // Copy interpolated colour to the screen. 13 | outColour = vec4(fragColour, 1) * u.colour; 14 | } 15 | -------------------------------------------------------------------------------- /examples/threaded/threaded.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec2 inPosition; 4 | layout(location = 1) in vec3 inColour; 5 | layout(location = 0) out vec3 fragColour; 6 | 7 | layout (push_constant) uniform Uniform { 8 | vec4 colour; 9 | mat4 transform; 10 | } u; 11 | 12 | out gl_PerVertex { 13 | vec4 gl_Position; 14 | }; 15 | 16 | void main() { 17 | gl_Position = u.transform * vec4(inPosition, 0.0, 1.0); 18 | // Copy colour to the fragment shader. 19 | fragColour = inColour; 20 | } 21 | -------------------------------------------------------------------------------- /examples/uniforms/uniforms.frag: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec3 fragColour; 4 | layout(location = 0) out vec4 outColour; 5 | 6 | // Instead of push_constant we use a binding 7 | layout (binding = 0) uniform Uniform { 8 | vec4 colour; 9 | mat4 rotation; 10 | vec4 filler[3]; 11 | } u; 12 | 13 | void main() { 14 | // Copy interpolated colour to the screen. 15 | outColour = vec4(fragColour, 1) * u.colour; 16 | } 17 | -------------------------------------------------------------------------------- /examples/uniforms/uniforms.vert: -------------------------------------------------------------------------------- 1 | #version 460 2 | 3 | layout(location = 0) in vec2 inPosition; 4 | layout(location = 1) in vec3 inColour; 5 | layout(location = 0) out vec3 fragColour; 6 | 7 | // Instead of push_constant we use a binding. 8 | layout (binding = 0) uniform Uniform { 9 | vec4 colour; 10 | mat4 rotation; 11 | vec4 filler[3]; 12 | } u; 13 | 14 | out gl_PerVertex { 15 | vec4 gl_Position; 16 | }; 17 | 18 | void main() { 19 | // Rotate and copy 2D position to 3D + depth 20 | gl_Position = u.rotation * vec4(inPosition, 0.0, 1.0); 21 | 22 | // Copy colour to the fragment shader. 23 | fragColour = inColour; 24 | } 25 | -------------------------------------------------------------------------------- /external/andyzip/algorithm.hpp: -------------------------------------------------------------------------------- 1 | 2 | //////////////////////////////////////////////////////////////////////////////// 3 | // 4 | // (C) Andy Thomason 2012-2016 5 | // 6 | // Autocorrelation entropy test 7 | 8 | 9 | #ifndef MINIZIP_ALGORITHM_INCLUDED 10 | #define MINIZIP_ALGORITHM_INCLUDED 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | namespace andyzip { 18 | // Get a measure of how correlated the data is at various stride levels. 19 | void abs_correlation(std::vector &result, const uint8_t *begin, const uint8_t *end, const std::initializer_list &values) { 20 | result.clear(); 21 | for (auto n : values) { 22 | int value = 0; 23 | for (auto p = begin; p < end - n; ++p) { 24 | value += std::abs((int8_t)(p[0] - p[n])); 25 | } 26 | result.push_back(value); 27 | } 28 | }; 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /external/andyzip/autocorr.hpp: -------------------------------------------------------------------------------- 1 | 2 | //////////////////////////////////////////////////////////////////////////////// 3 | // 4 | // (C) Andy Thomason 2012-2016 5 | // 6 | // Autocorrelation entropy test 7 | 8 | 9 | #ifndef MINIZIP_ALGORITHM_INCLUDED 10 | #define MINIZIP_ALGORITHM_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | namespace andyzip { 16 | template 17 | class range { 18 | public: 19 | range(T begin, T end) : begin_(begin), end_(end) { 20 | } 21 | T begin() { return begin_; } 22 | T end() { return end_; } 23 | private: 24 | T begin_; 25 | T end_; 26 | }; 27 | 28 | 29 | // result[n] is the autocorrelation of sequence [begin,end) 30 | void autocorrelate(size_t *result, size_t num_results, const uint8_t *begin, const uint8_t *end) { 31 | for (size_t n : range((size_t)0, num_results)) { 32 | for (auto p = begin; p != end; p += n) { 33 | 34 | } 35 | } 36 | 37 | }; 38 | 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /external/andyzip/deflate_encoder.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/external/andyzip/deflate_encoder.hpp -------------------------------------------------------------------------------- /external/glfw/.gitrepo: -------------------------------------------------------------------------------- 1 | ; DO NOT EDIT (unless you know what you are doing) 2 | ; 3 | ; This subdirectory is a git "subrepo", and this file is maintained by the 4 | ; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme 5 | ; 6 | [subrepo] 7 | remote = https://github.com/glfw/glfw.git 8 | branch = master 9 | commit = e65de2941c056ee5833b4dab3db36b297b53aa14 10 | parent = c5e1d3377f3e84227545cd9e0e6d1a0bc62a0f25 11 | method = merge 12 | cmdver = 0.4.0 13 | -------------------------------------------------------------------------------- /external/glfw/.mailmap: -------------------------------------------------------------------------------- 1 | Camilla Löwy 2 | Camilla Löwy 3 | Camilla Löwy 4 | 5 | Emmanuel Gil Peyrot 6 | 7 | Marcus Geelnard 8 | Marcus Geelnard 9 | Marcus Geelnard 10 | 11 | -------------------------------------------------------------------------------- /external/glfw/CMake/GenerateMappings.cmake: -------------------------------------------------------------------------------- 1 | # Usage: 2 | # cmake -P GenerateMappings.cmake 3 | 4 | set(source_url "https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt") 5 | set(source_path "${CMAKE_CURRENT_BINARY_DIR}/gamecontrollerdb.txt") 6 | set(template_path "${CMAKE_ARGV3}") 7 | set(target_path "${CMAKE_ARGV4}") 8 | 9 | if (NOT EXISTS "${template_path}") 10 | message(FATAL_ERROR "Failed to find template file ${template_path}") 11 | endif() 12 | 13 | file(DOWNLOAD "${source_url}" "${source_path}" 14 | STATUS download_status 15 | TLS_VERIFY on) 16 | 17 | list(GET download_status 0 status_code) 18 | list(GET download_status 1 status_message) 19 | 20 | if (status_code) 21 | message(FATAL_ERROR "Failed to download ${source_url}: ${status_message}") 22 | endif() 23 | 24 | file(STRINGS "${source_path}" lines) 25 | foreach(line ${lines}) 26 | if ("${line}" MATCHES "^[0-9a-fA-F].*$") 27 | set(GLFW_GAMEPAD_MAPPINGS "${GLFW_GAMEPAD_MAPPINGS}\"${line}\",\n") 28 | endif() 29 | endforeach() 30 | 31 | configure_file("${template_path}" "${target_path}" @ONLY NEWLINE_STYLE UNIX) 32 | file(REMOVE "${source_path}") 33 | 34 | -------------------------------------------------------------------------------- /external/glfw/CMake/Info.plist.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${MACOSX_BUNDLE_EXECUTABLE_NAME} 9 | CFBundleGetInfoString 10 | ${MACOSX_BUNDLE_INFO_STRING} 11 | CFBundleIconFile 12 | ${MACOSX_BUNDLE_ICON_FILE} 13 | CFBundleIdentifier 14 | ${MACOSX_BUNDLE_GUI_IDENTIFIER} 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleLongVersionString 18 | ${MACOSX_BUNDLE_LONG_VERSION_STRING} 19 | CFBundleName 20 | ${MACOSX_BUNDLE_BUNDLE_NAME} 21 | CFBundlePackageType 22 | APPL 23 | CFBundleShortVersionString 24 | ${MACOSX_BUNDLE_SHORT_VERSION_STRING} 25 | CFBundleSignature 26 | ???? 27 | CFBundleVersion 28 | ${MACOSX_BUNDLE_BUNDLE_VERSION} 29 | CSResourcesFileMapped 30 | 31 | LSRequiresCarbon 32 | 33 | NSHumanReadableCopyright 34 | ${MACOSX_BUNDLE_COPYRIGHT} 35 | NSHighResolutionCapable 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /external/glfw/CMake/cmake_uninstall.cmake.in: -------------------------------------------------------------------------------- 1 | 2 | if (NOT EXISTS "@GLFW_BINARY_DIR@/install_manifest.txt") 3 | message(FATAL_ERROR "Cannot find install manifest: \"@GLFW_BINARY_DIR@/install_manifest.txt\"") 4 | endif() 5 | 6 | file(READ "@GLFW_BINARY_DIR@/install_manifest.txt" files) 7 | string(REGEX REPLACE "\n" ";" files "${files}") 8 | 9 | foreach (file ${files}) 10 | message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") 11 | if (EXISTS "$ENV{DESTDIR}${file}") 12 | exec_program("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" 13 | OUTPUT_VARIABLE rm_out 14 | RETURN_VALUE rm_retval) 15 | if (NOT "${rm_retval}" STREQUAL 0) 16 | MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") 17 | endif() 18 | elseif (IS_SYMLINK "$ENV{DESTDIR}${file}") 19 | EXEC_PROGRAM("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" 20 | OUTPUT_VARIABLE rm_out 21 | RETURN_VALUE rm_retval) 22 | if (NOT "${rm_retval}" STREQUAL 0) 23 | message(FATAL_ERROR "Problem when removing symlink \"$ENV{DESTDIR}${file}\"") 24 | endif() 25 | else() 26 | message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") 27 | endif() 28 | endforeach() 29 | 30 | -------------------------------------------------------------------------------- /external/glfw/CMake/glfw3.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ 4 | libdir=@CMAKE_INSTALL_FULL_LIBDIR@ 5 | 6 | Name: GLFW 7 | Description: A multi-platform library for OpenGL, window and input 8 | Version: @GLFW_VERSION@ 9 | URL: https://www.glfw.org/ 10 | Requires.private: @GLFW_PKG_DEPS@ 11 | Libs: -L${libdir} -l@GLFW_LIB_NAME@ 12 | Libs.private: @GLFW_PKG_LIBS@ 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /external/glfw/CMake/glfw3Config.cmake.in: -------------------------------------------------------------------------------- 1 | include(CMakeFindDependencyMacro) 2 | find_dependency(Threads) 3 | include("${CMAKE_CURRENT_LIST_DIR}/glfw3Targets.cmake") 4 | -------------------------------------------------------------------------------- /external/glfw/CMake/i686-w64-mingw32-clang.cmake: -------------------------------------------------------------------------------- 1 | # Define the environment for cross-compiling with 32-bit MinGW-w64 Clang 2 | SET(CMAKE_SYSTEM_NAME Windows) # Target system name 3 | SET(CMAKE_SYSTEM_VERSION 1) 4 | SET(CMAKE_C_COMPILER "i686-w64-mingw32-clang") 5 | SET(CMAKE_CXX_COMPILER "i686-w64-mingw32-clang++") 6 | SET(CMAKE_RC_COMPILER "i686-w64-mingw32-windres") 7 | SET(CMAKE_RANLIB "i686-w64-mingw32-ranlib") 8 | 9 | # Configure the behaviour of the find commands 10 | SET(CMAKE_FIND_ROOT_PATH "/usr/i686-w64-mingw32") 11 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 12 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 13 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 14 | -------------------------------------------------------------------------------- /external/glfw/CMake/i686-w64-mingw32.cmake: -------------------------------------------------------------------------------- 1 | # Define the environment for cross-compiling with 32-bit MinGW-w64 GCC 2 | SET(CMAKE_SYSTEM_NAME Windows) # Target system name 3 | SET(CMAKE_SYSTEM_VERSION 1) 4 | SET(CMAKE_C_COMPILER "i686-w64-mingw32-gcc") 5 | SET(CMAKE_CXX_COMPILER "i686-w64-mingw32-g++") 6 | SET(CMAKE_RC_COMPILER "i686-w64-mingw32-windres") 7 | SET(CMAKE_RANLIB "i686-w64-mingw32-ranlib") 8 | 9 | # Configure the behaviour of the find commands 10 | SET(CMAKE_FIND_ROOT_PATH "/usr/i686-w64-mingw32") 11 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 12 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 13 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 14 | -------------------------------------------------------------------------------- /external/glfw/CMake/modules/FindEpollShim.cmake: -------------------------------------------------------------------------------- 1 | # Find EpollShim 2 | # Once done, this will define 3 | # 4 | # EPOLLSHIM_FOUND - System has EpollShim 5 | # EPOLLSHIM_INCLUDE_DIRS - The EpollShim include directories 6 | # EPOLLSHIM_LIBRARIES - The libraries needed to use EpollShim 7 | 8 | find_path(EPOLLSHIM_INCLUDE_DIRS NAMES sys/epoll.h sys/timerfd.h HINTS /usr/local/include/libepoll-shim) 9 | find_library(EPOLLSHIM_LIBRARIES NAMES epoll-shim libepoll-shim HINTS /usr/local/lib) 10 | 11 | if (EPOLLSHIM_INCLUDE_DIRS AND EPOLLSHIM_LIBRARIES) 12 | set(EPOLLSHIM_FOUND TRUE) 13 | endif (EPOLLSHIM_INCLUDE_DIRS AND EPOLLSHIM_LIBRARIES) 14 | 15 | include(FindPackageHandleStandardArgs) 16 | find_package_handle_standard_args(EPOLLSHIM DEFAULT_MSG EPOLLSHIM_LIBRARIES EPOLLSHIM_INCLUDE_DIRS) 17 | mark_as_advanced(EPOLLSHIM_INCLUDE_DIRS EPOLLSHIM_LIBRARIES) 18 | -------------------------------------------------------------------------------- /external/glfw/CMake/modules/FindOSMesa.cmake: -------------------------------------------------------------------------------- 1 | # Try to find OSMesa on a Unix system 2 | # 3 | # This will define: 4 | # 5 | # OSMESA_LIBRARIES - Link these to use OSMesa 6 | # OSMESA_INCLUDE_DIR - Include directory for OSMesa 7 | # 8 | # Copyright (c) 2014 Brandon Schaefer 9 | 10 | if (NOT WIN32) 11 | 12 | find_package (PkgConfig) 13 | pkg_check_modules (PKG_OSMESA QUIET osmesa) 14 | 15 | set (OSMESA_INCLUDE_DIR ${PKG_OSMESA_INCLUDE_DIRS}) 16 | set (OSMESA_LIBRARIES ${PKG_OSMESA_LIBRARIES}) 17 | 18 | endif () 19 | -------------------------------------------------------------------------------- /external/glfw/CMake/modules/FindWaylandProtocols.cmake: -------------------------------------------------------------------------------- 1 | find_package(PkgConfig) 2 | 3 | pkg_check_modules(WaylandProtocols QUIET wayland-protocols>=${WaylandProtocols_FIND_VERSION}) 4 | 5 | execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=pkgdatadir wayland-protocols 6 | OUTPUT_VARIABLE WaylandProtocols_PKGDATADIR 7 | RESULT_VARIABLE _pkgconfig_failed) 8 | if (_pkgconfig_failed) 9 | message(FATAL_ERROR "Missing wayland-protocols pkgdatadir") 10 | endif() 11 | 12 | string(REGEX REPLACE "[\r\n]" "" WaylandProtocols_PKGDATADIR "${WaylandProtocols_PKGDATADIR}") 13 | 14 | find_package_handle_standard_args(WaylandProtocols 15 | FOUND_VAR 16 | WaylandProtocols_FOUND 17 | REQUIRED_VARS 18 | WaylandProtocols_PKGDATADIR 19 | VERSION_VAR 20 | WaylandProtocols_VERSION 21 | HANDLE_COMPONENTS 22 | ) 23 | 24 | set(WAYLAND_PROTOCOLS_FOUND ${WaylandProtocols_FOUND}) 25 | set(WAYLAND_PROTOCOLS_PKGDATADIR ${WaylandProtocols_PKGDATADIR}) 26 | set(WAYLAND_PROTOCOLS_VERSION ${WaylandProtocols_VERSION}) 27 | -------------------------------------------------------------------------------- /external/glfw/CMake/modules/FindXKBCommon.cmake: -------------------------------------------------------------------------------- 1 | # - Try to find XKBCommon 2 | # Once done, this will define 3 | # 4 | # XKBCOMMON_FOUND - System has XKBCommon 5 | # XKBCOMMON_INCLUDE_DIRS - The XKBCommon include directories 6 | # XKBCOMMON_LIBRARIES - The libraries needed to use XKBCommon 7 | # XKBCOMMON_DEFINITIONS - Compiler switches required for using XKBCommon 8 | 9 | find_package(PkgConfig) 10 | pkg_check_modules(PC_XKBCOMMON QUIET xkbcommon) 11 | set(XKBCOMMON_DEFINITIONS ${PC_XKBCOMMON_CFLAGS_OTHER}) 12 | 13 | find_path(XKBCOMMON_INCLUDE_DIR 14 | NAMES xkbcommon/xkbcommon.h 15 | HINTS ${PC_XKBCOMMON_INCLUDE_DIR} ${PC_XKBCOMMON_INCLUDE_DIRS} 16 | ) 17 | 18 | find_library(XKBCOMMON_LIBRARY 19 | NAMES xkbcommon 20 | HINTS ${PC_XKBCOMMON_LIBRARY} ${PC_XKBCOMMON_LIBRARY_DIRS} 21 | ) 22 | 23 | set(XKBCOMMON_LIBRARIES ${XKBCOMMON_LIBRARY}) 24 | set(XKBCOMMON_LIBRARY_DIRS ${XKBCOMMON_LIBRARY_DIRS}) 25 | set(XKBCOMMON_INCLUDE_DIRS ${XKBCOMMON_INCLUDE_DIR}) 26 | 27 | include(FindPackageHandleStandardArgs) 28 | find_package_handle_standard_args(XKBCommon DEFAULT_MSG 29 | XKBCOMMON_LIBRARY 30 | XKBCOMMON_INCLUDE_DIR 31 | ) 32 | 33 | mark_as_advanced(XKBCOMMON_LIBRARY XKBCOMMON_INCLUDE_DIR) 34 | 35 | -------------------------------------------------------------------------------- /external/glfw/CMake/x86_64-w64-mingw32-clang.cmake: -------------------------------------------------------------------------------- 1 | # Define the environment for cross-compiling with 64-bit MinGW-w64 Clang 2 | SET(CMAKE_SYSTEM_NAME Windows) # Target system name 3 | SET(CMAKE_SYSTEM_VERSION 1) 4 | SET(CMAKE_C_COMPILER "x86_64-w64-mingw32-clang") 5 | SET(CMAKE_CXX_COMPILER "x86_64-w64-mingw32-clang++") 6 | SET(CMAKE_RC_COMPILER "x86_64-w64-mingw32-windres") 7 | SET(CMAKE_RANLIB "x86_64-w64-mingw32-ranlib") 8 | 9 | # Configure the behaviour of the find commands 10 | SET(CMAKE_FIND_ROOT_PATH "/usr/x86_64-w64-mingw32") 11 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 12 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 13 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 14 | -------------------------------------------------------------------------------- /external/glfw/CMake/x86_64-w64-mingw32.cmake: -------------------------------------------------------------------------------- 1 | # Define the environment for cross-compiling with 64-bit MinGW-w64 GCC 2 | SET(CMAKE_SYSTEM_NAME Windows) # Target system name 3 | SET(CMAKE_SYSTEM_VERSION 1) 4 | SET(CMAKE_C_COMPILER "x86_64-w64-mingw32-gcc") 5 | SET(CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++") 6 | SET(CMAKE_RC_COMPILER "x86_64-w64-mingw32-windres") 7 | SET(CMAKE_RANLIB "x86_64-w64-mingw32-ranlib") 8 | 9 | # Configure the behaviour of the find commands 10 | SET(CMAKE_FIND_ROOT_PATH "/usr/x86_64-w64-mingw32") 11 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 12 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 13 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 14 | -------------------------------------------------------------------------------- /external/glfw/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002-2006 Marcus Geelnard 2 | 3 | Copyright (c) 2006-2019 Camilla Löwy 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would 16 | be appreciated but is not required. 17 | 18 | 2. Altered source versions must be plainly marked as such, and must not 19 | be misrepresented as being the original software. 20 | 21 | 3. This notice may not be removed or altered from any source 22 | distribution. 23 | 24 | -------------------------------------------------------------------------------- /external/glfw/docs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | # NOTE: The order of this list determines the order of items in the Guides 3 | # (i.e. Pages) list in the generated documentation 4 | set(GLFW_DOXYGEN_SOURCES 5 | "include/GLFW/glfw3.h" 6 | "include/GLFW/glfw3native.h" 7 | "docs/main.dox" 8 | "docs/news.dox" 9 | "docs/quick.dox" 10 | "docs/moving.dox" 11 | "docs/compile.dox" 12 | "docs/build.dox" 13 | "docs/intro.dox" 14 | "docs/context.dox" 15 | "docs/monitor.dox" 16 | "docs/window.dox" 17 | "docs/input.dox" 18 | "docs/vulkan.dox" 19 | "docs/compat.dox" 20 | "docs/internal.dox") 21 | 22 | # Format the source list into a Doxyfile INPUT value that Doxygen can parse 23 | foreach(path IN LISTS GLFW_DOXYGEN_SOURCES) 24 | set(GLFW_DOXYGEN_INPUT "${GLFW_DOXYGEN_INPUT} \\\n\"${GLFW_SOURCE_DIR}/${path}\"") 25 | endforeach() 26 | 27 | configure_file(Doxyfile.in Doxyfile @ONLY) 28 | 29 | add_custom_target(docs ALL "${DOXYGEN_EXECUTABLE}" 30 | WORKING_DIRECTORY "${GLFW_BINARY_DIR}/docs" 31 | COMMENT "Generating HTML documentation" VERBATIM) 32 | 33 | set_target_properties(docs PROPERTIES FOLDER "GLFW3") 34 | 35 | -------------------------------------------------------------------------------- /external/glfw/docs/CODEOWNERS: -------------------------------------------------------------------------------- 1 | 2 | * @elmindreda 3 | 4 | src/wl_* @linkmauve 5 | 6 | docs/*.css @glfw/webdev 7 | docs/*.less @glfw/webdev 8 | docs/*.html @glfw/webdev 9 | docs/*.xml @glfw/webdev 10 | 11 | -------------------------------------------------------------------------------- /external/glfw/docs/SUPPORT.md: -------------------------------------------------------------------------------- 1 | # Support resources 2 | 3 | See the [latest documentation](http://www.glfw.org/docs/latest/) for tutorials, 4 | guides and the API reference. 5 | 6 | If you have questions about using GLFW, we have a 7 | [forum](https://discourse.glfw.org/), and the `#glfw` IRC channel on 8 | [Freenode](http://freenode.net/). 9 | 10 | Bugs are reported to our [issue tracker](https://github.com/glfw/glfw/issues). 11 | Please check the [contribution 12 | guide](https://github.com/glfw/glfw/blob/master/docs/CONTRIBUTING.md) for 13 | information on what to include when reporting a bug. 14 | 15 | -------------------------------------------------------------------------------- /external/glfw/docs/footer.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /external/glfw/docs/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | $projectname: $title 8 | $title 9 | 10 | 11 | 12 | $treeview 13 | $search 14 | $mathjax 15 | 16 | $extrastylesheet 17 | 18 | 19 |
20 | 21 | 22 |
23 |
24 | GLFW 25 | 30 |
31 |
32 | 33 | 34 | -------------------------------------------------------------------------------- /external/glfw/examples/glfw.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/external/glfw/examples/glfw.icns -------------------------------------------------------------------------------- /external/glfw/examples/glfw.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/external/glfw/examples/glfw.ico -------------------------------------------------------------------------------- /external/glfw/examples/glfw.rc: -------------------------------------------------------------------------------- 1 | 2 | GLFW_ICON ICON "glfw.ico" 3 | 4 | -------------------------------------------------------------------------------- /external/glfw/src/glfw.rc.in: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | 4 | VS_VERSION_INFO VERSIONINFO 5 | FILEVERSION @GLFW_VERSION_MAJOR@,@GLFW_VERSION_MINOR@,@GLFW_VERSION_PATCH@,0 6 | PRODUCTVERSION @GLFW_VERSION_MAJOR@,@GLFW_VERSION_MINOR@,@GLFW_VERSION_PATCH@,0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_NT_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 12 | { 13 | BLOCK "StringFileInfo" 14 | { 15 | BLOCK "040904B0" 16 | { 17 | VALUE "CompanyName", "GLFW" 18 | VALUE "FileDescription", "GLFW @GLFW_VERSION@ DLL" 19 | VALUE "FileVersion", "@GLFW_VERSION@" 20 | VALUE "OriginalFilename", "glfw3.dll" 21 | VALUE "ProductName", "GLFW" 22 | VALUE "ProductVersion", "@GLFW_VERSION@" 23 | } 24 | } 25 | BLOCK "VarFileInfo" 26 | { 27 | VALUE "Translation", 0x409, 1200 28 | } 29 | } 30 | 31 | -------------------------------------------------------------------------------- /external/glfw/src/null_joystick.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.4 - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2006-2017 Camilla Löwy 5 | // 6 | // This software is provided 'as-is', without any express or implied 7 | // warranty. In no event will the authors be held liable for any damages 8 | // arising from the use of this software. 9 | // 10 | // Permission is granted to anyone to use this software for any purpose, 11 | // including commercial applications, and to alter it and redistribute it 12 | // freely, subject to the following restrictions: 13 | // 14 | // 1. The origin of this software must not be misrepresented; you must not 15 | // claim that you wrote the original software. If you use this software 16 | // in a product, an acknowledgment in the product documentation would 17 | // be appreciated but is not required. 18 | // 19 | // 2. Altered source versions must be plainly marked as such, and must not 20 | // be misrepresented as being the original software. 21 | // 22 | // 3. This notice may not be removed or altered from any source 23 | // distribution. 24 | // 25 | //======================================================================== 26 | 27 | #define _GLFW_PLATFORM_JOYSTICK_STATE struct { int dummyJoystick; } 28 | #define _GLFW_PLATFORM_LIBRARY_JOYSTICK_STATE struct { int dummyLibraryJoystick; } 29 | 30 | #define _GLFW_PLATFORM_MAPPING_NAME "" 31 | 32 | -------------------------------------------------------------------------------- /external/glfw/src/xkb_unicode.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.4 Linux - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2014 Jonas Ådahl 5 | // 6 | // This software is provided 'as-is', without any express or implied 7 | // warranty. In no event will the authors be held liable for any damages 8 | // arising from the use of this software. 9 | // 10 | // Permission is granted to anyone to use this software for any purpose, 11 | // including commercial applications, and to alter it and redistribute it 12 | // freely, subject to the following restrictions: 13 | // 14 | // 1. The origin of this software must not be misrepresented; you must not 15 | // claim that you wrote the original software. If you use this software 16 | // in a product, an acknowledgment in the product documentation would 17 | // be appreciated but is not required. 18 | // 19 | // 2. Altered source versions must be plainly marked as such, and must not 20 | // be misrepresented as being the original software. 21 | // 22 | // 3. This notice may not be removed or altered from any source 23 | // distribution. 24 | // 25 | //======================================================================== 26 | 27 | long _glfwKeySym2Unicode(unsigned int keysym); 28 | 29 | -------------------------------------------------------------------------------- /external/glm/detail/_fixes.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/_fixes.hpp 3 | 4 | #include 5 | 6 | //! Workaround for compatibility with other libraries 7 | #ifdef max 8 | #undef max 9 | #endif 10 | 11 | //! Workaround for compatibility with other libraries 12 | #ifdef min 13 | #undef min 14 | #endif 15 | 16 | //! Workaround for Android 17 | #ifdef isnan 18 | #undef isnan 19 | #endif 20 | 21 | //! Workaround for Android 22 | #ifdef isinf 23 | #undef isinf 24 | #endif 25 | 26 | //! Workaround for Chrone Native Client 27 | #ifdef log2 28 | #undef log2 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /external/glm/detail/compute_vector_relational.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "setup.hpp" 4 | #include 5 | #include 6 | 7 | namespace glm{ 8 | namespace detail 9 | { 10 | template ::is_iec559> 11 | struct compute_equal 12 | { 13 | GLM_FUNC_QUALIFIER static bool call(T a, T b) 14 | { 15 | return a == b; 16 | } 17 | }; 18 | 19 | template 20 | struct compute_equal 21 | { 22 | GLM_FUNC_QUALIFIER static bool call(T a, T b) 23 | { 24 | return std::memcmp(&a, &b, sizeof(T)) == 0; 25 | } 26 | }; 27 | }//namespace detail 28 | }//namespace glm 29 | -------------------------------------------------------------------------------- /external/glm/detail/func_exponential_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_exponential_simd.inl 3 | 4 | #include "../simd/exponential.h" 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | template 12 | struct compute_sqrt<4, float, Q, true> 13 | { 14 | GLM_FUNC_QUALIFIER static vec<4, float, Q> call(vec<4, float, Q> const& v) 15 | { 16 | vec<4, float, Q> Result; 17 | Result.data = _mm_sqrt_ps(v.data); 18 | return Result; 19 | } 20 | }; 21 | 22 | template<> 23 | struct compute_sqrt<4, float, aligned_lowp, true> 24 | { 25 | GLM_FUNC_QUALIFIER static vec<4, float, aligned_lowp> call(vec<4, float, aligned_lowp> const& v) 26 | { 27 | vec<4, float, aligned_lowp> Result; 28 | Result.data = glm_vec4_sqrt_lowp(v.data); 29 | return Result; 30 | } 31 | }; 32 | }//namespace detail 33 | }//namespace glm 34 | 35 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 36 | -------------------------------------------------------------------------------- /external/glm/detail/func_packing_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_packing_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /external/glm/detail/func_trigonometric_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/external/glm/detail/func_trigonometric_simd.inl -------------------------------------------------------------------------------- /external/glm/detail/func_vector_relational_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_vector_relational_simd.inl 3 | 4 | namespace glm{ 5 | namespace detail 6 | { 7 | 8 | }//namespace detail 9 | }//namespace glm 10 | -------------------------------------------------------------------------------- /external/glm/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_half.hpp 3 | 4 | #pragma once 5 | 6 | #include "setup.hpp" 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | typedef short hdata; 12 | 13 | GLM_FUNC_DECL float toFloat32(hdata value); 14 | GLM_FUNC_DECL hdata toFloat16(float const& value); 15 | 16 | }//namespace detail 17 | }//namespace glm 18 | 19 | #include "type_half.inl" 20 | -------------------------------------------------------------------------------- /external/glm/detail/type_mat.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat.inl 3 | 4 | -------------------------------------------------------------------------------- /external/glm/detail/type_mat4x4_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_mat4x4_sse2.inl 3 | 4 | namespace glm 5 | { 6 | 7 | }//namespace glm 8 | -------------------------------------------------------------------------------- /external/glm/detail/type_vec.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/type_vec.inl 3 | -------------------------------------------------------------------------------- /external/glm/detail/type_vec1.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/external/glm/detail/type_vec1.hpp -------------------------------------------------------------------------------- /external/glm/ext/vec1.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/external/glm/ext/vec1.inl -------------------------------------------------------------------------------- /external/glm/gtc/matrix_access.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_matrix_access 2 | /// @file glm/gtc/matrix_access.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType row 8 | ( 9 | genType const& m, 10 | length_t index, 11 | typename genType::row_type const& x 12 | ) 13 | { 14 | assert(index >= 0 && index < m[0].length()); 15 | 16 | genType Result = m; 17 | for(length_t i = 0; i < m.length(); ++i) 18 | Result[i][index] = x[i]; 19 | return Result; 20 | } 21 | 22 | template 23 | GLM_FUNC_QUALIFIER typename genType::row_type row 24 | ( 25 | genType const& m, 26 | length_t index 27 | ) 28 | { 29 | assert(index >= 0 && index < m[0].length()); 30 | 31 | typename genType::row_type Result(0); 32 | for(length_t i = 0; i < m.length(); ++i) 33 | Result[i] = m[i][index]; 34 | return Result; 35 | } 36 | 37 | template 38 | GLM_FUNC_QUALIFIER genType column 39 | ( 40 | genType const& m, 41 | length_t index, 42 | typename genType::col_type const& x 43 | ) 44 | { 45 | assert(index >= 0 && index < m.length()); 46 | 47 | genType Result = m; 48 | Result[index] = x; 49 | return Result; 50 | } 51 | 52 | template 53 | GLM_FUNC_QUALIFIER typename genType::col_type column 54 | ( 55 | genType const& m, 56 | length_t index 57 | ) 58 | { 59 | assert(index >= 0 && index < m.length()); 60 | 61 | return m[index]; 62 | } 63 | }//namespace glm 64 | -------------------------------------------------------------------------------- /external/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_swizzle 2 | /// @file glm/gtc/swizzle.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /external/glm/gtc/vec1.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_vec1 2 | /// @file glm/gtc/vec1.inl 3 | -------------------------------------------------------------------------------- /external/glm/gtx/closest_point.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_closest_point 2 | /// @file glm/gtx/closest_point.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_closest_point GLM_GTX_closest_point 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Find the point on a straight line which is the closet of a point. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #ifndef GLM_ENABLE_EXPERIMENTAL 19 | # error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 20 | #endif 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTX_closest_point extension included") 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtx_closest_point 29 | /// @{ 30 | 31 | /// Find the point on a straight line which is the closet of a point. 32 | /// @see gtx_closest_point 33 | template 34 | GLM_FUNC_DECL vec<3, T, Q> closestPointOnLine( 35 | vec<3, T, Q> const& point, 36 | vec<3, T, Q> const& a, 37 | vec<3, T, Q> const& b); 38 | 39 | /// 2d lines work as well 40 | template 41 | GLM_FUNC_DECL vec<2, T, Q> closestPointOnLine( 42 | vec<2, T, Q> const& point, 43 | vec<2, T, Q> const& a, 44 | vec<2, T, Q> const& b); 45 | 46 | /// @} 47 | }// namespace glm 48 | 49 | #include "closest_point.inl" 50 | -------------------------------------------------------------------------------- /external/glm/gtx/closest_point.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_closest_point 2 | /// @file glm/gtx/closest_point.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vec<3, T, Q> closestPointOnLine 8 | ( 9 | vec<3, T, Q> const& point, 10 | vec<3, T, Q> const& a, 11 | vec<3, T, Q> const& b 12 | ) 13 | { 14 | T LineLength = distance(a, b); 15 | vec<3, T, Q> Vector = point - a; 16 | vec<3, T, Q> LineDirection = (b - a) / LineLength; 17 | 18 | // Project Vector to LineDirection to get the distance of point from a 19 | T Distance = dot(Vector, LineDirection); 20 | 21 | if(Distance <= T(0)) return a; 22 | if(Distance >= LineLength) return b; 23 | return a + LineDirection * Distance; 24 | } 25 | 26 | template 27 | GLM_FUNC_QUALIFIER vec<2, T, Q> closestPointOnLine 28 | ( 29 | vec<2, T, Q> const& point, 30 | vec<2, T, Q> const& a, 31 | vec<2, T, Q> const& b 32 | ) 33 | { 34 | T LineLength = distance(a, b); 35 | vec<2, T, Q> Vector = point - a; 36 | vec<2, T, Q> LineDirection = (b - a) / LineLength; 37 | 38 | // Project Vector to LineDirection to get the distance of point from a 39 | T Distance = dot(Vector, LineDirection); 40 | 41 | if(Distance <= T(0)) return a; 42 | if(Distance >= LineLength) return b; 43 | return a + LineDirection * Distance; 44 | } 45 | 46 | }//namespace glm 47 | -------------------------------------------------------------------------------- /external/glm/gtx/extend.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_extend 2 | /// @file glm/gtx/extend.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_extend GLM_GTX_extend 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Extend a position from a source to a position at a defined length. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #ifndef GLM_ENABLE_EXPERIMENTAL 19 | # error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 20 | #endif 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTX_extend extension included") 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtx_extend 29 | /// @{ 30 | 31 | /// Extends of Length the Origin position using the (Source - Origin) direction. 32 | /// @see gtx_extend 33 | template 34 | GLM_FUNC_DECL genType extend( 35 | genType const& Origin, 36 | genType const& Source, 37 | typename genType::value_type const Length); 38 | 39 | /// @} 40 | }//namespace glm 41 | 42 | #include "extend.inl" 43 | -------------------------------------------------------------------------------- /external/glm/gtx/extend.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_extend 2 | /// @file glm/gtx/extend.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType extend 8 | ( 9 | genType const& Origin, 10 | genType const& Source, 11 | genType const& Distance 12 | ) 13 | { 14 | return Origin + (Source - Origin) * Distance; 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER vec<2, T, Q> extend 19 | ( 20 | vec<2, T, Q> const& Origin, 21 | vec<2, T, Q> const& Source, 22 | T const& Distance 23 | ) 24 | { 25 | return Origin + (Source - Origin) * Distance; 26 | } 27 | 28 | template 29 | GLM_FUNC_QUALIFIER vec<3, T, Q> extend 30 | ( 31 | vec<3, T, Q> const& Origin, 32 | vec<3, T, Q> const& Source, 33 | T const& Distance 34 | ) 35 | { 36 | return Origin + (Source - Origin) * Distance; 37 | } 38 | 39 | template 40 | GLM_FUNC_QUALIFIER vec<4, T, Q> extend 41 | ( 42 | vec<4, T, Q> const& Origin, 43 | vec<4, T, Q> const& Source, 44 | T const& Distance 45 | ) 46 | { 47 | return Origin + (Source - Origin) * Distance; 48 | } 49 | }//namespace glm 50 | -------------------------------------------------------------------------------- /external/glm/gtx/exterior_product.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_exterior_product 2 | /// @file glm/gtx/exterior_product.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_exterior_product (dependence) 6 | /// 7 | /// @defgroup gtx_exterior_product GLM_GTX_exterior_product 8 | /// @ingroup gtx 9 | /// 10 | /// Include to use the features of this extension. 11 | /// 12 | /// @brief Allow to perform bit operations on integer values 13 | 14 | #pragma once 15 | 16 | // Dependencies 17 | #include "../detail/setup.hpp" 18 | #include "../detail/qualifier.hpp" 19 | 20 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 21 | # pragma message("GLM: GLM_GTX_exterior_product extension included") 22 | #endif 23 | 24 | namespace glm 25 | { 26 | /// @addtogroup gtx_exterior_product 27 | /// @{ 28 | 29 | /// Returns the cross product of x and y. 30 | /// 31 | /// @tparam T Floating-point scalar types 32 | /// @tparam Q Value from qualifier enum 33 | /// 34 | /// @see Exterior product 35 | template 36 | GLM_FUNC_DECL T cross(vec<2, T, Q> const& v, vec<2, T, Q> const& u); 37 | 38 | /// @} 39 | } //namespace glm 40 | 41 | #include "exterior_product.inl" 42 | -------------------------------------------------------------------------------- /external/glm/gtx/exterior_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_geometric.inl 3 | 4 | #include 5 | 6 | namespace glm { 7 | namespace detail 8 | { 9 | template 10 | struct compute_cross_vec2 11 | { 12 | GLM_FUNC_QUALIFIER static T call(vec<2, T, Q> const& v, vec<2, T, Q> const& u) 13 | { 14 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'cross' accepts only floating-point inputs"); 15 | 16 | return v.x * u.y - u.x * v.y; 17 | } 18 | }; 19 | }//namespace detail 20 | 21 | template 22 | GLM_FUNC_QUALIFIER T cross(vec<2, T, Q> const& x, vec<2, T, Q> const& y) 23 | { 24 | return detail::compute_cross_vec2::value>::call(x, y); 25 | } 26 | }//namespace glm 27 | 28 | -------------------------------------------------------------------------------- /external/glm/gtx/float_notmalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_float_normalize 2 | /// @file glm/gtx/float_normalize.inl 3 | 4 | #include 5 | 6 | namespace glm 7 | { 8 | template 9 | GLM_FUNC_QUALIFIER vec floatNormalize(vec const& v) 10 | { 11 | return vec(v) / static_cast(std::numeric_limits::max()); 12 | } 13 | 14 | }//namespace glm 15 | -------------------------------------------------------------------------------- /external/glm/gtx/functions.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_functions 2 | /// @file glm/gtx/functions.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtc_quaternion (dependence) 6 | /// 7 | /// @defgroup gtx_functions GLM_GTX_functions 8 | /// @ingroup gtx 9 | /// 10 | /// Include to use the features of this extension. 11 | /// 12 | /// List of useful common functions. 13 | 14 | #pragma once 15 | 16 | // Dependencies 17 | #include "../detail/setup.hpp" 18 | #include "../detail/qualifier.hpp" 19 | #include "../detail/type_vec2.hpp" 20 | 21 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 22 | # pragma message("GLM: GLM_GTX_functions extension included") 23 | #endif 24 | 25 | namespace glm 26 | { 27 | /// @addtogroup gtx_functions 28 | /// @{ 29 | 30 | /// 1D gauss function 31 | /// 32 | /// @see gtc_epsilon 33 | template 34 | GLM_FUNC_DECL T gauss( 35 | T x, 36 | T ExpectedValue, 37 | T StandardDeviation); 38 | 39 | /// 2D gauss function 40 | /// 41 | /// @see gtc_epsilon 42 | template 43 | GLM_FUNC_DECL T gauss( 44 | vec<2, T, Q> const& Coord, 45 | vec<2, T, Q> const& ExpectedValue, 46 | vec<2, T, Q> const& StandardDeviation); 47 | 48 | /// @} 49 | }//namespace glm 50 | 51 | #include "functions.inl" 52 | 53 | -------------------------------------------------------------------------------- /external/glm/gtx/functions.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_functions 2 | /// @file glm/gtx/functions.inl 3 | 4 | #include "../exponential.hpp" 5 | 6 | namespace glm 7 | { 8 | template 9 | GLM_FUNC_QUALIFIER T gauss 10 | ( 11 | T x, 12 | T ExpectedValue, 13 | T StandardDeviation 14 | ) 15 | { 16 | return exp(-((x - ExpectedValue) * (x - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation)) / (StandardDeviation * sqrt(static_cast(6.28318530717958647692528676655900576))); 17 | } 18 | 19 | template 20 | GLM_FUNC_QUALIFIER T gauss 21 | ( 22 | vec<2, T, Q> const& Coord, 23 | vec<2, T, Q> const& ExpectedValue, 24 | vec<2, T, Q> const& StandardDeviation 25 | ) 26 | { 27 | vec<2, T, Q> const Squared = ((Coord - ExpectedValue) * (Coord - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation); 28 | return exp(-(Squared.x + Squared.y)); 29 | } 30 | }//namespace glm 31 | 32 | -------------------------------------------------------------------------------- /external/glm/gtx/gradient_paint.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_gradient_paint 2 | /// @file glm/gtx/gradient_paint.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T radialGradient 8 | ( 9 | vec<2, T, Q> const& Center, 10 | T const& Radius, 11 | vec<2, T, Q> const& Focal, 12 | vec<2, T, Q> const& Position 13 | ) 14 | { 15 | vec<2, T, Q> F = Focal - Center; 16 | vec<2, T, Q> D = Position - Focal; 17 | T Radius2 = pow2(Radius); 18 | T Fx2 = pow2(F.x); 19 | T Fy2 = pow2(F.y); 20 | 21 | T 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)); 22 | T Denominator = Radius2 - (Fx2 + Fy2); 23 | return Numerator / Denominator; 24 | } 25 | 26 | template 27 | GLM_FUNC_QUALIFIER T linearGradient 28 | ( 29 | vec<2, T, Q> const& Point0, 30 | vec<2, T, Q> const& Point1, 31 | vec<2, T, Q> const& Position 32 | ) 33 | { 34 | vec<2, T, Q> Dist = Point1 - Point0; 35 | return (Dist.x * (Position.x - Point0.x) + Dist.y * (Position.y - Point0.y)) / glm::dot(Dist, Dist); 36 | } 37 | }//namespace glm 38 | -------------------------------------------------------------------------------- /external/glm/gtx/handed_coordinate_space.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_handed_coordinate_space 2 | /// @file glm/gtx/handed_coordinate_space.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER bool rightHanded 8 | ( 9 | vec<3, T, Q> const& tangent, 10 | vec<3, T, Q> const& binormal, 11 | vec<3, T, Q> const& normal 12 | ) 13 | { 14 | return dot(cross(normal, tangent), binormal) > T(0); 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER bool leftHanded 19 | ( 20 | vec<3, T, Q> const& tangent, 21 | vec<3, T, Q> const& binormal, 22 | vec<3, T, Q> const& normal 23 | ) 24 | { 25 | return dot(cross(normal, tangent), binormal) < T(0); 26 | } 27 | }//namespace glm 28 | -------------------------------------------------------------------------------- /external/glm/gtx/intersect.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/external/glm/gtx/intersect.hpp -------------------------------------------------------------------------------- /external/glm/gtx/log_base.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | /// @file glm/gtx/log_base.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_log_base GLM_GTX_log_base 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Logarithm for any base. base can be a vector or a scalar. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #ifndef GLM_ENABLE_EXPERIMENTAL 19 | # error "GLM: GLM_GTX_log_base is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 20 | #endif 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTX_log_base extension included") 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtx_log_base 29 | /// @{ 30 | 31 | /// Logarithm for any base. 32 | /// From GLM_GTX_log_base. 33 | template 34 | GLM_FUNC_DECL genType log( 35 | genType const& x, 36 | genType const& base); 37 | 38 | /// Logarithm for any base. 39 | /// From GLM_GTX_log_base. 40 | template 41 | GLM_FUNC_DECL vec sign( 42 | vec const& x, 43 | vec const& base); 44 | 45 | /// @} 46 | }//namespace glm 47 | 48 | #include "log_base.inl" 49 | -------------------------------------------------------------------------------- /external/glm/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | /// @file glm/gtx/log_base.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType log(genType const& x, genType const& base) 8 | { 9 | assert(!detail::compute_equal::call(x, static_cast(0))); 10 | return glm::log(x) / glm::log(base); 11 | } 12 | 13 | template 14 | GLM_FUNC_QUALIFIER vec log(vec const& x, vec const& base) 15 | { 16 | return glm::log(x) / glm::log(base); 17 | } 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /external/glm/gtx/matrix_cross_product.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_cross_product 2 | /// @file glm/gtx/matrix_cross_product.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_matrix_cross_product GLM_GTX_matrix_cross_product 8 | /// @ingroup gtx 9 | /// 10 | /// Include to use the features of this extension. 11 | /// 12 | /// Build cross product matrices 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | 19 | #ifndef GLM_ENABLE_EXPERIMENTAL 20 | # error "GLM: GLM_GTX_matrix_cross_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 21 | #endif 22 | 23 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 24 | # pragma message("GLM: GLM_GTX_matrix_cross_product extension included") 25 | #endif 26 | 27 | namespace glm 28 | { 29 | /// @addtogroup gtx_matrix_cross_product 30 | /// @{ 31 | 32 | //! Build a cross product matrix. 33 | //! From GLM_GTX_matrix_cross_product extension. 34 | template 35 | GLM_FUNC_DECL mat<3, 3, T, Q> matrixCross3( 36 | vec<3, T, Q> const& x); 37 | 38 | //! Build a cross product matrix. 39 | //! From GLM_GTX_matrix_cross_product extension. 40 | template 41 | GLM_FUNC_DECL mat<4, 4, T, Q> matrixCross4( 42 | vec<3, T, Q> const& x); 43 | 44 | /// @} 45 | }//namespace glm 46 | 47 | #include "matrix_cross_product.inl" 48 | -------------------------------------------------------------------------------- /external/glm/gtx/matrix_cross_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_cross_product 2 | /// @file glm/gtx/matrix_cross_product.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> matrixCross3 8 | ( 9 | vec<3, T, Q> const& x 10 | ) 11 | { 12 | mat<3, 3, T, Q> Result(T(0)); 13 | Result[0][1] = x.z; 14 | Result[1][0] = -x.z; 15 | Result[0][2] = -x.y; 16 | Result[2][0] = x.y; 17 | Result[1][2] = x.x; 18 | Result[2][1] = -x.x; 19 | return Result; 20 | } 21 | 22 | template 23 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> matrixCross4 24 | ( 25 | vec<3, T, Q> const& x 26 | ) 27 | { 28 | mat<4, 4, T, Q> Result(T(0)); 29 | Result[0][1] = x.z; 30 | Result[1][0] = -x.z; 31 | Result[0][2] = -x.y; 32 | Result[2][0] = x.y; 33 | Result[1][2] = x.x; 34 | Result[2][1] = -x.x; 35 | return Result; 36 | } 37 | 38 | }//namespace glm 39 | -------------------------------------------------------------------------------- /external/glm/gtx/matrix_factorisation.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/external/glm/gtx/matrix_factorisation.inl -------------------------------------------------------------------------------- /external/glm/gtx/mixed_product.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | /// @file glm/gtx/mixed_product.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_mixed_product GLM_GTX_mixed_producte 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Mixed product of 3 vectors. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #ifndef GLM_ENABLE_EXPERIMENTAL 19 | # error "GLM: GLM_GTX_mixed_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 20 | #endif 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTX_mixed_product extension included") 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtx_mixed_product 29 | /// @{ 30 | 31 | /// @brief Mixed product of 3 vectors (from GLM_GTX_mixed_product extension) 32 | template 33 | GLM_FUNC_DECL T mixedProduct( 34 | vec<3, T, Q> const& v1, 35 | vec<3, T, Q> const& v2, 36 | vec<3, T, Q> const& v3); 37 | 38 | /// @} 39 | }// namespace glm 40 | 41 | #include "mixed_product.inl" 42 | -------------------------------------------------------------------------------- /external/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | /// @file glm/gtx/mixed_product.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T mixedProduct 8 | ( 9 | vec<3, T, Q> const& v1, 10 | vec<3, T, Q> const& v2, 11 | vec<3, T, Q> const& v3 12 | ) 13 | { 14 | return dot(cross(v1, v2), v3); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /external/glm/gtx/normal.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | /// @file glm/gtx/normal.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_normal GLM_GTX_normal 8 | /// @ingroup gtx 9 | /// 10 | /// Include to use the features of this extension. 11 | /// 12 | /// Compute the normal of a triangle. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | 19 | #ifndef GLM_ENABLE_EXPERIMENTAL 20 | # error "GLM: GLM_GTX_normal is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 21 | #endif 22 | 23 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 24 | # pragma message("GLM: GLM_GTX_normal extension included") 25 | #endif 26 | 27 | namespace glm 28 | { 29 | /// @addtogroup gtx_normal 30 | /// @{ 31 | 32 | /// Computes triangle normal from triangle points. 33 | /// 34 | /// @see gtx_normal 35 | template 36 | GLM_FUNC_DECL vec<3, T, Q> triangleNormal(vec<3, T, Q> const& p1, vec<3, T, Q> const& p2, vec<3, T, Q> const& p3); 37 | 38 | /// @} 39 | }//namespace glm 40 | 41 | #include "normal.inl" 42 | -------------------------------------------------------------------------------- /external/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | /// @file glm/gtx/normal.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vec<3, T, Q> triangleNormal 8 | ( 9 | vec<3, T, Q> const& p1, 10 | vec<3, T, Q> const& p2, 11 | vec<3, T, Q> const& p3 12 | ) 13 | { 14 | return normalize(cross(p1 - p2, p1 - p3)); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /external/glm/gtx/normalize_dot.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normalize_dot 2 | /// @file glm/gtx/normalize_dot.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER T normalizeDot(vec const& x, vec const& y) 8 | { 9 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vec const& x, vec const& y) 14 | { 15 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y)); 16 | } 17 | }//namespace glm 18 | -------------------------------------------------------------------------------- /external/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_number_precision 2 | /// @file glm/gtx/number_precision.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /external/glm/gtx/optimum_pow.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | /// @file glm/gtx/optimum_pow.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_optimum_pow GLM_GTX_optimum_pow 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Integer exponentiation of power functions. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #ifndef GLM_ENABLE_EXPERIMENTAL 19 | # error "GLM: GLM_GTX_optimum_pow is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 20 | #endif 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTX_optimum_pow extension included") 24 | #endif 25 | 26 | namespace glm{ 27 | namespace gtx 28 | { 29 | /// @addtogroup gtx_optimum_pow 30 | /// @{ 31 | 32 | /// Returns x raised to the power of 2. 33 | /// 34 | /// @see gtx_optimum_pow 35 | template 36 | GLM_FUNC_DECL genType pow2(genType const& x); 37 | 38 | /// Returns x raised to the power of 3. 39 | /// 40 | /// @see gtx_optimum_pow 41 | template 42 | GLM_FUNC_DECL genType pow3(genType const& x); 43 | 44 | /// Returns x raised to the power of 4. 45 | /// 46 | /// @see gtx_optimum_pow 47 | template 48 | GLM_FUNC_DECL genType pow4(genType const& x); 49 | 50 | /// @} 51 | }//namespace gtx 52 | }//namespace glm 53 | 54 | #include "optimum_pow.inl" 55 | -------------------------------------------------------------------------------- /external/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | /// @file glm/gtx/optimum_pow.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType pow2(genType const& x) 8 | { 9 | return x * x; 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER genType pow3(genType const& x) 14 | { 15 | return x * x * x; 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER genType pow4(genType const& x) 20 | { 21 | return (x * x) * (x * x); 22 | } 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /external/glm/gtx/orthonormalize.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | /// @file glm/gtx/orthonormalize.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_extented_min_max (dependence) 6 | /// 7 | /// @defgroup gtx_orthonormalize GLM_GTX_orthonormalize 8 | /// @ingroup gtx 9 | /// 10 | /// Include to use the features of this extension. 11 | /// 12 | /// Orthonormalize matrices. 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../vec3.hpp" 18 | #include "../mat3x3.hpp" 19 | #include "../geometric.hpp" 20 | 21 | #ifndef GLM_ENABLE_EXPERIMENTAL 22 | # error "GLM: GLM_GTX_orthonormalize is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 23 | #endif 24 | 25 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 26 | # pragma message("GLM: GLM_GTX_orthonormalize extension included") 27 | #endif 28 | 29 | namespace glm 30 | { 31 | /// @addtogroup gtx_orthonormalize 32 | /// @{ 33 | 34 | /// Returns the orthonormalized matrix of m. 35 | /// 36 | /// @see gtx_orthonormalize 37 | template 38 | GLM_FUNC_DECL mat<3, 3, T, Q> orthonormalize(mat<3, 3, T, Q> const& m); 39 | 40 | /// Orthonormalizes x according y. 41 | /// 42 | /// @see gtx_orthonormalize 43 | template 44 | GLM_FUNC_DECL vec<3, T, Q> orthonormalize(vec<3, T, Q> const& x, vec<3, T, Q> const& y); 45 | 46 | /// @} 47 | }//namespace glm 48 | 49 | #include "orthonormalize.inl" 50 | -------------------------------------------------------------------------------- /external/glm/gtx/orthonormalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | /// @file glm/gtx/orthonormalize.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> orthonormalize(mat<3, 3, T, Q> const& m) 8 | { 9 | mat<3, 3, T, Q> r = m; 10 | 11 | r[0] = normalize(r[0]); 12 | 13 | T d0 = dot(r[0], r[1]); 14 | r[1] -= r[0] * d0; 15 | r[1] = normalize(r[1]); 16 | 17 | T d1 = dot(r[1], r[2]); 18 | d0 = dot(r[0], r[2]); 19 | r[2] -= r[0] * d0 + r[1] * d1; 20 | r[2] = normalize(r[2]); 21 | 22 | return r; 23 | } 24 | 25 | template 26 | GLM_FUNC_QUALIFIER vec<3, T, Q> orthonormalize(vec<3, T, Q> const& x, vec<3, T, Q> const& y) 27 | { 28 | return normalize(x - y * dot(y, x)); 29 | } 30 | }//namespace glm 31 | -------------------------------------------------------------------------------- /external/glm/gtx/perpendicular.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | /// @file glm/gtx/perpendicular.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// @see gtx_projection (dependence) 6 | /// 7 | /// @defgroup gtx_perpendicular GLM_GTX_perpendicular 8 | /// @ingroup gtx 9 | /// 10 | /// Include to use the features of this extension. 11 | /// 12 | /// Perpendicular of a vector from other one 13 | 14 | #pragma once 15 | 16 | // Dependency: 17 | #include "../glm.hpp" 18 | #include "../gtx/projection.hpp" 19 | 20 | #ifndef GLM_ENABLE_EXPERIMENTAL 21 | # error "GLM: GLM_GTX_perpendicular is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 22 | #endif 23 | 24 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 25 | # pragma message("GLM: GLM_GTX_perpendicular extension included") 26 | #endif 27 | 28 | namespace glm 29 | { 30 | /// @addtogroup gtx_perpendicular 31 | /// @{ 32 | 33 | //! Projects x a perpendicular axis of Normal. 34 | //! From GLM_GTX_perpendicular extension. 35 | template 36 | GLM_FUNC_DECL genType perp(genType const& x, genType const& Normal); 37 | 38 | /// @} 39 | }//namespace glm 40 | 41 | #include "perpendicular.inl" 42 | -------------------------------------------------------------------------------- /external/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | /// @file glm/gtx/perpendicular.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType perp(genType const& x, genType const& Normal) 8 | { 9 | return x - proj(x, Normal); 10 | } 11 | }//namespace glm 12 | -------------------------------------------------------------------------------- /external/glm/gtx/polar_coordinates.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_polar_coordinates 2 | /// @file glm/gtx/polar_coordinates.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_polar_coordinates GLM_GTX_polar_coordinates 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Conversion from Euclidean space to polar space and revert. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #ifndef GLM_ENABLE_EXPERIMENTAL 19 | # error "GLM: GLM_GTX_polar_coordinates is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 20 | #endif 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTX_polar_coordinates extension included") 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtx_polar_coordinates 29 | /// @{ 30 | 31 | /// Convert Euclidean to Polar coordinates, x is the xz distance, y, the latitude and z the longitude. 32 | /// 33 | /// @see gtx_polar_coordinates 34 | template 35 | GLM_FUNC_DECL vec<3, T, Q> polar( 36 | vec<3, T, Q> const& euclidean); 37 | 38 | /// Convert Polar to Euclidean coordinates. 39 | /// 40 | /// @see gtx_polar_coordinates 41 | template 42 | GLM_FUNC_DECL vec<3, T, Q> euclidean( 43 | vec<2, T, Q> const& polar); 44 | 45 | /// @} 46 | }//namespace glm 47 | 48 | #include "polar_coordinates.inl" 49 | -------------------------------------------------------------------------------- /external/glm/gtx/polar_coordinates.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_polar_coordinates 2 | /// @file glm/gtx/polar_coordinates.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER vec<3, T, Q> polar 8 | ( 9 | vec<3, T, Q> const& euclidean 10 | ) 11 | { 12 | T const Length(length(euclidean)); 13 | vec<3, T, Q> const tmp(euclidean / Length); 14 | T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z)); 15 | 16 | return vec<3, T, Q>( 17 | asin(tmp.y), // latitude 18 | atan(tmp.x, tmp.z), // longitude 19 | xz_dist); // xz distance 20 | } 21 | 22 | template 23 | GLM_FUNC_QUALIFIER vec<3, T, Q> euclidean 24 | ( 25 | vec<2, T, Q> const& polar 26 | ) 27 | { 28 | T const latitude(polar.x); 29 | T const longitude(polar.y); 30 | 31 | return vec<3, T, Q>( 32 | cos(latitude) * sin(longitude), 33 | sin(latitude), 34 | cos(latitude) * cos(longitude)); 35 | } 36 | 37 | }//namespace glm 38 | -------------------------------------------------------------------------------- /external/glm/gtx/projection.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | /// @file glm/gtx/projection.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_projection GLM_GTX_projection 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Projection of a vector to other one 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../geometric.hpp" 17 | 18 | #ifndef GLM_ENABLE_EXPERIMENTAL 19 | # error "GLM: GLM_GTX_projection is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 20 | #endif 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTX_projection extension included") 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtx_projection 29 | /// @{ 30 | 31 | /// Projects x on Normal. 32 | /// 33 | /// @see gtx_projection 34 | template 35 | GLM_FUNC_DECL genType proj(genType const& x, genType const& Normal); 36 | 37 | /// @} 38 | }//namespace glm 39 | 40 | #include "projection.inl" 41 | -------------------------------------------------------------------------------- /external/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | /// @file glm/gtx/projection.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER genType proj(genType const& x, genType const& Normal) 8 | { 9 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 10 | } 11 | }//namespace glm 12 | -------------------------------------------------------------------------------- /external/glm/gtx/raw_data.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | /// @file glm/gtx/raw_data.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_raw_data GLM_GTX_raw_data 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Projection of a vector to other one 12 | 13 | #pragma once 14 | 15 | // Dependencies 16 | #include "../detail/setup.hpp" 17 | #include "../detail/type_int.hpp" 18 | 19 | #ifndef GLM_ENABLE_EXPERIMENTAL 20 | # error "GLM: GLM_GTX_raw_data is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 21 | #endif 22 | 23 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 24 | # pragma message("GLM: GLM_GTX_raw_data extension included") 25 | #endif 26 | 27 | namespace glm 28 | { 29 | /// @addtogroup gtx_raw_data 30 | /// @{ 31 | 32 | //! Type for byte numbers. 33 | //! From GLM_GTX_raw_data extension. 34 | typedef detail::uint8 byte; 35 | 36 | //! Type for word numbers. 37 | //! From GLM_GTX_raw_data extension. 38 | typedef detail::uint16 word; 39 | 40 | //! Type for dword numbers. 41 | //! From GLM_GTX_raw_data extension. 42 | typedef detail::uint32 dword; 43 | 44 | //! Type for qword numbers. 45 | //! From GLM_GTX_raw_data extension. 46 | typedef detail::uint64 qword; 47 | 48 | /// @} 49 | }// namespace glm 50 | 51 | #include "raw_data.inl" 52 | -------------------------------------------------------------------------------- /external/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | /// @file glm/gtx/raw_data.inl 3 | -------------------------------------------------------------------------------- /external/glm/gtx/scalar_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_scalar_relational 2 | /// @file glm/gtx/scalar_relational.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Extend a position from a source to a position at a defined length. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #ifndef GLM_ENABLE_EXPERIMENTAL 19 | # error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 20 | #endif 21 | 22 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 23 | # pragma message("GLM: GLM_GTX_extend extension included") 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtx_scalar_relational 29 | /// @{ 30 | 31 | 32 | 33 | /// @} 34 | }//namespace glm 35 | 36 | #include "scalar_relational.inl" 37 | -------------------------------------------------------------------------------- /external/glm/gtx/scalar_relational.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_scalar_relational 2 | /// @file glm/gtx/scalar_relational.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER bool lessThan 8 | ( 9 | T const& x, 10 | T const& y 11 | ) 12 | { 13 | return x < y; 14 | } 15 | 16 | template 17 | GLM_FUNC_QUALIFIER bool lessThanEqual 18 | ( 19 | T const& x, 20 | T const& y 21 | ) 22 | { 23 | return x <= y; 24 | } 25 | 26 | template 27 | GLM_FUNC_QUALIFIER bool greaterThan 28 | ( 29 | T const& x, 30 | T const& y 31 | ) 32 | { 33 | return x > y; 34 | } 35 | 36 | template 37 | GLM_FUNC_QUALIFIER bool greaterThanEqual 38 | ( 39 | T const& x, 40 | T const& y 41 | ) 42 | { 43 | return x >= y; 44 | } 45 | 46 | template 47 | GLM_FUNC_QUALIFIER bool equal 48 | ( 49 | T const& x, 50 | T const& y 51 | ) 52 | { 53 | return detail::compute_equal::call(x, y); 54 | } 55 | 56 | template 57 | GLM_FUNC_QUALIFIER bool notEqual 58 | ( 59 | T const& x, 60 | T const& y 61 | ) 62 | { 63 | return !detail::compute_equal::call(x, y); 64 | } 65 | 66 | GLM_FUNC_QUALIFIER bool any 67 | ( 68 | bool const& x 69 | ) 70 | { 71 | return x; 72 | } 73 | 74 | GLM_FUNC_QUALIFIER bool all 75 | ( 76 | bool const& x 77 | ) 78 | { 79 | return x; 80 | } 81 | 82 | GLM_FUNC_QUALIFIER bool not_ 83 | ( 84 | bool const& x 85 | ) 86 | { 87 | return !x; 88 | } 89 | }//namespace glm 90 | -------------------------------------------------------------------------------- /external/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_std_based_type 2 | /// @file glm/gtx/std_based_type.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /external/glm/gtx/texture.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_texture 2 | /// @file glm/gtx/texture.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_texture GLM_GTX_texture 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Wrapping mode of texture coordinates. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | #include "../gtc/integer.hpp" 18 | #include "../gtx/component_wise.hpp" 19 | 20 | #ifndef GLM_ENABLE_EXPERIMENTAL 21 | # error "GLM: GLM_GTX_texture is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." 22 | #endif 23 | 24 | #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 25 | # pragma message("GLM: GLM_GTX_texture extension included") 26 | #endif 27 | 28 | namespace glm 29 | { 30 | /// @addtogroup gtx_texture 31 | /// @{ 32 | 33 | /// Compute the number of mipmaps levels necessary to create a mipmap complete texture 34 | /// 35 | /// @param Extent Extent of the texture base level mipmap 36 | /// @tparam L Integer between 1 and 4 included that qualify the dimension of the vector 37 | /// @tparam T Floating-point or signed integer scalar types 38 | /// @tparam Q Value from qualifier enum 39 | template 40 | T levels(vec const& Extent); 41 | 42 | /// @} 43 | }// namespace glm 44 | 45 | #include "texture.inl" 46 | 47 | -------------------------------------------------------------------------------- /external/glm/gtx/texture.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_texture 2 | /// @file glm/gtx/texture.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | inline T levels(vec const& Extent) 8 | { 9 | return glm::log2(compMax(Extent)) + static_cast(1); 10 | } 11 | 12 | template 13 | inline T levels(T Extent) 14 | { 15 | return vec<1, T, defaultp>(Extent).x; 16 | } 17 | }//namespace glm 18 | 19 | -------------------------------------------------------------------------------- /external/glm/gtx/transform.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_transform 2 | /// @file glm/gtx/transform.inl 3 | 4 | namespace glm 5 | { 6 | template 7 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> translate(vec<3, T, Q> const& v) 8 | { 9 | return translate(mat<4, 4, T, Q>(static_cast(1)), v); 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> rotate(T angle, vec<3, T, Q> const& v) 14 | { 15 | return rotate(mat<4, 4, T, Q>(static_cast(1)), angle, v); 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> scale(vec<3, T, Q> const& v) 20 | { 21 | return scale(mat<4, 4, T, Q>(static_cast(1)), v); 22 | } 23 | 24 | }//namespace glm 25 | -------------------------------------------------------------------------------- /external/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_type_aligned 2 | /// @file glm/gtc/type_aligned.inl 3 | 4 | namespace glm 5 | { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /external/glm/gtx/type_trait.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andy-thomason/Vookoo/d24318c9bf9dbbd38c596353bd7f9eacbab0e862/external/glm/gtx/type_trait.inl -------------------------------------------------------------------------------- /external/glm/simd/exponential.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/experimental.h 3 | 4 | #pragma once 5 | 6 | #include "platform.h" 7 | 8 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec1_sqrt_lowp(glm_vec4 x) 11 | { 12 | return _mm_mul_ss(_mm_rsqrt_ss(x), x); 13 | } 14 | 15 | GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_sqrt_lowp(glm_vec4 x) 16 | { 17 | return _mm_mul_ps(_mm_rsqrt_ps(x), x); 18 | } 19 | 20 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 21 | -------------------------------------------------------------------------------- /external/glm/simd/packing.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/packing.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /external/glm/simd/trigonometric.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/trigonometric.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | -------------------------------------------------------------------------------- /external/glm/simd/vector_relational.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/vector_relational.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /external/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec2.hpp 3 | 4 | #include "detail/setup.hpp" 5 | 6 | #pragma once 7 | 8 | #include "detail/type_vec2.hpp" 9 | -------------------------------------------------------------------------------- /external/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec3.hpp 3 | 4 | #include "detail/setup.hpp" 5 | 6 | #pragma once 7 | 8 | #include "detail/type_vec3.hpp" 9 | -------------------------------------------------------------------------------- /external/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec4.hpp 3 | 4 | #include "detail/setup.hpp" 5 | 6 | #pragma once 7 | 8 | #include "detail/type_vec4.hpp" 9 | --------------------------------------------------------------------------------