├── .clang-format ├── .github └── workflows │ └── ccpp.yml ├── .gitmodules ├── CMakeLists.txt ├── LICENSE ├── Makefile ├── README.md ├── cmake ├── ClangClCMakeCompileRules.cmake ├── aarch64-linux-gnu.toolchain ├── clang-cl-msvc-windows.cmake ├── clang-cl-msvc-wsl.cmake ├── ios.toolchain.cmake ├── llvm-mingw-cross.cmake ├── llvm-mingw-win64.cmake ├── mingw64-cross.cmake └── sanitizers │ ├── FindASan.cmake │ ├── FindMSan.cmake │ ├── FindSanitizers.cmake │ ├── FindTSan.cmake │ ├── FindUBSan.cmake │ ├── asan-wrapper │ └── sanitize-helpers.cmake ├── data ├── sphere-div1.vdb └── sphere-div2.vdb ├── doc └── fileformat.md ├── examples ├── common │ ├── LICENSE.clipp │ ├── clipp.h │ ├── cmake │ │ ├── FindASan.cmake │ │ ├── FindGLFW.cmake │ │ ├── FindMSan.cmake │ │ ├── FindSanitizers.cmake │ │ ├── FindTSan.cmake │ │ ├── FindUBSan.cmake │ │ ├── FindWayland.cmake │ │ ├── FindXCB.cmake │ │ ├── asan-wrapper │ │ ├── cotire.cmake │ │ ├── mingw64-cross.cmake │ │ └── sanitize-helpers.cmake │ ├── glad │ │ ├── include │ │ │ ├── KHR │ │ │ │ └── khrplatform.h │ │ │ └── glad │ │ │ │ └── glad.h │ │ └── src │ │ │ └── glad.c │ ├── glfw-3.3.1 │ │ ├── CMake │ │ │ ├── GenerateMappings.cmake │ │ │ ├── MacOSXBundleInfo.plist.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 │ │ ├── cmake_uninstall.cmake.in │ │ ├── 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 │ │ │ ├── html │ │ │ │ ├── bc_s.png │ │ │ │ ├── bdwn.png │ │ │ │ ├── bug.html │ │ │ │ ├── build_8dox.html │ │ │ │ ├── build_guide.html │ │ │ │ ├── closed.png │ │ │ │ ├── compat_8dox.html │ │ │ │ ├── compat_guide.html │ │ │ │ ├── compile_8dox.html │ │ │ │ ├── compile_guide.html │ │ │ │ ├── context_8dox.html │ │ │ │ ├── context_guide.html │ │ │ │ ├── deprecated.html │ │ │ │ ├── dir_5dcdc111a8cc46b7ba079b758fca78dc.html │ │ │ │ ├── dir_8e024bada8281d1e35d4f557736ec981.html │ │ │ │ ├── dir_c41baed9597671ff1a15b37f0402add0.html │ │ │ │ ├── dir_cadcc4232541fc0fdfafe7052b4d94e2.html │ │ │ │ ├── doc.png │ │ │ │ ├── doxygen.css │ │ │ │ ├── doxygen.png │ │ │ │ ├── dynsections.js │ │ │ │ ├── extra.css │ │ │ │ ├── files.html │ │ │ │ ├── folderclosed.png │ │ │ │ ├── folderopen.png │ │ │ │ ├── glfw3_8h.html │ │ │ │ ├── glfw3_8h_source.html │ │ │ │ ├── glfw3native_8h.html │ │ │ │ ├── glfw3native_8h_source.html │ │ │ │ ├── group__buttons.html │ │ │ │ ├── group__context.html │ │ │ │ ├── group__errors.html │ │ │ │ ├── group__gamepad__axes.html │ │ │ │ ├── group__gamepad__buttons.html │ │ │ │ ├── group__hat__state.html │ │ │ │ ├── group__init.html │ │ │ │ ├── group__input.html │ │ │ │ ├── group__joysticks.html │ │ │ │ ├── group__keys.html │ │ │ │ ├── group__mods.html │ │ │ │ ├── group__monitor.html │ │ │ │ ├── group__native.html │ │ │ │ ├── group__shapes.html │ │ │ │ ├── group__vulkan.html │ │ │ │ ├── group__window.html │ │ │ │ ├── index.html │ │ │ │ ├── input_8dox.html │ │ │ │ ├── input_guide.html │ │ │ │ ├── internal_8dox.html │ │ │ │ ├── internals_guide.html │ │ │ │ ├── intro_8dox.html │ │ │ │ ├── intro_guide.html │ │ │ │ ├── jquery.js │ │ │ │ ├── main_8dox.html │ │ │ │ ├── menu.js │ │ │ │ ├── menudata.js │ │ │ │ ├── modules.html │ │ │ │ ├── monitor_8dox.html │ │ │ │ ├── monitor_guide.html │ │ │ │ ├── moving_8dox.html │ │ │ │ ├── moving_guide.html │ │ │ │ ├── nav_f.png │ │ │ │ ├── nav_g.png │ │ │ │ ├── nav_h.png │ │ │ │ ├── news.html │ │ │ │ ├── news_8dox.html │ │ │ │ ├── open.png │ │ │ │ ├── pages.html │ │ │ │ ├── quick_8dox.html │ │ │ │ ├── quick_guide.html │ │ │ │ ├── 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_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 │ │ │ │ │ ├── close.png │ │ │ │ │ ├── defines_0.html │ │ │ │ │ ├── defines_0.js │ │ │ │ │ ├── files_0.html │ │ │ │ │ ├── files_0.js │ │ │ │ │ ├── files_1.html │ │ │ │ │ ├── files_1.js │ │ │ │ │ ├── files_2.html │ │ │ │ │ ├── files_2.js │ │ │ │ │ ├── files_3.html │ │ │ │ │ ├── files_3.js │ │ │ │ │ ├── files_4.html │ │ │ │ │ ├── files_4.js │ │ │ │ │ ├── files_5.html │ │ │ │ │ ├── files_5.js │ │ │ │ │ ├── files_6.html │ │ │ │ │ ├── files_6.js │ │ │ │ │ ├── files_7.html │ │ │ │ │ ├── files_7.js │ │ │ │ │ ├── files_8.html │ │ │ │ │ ├── files_8.js │ │ │ │ │ ├── functions_0.html │ │ │ │ │ ├── functions_0.js │ │ │ │ │ ├── groups_0.html │ │ │ │ │ ├── groups_0.js │ │ │ │ │ ├── groups_1.html │ │ │ │ │ ├── groups_1.js │ │ │ │ │ ├── groups_2.html │ │ │ │ │ ├── groups_2.js │ │ │ │ │ ├── groups_3.html │ │ │ │ │ ├── groups_3.js │ │ │ │ │ ├── groups_4.html │ │ │ │ │ ├── groups_4.js │ │ │ │ │ ├── groups_5.html │ │ │ │ │ ├── groups_5.js │ │ │ │ │ ├── groups_6.html │ │ │ │ │ ├── groups_6.js │ │ │ │ │ ├── groups_7.html │ │ │ │ │ ├── groups_7.js │ │ │ │ │ ├── groups_8.html │ │ │ │ │ ├── groups_8.js │ │ │ │ │ ├── groups_9.html │ │ │ │ │ ├── groups_9.js │ │ │ │ │ ├── groups_a.html │ │ │ │ │ ├── groups_a.js │ │ │ │ │ ├── mag_sel.png │ │ │ │ │ ├── nomatches.html │ │ │ │ │ ├── pages_0.html │ │ │ │ │ ├── pages_0.js │ │ │ │ │ ├── pages_1.html │ │ │ │ │ ├── pages_1.js │ │ │ │ │ ├── pages_2.html │ │ │ │ │ ├── pages_2.js │ │ │ │ │ ├── pages_3.html │ │ │ │ │ ├── pages_3.js │ │ │ │ │ ├── pages_4.html │ │ │ │ │ ├── pages_4.js │ │ │ │ │ ├── pages_5.html │ │ │ │ │ ├── pages_5.js │ │ │ │ │ ├── pages_6.html │ │ │ │ │ ├── pages_6.js │ │ │ │ │ ├── pages_7.html │ │ │ │ │ ├── pages_7.js │ │ │ │ │ ├── pages_8.html │ │ │ │ │ ├── pages_8.js │ │ │ │ │ ├── pages_9.html │ │ │ │ │ ├── pages_9.js │ │ │ │ │ ├── pages_a.html │ │ │ │ │ ├── pages_a.js │ │ │ │ │ ├── search.css │ │ │ │ │ ├── search.js │ │ │ │ │ ├── search_l.png │ │ │ │ │ ├── search_m.png │ │ │ │ │ ├── search_r.png │ │ │ │ │ ├── searchdata.js │ │ │ │ │ ├── typedefs_0.html │ │ │ │ │ ├── typedefs_0.js │ │ │ │ │ ├── variables_0.html │ │ │ │ │ ├── variables_0.js │ │ │ │ │ ├── variables_1.html │ │ │ │ │ ├── variables_1.js │ │ │ │ │ ├── variables_2.html │ │ │ │ │ ├── variables_2.js │ │ │ │ │ ├── variables_3.html │ │ │ │ │ ├── variables_3.js │ │ │ │ │ ├── variables_4.html │ │ │ │ │ ├── variables_4.js │ │ │ │ │ ├── variables_5.html │ │ │ │ │ ├── variables_5.js │ │ │ │ │ ├── variables_6.html │ │ │ │ │ ├── variables_6.js │ │ │ │ │ ├── variables_7.html │ │ │ │ │ └── variables_7.js │ │ │ │ ├── spaces.svg │ │ │ │ ├── splitbar.png │ │ │ │ ├── structGLFWgamepadstate.html │ │ │ │ ├── structGLFWgammaramp.html │ │ │ │ ├── structGLFWimage.html │ │ │ │ ├── structGLFWvidmode.html │ │ │ │ ├── sync_off.png │ │ │ │ ├── sync_on.png │ │ │ │ ├── tab_a.png │ │ │ │ ├── tab_b.png │ │ │ │ ├── tab_h.png │ │ │ │ ├── tab_s.png │ │ │ │ ├── tabs.css │ │ │ │ ├── vulkan_8dox.html │ │ │ │ ├── vulkan_guide.html │ │ │ │ ├── window_8dox.html │ │ │ │ └── window_guide.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 │ │ │ ├── simple.c │ │ │ ├── splitview.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 │ │ │ ├── glfw3.pc.in │ │ │ ├── glfw3Config.cmake.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 │ ├── imgui │ │ ├── IconsIonicons.h │ │ ├── LICENSE.roboto_mono_embed.md │ │ ├── imconfig.h │ │ ├── imgui.cpp │ │ ├── imgui.h │ │ ├── imgui_draw.cpp │ │ ├── imgui_impl_glfw.cpp │ │ ├── imgui_impl_glfw.h │ │ ├── imgui_impl_opengl2.cpp │ │ ├── imgui_impl_opengl2.h │ │ ├── imgui_impl_opengl3.cpp │ │ ├── imgui_impl_opengl3.h │ │ ├── imgui_internal.h │ │ ├── imgui_widgets.cpp │ │ ├── imstb_rectpack.h │ │ ├── imstb_textedit.h │ │ ├── imstb_truetype.h │ │ ├── ionic_icons_license.mit.txt │ │ ├── ionicons_embed.inc.h │ │ └── roboto_mono_embed.inc.h │ ├── trackball.cc │ └── trackball.h ├── openvdb2nanovdb │ ├── CMakeLists.txt │ └── openvdb2nanovdb.cc ├── openvkl │ └── README.md ├── vdb2vtk │ ├── LICENSE.SimpleVTK │ ├── Makefile │ ├── README.md │ ├── simple_vtk.hpp │ └── vdb2vtk.cc ├── vdbdump │ ├── CMakeLists.txt │ └── vdbdump.cc └── viewer │ ├── CMakeLists.txt │ ├── README.md │ ├── main.cc │ └── scripts │ └── bootstrap-linux.sh ├── lgtm.yaml ├── nanovdb ├── CMakeLists.txt ├── CNanoVDB.h ├── NanoVDB.h ├── PNanoVDB.h ├── Readme.md ├── cmd │ ├── CMakeLists.txt │ ├── convert │ │ └── nanovdb_convert.cc │ ├── print │ │ └── nanovdb_print.cc │ └── validate │ │ └── nanovdb_validate.cc ├── docs │ ├── CMakeLists.txt │ ├── codingstyle.txt │ └── doxygen-config ├── examples │ ├── CMakeLists.txt │ ├── benchmark │ │ ├── BenchKernels_dense.cu │ │ ├── BenchKernels_nano.cu │ │ ├── Benchmark.cc │ │ ├── Benchmark_dense.cc │ │ ├── Benchmark_nano.cc │ │ ├── CMakeLists.txt │ │ ├── Camera.h │ │ ├── DenseGrid.h │ │ └── Image.h │ ├── ex_bump_pool_buffer │ │ └── bump_pool_buffer.cc │ ├── ex_collide_level_set │ │ ├── common.h │ │ ├── main.cc │ │ ├── nanovdb.cu │ │ └── openvdb.cc │ ├── ex_make_custom_nanovdb │ │ └── make_custom_nanovdb.cc │ ├── ex_make_funny_nanovdb │ │ └── make_funny_nanovdb.cc │ ├── ex_make_nanovdb_sphere │ │ └── make_nanovdb_sphere.cc │ ├── ex_make_typed_grids │ │ └── make_typed_grids.cc │ ├── ex_map_pool_buffer │ │ └── map_pool_buffer.cc │ ├── ex_modify_nanovdb_thrust │ │ └── modify_nanovdb_thrust.cu │ ├── ex_openvdb_to_nanovdb │ │ └── openvdb_to_nanovdb.cc │ ├── ex_openvdb_to_nanovdb_accessor │ │ └── openvdb_to_nanovdb_accessor.cc │ ├── ex_openvdb_to_nanovdb_cuda │ │ ├── openvdb_to_nanovdb_cuda.cc │ │ └── openvdb_to_nanovdb_cuda.cu │ ├── ex_raytrace_fog_volume │ │ ├── common.h │ │ ├── main.cc │ │ ├── nanovdb.cu │ │ └── openvdb.cc │ ├── ex_raytrace_level_set │ │ ├── common.h │ │ ├── main.cc │ │ ├── nanovdb.cu │ │ └── openvdb.cc │ ├── ex_read_nanovdb_sphere │ │ └── read_nanovdb_sphere.cc │ ├── ex_read_nanovdb_sphere_accessor │ │ └── read_nanovdb_sphere_accessor.cc │ ├── ex_read_nanovdb_sphere_accessor_cuda │ │ ├── read_nanovdb_sphere_accessor_cuda.cc │ │ └── read_nanovdb_sphere_accessor_cuda.cu │ ├── ex_util │ │ ├── ComputePrimitives.h │ │ └── CpuTimer.h │ ├── ex_vox_to_nanovdb │ │ ├── VoxToNanoVDB.h │ │ └── vox_to_nanovdb.cc │ └── ex_write_nanovdb_grids │ │ └── write_nanovdb_grids.cc ├── unittest │ ├── CMakeLists.txt │ ├── TestNanoVDB.cc │ ├── TestOpenVDB.cc │ └── pnanovdb_validate_strides.h └── util │ ├── CSampleFromVoxels.h │ ├── CudaDeviceBuffer.h │ ├── DitherLUT.h │ ├── ForEach.h │ ├── GridBuilder.h │ ├── GridChecksum.h │ ├── GridHandle.h │ ├── GridStats.h │ ├── GridValidator.h │ ├── HDDA.h │ ├── HostBuffer.h │ ├── IO.h │ ├── Invoke.h │ ├── NanoToOpenVDB.h │ ├── NodeManager.h │ ├── OpenToNanoVDB.h │ ├── Primitives.h │ ├── Range.h │ ├── Ray.h │ ├── Reduce.h │ ├── SampleFromVoxels.h │ └── Stencils.h ├── scripts ├── bootstrap-aarch64-ios.sh ├── bootstrap-android-cmake-linux.sh ├── bootstrap-clang-cl-wsl.sh ├── bootstrap-cmake-linux.sh ├── bootstrap-cmake-llvm-mingw-cross.sh ├── bootstrap-cmake-mingw-gcc-cross.sh ├── bootstrap-gcc-4.8.sh └── bootstrap-gcc-aarch64-cross.sh ├── src ├── miniz.c ├── miniz.h ├── tinyvdbio.cc └── tinyvdbio.h ├── tests └── loader-test.cc └── vcsetup-2019.bat /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | BasedOnStyle: Google 3 | IndentWidth: 2 4 | TabWidth: 2 5 | UseTab: Never 6 | BreakBeforeBraces: Attach 7 | Standard: Cpp11 8 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "third_party/c-blosc"] 2 | path = third_party/c-blosc 3 | url = https://github.com/Blosc/c-blosc.git 4 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # BLOSC master 2 | BLOSC_INC=-I./third_party/c-blosc/blosc 3 | BLOSC_LIB=./third_party/c-blosc/build/blosc/libblosc.a 4 | 5 | # BLOSC v1.5 6 | # BLOSC_INC=-I./third_party/c-blosc/blosc 7 | # BLOSC_LIB=./third_party/c-blosc/build/blosc/libblosc.a -lz -llz4 -lsnappy 8 | 9 | 10 | ## NODEP version 11 | #all: 12 | # clang -Wno-#pragma-messages -c -g -O2 miniz.c 13 | # clang++ -o loader_test -fsanitize=address -O2 -g -Weverything -Werror -Wno-c++98-compat loader-test.cc miniz.o 14 | 15 | # BLOSC(static lib) version 16 | 17 | all: 18 | clang -Wno-#pragma-messages -c -g -O1 src/miniz.c 19 | clang++ -o loader_test -DTINYVDBIO_USE_BLOSC $(BLOSC_INC) -I./src -O3 -g -Weverything -Werror -Wno-c++98-compat tests/loader-test.cc miniz.o $(BLOSC_LIB) -pthread 20 | -------------------------------------------------------------------------------- /cmake/ClangClCMakeCompileRules.cmake: -------------------------------------------------------------------------------- 1 | # macOS paths usually start with /Users/*. Unfortunately, clang-cl interprets 2 | # paths starting with /U as macro undefines, so we need to put a -- before the 3 | # input file path to force it to be treated as a path. CMake's compilation rules 4 | # should be tweaked accordingly, but until that's done, and to support older 5 | # CMake versions, overriding compilation rules works well enough. This file will 6 | # be included by cmake after the default compilation rules have already been set 7 | # up, so we can just modify them instead of duplicating them entirely. 8 | string(REPLACE "-c " "-c -- " CMAKE_C_COMPILE_OBJECT "${CMAKE_C_COMPILE_OBJECT}") 9 | string(REPLACE "-c " "-c -- " CMAKE_CXX_COMPILE_OBJECT "${CMAKE_CXX_COMPILE_OBJECT}") 10 | -------------------------------------------------------------------------------- /cmake/aarch64-linux-gnu.toolchain: -------------------------------------------------------------------------------- 1 | set(CMAKE_SYSTEM_NAME Linux) 2 | set(CMAKE_SYSTEM_PROCESSOR aarch64) 3 | set(CMAKE_C_COMPILER_TARGET aarch64-linux-gnu) 4 | 5 | set(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu/) 6 | 7 | # TODO(syoyo): Sync with GitHub Actions config 8 | set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc) 9 | set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++) 10 | 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 | set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) 15 | -------------------------------------------------------------------------------- /cmake/llvm-mingw-cross.cmake: -------------------------------------------------------------------------------- 1 | SET(CMAKE_SYSTEM_NAME Windows) 2 | 3 | IF (DEFINED ENV{LLVM_MINGW_DIR}) 4 | SET(LLVM_MINGW_ROOT "$ENV{LLVM_MINGW_DIR}") 5 | ELSE () 6 | SET(LLVM_MINGW_ROOT "/mnt/data/local/llvm-mingw-20200325-ubuntu-18.04") 7 | ENDIF() 8 | 9 | 10 | SET(CMAKE_C_COMPILER ${LLVM_MINGW_ROOT}/bin/x86_64-w64-mingw32-clang) 11 | SET(CMAKE_CXX_COMPILER ${LLVM_MINGW_ROOT}/bin/x86_64-w64-mingw32-clang++) 12 | SET(CMAKE_RC_COMPILER ${LLVM_MINGW_ROOT}/bin/x86_64-w64-mingw32-windres) 13 | 14 | #SET(CMAKE_C_LINK_EXECUTABLE x86_64-w64-mingw32-gcc) 15 | #SET(CMAKE_CXX_LINK_EXECUTABLE x86_64-w64-mingw32-g++) 16 | 17 | SET(CMAKE_FIND_ROOT_PATH ${LLVM_MINGW_ROOT}/x86_64-w64-mingw32) 18 | 19 | # We may need some advanced thread APIs to compile, so enable 0x601(Win7) if required. 20 | # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WIN32_WINNT=0x601") 21 | 22 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 23 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 24 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 25 | -------------------------------------------------------------------------------- /cmake/llvm-mingw-win64.cmake: -------------------------------------------------------------------------------- 1 | SET(CMAKE_SYSTEM_NAME Windows) 2 | 3 | IF (DEFINED ENV{LLVM_MINGW_DIR}) 4 | SET(LLVM_MINGW_ROOT "$ENV{LLVM_MINGW_DIR}") 5 | ELSE () 6 | SET(LLVM_MINGW_ROOT "C:/ProgramData/llvm-mingw") 7 | ENDIF() 8 | 9 | SET(CMAKE_C_COMPILER ${LLVM_MINGW_ROOT}/bin/x86_64-w64-mingw32-clang.exe) 10 | SET(CMAKE_CXX_COMPILER ${LLVM_MINGW_ROOT}/bin/x86_64-w64-mingw32-clang++.exe) 11 | SET(CMAKE_RC_COMPILER ${LLVM_MINGW_ROOT}/bin/x86_64-w64-mingw32-windres.exe) 12 | 13 | SET(CMAKE_FIND_ROOT_PATH ${LLVM_MINGW_ROOT}/x86_64-w64-mingw32) 14 | 15 | # We may need some advanced thread APIs to compile tinyusz. use 0x601(Win7) if required 16 | # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WIN32_WINNT=0x601") 17 | 18 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 19 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 20 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 21 | -------------------------------------------------------------------------------- /cmake/mingw64-cross.cmake: -------------------------------------------------------------------------------- 1 | SET(CMAKE_SYSTEM_NAME Windows) 2 | 3 | IF (DEFINED ENV{MINGW_GCC_DIR}) 4 | SET(MINGW_GCC_ROOT "$ENV{MINGW_GCC_DIR}") 5 | ELSE () 6 | # Assume mingw cross compiler is installed in your system 7 | SET(MINGW_GCC_ROOT "/usr") 8 | ENDIF() 9 | 10 | # win32 may fail to compile with C++11 threads. 11 | 12 | SET(CMAKE_C_COMPILER ${MINGW_GCC_ROOT}/bin/x86_64-w64-mingw32-gcc-posix) 13 | SET(CMAKE_CXX_COMPILER ${MINGW_GCC_ROOT}/bin/x86_64-w64-mingw32-g++-posix) 14 | SET(CMAKE_RC_COMPILER ${MINGW_GCC_ROOT}/bin/x86_64-w64-mingw32-windres) 15 | 16 | SET(CMAKE_FIND_ROOT_PATH ${MINGW_GCC_ROOT}/x86_64-w64-mingw32) 17 | 18 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 19 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 20 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 21 | -------------------------------------------------------------------------------- /cmake/sanitizers/FindUBSan.cmake: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | # 3 | # Copyright (c) 4 | # 2013 Matthew Arsenault 5 | # 2015-2016 RWTH Aachen University, Federal Republic of Germany 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice shall be included in all 15 | # copies or substantial portions of the Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | # SOFTWARE. 24 | 25 | option(SANITIZE_UNDEFINED 26 | "Enable UndefinedBehaviorSanitizer for sanitized targets." Off) 27 | 28 | set(FLAG_CANDIDATES 29 | "-g -fsanitize=undefined" 30 | ) 31 | 32 | 33 | include(sanitize-helpers) 34 | 35 | if (SANITIZE_UNDEFINED) 36 | sanitizer_check_compiler_flags("${FLAG_CANDIDATES}" 37 | "UndefinedBehaviorSanitizer" "UBSan") 38 | endif () 39 | 40 | function (add_sanitize_undefined TARGET) 41 | if (NOT SANITIZE_UNDEFINED) 42 | return() 43 | endif () 44 | 45 | sanitizer_add_flags(${TARGET} "UndefinedBehaviorSanitizer" "UBSan") 46 | endfunction () 47 | -------------------------------------------------------------------------------- /data/sphere-div1.vdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/data/sphere-div1.vdb -------------------------------------------------------------------------------- /data/sphere-div2.vdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/data/sphere-div2.vdb -------------------------------------------------------------------------------- /doc/fileformat.md: -------------------------------------------------------------------------------- 1 | # OpenVDB file format 2 | 3 | ## Header 4 | 5 | ``` 6 | typedef struct { 7 | uint32_t file_version; 8 | uint32_t major_version; 9 | uint32_t minor_version; 10 | // bool has_grid_offsets; 11 | bool is_compressed; 12 | bool half_precision; 13 | std::string uuid; 14 | uint64_t offset_to_data; // Byte offset to VDB data 15 | } VDBHeader; 16 | ``` 17 | 18 | * [0:7] Header magic number(8 bytes) 19 | * [8:11] Version(4 bytes) 20 | * version >= 211 21 | * major_version(uint32_t) 22 | * minor_version(uint32_t) 23 | * version >= 212 24 | * has_grid_offsets(char) 25 | * 220 <= version < 222 26 | * is_compressed(char) 27 | * uuid(32 chars + 4 hyphens('-') = 36 bytes) 28 | 29 | ## Version 30 | 31 | 220: `OPENVDB_FILE_VERSION_SELECTIVE_COMPRESSION` 32 | 33 | ## Tree structure 34 | 35 | Usually `FloatTree`(`tree::Tree4::Type` 36 | 37 | * 5 : Intermediate grid level 0. (32x32x32 cells) 38 | * 4 : Intermediate grid level 1. (16x16x16 cells) 39 | * 3 : Leaf grid (8x8x8 cells) 40 | 41 | So we could represent 4096x4096x4096 voxels 42 | 43 | Each grid is composed of `(2^N)^3` cells. 44 | 45 | 46 | ## Type 47 | 48 | * float(32bit float) 49 | * half(16bit half float) 50 | 51 | ## Intermediate 52 | 53 | T.B.W. 54 | 55 | ## Leaf 56 | 57 | * bitmask 58 | * actual data(data is tightly packed) 59 | * `sizeof(T) * bitmask.countOn()` 60 | -------------------------------------------------------------------------------- /examples/common/LICENSE.clipp: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 André Müller; foss@andremueller-online.de 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | 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, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /examples/common/cmake/FindUBSan.cmake: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | # 3 | # Copyright (c) 4 | # 2013 Matthew Arsenault 5 | # 2015-2016 RWTH Aachen University, Federal Republic of Germany 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice shall be included in all 15 | # copies or substantial portions of the Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | # SOFTWARE. 24 | 25 | option(SANITIZE_UNDEFINED 26 | "Enable UndefinedBehaviorSanitizer for sanitized targets." Off) 27 | 28 | set(FLAG_CANDIDATES 29 | "-g -fsanitize=undefined" 30 | ) 31 | 32 | 33 | include(sanitize-helpers) 34 | 35 | if (SANITIZE_UNDEFINED) 36 | sanitizer_check_compiler_flags("${FLAG_CANDIDATES}" 37 | "UndefinedBehaviorSanitizer" "UBSan") 38 | endif () 39 | 40 | function (add_sanitize_undefined TARGET) 41 | if (NOT SANITIZE_UNDEFINED) 42 | return() 43 | endif () 44 | 45 | saitizer_add_flags(${TARGET} "UndefinedBehaviorSanitizer" "UBSan") 46 | endfunction () 47 | -------------------------------------------------------------------------------- /examples/common/cmake/FindXCB.cmake: -------------------------------------------------------------------------------- 1 | # - FindXCB 2 | # 3 | # Copyright 2015 Valve Coporation 4 | 5 | find_package(PkgConfig) 6 | 7 | if(NOT XCB_FIND_COMPONENTS) 8 | set(XCB_FIND_COMPONENTS xcb) 9 | endif() 10 | 11 | include(FindPackageHandleStandardArgs) 12 | set(XCB_FOUND true) 13 | set(XCB_INCLUDE_DIRS "") 14 | set(XCB_LIBRARIES "") 15 | foreach(comp ${XCB_FIND_COMPONENTS}) 16 | # component name 17 | string(TOUPPER ${comp} compname) 18 | string(REPLACE "-" "_" compname ${compname}) 19 | # header name 20 | string(REPLACE "xcb-" "" headername xcb/${comp}.h) 21 | # library name 22 | set(libname ${comp}) 23 | 24 | pkg_check_modules(PC_${comp} QUIET ${comp}) 25 | 26 | find_path(${compname}_INCLUDE_DIR NAMES ${headername} 27 | HINTS 28 | ${PC_${comp}_INCLUDEDIR} 29 | ${PC_${comp}_INCLUDE_DIRS} 30 | ) 31 | 32 | find_library(${compname}_LIBRARY NAMES ${libname} 33 | HINTS 34 | ${PC_${comp}_LIBDIR} 35 | ${PC_${comp}_LIBRARY_DIRS} 36 | ) 37 | 38 | find_package_handle_standard_args(${comp} 39 | FOUND_VAR ${comp}_FOUND 40 | REQUIRED_VARS ${compname}_INCLUDE_DIR ${compname}_LIBRARY) 41 | mark_as_advanced(${compname}_INCLUDE_DIR ${compname}_LIBRARY) 42 | 43 | list(APPEND XCB_INCLUDE_DIRS ${${compname}_INCLUDE_DIR}) 44 | list(APPEND XCB_LIBRARIES ${${compname}_LIBRARY}) 45 | 46 | if(NOT ${comp}_FOUND) 47 | set(XCB_FOUND false) 48 | endif() 49 | endforeach() 50 | 51 | list(REMOVE_DUPLICATES XCB_INCLUDE_DIRS) -------------------------------------------------------------------------------- /examples/common/cmake/mingw64-cross.cmake: -------------------------------------------------------------------------------- 1 | SET(CMAKE_SYSTEM_NAME Windows) 2 | 3 | # win32 fails to compile with C++11 threads. 4 | 5 | SET(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc-posix) 6 | SET(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++-posix) 7 | SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) 8 | 9 | SET(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32) 10 | 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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/CMake/MacOSXBundleInfo.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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/cmake_uninstall.cmake.in: -------------------------------------------------------------------------------- 1 | 2 | if (NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") 3 | message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") 4 | endif() 5 | 6 | file(READ "@CMAKE_CURRENT_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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/footer.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/bc_s.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/bdwn.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/closed.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/doc.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/doxygen.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/folderclosed.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/folderopen.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/menudata.js: -------------------------------------------------------------------------------- 1 | /* 2 | @licstart The following is the entire license notice for the 3 | JavaScript code in this file. 4 | 5 | Copyright (C) 1997-2019 by Dimitri van Heesch 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of version 2 of the GNU General Public License as published by 9 | the Free Software Foundation 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License along 17 | with this program; if not, write to the Free Software Foundation, Inc., 18 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 19 | 20 | @licend The above is the entire license notice 21 | for the JavaScript code in this file 22 | */ 23 | var menudata={children:[ 24 | {text:"Introduction",url:"index.html"}, 25 | {text:"Tutorial",url:"quick_guide.html"}, 26 | {text:"Guides",url:"pages.html"}, 27 | {text:"Reference",url:"modules.html"}, 28 | {text:"Files",url:"files.html"}]} 29 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/nav_f.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/nav_g.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/nav_h.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/open.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['axes_0',['axes',['../structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189',1,'GLFWgamepadstate']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['blue_1',['blue',['../structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b',1,'GLFWgammaramp']]], 4 | ['bluebits_2',['blueBits',['../structGLFWvidmode.html#af310977f58d2e3b188175b6e3d314047',1,'GLFWvidmode']]], 5 | ['bug_20list_3',['Bug List',['../bug.html',1,'']]], 6 | ['build_2edox_4',['build.dox',['../build_8dox.html',1,'']]], 7 | ['building_20applications_5',['Building applications',['../build_guide.html',1,'']]], 8 | ['buttons_6',['buttons',['../structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a',1,'GLFWgamepadstate']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_10.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vulkan_20reference_520',['Vulkan reference',['../group__vulkan.html',1,'']]], 4 | ['vulkan_2edox_521',['vulkan.dox',['../vulkan_8dox.html',1,'']]], 5 | ['vulkan_20guide_522',['Vulkan guide',['../vulkan_guide.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_11.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['width_523',['width',['../structGLFWvidmode.html#a698dcb200562051a7249cb6ae154c71d',1,'GLFWvidmode::width()'],['../structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835',1,'GLFWimage::width()']]], 4 | ['window_20reference_524',['Window reference',['../group__window.html',1,'']]], 5 | ['window_2edox_525',['window.dox',['../window_8dox.html',1,'']]], 6 | ['window_20guide_526',['Window guide',['../window_guide.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['compat_2edox_7',['compat.dox',['../compat_8dox.html',1,'']]], 4 | ['compile_2edox_8',['compile.dox',['../compile_8dox.html',1,'']]], 5 | ['compiling_20glfw_9',['Compiling GLFW',['../compile_guide.html',1,'']]], 6 | ['context_20reference_10',['Context reference',['../group__context.html',1,'']]], 7 | ['context_2edox_11',['context.dox',['../context_8dox.html',1,'']]], 8 | ['context_20guide_12',['Context guide',['../context_guide.html',1,'']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['deprecated_20list_13',['Deprecated List',['../deprecated.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error_20codes_14',['Error codes',['../group__errors.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['height_488',['height',['../structGLFWvidmode.html#ac65942a5f6981695517437a9d571d03c',1,'GLFWvidmode::height()'],['../structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec',1,'GLFWimage::height()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['initialization_2c_20version_20and_20error_20reference_489',['Initialization, version and error reference',['../group__init.html',1,'']]], 4 | ['input_20reference_490',['Input reference',['../group__input.html',1,'']]], 5 | ['input_2edox_491',['input.dox',['../input_8dox.html',1,'']]], 6 | ['input_20guide_492',['Input guide',['../input_guide.html',1,'']]], 7 | ['internal_2edox_493',['internal.dox',['../internal_8dox.html',1,'']]], 8 | ['internal_20structure_494',['Internal structure',['../internals_guide.html',1,'']]], 9 | ['intro_2edox_495',['intro.dox',['../intro_8dox.html',1,'']]], 10 | ['introduction_20to_20the_20api_496',['Introduction to the API',['../intro_guide.html',1,'']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['joystick_20hat_20states_497',['Joystick hat states',['../group__hat__state.html',1,'']]], 4 | ['joysticks_498',['Joysticks',['../group__joysticks.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['keyboard_20keys_499',['Keyboard keys',['../group__keys.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mouse_20buttons_500',['Mouse buttons',['../group__buttons.html',1,'']]], 4 | ['main_2edox_501',['main.dox',['../main_8dox.html',1,'']]], 5 | ['modifier_20key_20flags_502',['Modifier key flags',['../group__mods.html',1,'']]], 6 | ['monitor_20reference_503',['Monitor reference',['../group__monitor.html',1,'']]], 7 | ['monitor_2edox_504',['monitor.dox',['../monitor_8dox.html',1,'']]], 8 | ['monitor_20guide_505',['Monitor guide',['../monitor_guide.html',1,'']]], 9 | ['moving_2edox_506',['moving.dox',['../moving_8dox.html',1,'']]], 10 | ['moving_20from_20glfw_202_20to_203_507',['Moving from GLFW 2 to 3',['../moving_guide.html',1,'']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_b.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['notitle_508',['notitle',['../index.html',1,'']]], 4 | ['native_20access_509',['Native access',['../group__native.html',1,'']]], 5 | ['news_2edox_510',['news.dox',['../news_8dox.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pixels_511',['pixels',['../structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb',1,'GLFWimage']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['quick_2edox_512',['quick.dox',['../quick_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['release_20notes_513',['Release notes',['../news.html',1,'']]], 4 | ['red_514',['red',['../structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138',1,'GLFWgammaramp']]], 5 | ['redbits_515',['redBits',['../structGLFWvidmode.html#a6066c4ecd251098700062d3b735dba1b',1,'GLFWvidmode']]], 6 | ['refreshrate_516',['refreshRate',['../structGLFWvidmode.html#a791bdd6c7697b09f7e9c97054bf05649',1,'GLFWvidmode']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/all_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['standards_20conformance_517',['Standards conformance',['../compat_guide.html',1,'']]], 4 | ['standard_20cursor_20shapes_518',['Standard cursor shapes',['../group__shapes.html',1,'']]], 5 | ['size_519',['size',['../structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5',1,'GLFWgammaramp']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/classes_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['glfwgamepadstate_527',['GLFWgamepadstate',['../structGLFWgamepadstate.html',1,'']]], 4 | ['glfwgammaramp_528',['GLFWgammaramp',['../structGLFWgammaramp.html',1,'']]], 5 | ['glfwimage_529',['GLFWimage',['../structGLFWimage.html',1,'']]], 6 | ['glfwvidmode_530',['GLFWvidmode',['../structGLFWvidmode.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/search/close.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/defines_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['build_2edox_531',['build.dox',['../build_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['compat_2edox_532',['compat.dox',['../compat_8dox.html',1,'']]], 4 | ['compile_2edox_533',['compile.dox',['../compile_8dox.html',1,'']]], 5 | ['context_2edox_534',['context.dox',['../context_8dox.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['glfw3_2eh_535',['glfw3.h',['../glfw3_8h.html',1,'']]], 4 | ['glfw3native_2eh_536',['glfw3native.h',['../glfw3native_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['input_2edox_537',['input.dox',['../input_8dox.html',1,'']]], 4 | ['internal_2edox_538',['internal.dox',['../internal_8dox.html',1,'']]], 5 | ['intro_2edox_539',['intro.dox',['../intro_8dox.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['main_2edox_540',['main.dox',['../main_8dox.html',1,'']]], 4 | ['monitor_2edox_541',['monitor.dox',['../monitor_8dox.html',1,'']]], 5 | ['moving_2edox_542',['moving.dox',['../moving_8dox.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['news_2edox_543',['news.dox',['../news_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['quick_2edox_544',['quick.dox',['../quick_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vulkan_2edox_545',['vulkan.dox',['../vulkan_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/files_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['window_2edox_546',['window.dox',['../window_8dox.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/functions_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['context_20reference_760',['Context reference',['../group__context.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['error_20codes_761',['Error codes',['../group__errors.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['gamepad_20axes_762',['Gamepad axes',['../group__gamepad__axes.html',1,'']]], 4 | ['gamepad_20buttons_763',['Gamepad buttons',['../group__gamepad__buttons.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['initialization_2c_20version_20and_20error_20reference_764',['Initialization, version and error reference',['../group__init.html',1,'']]], 4 | ['input_20reference_765',['Input reference',['../group__input.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['joystick_20hat_20states_766',['Joystick hat states',['../group__hat__state.html',1,'']]], 4 | ['joysticks_767',['Joysticks',['../group__joysticks.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['keyboard_20keys_768',['Keyboard keys',['../group__keys.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['mouse_20buttons_769',['Mouse buttons',['../group__buttons.html',1,'']]], 4 | ['modifier_20key_20flags_770',['Modifier key flags',['../group__mods.html',1,'']]], 5 | ['monitor_20reference_771',['Monitor reference',['../group__monitor.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['native_20access_772',['Native access',['../group__native.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['standard_20cursor_20shapes_773',['Standard cursor shapes',['../group__shapes.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vulkan_20reference_774',['Vulkan reference',['../group__vulkan.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/groups_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['window_20reference_775',['Window reference',['../group__window.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/mag_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/search/mag_sel.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['bug_20list_776',['Bug List',['../bug.html',1,'']]], 4 | ['building_20applications_777',['Building applications',['../build_guide.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['compiling_20glfw_778',['Compiling GLFW',['../compile_guide.html',1,'']]], 4 | ['context_20guide_779',['Context guide',['../context_guide.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['deprecated_20list_780',['Deprecated List',['../deprecated.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['getting_20started_781',['Getting started',['../quick_guide.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['input_20guide_782',['Input guide',['../input_guide.html',1,'']]], 4 | ['internal_20structure_783',['Internal structure',['../internals_guide.html',1,'']]], 5 | ['introduction_20to_20the_20api_784',['Introduction to the API',['../intro_guide.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['monitor_20guide_785',['Monitor guide',['../monitor_guide.html',1,'']]], 4 | ['moving_20from_20glfw_202_20to_203_786',['Moving from GLFW 2 to 3',['../moving_guide.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['notitle_787',['notitle',['../index.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['release_20notes_788',['Release notes',['../news.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_8.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['standards_20conformance_789',['Standards conformance',['../compat_guide.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_9.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['vulkan_20guide_790',['Vulkan guide',['../vulkan_guide.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_a.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/pages_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['window_20guide_791',['Window guide',['../window_guide.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/search/search_l.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/search/search_m.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/search/search_r.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "abcdeghijkmnpqrsvw", 4 | 1: "g", 5 | 2: "bcgimnqvw", 6 | 3: "g", 7 | 4: "abghprsw", 8 | 5: "g", 9 | 6: "g", 10 | 7: "cegijkmnsvw", 11 | 8: "bcdgimnrsvw" 12 | }; 13 | 14 | var indexSectionNames = 15 | { 16 | 0: "all", 17 | 1: "classes", 18 | 2: "files", 19 | 3: "functions", 20 | 4: "variables", 21 | 5: "typedefs", 22 | 6: "defines", 23 | 7: "groups", 24 | 8: "pages" 25 | }; 26 | 27 | var indexSectionLabels = 28 | { 29 | 0: "All", 30 | 1: "Data Structures", 31 | 2: "Files", 32 | 3: "Functions", 33 | 4: "Variables", 34 | 5: "Typedefs", 35 | 6: "Macros", 36 | 7: "Modules", 37 | 8: "Pages" 38 | }; 39 | 40 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/typedefs_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['axes_690',['axes',['../structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189',1,'GLFWgamepadstate']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['blue_691',['blue',['../structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b',1,'GLFWgammaramp']]], 4 | ['bluebits_692',['blueBits',['../structGLFWvidmode.html#af310977f58d2e3b188175b6e3d314047',1,'GLFWvidmode']]], 5 | ['buttons_693',['buttons',['../structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a',1,'GLFWgamepadstate']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['green_694',['green',['../structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a',1,'GLFWgammaramp']]], 4 | ['greenbits_695',['greenBits',['../structGLFWvidmode.html#a292fdd281f3485fb3ff102a5bda43faa',1,'GLFWvidmode']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['height_696',['height',['../structGLFWvidmode.html#ac65942a5f6981695517437a9d571d03c',1,'GLFWvidmode::height()'],['../structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec',1,'GLFWimage::height()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['pixels_697',['pixels',['../structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb',1,'GLFWimage']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['red_698',['red',['../structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138',1,'GLFWgammaramp']]], 4 | ['redbits_699',['redBits',['../structGLFWvidmode.html#a6066c4ecd251098700062d3b735dba1b',1,'GLFWvidmode']]], 5 | ['refreshrate_700',['refreshRate',['../structGLFWvidmode.html#a791bdd6c7697b09f7e9c97054bf05649',1,'GLFWvidmode']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['size_701',['size',['../structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5',1,'GLFWgammaramp']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_7.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
Loading...
12 |
13 | 18 |
Searching...
19 |
No Matches
20 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['width_702',['width',['../structGLFWvidmode.html#a698dcb200562051a7249cb6ae154c71d',1,'GLFWvidmode::width()'],['../structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835',1,'GLFWimage::width()']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/splitbar.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/sync_off.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/sync_on.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/tab_a.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/tab_b.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/tab_h.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/docs/html/tab_s.png -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/docs/main.dox: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | @mainpage notitle 4 | 5 | @section main_intro Introduction 6 | 7 | GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and 8 | Vulkan application development. It provides a simple, platform-independent API 9 | for creating windows, contexts and surfaces, reading input, handling events, etc. 10 | 11 | @ref news_33 list new features, caveats and deprecations. 12 | 13 | @ref quick_guide is a guide for users new to GLFW. It takes you through how to 14 | write a small but complete program. 15 | 16 | There are guides for each section of the API: 17 | 18 | - @ref intro_guide – initialization, error handling and high-level design 19 | - @ref window_guide – creating and working with windows and framebuffers 20 | - @ref context_guide – working with OpenGL and OpenGL ES contexts 21 | - @ref vulkan_guide - working with Vulkan objects and extensions 22 | - @ref monitor_guide – enumerating and working with monitors and video modes 23 | - @ref input_guide – receiving events, polling and processing input 24 | 25 | Once you have written a program, see @ref compile_guide and @ref build_guide. 26 | 27 | The [reference documentation](modules.html) provides more detailed information 28 | about specific functions. 29 | 30 | @ref moving_guide explains what has changed and how to update existing code to 31 | use the new API. 32 | 33 | There is a section on @ref guarantees_limitations for pointer lifetimes, 34 | reentrancy, thread safety, event order and backward and forward compatibility. 35 | 36 | The [FAQ](https://www.glfw.org/faq.html) answers many common questions about the 37 | design, implementation and use of GLFW. 38 | 39 | Finally, @ref compat_guide explains what APIs, standards and protocols GLFW uses 40 | and what happens when they are not present on a given machine. 41 | 42 | This documentation was generated with Doxygen. The sources for it are available 43 | in both the [source distribution](https://www.glfw.org/download.html) and 44 | [GitHub repository](https://github.com/glfw/glfw). 45 | 46 | */ 47 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/examples/glfw.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/examples/glfw.icns -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/examples/glfw.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/syoyo/tinyvdbio/098348efab3d68e0ef7c0ad280c423593f963f3f/examples/common/glfw-3.3.1/examples/glfw.ico -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/examples/glfw.rc: -------------------------------------------------------------------------------- 1 | 2 | GLFW_ICON ICON "glfw.ico" 3 | 4 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/src/cocoa_joystick.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.3 Cocoa - 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 | #include 28 | #include 29 | #include 30 | #include 31 | 32 | #define _GLFW_PLATFORM_JOYSTICK_STATE _GLFWjoystickNS ns 33 | #define _GLFW_PLATFORM_LIBRARY_JOYSTICK_STATE struct { int dummyJoystick; } 34 | 35 | #define _GLFW_PLATFORM_MAPPING_NAME "Mac OS X" 36 | 37 | // Cocoa-specific per-joystick data 38 | // 39 | typedef struct _GLFWjoystickNS 40 | { 41 | IOHIDDeviceRef device; 42 | CFMutableArrayRef axes; 43 | CFMutableArrayRef buttons; 44 | CFMutableArrayRef hats; 45 | } _GLFWjoystickNS; 46 | 47 | 48 | void _glfwInitJoysticksNS(void); 49 | void _glfwTerminateJoysticksNS(void); 50 | 51 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/src/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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/src/glfw3Config.cmake.in: -------------------------------------------------------------------------------- 1 | include("${CMAKE_CURRENT_LIST_DIR}/glfw3Targets.cmake") 2 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/src/null_init.c: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.3 - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2016 Google Inc. 5 | // Copyright (c) 2016-2017 Camilla Löwy 6 | // 7 | // This software is provided 'as-is', without any express or implied 8 | // warranty. In no event will the authors be held liable for any damages 9 | // arising from the use of this software. 10 | // 11 | // Permission is granted to anyone to use this software for any purpose, 12 | // including commercial applications, and to alter it and redistribute it 13 | // freely, subject to the following restrictions: 14 | // 15 | // 1. The origin of this software must not be misrepresented; you must not 16 | // claim that you wrote the original software. If you use this software 17 | // in a product, an acknowledgment in the product documentation would 18 | // be appreciated but is not required. 19 | // 20 | // 2. Altered source versions must be plainly marked as such, and must not 21 | // be misrepresented as being the original software. 22 | // 23 | // 3. This notice may not be removed or altered from any source 24 | // distribution. 25 | // 26 | //======================================================================== 27 | // It is fine to use C99 in this file because it will not be built with VS 28 | //======================================================================== 29 | 30 | #include "internal.h" 31 | 32 | 33 | ////////////////////////////////////////////////////////////////////////// 34 | ////// GLFW platform API ////// 35 | ////////////////////////////////////////////////////////////////////////// 36 | 37 | int _glfwPlatformInit(void) 38 | { 39 | _glfwInitTimerPOSIX(); 40 | return GLFW_TRUE; 41 | } 42 | 43 | void _glfwPlatformTerminate(void) 44 | { 45 | _glfwTerminateOSMesa(); 46 | } 47 | 48 | const char* _glfwPlatformGetVersionString(void) 49 | { 50 | return _GLFW_VERSION_NUMBER " null OSMesa"; 51 | } 52 | 53 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/src/null_joystick.c: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.3 - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2016-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 | // It is fine to use C99 in this file because it will not be built with VS 27 | //======================================================================== 28 | 29 | #include "internal.h" 30 | 31 | 32 | ////////////////////////////////////////////////////////////////////////// 33 | ////// GLFW platform API ////// 34 | ////////////////////////////////////////////////////////////////////////// 35 | 36 | int _glfwPlatformPollJoystick(_GLFWjoystick* js, int mode) 37 | { 38 | return GLFW_FALSE; 39 | } 40 | 41 | void _glfwPlatformUpdateGamepadGUID(char* guid) 42 | { 43 | } 44 | 45 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/src/null_joystick.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.3 - 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 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/src/posix_thread.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.3 POSIX - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2002-2006 Marcus Geelnard 5 | // Copyright (c) 2006-2017 Camilla Löwy 6 | // 7 | // This software is provided 'as-is', without any express or implied 8 | // warranty. In no event will the authors be held liable for any damages 9 | // arising from the use of this software. 10 | // 11 | // Permission is granted to anyone to use this software for any purpose, 12 | // including commercial applications, and to alter it and redistribute it 13 | // freely, subject to the following restrictions: 14 | // 15 | // 1. The origin of this software must not be misrepresented; you must not 16 | // claim that you wrote the original software. If you use this software 17 | // in a product, an acknowledgment in the product documentation would 18 | // be appreciated but is not required. 19 | // 20 | // 2. Altered source versions must be plainly marked as such, and must not 21 | // be misrepresented as being the original software. 22 | // 23 | // 3. This notice may not be removed or altered from any source 24 | // distribution. 25 | // 26 | //======================================================================== 27 | 28 | #include 29 | 30 | #define _GLFW_PLATFORM_TLS_STATE _GLFWtlsPOSIX posix 31 | #define _GLFW_PLATFORM_MUTEX_STATE _GLFWmutexPOSIX posix 32 | 33 | 34 | // POSIX-specific thread local storage data 35 | // 36 | typedef struct _GLFWtlsPOSIX 37 | { 38 | GLFWbool allocated; 39 | pthread_key_t key; 40 | 41 | } _GLFWtlsPOSIX; 42 | 43 | // POSIX-specific mutex data 44 | // 45 | typedef struct _GLFWmutexPOSIX 46 | { 47 | GLFWbool allocated; 48 | pthread_mutex_t handle; 49 | 50 | } _GLFWmutexPOSIX; 51 | 52 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/src/posix_time.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.3 POSIX - www.glfw.org 3 | //------------------------------------------------------------------------ 4 | // Copyright (c) 2002-2006 Marcus Geelnard 5 | // Copyright (c) 2006-2017 Camilla Löwy 6 | // 7 | // This software is provided 'as-is', without any express or implied 8 | // warranty. In no event will the authors be held liable for any damages 9 | // arising from the use of this software. 10 | // 11 | // Permission is granted to anyone to use this software for any purpose, 12 | // including commercial applications, and to alter it and redistribute it 13 | // freely, subject to the following restrictions: 14 | // 15 | // 1. The origin of this software must not be misrepresented; you must not 16 | // claim that you wrote the original software. If you use this software 17 | // in a product, an acknowledgment in the product documentation would 18 | // be appreciated but is not required. 19 | // 20 | // 2. Altered source versions must be plainly marked as such, and must not 21 | // be misrepresented as being the original software. 22 | // 23 | // 3. This notice may not be removed or altered from any source 24 | // distribution. 25 | // 26 | //======================================================================== 27 | 28 | #define _GLFW_PLATFORM_LIBRARY_TIMER_STATE _GLFWtimerPOSIX posix 29 | 30 | #include 31 | 32 | 33 | // POSIX-specific global timer data 34 | // 35 | typedef struct _GLFWtimerPOSIX 36 | { 37 | GLFWbool monotonic; 38 | uint64_t frequency; 39 | 40 | } _GLFWtimerPOSIX; 41 | 42 | 43 | void _glfwInitTimerPOSIX(void); 44 | 45 | -------------------------------------------------------------------------------- /examples/common/glfw-3.3.1/src/xkb_unicode.h: -------------------------------------------------------------------------------- 1 | //======================================================================== 2 | // GLFW 3.3 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 | -------------------------------------------------------------------------------- /examples/common/imgui/LICENSE.roboto_mono_embed.md: -------------------------------------------------------------------------------- 1 | Roboto icons : Apache 2.0 License. 2 | Roboto : Apache 2.0 License. 3 | 4 | -------------------------------------------------------------------------------- /examples/common/imgui/imgui_impl_opengl2.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Renderer for OpenGL2 (legacy OpenGL, fixed pipeline) 2 | // This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..) 3 | 4 | // Implemented features: 5 | // [X] Renderer: User texture binding. Use 'GLuint' OpenGL texture identifier as void*/ImTextureID. Read the FAQ about ImTextureID! 6 | // [X] Renderer: Multi-viewport support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'. 7 | 8 | // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. 9 | // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. 10 | // https://github.com/ocornut/imgui 11 | 12 | // **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)** 13 | // **Prefer using the code in imgui_impl_opengl3.cpp** 14 | // This code is mostly provided as a reference to learn how ImGui integration works, because it is shorter to read. 15 | // If your code is using GL3+ context or any semi modern OpenGL calls, using this is likely to make everything more 16 | // complicated, will require your code to reset every single OpenGL attributes to their initial state, and might 17 | // confuse your GPU driver. 18 | // The GL2 code is unable to reset attributes or even call e.g. "glUseProgram(0)" because they don't exist in that API. 19 | 20 | #pragma once 21 | 22 | IMGUI_IMPL_API bool ImGui_ImplOpenGL2_Init(); 23 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_Shutdown(); 24 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_NewFrame(); 25 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data); 26 | 27 | // Called by Init/NewFrame/Shutdown 28 | IMGUI_IMPL_API bool ImGui_ImplOpenGL2_CreateFontsTexture(); 29 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_DestroyFontsTexture(); 30 | IMGUI_IMPL_API bool ImGui_ImplOpenGL2_CreateDeviceObjects(); 31 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_DestroyDeviceObjects(); 32 | -------------------------------------------------------------------------------- /examples/common/imgui/ionic_icons_license.mit.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-present Ionic (http://ionic.io/) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /examples/openvdb2nanovdb/openvdb2nanovdb.cc: -------------------------------------------------------------------------------- 1 | //#include "nanovdb/util/OpenToNanoVDB.h" 2 | #include "nanovdb/util/IO.h" 3 | 4 | int main(int argc, char **argv) 5 | { 6 | return EXIT_SUCCESS; 7 | } 8 | -------------------------------------------------------------------------------- /examples/openvkl/README.md: -------------------------------------------------------------------------------- 1 | # Experiment on .vdb -> OpenVKL(Open Volume Kernel Library) (-> OSPRay visualization) 2 | 3 | T.B.W. 4 | -------------------------------------------------------------------------------- /examples/vdb2vtk/LICENSE.SimpleVTK: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 hsimyu 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 | -------------------------------------------------------------------------------- /examples/vdb2vtk/Makefile: -------------------------------------------------------------------------------- 1 | CC=clang 2 | CXX=clang++ 3 | 4 | CXXFLAGS += -std=c++11 -I../../src 5 | 6 | CXXFLAGS += -DTINYVDBIO_USE_BLOSC -I../../third_party/c-blosc/blosc 7 | LDFLAGS += ../../third_party/c-blosc/build/blosc/libblosc.a -lz -pthread 8 | 9 | # BLOSC_INC=-I./third_party/c-blosc/blosc 10 | # BLOSC_LIB=./third_party/c-blosc/build/blosc/libblosc.a -lz -llz4 -lsnappy 11 | 12 | all: vdb2vtk 13 | 14 | vdb2vtk: vdb2vtk.o miniz.o 15 | $(CXX) -o $@ $^ $(LDFLAGS) 16 | 17 | vdb2vtk.o: vdb2vtk.cc ../../src/tinyvdbio.h 18 | $(CXX) -c -o $@ $(CXXFLAGS) $< 19 | 20 | miniz.o: ../../src/miniz.c 21 | $(CC) -c -o $@ $(CFLAGS) $< 22 | 23 | .PHONY: clean 24 | 25 | clean: 26 | rm miniz.o vdb2vtk.o 27 | -------------------------------------------------------------------------------- /examples/vdb2vtk/README.md: -------------------------------------------------------------------------------- 1 | # Simple VDB to VTK(AMR XML) converter 2 | 3 | ## TODO 4 | 5 | * [ ] Binary output (AppendedData with `endocing="raw"`) 6 | 7 | ## Third party libraries 8 | 9 | * SimpleVTK: MIT license: https://github.com/hsimyu/SimpleVTK 10 | -------------------------------------------------------------------------------- /examples/vdbdump/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Assume this cmake is called from tinyvdbio root(../../) 2 | set(EXAMPLE_TARGET "vdbdump") 3 | 4 | set(TINYVDBIO_VDBDUMP_SOURCES 5 | vdbdump.cc 6 | ) 7 | 8 | add_executable(${EXAMPLE_TARGET} ${TINYVDBIO_VDBDUMP_SOURCES}) 9 | add_sanitizers(${EXAMPLE_TARGET}) 10 | 11 | target_include_directories(${EXAMPLE_TARGET} PRIVATE ${PROJECT_SOURCE_DIR}/src) 12 | 13 | # for clipp.h 14 | target_include_directories(${EXAMPLE_TARGET} PRIVATE ${PROJECT_SOURCE_DIR}/examples/common) 15 | 16 | target_link_libraries(${EXAMPLE_TARGET} PRIVATE tinyvdbio) 17 | 18 | if (TINYVDBIO_USE_SYSTEM_ZLIB) 19 | target_compile_definitions(${EXAMPLE_TARGET} PRIVATE "TINYVDBIO_USE_SYSTEM_ZLIB") 20 | target_link_libraries(${EXAMPLE_TARGET} PUBLIC ZLIB::ZLIB) 21 | endif (TINYVDBIO_USE_SYSTEM_ZLIB) 22 | 23 | if (TINYVDBIO_USE_BLOSC) 24 | target_include_directories(${EXAMPLE_TARGET} PRIVATE ${PROJECT_SOURCE_DIR}/third_party/c-blosc/blosc) 25 | target_compile_definitions(${EXAMPLE_TARGET} PRIVATE "TINYVDBIO_USE_BLOSC") 26 | endif (TINYVDBIO_USE_BLOSC) 27 | 28 | set_target_properties(${EXAMPLE_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") 29 | -------------------------------------------------------------------------------- /examples/vdbdump/vdbdump.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | #if defined(TINYVDBIO_USE_SYSTEM_ZLIB) 7 | // or include your own zlib header here. 8 | #include 9 | #endif 10 | 11 | #define TINYVDBIO_IMPLEMENTATION 12 | #include "tinyvdbio.h" 13 | 14 | // ../common 15 | #include "clipp.h" 16 | 17 | int main(int argc, char **argv) 18 | { 19 | using namespace clipp; 20 | 21 | std::string infile; 22 | bool verbose{false}; 23 | 24 | auto cli = ( 25 | value("input file", infile), 26 | option("--verbose").set(verbose).doc("Verbose output") 27 | ); 28 | 29 | if(!parse(argc, argv, cli)) { 30 | std::cout << make_man_page(cli, argv[0]); 31 | } 32 | 33 | if (infile.empty()) { 34 | std::cerr << "Need input.vdb" << std::endl; 35 | return EXIT_FAILURE; 36 | } 37 | 38 | // 1. Parse VDB header 39 | tinyvdb::VDBHeader header; 40 | std::string warn; 41 | std::string err; 42 | tinyvdb::VDBStatus status = tinyvdb::ParseVDBHeader(infile, &header, &err); 43 | 44 | if (status != tinyvdb::TINYVDBIO_SUCCESS) { 45 | if (!err.empty()) { 46 | std::cerr << err << std::endl; 47 | } 48 | return EXIT_FAILURE; 49 | } 50 | 51 | // 2. Read Grid descriptors 52 | std::map gd_map; 53 | 54 | status = tinyvdb::ReadGridDescriptors(infile, header, &gd_map, &err); 55 | if (status != tinyvdb::TINYVDBIO_SUCCESS) { 56 | if (!err.empty()) { 57 | std::cerr << err << std::endl; 58 | } 59 | return EXIT_FAILURE; 60 | } 61 | 62 | std::cout << "# of grid descriptors = " << gd_map.size() << std::endl; 63 | 64 | // 3. Read Grids 65 | status = tinyvdb::ReadGrids(infile, header, gd_map, &warn, &err); 66 | if (!warn.empty()) { 67 | std::cout << warn << std::endl; 68 | } 69 | if (status != tinyvdb::TINYVDBIO_SUCCESS) { 70 | if (!err.empty()) { 71 | std::cerr << err << std::endl; 72 | } 73 | return EXIT_FAILURE; 74 | } 75 | 76 | 77 | std::cout << "Load OK" << std::endl; 78 | 79 | return EXIT_SUCCESS; 80 | } 81 | -------------------------------------------------------------------------------- /examples/viewer/README.md: -------------------------------------------------------------------------------- 1 | # TinyVDBIO viewer 2 | 3 | Simple .vdb viewer 4 | 5 | ## Reuirements 6 | 7 | * CMake 3.5 or later 8 | * OpenGL 3.0 or later 9 | * C++11 compiler 10 | 11 | ## How to build 12 | 13 | See `scripts/bootstrap-linux.sh` for example. 14 | 15 | ``` 16 | $ mkdir build 17 | $ cd build 18 | $ cmake -DBLOSC_INCDIR= -DBLOSC_LIBRARY= .. 19 | $ make 20 | ``` 21 | 22 | ## How to run 23 | 24 | ``` 25 | $ ./tvdb_view 26 | ``` 27 | -------------------------------------------------------------------------------- /examples/viewer/main.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #if TINYVDBIO_USE_SYSTEM_ZLIB 5 | #include 6 | #endif 7 | 8 | #define TINYVDBIO_IMPLEMENTATION 9 | #include "tinyvdbio.h" 10 | 11 | int main(int argc, char **argv) 12 | { 13 | if (argc < 2) { 14 | std::cerr << "Need input.vdb\n"; 15 | return EXIT_FAILURE; 16 | } 17 | 18 | std::string filename = argv[1]; 19 | 20 | std::cout << "Loading : " << filename << "\n"; 21 | 22 | return EXIT_SUCCESS; 23 | } 24 | -------------------------------------------------------------------------------- /examples/viewer/scripts/bootstrap-linux.sh: -------------------------------------------------------------------------------- 1 | rm -rf build 2 | mkdir build 3 | 4 | curdir=`pwd` 5 | 6 | cd build 7 | 8 | cmake \ 9 | -DTVDB_VIEWER_WITH_SYSTEM_ZLIB=On \ 10 | -DTVDB_VIEWER_WITH_BLOSC=On \ 11 | -DBLOSC_INCDIR=${curdir}/../../third_party/c-blosc/blosc \ 12 | -DBLOSC_LIBRARY=${curdir}/../../third_party/c-blosc/build/blosc/libblosc.so \ 13 | .. 14 | 15 | cd .. 16 | 17 | -------------------------------------------------------------------------------- /lgtm.yaml: -------------------------------------------------------------------------------- 1 | path_classifiers: 2 | legacy: 3 | - exclude: src/miniz.c 4 | - exclude: src/miniz.h 5 | -------------------------------------------------------------------------------- /nanovdb/Readme.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # NanoVDB: 4 | A lightweight GPU friendly version of VDB initially targeting rendering applications. 5 | 6 | * [Build instructions for make and cmake](docs/HowToBuild.md) 7 | * [Frequently asked questions](docs/FAQ.md) 8 | * [Grid cells vs grid nodes](docs/GridCells_vs_GridNodes/Main.pdf) 9 | * [Source tree](docs/SourceTree.md) 10 | * [Examples](docs/HelloWorld.md) 11 | 12 | ### Copyright Contributors to the OpenVDB Project 13 | ### SPDX-License-Identifier: MPL-2.0 14 | 15 | [![CircleCI](https://circleci.com/gh/NVIDIA-Omniverse/NanoVDB.svg?style=svg&circle-token=6c3b9bb166841033a0e0c1a9ee5ac49f73d89152)](https://circleci.com/gh/NVIDIA-Omniverse/NanoVDB) 16 | -------------------------------------------------------------------------------- /nanovdb/docs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # find_package(doxygen REQUIRED dot ) 2 | if(WIN32) 3 | set(DOXYGEN_EXECUTABLE "C:/Program Files/doxygen/bin/doxygen.exe") 4 | else() 5 | set(DOXYGEN_EXECUTABLE "doxygen") 6 | endif() 7 | 8 | message(STATUS "DOXYGEN_EXECUTABLE = ${DOXYGEN_EXECUTABLE}") 9 | 10 | file(READ ${CMAKE_CURRENT_SOURCE_DIR}/doxygen-config DOXYGEN_CONFIG_CONTENT) 11 | file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config 12 | ${DOXYGEN_CONFIG_CONTENT}) 13 | file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config 14 | "OUTPUT_DIRECTORY=\"${CMAKE_CURRENT_BINARY_DIR}/docs\"\n") 15 | 16 | add_custom_target( 17 | nanovdb_docs 18 | SOURCES doxygen-config 19 | doc.md 20 | codingstyle.txt 21 | FAQ.md 22 | SourceTree.md 23 | HowToBuild.md 24 | HelloWorld.md 25 | COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/cmake-doxygen-config 26 | WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 27 | COMMENT "Generating API documentation with Doxygen" 28 | VERBATIM) 29 | 30 | install( 31 | CODE "EXECUTE_PROCESS(COMMAND \"${CMAKE_COMMAND}\" --build \"${PROJECT_BINARY_DIR}\" --target nanovdb_docs)" 32 | ) 33 | install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docs/html DESTINATION docs) 34 | -------------------------------------------------------------------------------- /nanovdb/examples/ex_collide_level_set/common.h: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #pragma once 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include "ComputePrimitives.h" 11 | 12 | // http://www.burtleburtle.net/bob/hash/doobs.html 13 | inline __hostdev__ uint32_t hash(uint32_t x) 14 | { 15 | x += (x << 10u); 16 | x ^= (x >> 6u); 17 | x += (x << 3u); 18 | x ^= (x >> 11u); 19 | x += (x << 15u); 20 | return x; 21 | } 22 | 23 | inline __hostdev__ float randomf(uint32_t s) 24 | { 25 | return hash(s) / float(0xffffffffu); 26 | } 27 | -------------------------------------------------------------------------------- /nanovdb/examples/ex_collide_level_set/main.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #if defined(NANOVDB_USE_CUDA) 11 | using BufferT = nanovdb::CudaDeviceBuffer; 12 | #else 13 | using BufferT = nanovdb::HostBuffer; 14 | #endif 15 | 16 | extern void runNanoVDB(nanovdb::GridHandle& handle, int numIterations, int numPoints, BufferT& positionBuffer, BufferT& velocityBuffer); 17 | #if defined(NANOVDB_USE_OPENVDB) 18 | extern void runOpenVDB(nanovdb::GridHandle& handle, int numIterations, int numPoints, BufferT& positionBuffer, BufferT& velocityBuffer); 19 | #endif 20 | 21 | int main(int ac, char** av) 22 | { 23 | try { 24 | nanovdb::GridHandle handle; 25 | if (ac > 1) { 26 | handle = nanovdb::io::readGrid(av[1]); 27 | std::cout << "Loaded NanoVDB grid[" << handle.gridMetaData()->shortGridName() << "]...\n"; 28 | } else { 29 | handle = nanovdb::createLevelSetSphere(100.0f, nanovdb::Vec3f(-20, 0, 0), 1.0, 3.0, nanovdb::Vec3R(0), "sphere"); 30 | } 31 | 32 | if (handle.gridMetaData()->isLevelSet() == false) { 33 | throw std::runtime_error("Grid must be a level set"); 34 | } 35 | 36 | const int numIterations = 100; 37 | 38 | const int numPoints = 10000000; 39 | 40 | BufferT positionBuffer; 41 | positionBuffer.init(numPoints * sizeof(float) * 3); 42 | BufferT velocityBuffer; 43 | velocityBuffer.init(numPoints * sizeof(float) * 3); 44 | 45 | runNanoVDB(handle, numIterations, numPoints, positionBuffer, velocityBuffer); 46 | #if defined(NANOVDB_USE_OPENVDB) 47 | runOpenVDB(handle, numIterations, numPoints, positionBuffer, velocityBuffer); 48 | #endif 49 | } 50 | catch (const std::exception& e) { 51 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 52 | } 53 | return 0; 54 | } 55 | -------------------------------------------------------------------------------- /nanovdb/examples/ex_collide_level_set/openvdb.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #if defined(NANOVDB_USE_OPENVDB) 5 | 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | 12 | #include 13 | #include 14 | 15 | #include "common.h" 16 | 17 | #if defined(NANOVDB_USE_CUDA) 18 | using BufferT = nanovdb::CudaDeviceBuffer; 19 | #else 20 | using BufferT = nanovdb::HostBuffer; 21 | #endif 22 | 23 | void runOpenVDB(nanovdb::GridHandle& handle, int numIterations, int numPoints, BufferT& positionBuffer, BufferT& velocityBuffer) 24 | { 25 | using GridT = openvdb::FloatGrid; 26 | using CoordT = openvdb::Coord; 27 | using RealT = float; 28 | using Vec3T = openvdb::math::Vec3; 29 | using RayT = openvdb::math::Ray; 30 | 31 | auto srcGrid = nanovdb::nanoToOpenVDB(handle); 32 | std::cout << "Exporting to OpenVDB grid[" << srcGrid->getName() << "]...\n"; 33 | 34 | auto h_grid = (GridT*)srcGrid.get(); 35 | 36 | // Not yet implemented... 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /nanovdb/examples/ex_make_custom_nanovdb/make_custom_nanovdb.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include 5 | 6 | #include 7 | 8 | /// @brief Creates a NanoVDB grids with custom values and access them. 9 | /// 10 | /// @note This example only depends on NanoVDB. 11 | int main() 12 | { 13 | try { 14 | nanovdb::GridBuilder builder(0.0f); 15 | auto acc = builder.getAccessor(); 16 | acc.setValue(nanovdb::Coord(1, 2, 3), 1.0f); 17 | 18 | printf("GridBuilder: (%i,%i,%i)=%4.2f\t", 1, 2, 3, acc.getValue(nanovdb::Coord(1, 2, 3))); 19 | printf("GridBuilder: (%i,%i,%i)=%4.2f\n", 1, 2,-3, acc.getValue(nanovdb::Coord(1, 2,-3))); 20 | 21 | auto handle = builder.getHandle<>(); 22 | auto* dstGrid = handle.grid(); // Get a (raw) pointer to the NanoVDB grid form the GridManager. 23 | if (!dstGrid) 24 | throw std::runtime_error("GridHandle does not contain a grid with value type float"); 25 | 26 | printf("NanoVDB cpu: (%i,%i,%i)=%4.2f\t", 1, 2, 3, dstGrid->tree().getValue(nanovdb::Coord(1, 2, 3))); 27 | printf("NanoVDB cpu: (%i,%i,%i)=%4.2f\n", 1, 2,-3, dstGrid->tree().getValue(nanovdb::Coord(1, 2,-3))); 28 | } 29 | catch (const std::exception& e) { 30 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 31 | } 32 | return 0; 33 | } -------------------------------------------------------------------------------- /nanovdb/examples/ex_make_funny_nanovdb/make_funny_nanovdb.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | /// @brief Creates a NanoVDB grids with custom values and access them. 10 | /// 11 | /// @note This example only depends on NanoVDB. 12 | int main() 13 | { 14 | try { 15 | const float background = 5.0f; 16 | nanovdb::GridBuilder builder(background, nanovdb::GridClass::LevelSet); 17 | auto acc = builder.getAccessor(); 18 | const int size = 500; 19 | auto func = [&](const nanovdb::Coord &ijk){ 20 | float v = 40.0f + 50.0f*(cos(ijk[0]*0.1f)*sin(ijk[1]*0.1f) + 21 | cos(ijk[1]*0.1f)*sin(ijk[2]*0.1f) + 22 | cos(ijk[2]*0.1f)*sin(ijk[0]*0.1f)); 23 | v = nanovdb::Max(v, nanovdb::Vec3f(ijk).length() - size);// CSG intersection with a sphere 24 | return v > background ? background : v < -background ? -background : v;// clamp value 25 | }; 26 | builder(func, nanovdb::CoordBBox(nanovdb::Coord(-size),nanovdb::Coord(size))); 27 | 28 | auto handle = builder.getHandle<>(); 29 | nanovdb::io::writeGrid("data/funny.nvdb", handle, nanovdb::io::Codec::BLOSC); 30 | } 31 | catch (const std::exception& e) { 32 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 33 | } 34 | return 0; 35 | } -------------------------------------------------------------------------------- /nanovdb/examples/ex_make_nanovdb_sphere/make_nanovdb_sphere.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include 5 | 6 | #include 7 | 8 | /// @brief Creates a NanoVDB grids of a level set sphere and accesses a value. 9 | /// 10 | /// @note This example only depends on NanoVDB. 11 | int main() 12 | { 13 | try { 14 | auto handle = nanovdb::createLevelSetSphere(100.0f); 15 | 16 | auto* dstGrid = handle.grid(); // Get a (raw) pointer to the NanoVDB grid form the GridManager. 17 | if (!dstGrid) 18 | throw std::runtime_error("GridHandle does not contain a grid with value type float"); 19 | 20 | // Access and print out a single value (inside the level set) from both grids 21 | printf("NanoVDB cpu: %4.2f\n", dstGrid->tree().getValue(nanovdb::Coord(99, 0, 0))); 22 | } 23 | catch (const std::exception& e) { 24 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 25 | } 26 | return 0; 27 | } -------------------------------------------------------------------------------- /nanovdb/examples/ex_openvdb_to_nanovdb/openvdb_to_nanovdb.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include // replace with your own dependencies for generating the OpenVDB grid 5 | #include // converter from OpenVDB to NanoVDB (includes NanoVDB.h and GridManager.h) 6 | #include 7 | 8 | /// @brief Convert an openvdb level set sphere into a nanovdb, access a single value in both grids, and save NanoVDB to file. 9 | /// 10 | /// @note This example depends on both OpenVDB and NanoVDB. 11 | int main() 12 | { 13 | try { 14 | // Create an OpenVDB grid of a sphere at the origin with radius 100 and voxel size 1. 15 | auto srcGrid = openvdb::tools::createLevelSetSphere(100.0f, openvdb::Vec3f(0.0f), 1.0f); 16 | 17 | auto handle = nanovdb::openToNanoVDB(*srcGrid); // Convert from OpenVDB to NanoVDB and return a shared pointer to a GridHandle. 18 | 19 | auto* dstGrid = handle.grid(); // Get a (raw) pointer to the NanoVDB grid form the GridManager. 20 | if (!dstGrid) 21 | throw std::runtime_error("GridHandle does not contain a grid with value type float"); 22 | 23 | // Access and print out a single value (inside the level set) from both grids 24 | printf("OpenVDB cpu: %4.2f\n", srcGrid->tree().getValue(openvdb::Coord(99, 0, 0))); 25 | printf("NanoVDB cpu: %4.2f\n", dstGrid->tree().getValue(nanovdb::Coord(99, 0, 0))); 26 | 27 | nanovdb::io::writeGrid("data/sphere2.nvdb", handle); // Write the NanoVDB grid to file and throw if writing fails 28 | } 29 | catch (const std::exception& e) { 30 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 31 | } 32 | return 0; 33 | } -------------------------------------------------------------------------------- /nanovdb/examples/ex_openvdb_to_nanovdb_cuda/openvdb_to_nanovdb_cuda.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include // replace with your own dependencies for generating the OpenVDB grid 5 | #include // converter from OpenVDB to NanoVDB (includes NanoVDB.h and GridManager.h) 6 | #include 7 | 8 | extern "C" void launch_kernels(const nanovdb::NanoGrid*, 9 | const nanovdb::NanoGrid*, 10 | cudaStream_t stream); 11 | 12 | /// @brief This examples depends on OpenVDB, NanoVDB and CUDA. 13 | int main() 14 | { 15 | try { 16 | // Create an OpenVDB grid of a sphere at the origin with radius 100 and voxel size 1. 17 | auto srcGrid = openvdb::tools::createLevelSetSphere(100.0f, openvdb::Vec3f(0.0f), 1.0f); 18 | 19 | // Converts the OpenVDB to NanoVDB and returns a GridHandle that uses CUDA for memory management. 20 | auto handle = nanovdb::openToNanoVDB(*srcGrid); 21 | 22 | cudaStream_t stream; // Create a CUDA stream to allow for asynchronous copy of pinned CUDA memory. 23 | cudaStreamCreate(&stream); 24 | 25 | handle.deviceUpload(stream, false); // Copy the NanoVDB grid to the GPU asynchronously 26 | 27 | auto* grid = handle.grid(); // get a (raw) pointer to a NanoVDB grid of value type float on the CPU 28 | auto* deviceGrid = handle.deviceGrid(); // get a (raw) pointer to a NanoVDB grid of value type float on the GPU 29 | 30 | if (!deviceGrid || !grid) 31 | throw std::runtime_error("GridHandle did not contain a grid with value type float"); 32 | 33 | launch_kernels(deviceGrid, grid, stream); // Call a host method to print a grid value on both the CPU and GPU 34 | 35 | cudaStreamDestroy(stream); // Destroy the CUDA stream 36 | } 37 | catch (const std::exception& e) { 38 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 39 | } 40 | return 0; 41 | } -------------------------------------------------------------------------------- /nanovdb/examples/ex_openvdb_to_nanovdb_cuda/openvdb_to_nanovdb_cuda.cu: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include // this defined the core tree data structure of NanoVDB accessable on both the host and device 5 | #include // for printf 6 | 7 | // This is called by the host only 8 | void cpu_kernel(const nanovdb::NanoGrid* cpuGrid) 9 | { 10 | printf("NanoVDB cpu; %4.2f\n", cpuGrid->tree().getValue(nanovdb::Coord(99, 0, 0))); 11 | } 12 | 13 | // This is called by the device only 14 | __global__ void gpu_kernel(const nanovdb::NanoGrid* deviceGrid) 15 | { 16 | printf("NanoVDB gpu: %4.2f\n", deviceGrid->tree().getValue(nanovdb::Coord(99, 0, 0))); 17 | } 18 | 19 | // This is called by the client code on the host 20 | extern "C" void launch_kernels(const nanovdb::NanoGrid* deviceGrid, 21 | const nanovdb::NanoGrid* cpuGrid, 22 | cudaStream_t stream) 23 | { 24 | gpu_kernel<<<1, 1, 0, stream>>>(deviceGrid); // Launch the device kernel asynchronously 25 | 26 | cpu_kernel(cpuGrid); // Launch the host "kernel" (synchronously) 27 | } -------------------------------------------------------------------------------- /nanovdb/examples/ex_raytrace_fog_volume/main.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #if defined(NANOVDB_USE_CUDA) 11 | using BufferT = nanovdb::CudaDeviceBuffer; 12 | #else 13 | using BufferT = nanovdb::HostBuffer; 14 | #endif 15 | 16 | extern void runNanoVDB(nanovdb::GridHandle& handle, int numIterations, int width, int height, BufferT& imageBuffer); 17 | #if defined(NANOVDB_USE_OPENVDB) 18 | extern void runOpenVDB(nanovdb::GridHandle& handle, int numIterations, int width, int height, BufferT& imageBuffer); 19 | #endif 20 | 21 | int main(int ac, char** av) 22 | { 23 | try { 24 | nanovdb::GridHandle handle; 25 | if (ac > 1) { 26 | handle = nanovdb::io::readGrid(av[1]); 27 | std::cout << "Loaded NanoVDB grid[" << handle.gridMetaData()->shortGridName() << "]...\n"; 28 | } else { 29 | handle = nanovdb::createFogVolumeSphere(100.0f, nanovdb::Vec3f(-20, 0, 0), 1.0, 3.0, nanovdb::Vec3d(0), "sphere"); 30 | } 31 | 32 | if (handle.gridMetaData()->isFogVolume() == false) { 33 | throw std::runtime_error("Grid must be a fog volume"); 34 | } 35 | 36 | const int numIterations = 50; 37 | 38 | const int width = 1024; 39 | const int height = 1024; 40 | BufferT imageBuffer; 41 | imageBuffer.init(width * height * sizeof(float)); 42 | 43 | runNanoVDB(handle, numIterations, width, height, imageBuffer); 44 | #if defined(NANOVDB_USE_OPENVDB) 45 | runOpenVDB(handle, numIterations, width, height, imageBuffer); 46 | #endif 47 | } 48 | catch (const std::exception& e) { 49 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 50 | } 51 | return 0; 52 | } 53 | -------------------------------------------------------------------------------- /nanovdb/examples/ex_raytrace_level_set/main.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #if defined(NANOVDB_USE_CUDA) 11 | using BufferT = nanovdb::CudaDeviceBuffer; 12 | #else 13 | using BufferT = nanovdb::HostBuffer; 14 | #endif 15 | 16 | extern void runNanoVDB(nanovdb::GridHandle& handle, int numIterations, int width, int height, BufferT& imageBuffer); 17 | #if defined(NANOVDB_USE_OPENVDB) 18 | extern void runOpenVDB(nanovdb::GridHandle& handle, int numIterations, int width, int height, BufferT& imageBuffer); 19 | #endif 20 | 21 | int main(int ac, char** av) 22 | { 23 | try { 24 | nanovdb::GridHandle handle; 25 | if (ac > 1) { 26 | handle = nanovdb::io::readGrid(av[1]); 27 | std::cout << "Loaded NanoVDB grid[" << handle.gridMetaData()->shortGridName() << "]...\n"; 28 | } else { 29 | handle = nanovdb::createLevelSetSphere(100.0f, nanovdb::Vec3f(-20, 0, 0), 1.0, 3.0, nanovdb::Vec3d(0), "sphere"); 30 | } 31 | 32 | if (handle.gridMetaData()->isLevelSet() == false) { 33 | throw std::runtime_error("Grid must be a level set"); 34 | } 35 | 36 | const int numIterations = 50; 37 | 38 | const int width = 1024; 39 | const int height = 1024; 40 | BufferT imageBuffer; 41 | imageBuffer.init(width * height * sizeof(float)); 42 | 43 | runNanoVDB(handle, numIterations, width, height, imageBuffer); 44 | #if defined(NANOVDB_USE_OPENVDB) 45 | runOpenVDB(handle, numIterations, width, height, imageBuffer); 46 | #endif 47 | } 48 | catch (const std::exception& e) { 49 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 50 | } 51 | return 0; 52 | } 53 | -------------------------------------------------------------------------------- /nanovdb/examples/ex_read_nanovdb_sphere/read_nanovdb_sphere.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include 5 | 6 | /// @brief Read a NanoVDB grid form file, check pointer and access a single value 7 | /// 8 | /// @note This example does NOT dpend on OpenVDB (or CUDA), only NanoVDB. 9 | int main() 10 | { 11 | try { 12 | auto handle = nanovdb::io::readGrid("data/sphere.nvdb"); // read first grid in file 13 | 14 | auto* grid = handle.grid(); // get a (raw) pointer to the first NanoVDB grid of value type float 15 | 16 | if (grid == nullptr) 17 | throw std::runtime_error("File did not contain a grid with value type float"); 18 | 19 | // Access and print out a single value in the NanoVDB grid 20 | printf("NanoVDB cpu: %4.2f\n", grid->tree().getValue(nanovdb::Coord(99, 0, 0))); 21 | } 22 | catch (const std::exception& e) { 23 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 24 | } 25 | 26 | return 0; 27 | } -------------------------------------------------------------------------------- /nanovdb/examples/ex_read_nanovdb_sphere_accessor/read_nanovdb_sphere_accessor.cc: -------------------------------------------------------------------------------- 1 | #include // this is required to read (and write) NanoVDB files on the host 2 | 3 | /// @brief Read a NanoVDB grid from a file and print out multiple values. 4 | /// 5 | /// @note Note This example does NOT depend on OpenVDB (nor CUDA), only NanoVDB. 6 | int main() 7 | { 8 | try { 9 | auto handle = nanovdb::io::readGrid("data/sphere.nvdb"); // reads first grid from file 10 | 11 | auto* grid = handle.grid(); // get a (raw) pointer to a NanoVDB grid of value type float 12 | 13 | if (!grid) 14 | throw std::runtime_error("File did not contain a grid with value type float"); 15 | 16 | auto acc = grid->getAccessor(); // create an accessor for fast access to multiple values 17 | for (int i = 97; i < 104; ++i) { 18 | printf("(%3i,0,0) NanoVDB cpu: % -4.2f\n", i, acc.getValue(nanovdb::Coord(i, 0, 0))); 19 | } 20 | } 21 | catch (const std::exception& e) { 22 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 23 | } 24 | return 0; 25 | } -------------------------------------------------------------------------------- /nanovdb/examples/ex_read_nanovdb_sphere_accessor_cuda/read_nanovdb_sphere_accessor_cuda.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include // this is required to read (and write) NanoVDB files on the host 5 | #include // required for CUDA memory management 6 | 7 | extern "C" void launch_kernels(const nanovdb::NanoGrid*, 8 | const nanovdb::NanoGrid*, 9 | cudaStream_t stream); 10 | 11 | /// @brief Read a NanoVDB grid from a file and print out multiple values on both the cpu and gpu. 12 | /// 13 | /// @note Note This example does NOT depend on OpenVDB, only NanoVDB and CUDA. 14 | int main() 15 | { 16 | try { 17 | // returns a GridHandle using CUDA for memory management. 18 | auto handle = nanovdb::io::readGrid("data/sphere.nvdb"); 19 | 20 | cudaStream_t stream; // Create a CUDA stream to allow for asynchronous copy of pinned CUDA memory. 21 | cudaStreamCreate(&stream); 22 | 23 | handle.deviceUpload(stream, false); // Copy the NanoVDB grid to the GPU asynchronously 24 | 25 | auto* cpuGrid = handle.grid(); // get a (raw) pointer to a NanoVDB grid of value type float on the CPU 26 | auto* deviceGrid = handle.deviceGrid(); // get a (raw) pointer to a NanoVDB grid of value type float on the GPU 27 | 28 | if (!deviceGrid || !cpuGrid) 29 | throw std::runtime_error("GridHandle did not contain a grid with value type float"); 30 | 31 | launch_kernels(deviceGrid, cpuGrid, stream); // Call a host method to print a grid values on both the CPU and GPU 32 | 33 | cudaStreamDestroy(stream); // Destroy the CUDA stream 34 | } 35 | catch (const std::exception& e) { 36 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 37 | } 38 | 39 | return 0; 40 | } -------------------------------------------------------------------------------- /nanovdb/examples/ex_read_nanovdb_sphere_accessor_cuda/read_nanovdb_sphere_accessor_cuda.cu: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include // this defined the core tree data structure of NanoVDB accessable on both the host and device 5 | #include // for printf 6 | 7 | // This is called by the host only 8 | void cpu_kernel(const nanovdb::NanoGrid* cpuGrid) 9 | { 10 | auto cpuAcc = cpuGrid->getAccessor(); 11 | for (int i = 97; i < 104; ++i) { 12 | printf("(%3i,0,0) NanoVDB cpu: % -4.2f\n", i, cpuAcc.getValue(nanovdb::Coord(i, 0, 0))); 13 | } 14 | } 15 | 16 | // This is called by the device only 17 | __global__ void gpu_kernel(const nanovdb::NanoGrid* deviceGrid) 18 | { 19 | if (threadIdx.x > 6) 20 | return; 21 | int i = 97 + threadIdx.x; 22 | auto gpuAcc = deviceGrid->getAccessor(); 23 | printf("(%3i,0,0) NanoVDB gpu: % -4.2f\n", i, gpuAcc.getValue(nanovdb::Coord(i, 0, 0))); 24 | } 25 | 26 | // This is called by the client code on the host 27 | extern "C" void launch_kernels(const nanovdb::NanoGrid* deviceGrid, 28 | const nanovdb::NanoGrid* cpuGrid, 29 | cudaStream_t stream) 30 | { 31 | // Launch the device kernel asynchronously 32 | gpu_kernel<<<1, 64, 0, stream>>>(deviceGrid); 33 | 34 | // Launch the host "kernel" (synchronously) 35 | cpu_kernel(cpuGrid); 36 | } -------------------------------------------------------------------------------- /nanovdb/examples/ex_util/CpuTimer.h: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | /// @file CpuTimer.h 5 | /// 6 | /// @author Ken Museth 7 | /// 8 | /// @brief A simple timing class 9 | 10 | #ifndef NANOVDB_CPU_TIMER_H_HAS_BEEN_INCLUDED 11 | #define NANOVDB_CPU_TIMER_H_HAS_BEEN_INCLUDED 12 | 13 | #include 14 | #include 15 | 16 | namespace nanovdb { 17 | 18 | template 19 | class CpuTimer 20 | { 21 | std::chrono::high_resolution_clock::time_point mStart; 22 | public: 23 | CpuTimer() {} 24 | void start(const std::string &msg, std::ostream& os = std::cerr) { 25 | os << msg << " ... " << std::flush; 26 | mStart = std::chrono::high_resolution_clock::now(); 27 | } 28 | void restart(const std::string &msg, std::ostream& os = std::cerr) { 29 | this->stop(); 30 | os << msg << " ... " << std::flush; 31 | mStart = std::chrono::high_resolution_clock::now(); 32 | } 33 | void stop(std::ostream& os = std::cerr) 34 | { 35 | auto end = std::chrono::high_resolution_clock::now(); 36 | auto diff = std::chrono::duration_cast(end - mStart).count(); 37 | os << "completed in " << diff; 38 | if (std::is_same::value) {// resolved at compile-time 39 | os << " microseconds" << std::endl; 40 | } else if (std::is_same::value) { 41 | os << " milliseconds" << std::endl; 42 | } else if (std::is_same::value) { 43 | os << " seconds" << std::endl; 44 | } else { 45 | os << " unknown time unit" << std::endl; 46 | } 47 | } 48 | };// CpuTimer 49 | 50 | } // namespace nanovdb 51 | 52 | #endif // NANOVDB_CPU_TIMER_HAS_BEEN_INCLUDED 53 | -------------------------------------------------------------------------------- /nanovdb/examples/ex_vox_to_nanovdb/vox_to_nanovdb.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include 5 | #include "VoxToNanoVDB.h" 6 | 7 | /// @brief Convert an .vox file into a .nvdb file. 8 | /// 9 | /// @note This example only depends on NanoVDB. 10 | int main(int argc, char* argv[]) 11 | { 12 | if (argc < 2) { 13 | std::cerr << "Usage: " << argv[0] << " " 14 | << " ()" << std::endl; 15 | return 1; 16 | } 17 | 18 | std::string inFilename(argv[1]), gridName("Vox model"); 19 | std::string outFilename("vox_to_nanovdb_output.nvdb"); 20 | if (argc > 2) 21 | outFilename = std::string(argv[2]); 22 | 23 | try { 24 | auto handle = convertVoxToNanoVDB(inFilename, gridName); 25 | nanovdb::io::writeGrid(outFilename, handle, nanovdb::io::Codec::ZIP, 1); // Write the NanoVDB grid to file and throw if writing fails 26 | } 27 | catch (const std::exception& e) { 28 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 29 | } 30 | return 0; 31 | } 32 | -------------------------------------------------------------------------------- /nanovdb/examples/ex_write_nanovdb_grids/write_nanovdb_grids.cc: -------------------------------------------------------------------------------- 1 | // Copyright Contributors to the OpenVDB Project 2 | // SPDX-License-Identifier: MPL-2.0 3 | 4 | #include 5 | #include 6 | 7 | /// @brief Creates multiple NanoVDB grids, accesses a value in one, and saves all grids to file. 8 | /// 9 | /// @note This example only depends on NanoVDB. 10 | int main() 11 | { 12 | try { 13 | std::vector> handles; 14 | // Create multiple NanoVDB grids of various types 15 | handles.push_back(nanovdb::createLevelSetSphere(100.0f)); 16 | handles.push_back(nanovdb::createLevelSetTorus(100.0f, 50.0f)); 17 | handles.push_back(nanovdb::createLevelSetBox(400.0f, 600.0f, 800.0f)); 18 | handles.push_back(nanovdb::createLevelSetBBox(400.0f, 600.0f, 800.0f, 10.0f)); 19 | handles.push_back(nanovdb::createPointSphere(1, 100.0f)); 20 | 21 | auto* dstGrid = handles[0].grid(); // Get a (raw) pointer to the NanoVDB grid form the GridManager. 22 | if (!dstGrid) 23 | throw std::runtime_error("GridHandle does not contain a grid with value type float"); 24 | 25 | // Access and print out a single value (inside the level set) from both grids 26 | printf("NanoVDB cpu: %4.2f\n", dstGrid->tree().getValue(nanovdb::Coord(99, 0, 0))); 27 | 28 | nanovdb::io::writeGrids("data/primitives.nvdb", handles); // Write the NanoVDB grids to file and throw if writing fails 29 | } 30 | catch (const std::exception& e) { 31 | std::cerr << "An exception occurred: \"" << e.what() << "\"" << std::endl; 32 | } 33 | return 0; 34 | } -------------------------------------------------------------------------------- /nanovdb/unittest/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright Contributors to the OpenVDB Project 2 | # SPDX-License-Identifier: MPL-2.0 3 | # 4 | #[=======================================================================[ 5 | 6 | CMake Configuration for NanoVDB Command Line Tools 7 | 8 | #]=======================================================================] 9 | 10 | cmake_minimum_required(VERSION 3.15) 11 | project(NanoVDBTests LANGUAGES CXX) 12 | 13 | include(GNUInstallDirs) 14 | 15 | ############################################################################### 16 | 17 | message(STATUS "----------------------------------------------------") 18 | message(STATUS "--------- Configuring NanoVDB Unit Test ------------") 19 | message(STATUS "----------------------------------------------------") 20 | 21 | ############################################################################### 22 | # TODO: Benchmark should probably not require gtest. 23 | if(NOT TARGET GTest::GTest) 24 | message(WARNING " - GTest required to build unittests. Skipping.") 25 | return() 26 | endif() 27 | 28 | # ----------------------------------------------------------------------------- 29 | # workaround for win32 bug when nvcc "--keep" is used. 30 | if(WIN32 AND NANOVDB_CUDA_KEEP_PTX) 31 | file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/x64/Release") 32 | endif() 33 | 34 | file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/data") 35 | 36 | # ----------------------------------------------------------------------------- 37 | 38 | add_executable(nanovdb_test_nanovdb "TestNanoVDB.cc") 39 | target_link_libraries(nanovdb_test_nanovdb PRIVATE nanovdb GTest::GTest GTest::Main) 40 | add_test(nanovdb_unit_test nanovdb_test_nanovdb) 41 | 42 | # ----------------------------------------------------------------------------- 43 | 44 | if(NOT (NANOVDB_USE_TBB AND NANOVDB_USE_OPENVDB)) 45 | message(WARNING " - OpenVDB required to build OpenVDB unit tests. Skipping.") 46 | return() 47 | endif() 48 | 49 | add_executable(nanovdb_test_openvdb "TestOpenVDB.cc") 50 | target_link_libraries(nanovdb_test_openvdb PRIVATE nanovdb GTest::GTest GTest::Main) 51 | add_test(nanovdb_openvdb_unit_test nanovdb_test_openvdb) 52 | -------------------------------------------------------------------------------- /scripts/bootstrap-aarch64-ios.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | CMAKE_BIN=cmake 4 | 5 | rm -rf build-ios-cross 6 | 7 | $CMAKE_BIN \ 8 | -DCMAKE_BUILD_TYPE=Release \ 9 | -DCMAKE_VERBOSE_MAKEFILE=On \ 10 | -DCMAKE_INSTALL_PREFIX=$HOME/local/tinyusdz-ios \ 11 | -DCMAKE_C_COMPILER=clang \ 12 | -DCMAKE_CXX_COMPILER=clang++ \ 13 | -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk \ 14 | -DCMAKE_OSX_ARCHITECTURES=arm64e \ 15 | -DCMAKE_TOOLCHAIN_FILE=./cmake/ios.toolchain.cmake \ 16 | -Bbuild-ios-cross . 17 | -------------------------------------------------------------------------------- /scripts/bootstrap-android-cmake-linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Edit path to Android NDK 4 | 5 | # Use ANDROID_SDK_HOME environment 6 | ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk-bundle 7 | 8 | # default installation directory of NDK through old? Android Studio 9 | # ANDROID_NDK_ROOT=$HOME/Android/Sdk/ndk-bundle 10 | 11 | # Set your own path 12 | #ANDROID_NDK_ROOT=$HOME/local/android-ndk-r16b/ 13 | 14 | # CMake 3.6 or later required. 15 | CMAKE_BIN=cmake 16 | 17 | rm -rf build-android 18 | mkdir build-android 19 | cd build-android 20 | 21 | $CMAKE_BIN -G Ninja -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake \ 22 | -DANDROID_ABI=arm64-v8a \ 23 | -DANDROID_NATIVE_API_LEVEL=24 \ 24 | -DANDROID_ARM_MODE=arm \ 25 | -DANDROID_ARM_NEON=TRUE \ 26 | -DANDROID_STL=c++_shared \ 27 | .. 28 | 29 | cd .. 30 | -------------------------------------------------------------------------------- /scripts/bootstrap-clang-cl-wsl.sh: -------------------------------------------------------------------------------- 1 | builddir=`pwd`/build-clang-cl 2 | rm -rf ${builddir} 3 | mkdir ${builddir} 4 | 5 | cd ${builddir} 6 | cmake -G Ninja \ 7 | -DCMAKE_TOOLCHAIN_FILE="cmake/clang-cl-msvc-wsl.cmake" \ 8 | -DCMAKE_BUILD_TYPE=Release \ 9 | -DHOST_ARCH=x64 \ 10 | -DLLVM_NATIVE_TOOLCHAIN="/home/syoyo/local/clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04/" \ 11 | -DMSVC_BASE:FILEPATH="/mnt/c/Users/syoyo/msvc/MSVC" \ 12 | -DWINSDK_BASE="/mnt/c/Users/syoyo/msvc/sdk" \ 13 | -DWINSDK_VER="10.0.18362.0" \ 14 | .. 15 | 16 | -------------------------------------------------------------------------------- /scripts/bootstrap-cmake-linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | curdir=`pwd` 4 | builddir=`pwd`/build 5 | 6 | rm -rf ${builddir} 7 | mkdir ${builddir} 8 | 9 | export CXX=clang++ 10 | export CC=clang 11 | 12 | cd ${builddir} && cmake .. && cd .. 13 | -------------------------------------------------------------------------------- /scripts/bootstrap-cmake-llvm-mingw-cross.sh: -------------------------------------------------------------------------------- 1 | # llvm-mingw cross compile 2 | # Assume Ninja is installed on your system 3 | curdir=`pwd` 4 | 5 | # Set path to llvm-mingw in env var. 6 | export LLVM_MINGW_DIR=/mnt/data/local/llvm-mingw-20200325-ubuntu-18.04/ 7 | 8 | builddir=${curdir}/build-llvm-mingw 9 | 10 | rm -rf ${builddir} 11 | mkdir ${builddir} 12 | 13 | cd ${builddir} && cmake \ 14 | -DCMAKE_TOOLCHAIN_FILE=${curdir}/cmake/llvm-mingw-cross.cmake \ 15 | -G "Ninja" \ 16 | -DCMAKE_VERBOSE_MAKEFILE=1 \ 17 | .. 18 | 19 | cd ${curdir} 20 | -------------------------------------------------------------------------------- /scripts/bootstrap-cmake-mingw-gcc-cross.sh: -------------------------------------------------------------------------------- 1 | # mingw gcc cross compile 2 | curdir=`pwd` 3 | 4 | # Set path to mingw in env var(if required). 5 | export MINGW_GCC_DIR=/usr 6 | 7 | builddir=${curdir}/build-mingw 8 | 9 | rm -rf ${builddir} 10 | mkdir ${builddir} 11 | 12 | cd ${builddir} && cmake \ 13 | -DCMAKE_TOOLCHAIN_FILE=${curdir}/cmake/mingw64-cross.cmake \ 14 | -DCMAKE_VERBOSE_MAKEFILE=1 \ 15 | .. 16 | 17 | cd ${curdir} 18 | -------------------------------------------------------------------------------- /scripts/bootstrap-gcc-4.8.sh: -------------------------------------------------------------------------------- 1 | curdir=`pwd` 2 | 3 | builddir=${curdir}/build-gcc4.8 4 | 5 | rm -rf ${builddir} 6 | mkdir ${builddir} 7 | 8 | cd ${builddir} && cmake \ 9 | -DCMAKE_C_COMPILER=gcc-4.8 \ 10 | -DCMAKE_CXX_COMPILER=g++-4.8 \ 11 | -DCMAKE_VERBOSE_MAKEFILE=1 \ 12 | .. 13 | 14 | -------------------------------------------------------------------------------- /scripts/bootstrap-gcc-aarch64-cross.sh: -------------------------------------------------------------------------------- 1 | curdir=`pwd` 2 | 3 | builddir=${curdir}/build-aarch64-cross 4 | 5 | rm -rf ${builddir} 6 | mkdir ${builddir} 7 | 8 | cd ${builddir} && cmake \ 9 | -DCMAKE_TOOLCHAIN_FILE=cmake/aarch64-linux-gnu.toolchain \ 10 | -DCMAKE_VERBOSE_MAKEFILE=1 \ 11 | -DTINYVDBIO_BUILD_TESTS=Off \ 12 | -DTINYVDBIO_BUILD_EXAMPLES=Off \ 13 | .. 14 | 15 | -------------------------------------------------------------------------------- /src/tinyvdbio.cc: -------------------------------------------------------------------------------- 1 | #if defined(TINYVDBIO_USE_SYSTEM_ZLIB) 2 | // or inclur your own zlib header here. 3 | #include 4 | #endif 5 | 6 | #define TINYVDBIO_IMPLEMENTATION 7 | #include "tinyvdbio.h" 8 | -------------------------------------------------------------------------------- /tests/loader-test.cc: -------------------------------------------------------------------------------- 1 | #if defined(TINYVDBIO_USE_SYSTEM_ZLIB) 2 | // or inclur your own zlib header here. 3 | #include 4 | #endif 5 | 6 | #define TINYVDBIO_IMPLEMENTATION 7 | #include "tinyvdbio.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | //#include 14 | 15 | 16 | int main(int argc, char **argv) 17 | { 18 | if (argc < 2) { 19 | std::cerr << "Need input.vdb" << std::endl; 20 | return EXIT_FAILURE; 21 | } 22 | 23 | // 1. Parse VDB header 24 | tinyvdb::VDBHeader header; 25 | std::string warn; 26 | std::string err; 27 | tinyvdb::VDBStatus status = tinyvdb::ParseVDBHeader(argv[1], &header, &err); 28 | 29 | if (status != tinyvdb::TINYVDBIO_SUCCESS) { 30 | if (!err.empty()) { 31 | std::cerr << "error: " << err << std::endl; 32 | } 33 | std::cerr << "Failed to parse VDB header. status = " << status << "\n"; 34 | return EXIT_FAILURE; 35 | } 36 | 37 | // 2. Read Grid descriptors 38 | std::map gd_map; 39 | 40 | status = tinyvdb::ReadGridDescriptors(argv[1], header, &gd_map, &err); 41 | if (status != tinyvdb::TINYVDBIO_SUCCESS) { 42 | if (!err.empty()) { 43 | std::cerr << "error: " << err << std::endl; 44 | } 45 | std::cerr << "Failed to read grid descriptors. status = " << status << "\n"; 46 | return EXIT_FAILURE; 47 | } 48 | 49 | std::cout << "# of grid descriptors = " << gd_map.size() << std::endl; 50 | 51 | // 3. Read Grids 52 | status = tinyvdb::ReadGrids(argv[1], header, gd_map, &warn, &err); 53 | if (!warn.empty()) { 54 | std::cout << "warning: " << warn << std::endl; 55 | } 56 | if (status != tinyvdb::TINYVDBIO_SUCCESS) { 57 | if (!err.empty()) { 58 | std::cerr << "error: " << err << std::endl; 59 | } 60 | std::cerr << "Failed to read grids. status = " << tinyvdb::GetStatusString(status) << "\n"; 61 | return EXIT_FAILURE; 62 | } 63 | 64 | 65 | std::cout << "Load OK" << std::endl; 66 | 67 | return EXIT_SUCCESS; 68 | } 69 | -------------------------------------------------------------------------------- /vcsetup-2019.bat: -------------------------------------------------------------------------------- 1 | rmdir /s /q build 2 | mkdir build 3 | 4 | cmake -G "Visual Studio 16 2019" -A x64 -Bbuild -H. 5 | --------------------------------------------------------------------------------