ernie-renderer 0.2.0.dev76__tar.gz → 0.2.0.dev117__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ernie-renderer might be problematic. Click here for more details.

Files changed (892) hide show
  1. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/.github/workflows/ci.yml +10 -1
  2. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/CMakeLists.txt +1 -1
  3. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/PKG-INFO +1 -1
  4. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/benchmarks/CMakeLists.txt +8 -1
  5. ernie_renderer-0.2.0.dev117/benchmarks/render/transform_graph.cpp +85 -0
  6. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/benchmarks/scene/extents.cpp +1 -1
  7. ernie_renderer-0.2.0.dev117/cmake/third_party/dear_imgui.cmake +40 -0
  8. ernie_renderer-0.2.0.dev117/cmake/third_party/glfw.cmake +67 -0
  9. ernie_renderer-0.2.0.dev117/ernie/app/CMakeLists.txt +32 -0
  10. ernie_renderer-0.2.0.dev117/ernie/app/imgui_backend.cpp +141 -0
  11. ernie_renderer-0.2.0.dev117/ernie/app/imgui_backend.h +58 -0
  12. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/app/main.cpp +41 -23
  13. ernie_renderer-0.2.0.dev117/ernie/app/ui.cpp +1782 -0
  14. ernie_renderer-0.2.0.dev117/ernie/app/ui.h +563 -0
  15. ernie_renderer-0.2.0.dev117/ernie/app/viewer.cpp +290 -0
  16. ernie_renderer-0.2.0.dev117/ernie/app/viewer.h +118 -0
  17. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/CMakeLists.txt +2 -0
  18. ernie_renderer-0.2.0.dev117/ernie/device/acceleration.cpp +423 -0
  19. ernie_renderer-0.2.0.dev117/ernie/device/acceleration.h +248 -0
  20. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/buffer.cpp +18 -8
  21. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/context.cpp +75 -0
  22. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/context.h +28 -0
  23. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/cuda.cpp +2 -0
  24. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/device.h +4 -0
  25. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/image.h +1 -0
  26. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/instance.cpp +18 -0
  27. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/instance.h +6 -0
  28. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/kernel.cpp +4 -2
  29. ernie_renderer-0.2.0.dev117/ernie/device/profile.cpp +313 -0
  30. ernie_renderer-0.2.0.dev117/ernie/device/profile.h +88 -0
  31. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/queue.cpp +35 -13
  32. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/queue.h +15 -1
  33. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/shader_compiler.cpp +4 -0
  34. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/staging.cpp +44 -25
  35. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/staging.h +11 -0
  36. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/vulkan.cpp +47 -7
  37. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/vulkan.h +11 -2
  38. ernie_renderer-0.2.0.dev117/ernie/geometry/CMakeLists.txt +3 -0
  39. ernie_renderer-0.2.0.dev117/ernie/geometry/triangulation.cpp +43 -0
  40. ernie_renderer-0.2.0.dev117/ernie/geometry/triangulation.h +24 -0
  41. ernie_renderer-0.2.0.dev117/ernie/graph/CMakeLists.txt +7 -0
  42. ernie_renderer-0.2.0.dev117/ernie/graph/blackboard.h +62 -0
  43. ernie_renderer-0.2.0.dev117/ernie/graph/dependencies.cpp +420 -0
  44. ernie_renderer-0.2.0.dev117/ernie/graph/dependencies.h +192 -0
  45. ernie_renderer-0.2.0.dev117/ernie/graph/graph.cpp +565 -0
  46. ernie_renderer-0.2.0.dev117/ernie/graph/graph.h +325 -0
  47. ernie_renderer-0.2.0.dev117/ernie/graph/pool.cpp +61 -0
  48. ernie_renderer-0.2.0.dev117/ernie/graph/pool.h +66 -0
  49. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/nanovdb.cpp +5 -5
  50. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/texture.cpp +2 -2
  51. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/cloud.cpp +5 -5
  52. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/regolith.cpp +1 -1
  53. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/python/CMakeLists.txt +5 -2
  54. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/python/device.cpp +1 -81
  55. ernie_renderer-0.2.0.dev117/ernie/python/dlpack.cpp +98 -0
  56. ernie_renderer-0.2.0.dev117/ernie/python/dlpack.h +25 -0
  57. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/python/ernie/__init__.py +6 -0
  58. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/python/module.cpp +2 -0
  59. ernie_renderer-0.2.0.dev117/ernie/python/scene.cpp +375 -0
  60. ernie_renderer-0.2.0.dev117/ernie/python/scene.h +13 -0
  61. ernie_renderer-0.2.0.dev117/ernie/render/CMakeLists.txt +18 -0
  62. ernie_renderer-0.2.0.dev117/ernie/render/bottom_levels.cpp +254 -0
  63. ernie_renderer-0.2.0.dev117/ernie/render/bottom_levels.h +107 -0
  64. ernie_renderer-0.2.0.dev117/ernie/render/device_scene.cpp +40 -0
  65. ernie_renderer-0.2.0.dev117/ernie/render/device_scene.h +83 -0
  66. ernie_renderer-0.2.0.dev117/ernie/render/geometry.cpp +367 -0
  67. ernie_renderer-0.2.0.dev117/ernie/render/geometry.h +142 -0
  68. ernie_renderer-0.2.0.dev117/ernie/render/instances.cpp +135 -0
  69. ernie_renderer-0.2.0.dev117/ernie/render/instances.h +71 -0
  70. ernie_renderer-0.2.0.dev117/ernie/render/prim_rows.cpp +76 -0
  71. ernie_renderer-0.2.0.dev117/ernie/render/prim_rows.h +38 -0
  72. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/render/scene_columns.cpp +129 -58
  73. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/render/scene_columns.h +20 -3
  74. ernie_renderer-0.2.0.dev117/ernie/render/top_levels.cpp +138 -0
  75. ernie_renderer-0.2.0.dev117/ernie/render/top_levels.h +58 -0
  76. ernie_renderer-0.2.0.dev117/ernie/render/transform_graph.cpp +992 -0
  77. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/render/transform_graph.h +68 -17
  78. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/CMakeLists.txt +10 -10
  79. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/inherit.cpp +2 -0
  80. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/json.cpp +8 -2
  81. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/json_value.h +21 -1
  82. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/reference.cpp +12 -12
  83. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/scene.cpp +32 -2
  84. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/scene.h +6 -5
  85. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/camera.cpp +1 -1
  86. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/camera.h +5 -4
  87. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/geom.cpp +1 -1
  88. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/instancer.cpp +1 -1
  89. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/instancer.h +1 -1
  90. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/lux.cpp +1 -1
  91. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/lux.h +1 -1
  92. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/mesh.cpp +1 -1
  93. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/mesh.h +1 -1
  94. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/planet.cpp +1 -1
  95. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/planet.h +1 -1
  96. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/registry.cpp +10 -10
  97. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/render.cpp +1 -1
  98. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/render.h +8 -1
  99. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/shade.cpp +1 -1
  100. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/vol.cpp +1 -1
  101. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/vol.h +1 -1
  102. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/xform.cpp +90 -66
  103. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/xform.h +27 -5
  104. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/file.cpp +9 -1
  105. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/file.h +5 -1
  106. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/parallel.h +1 -1
  107. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/profiler.h +9 -7
  108. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/CMakeLists.txt +28 -2
  109. ernie_renderer-0.2.0.dev117/tests/app/orbit_camera_test.cpp +55 -0
  110. ernie_renderer-0.2.0.dev117/tests/app/shell_test.cpp +178 -0
  111. ernie_renderer-0.2.0.dev117/tests/app/view_test.cpp +51 -0
  112. ernie_renderer-0.2.0.dev117/tests/app/viewer_test.cpp +126 -0
  113. ernie_renderer-0.2.0.dev117/tests/device/acceleration_test.cpp +343 -0
  114. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/common.h +11 -5
  115. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/context_test.cpp +25 -0
  116. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/kernel_test.cpp +57 -0
  117. ernie_renderer-0.2.0.dev117/tests/device/profile_test.cpp +89 -0
  118. ernie_renderer-0.2.0.dev117/tests/geometry/triangulation_test.cpp +37 -0
  119. ernie_renderer-0.2.0.dev117/tests/graph/dependencies_test.cpp +258 -0
  120. ernie_renderer-0.2.0.dev117/tests/graph/graph_test.cpp +396 -0
  121. ernie_renderer-0.2.0.dev117/tests/python/test_scene.py +140 -0
  122. ernie_renderer-0.2.0.dev117/tests/render/acceleration_scene_test.cpp +186 -0
  123. ernie_renderer-0.2.0.dev117/tests/render/device_scene_test.cpp +127 -0
  124. ernie_renderer-0.2.0.dev117/tests/render/geometry_test.cpp +167 -0
  125. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/render/scene_columns_test.cpp +1 -1
  126. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/render/transform_graph_test.cpp +99 -5
  127. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/edit_history_test.cpp +3 -3
  128. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/extent_cache_test.cpp +1 -1
  129. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/inherit_test.cpp +3 -3
  130. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/instancer_test.cpp +1 -1
  131. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/json_test.cpp +4 -4
  132. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/lux_test.cpp +6 -6
  133. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/mesh_test.cpp +1 -1
  134. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/planet_test.cpp +1 -1
  135. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/render_test.cpp +10 -2
  136. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/scene_test.cpp +3 -3
  137. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/schema_test.cpp +1 -1
  138. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/shade_test.cpp +2 -2
  139. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/time_samples_test.cpp +2 -2
  140. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/vol_test.cpp +1 -1
  141. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/xform_test.cpp +1 -1
  142. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/file_test.cpp +12 -0
  143. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/parallel_test.cpp +3 -3
  144. ernie_renderer-0.2.0.dev76/ernie/app/CMakeLists.txt +0 -5
  145. ernie_renderer-0.2.0.dev76/ernie/geometry/CMakeLists.txt +0 -3
  146. ernie_renderer-0.2.0.dev76/ernie/graph/CMakeLists.txt +0 -3
  147. ernie_renderer-0.2.0.dev76/ernie/render/CMakeLists.txt +0 -7
  148. ernie_renderer-0.2.0.dev76/ernie/render/transform_graph.cpp +0 -719
  149. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/.clang-format +0 -0
  150. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/.clang-tidy +0 -0
  151. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/.dockerignore +0 -0
  152. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/.gersemirc +0 -0
  153. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/.gitattributes +0 -0
  154. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/.github/scripts/coverage_badge.py +0 -0
  155. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/.github/scripts/install-lavapipe-windows.sh +0 -0
  156. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/.gitignore +0 -0
  157. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/.pre-commit-config.yaml +0 -0
  158. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/CMakePresets.json +0 -0
  159. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/Dockerfile +0 -0
  160. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/LICENSE +0 -0
  161. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/README.md +0 -0
  162. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/benchmarks/bench.h +0 -0
  163. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/benchmarks/device/pose_step.cpp +0 -0
  164. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/benchmarks/main.cpp +0 -0
  165. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/benchmarks/scene/storage.cpp +0 -0
  166. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/ErnieConfig.cmake.in +0 -0
  167. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/ErnieFetch.cmake +0 -0
  168. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/ErnieInstall.cmake +0 -0
  169. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/ErniePackaging.cmake +0 -0
  170. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/ErnieTesting.cmake +0 -0
  171. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/ernie.pc.in +0 -0
  172. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/third_party/googletest.cmake +0 -0
  173. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/third_party/nanobind.cmake +0 -0
  174. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/third_party/openexr.cmake +0 -0
  175. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/third_party/slang.cmake +0 -0
  176. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/cmake/third_party/tracy.cmake +0 -0
  177. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/docs/README.md +0 -0
  178. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/docs/index.md +0 -0
  179. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/docs/requirements.txt +0 -0
  180. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/CMakeLists.txt +0 -0
  181. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/arena.cpp +0 -0
  182. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/arena.h +0 -0
  183. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/bindless.cpp +0 -0
  184. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/bindless.h +0 -0
  185. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/buffer.h +0 -0
  186. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/column.cpp +0 -0
  187. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/column.h +0 -0
  188. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/cuda.h +0 -0
  189. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/external.cpp +0 -0
  190. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/external.h +0 -0
  191. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/image.cpp +0 -0
  192. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/kernel.h +0 -0
  193. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/device/shader_compiler.h +0 -0
  194. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/geometry/bounds.h +0 -0
  195. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/CMakeLists.txt +0 -0
  196. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/ies.cpp +0 -0
  197. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/ies.h +0 -0
  198. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/image.cpp +0 -0
  199. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/image.h +0 -0
  200. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/nanovdb.h +0 -0
  201. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/raster.cpp +0 -0
  202. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/raster.h +0 -0
  203. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/io/texture.h +0 -0
  204. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/CMakeLists.txt +0 -0
  205. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/astronomy.cpp +0 -0
  206. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/astronomy.h +0 -0
  207. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/atmosphere.cpp +0 -0
  208. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/atmosphere.h +0 -0
  209. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/cloud.h +0 -0
  210. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/constants.h +0 -0
  211. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/reflectance_library.cpp +0 -0
  212. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/reflectance_library.h +0 -0
  213. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/reflectance_table.h +0 -0
  214. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/regolith.h +0 -0
  215. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/scattering.cpp +0 -0
  216. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/scattering.h +0 -0
  217. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/solar.cpp +0 -0
  218. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/solar.h +0 -0
  219. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/solar_table.h +0 -0
  220. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/spectrum.cpp +0 -0
  221. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/physics/spectrum.h +0 -0
  222. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/python/device.h +0 -0
  223. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/animation.cpp +0 -0
  224. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/convert.h +0 -0
  225. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/edit_history.cpp +0 -0
  226. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/edit_history.h +0 -0
  227. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/extent_cache.cpp +0 -0
  228. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/extent_cache.h +0 -0
  229. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/holder_index.cpp +0 -0
  230. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/holder_index.h +0 -0
  231. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/json.h +0 -0
  232. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/path.cpp +0 -0
  233. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/path.h +0 -0
  234. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/reference.h +0 -0
  235. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/collection.h +0 -0
  236. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/geom.h +0 -0
  237. {ernie_renderer-0.2.0.dev76/ernie/scene/schemas → ernie_renderer-0.2.0.dev117/ernie/scene/schema}/shade.h +0 -0
  238. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/schema.cpp +0 -0
  239. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/schema.h +0 -0
  240. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/storage.cpp +0 -0
  241. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/storage.h +0 -0
  242. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/time_samples.cpp +0 -0
  243. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/time_samples.h +0 -0
  244. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/tokens.h +0 -0
  245. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/usd_plugin.cpp +0 -0
  246. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/validate.cpp +0 -0
  247. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/value.h +0 -0
  248. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/view.cpp +0 -0
  249. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/scene/view.h +0 -0
  250. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/CMakeLists.txt +0 -0
  251. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/algorithm.h +0 -0
  252. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/bytes.h +0 -0
  253. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/disk_cache.cpp +0 -0
  254. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/disk_cache.h +0 -0
  255. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/glm.h +0 -0
  256. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/hash_index.h +0 -0
  257. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/library.cpp +0 -0
  258. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/library.h +0 -0
  259. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/linear_algebra.h +0 -0
  260. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/log.cpp +0 -0
  261. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/log.h +0 -0
  262. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/math.h +0 -0
  263. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/noise.cpp +0 -0
  264. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/noise.h +0 -0
  265. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/numbers.h +0 -0
  266. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/on_failure.h +0 -0
  267. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/profiler.cpp +0 -0
  268. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/random.h +0 -0
  269. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/tensor.cpp +0 -0
  270. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/tensor.h +0 -0
  271. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/text.h +0 -0
  272. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/version.cpp +0 -0
  273. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/version.h +0 -0
  274. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/ernie/util/worker_pool.h +0 -0
  275. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/mkdocs.yml +0 -0
  276. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/pyproject.toml +0 -0
  277. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/common.h +0 -0
  278. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/consumer/CMakeLists.txt +0 -0
  279. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/consumer/main.cpp +0 -0
  280. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/arena_test.cpp +0 -0
  281. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/bindless_test.cpp +0 -0
  282. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/column_test.cpp +0 -0
  283. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/columns.h +0 -0
  284. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/cuda_test.cpp +0 -0
  285. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/external_test.cpp +0 -0
  286. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/pose_step.h +0 -0
  287. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/device/vulkan_devices_test.cpp +0 -0
  288. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/exr/README.md +0 -0
  289. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/exr/make_exr.py +0 -0
  290. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/exr/rgb_float_zip.exr +0 -0
  291. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/exr/rgba_half_window.exr +0 -0
  292. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/exr/y_half_zips.exr +0 -0
  293. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/ies/README.md +0 -0
  294. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/ies/downlight_quadrant.ies +0 -0
  295. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/ies/floodlight_type_b.ies +0 -0
  296. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/ies/lamp.tilt +0 -0
  297. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/images/grey16.png +0 -0
  298. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/ktx2/README.md +0 -0
  299. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/ktx2/quadrants_etc1s.ktx2 +0 -0
  300. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/ktx2/quadrants_uastc_zstd.ktx2 +0 -0
  301. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/ktx2/tilted_normal_etc1s.ktx2 +0 -0
  302. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/ktx2/tilted_normal_uastc.ktx2 +0 -0
  303. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/scenes/README.md +0 -0
  304. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/scenes/invalid/problems.expected +0 -0
  305. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/scenes/invalid/problems.json +0 -0
  306. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/scenes/rover.json +0 -0
  307. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/scenes/rover.saved.json +0 -0
  308. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/tiff/README.md +0 -0
  309. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/tiff/float_deflate_predictor3.tif +0 -0
  310. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/tiff/float_raw.tif +0 -0
  311. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/tiff/int16_bigtiff_bigendian.tif +0 -0
  312. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/tiff/rgb_lzw_predictor2.tif +0 -0
  313. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/tiff/rgb_planar_lzw.tif +0 -0
  314. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/tiff/rgb_planar_raw.tif +0 -0
  315. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/tiff/rgb_tiled_deflate.tif +0 -0
  316. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/volumes/cube.nvdb +0 -0
  317. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/fixtures/volumes/make_nvdb.py +0 -0
  318. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/geometry/bounds_test.cpp +0 -0
  319. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/io/ies_test.cpp +0 -0
  320. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/io/image_test.cpp +0 -0
  321. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/io/nanovdb_test.cpp +0 -0
  322. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/io/raster_test.cpp +0 -0
  323. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/io/texture_test.cpp +0 -0
  324. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/physics/astronomy_test.cpp +0 -0
  325. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/physics/atmosphere_test.cpp +0 -0
  326. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/physics/cloud_test.cpp +0 -0
  327. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/physics/reflectance_library_test.cpp +0 -0
  328. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/physics/regolith_test.cpp +0 -0
  329. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/physics/scattering_test.cpp +0 -0
  330. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/physics/solar_test.cpp +0 -0
  331. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/physics/spectrum_test.cpp +0 -0
  332. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/python/conftest.py +0 -0
  333. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/python/test_device_dlpack.py +0 -0
  334. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/python/test_device_torch.py +0 -0
  335. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/python/test_package.py +0 -0
  336. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/python/test_scene_schema.py +0 -0
  337. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/path_test.cpp +0 -0
  338. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/reference_test.cpp +0 -0
  339. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/scene/storage_test.cpp +0 -0
  340. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/algorithm_test.cpp +0 -0
  341. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/bytes_test.cpp +0 -0
  342. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/disk_cache_test.cpp +0 -0
  343. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/hash_index_test.cpp +0 -0
  344. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/linear_algebra_test.cpp +0 -0
  345. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/log_test.cpp +0 -0
  346. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/math_test.cpp +0 -0
  347. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/noise_test.cpp +0 -0
  348. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/profiler_test.cpp +0 -0
  349. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/random_test.cpp +0 -0
  350. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/tensor_test.cpp +0 -0
  351. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/text_test.cpp +0 -0
  352. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/version_test.cpp +0 -0
  353. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/tests/util/worker_pool_test.cpp +0 -0
  354. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/CMakeLists.txt +0 -0
  355. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/README.md +0 -0
  356. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/LICENSE +0 -0
  357. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/LICENSES/Apache-2.0.txt +0 -0
  358. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/LICENSES/BSD-3-clause.txt +0 -0
  359. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/LICENSES/MIT.txt +0 -0
  360. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/NOTICE +0 -0
  361. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/README.md +0 -0
  362. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu.h +0 -0
  363. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_astc_cfgs.inl +0 -0
  364. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_astc_hdr_core.h +0 -0
  365. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_astc_helpers.h +0 -0
  366. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_containers.h +0 -0
  367. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_containers_impl.h +0 -0
  368. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_dds_transcoder.inl +0 -0
  369. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_etc1_mods.inl +0 -0
  370. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_file_headers.h +0 -0
  371. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_idct.h +0 -0
  372. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder.cpp +0 -0
  373. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder.h +0 -0
  374. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_internal.h +0 -0
  375. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_tables_astc.inc +0 -0
  376. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_tables_astc_0_255.inc +0 -0
  377. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_tables_atc_55.inc +0 -0
  378. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_tables_atc_56.inc +0 -0
  379. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_tables_bc7_m5_alpha.inc +0 -0
  380. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_tables_bc7_m5_color.inc +0 -0
  381. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_tables_dxt1_5.inc +0 -0
  382. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_tables_dxt1_6.inc +0 -0
  383. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_tables_pvrtc2_45.inc +0 -0
  384. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_tables_pvrtc2_alpha_33.inc +0 -0
  385. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_transcoder_uastc.h +0 -0
  386. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_xbc7_decoder.h +0 -0
  387. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/transcoder/basisu_xbc7_decoder.inl +0 -0
  388. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/zstd/LICENSE +0 -0
  389. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/zstd/zstd.h +0 -0
  390. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/basisu/zstd/zstd_errors.h +0 -0
  391. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/bc7enc/LICENSE +0 -0
  392. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/bc7enc/README.md +0 -0
  393. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/bc7enc/bc7decomp.cpp +0 -0
  394. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/bc7enc/bc7decomp.h +0 -0
  395. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/bc7enc/bc7enc.cpp +0 -0
  396. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/bc7enc/bc7enc.h +0 -0
  397. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/bc7enc/rgbcx.cpp +0 -0
  398. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/bc7enc/rgbcx.h +0 -0
  399. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/bc7enc/rgbcx_table4.h +0 -0
  400. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/bc7enc/rgbcx_table4_small.h +0 -0
  401. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/dlpack/LICENSE +0 -0
  402. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/dlpack/README.md +0 -0
  403. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/dlpack/include/dlpack/dlpack.h +0 -0
  404. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/README.md +0 -0
  405. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/copying.txt +0 -0
  406. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/common.hpp +0 -0
  407. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/_features.hpp +0 -0
  408. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/_fixes.hpp +0 -0
  409. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/_noise.hpp +0 -0
  410. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/_swizzle.hpp +0 -0
  411. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/_swizzle_func.hpp +0 -0
  412. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/_vectorize.hpp +0 -0
  413. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/compute_common.hpp +0 -0
  414. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/compute_vector_decl.hpp +0 -0
  415. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/compute_vector_relational.hpp +0 -0
  416. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_common.inl +0 -0
  417. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_common_simd.inl +0 -0
  418. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_exponential.inl +0 -0
  419. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_exponential_simd.inl +0 -0
  420. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_geometric.inl +0 -0
  421. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_geometric_simd.inl +0 -0
  422. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_integer.inl +0 -0
  423. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_integer_simd.inl +0 -0
  424. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_matrix.inl +0 -0
  425. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_matrix_simd.inl +0 -0
  426. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_packing.inl +0 -0
  427. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_packing_simd.inl +0 -0
  428. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_trigonometric.inl +0 -0
  429. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_trigonometric_simd.inl +0 -0
  430. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_vector_relational.inl +0 -0
  431. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/func_vector_relational_simd.inl +0 -0
  432. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/qualifier.hpp +0 -0
  433. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/setup.hpp +0 -0
  434. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_float.hpp +0 -0
  435. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_half.hpp +0 -0
  436. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_half.inl +0 -0
  437. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat2x2.hpp +0 -0
  438. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat2x2.inl +0 -0
  439. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat2x3.hpp +0 -0
  440. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat2x3.inl +0 -0
  441. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat2x4.hpp +0 -0
  442. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat2x4.inl +0 -0
  443. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat3x2.hpp +0 -0
  444. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat3x2.inl +0 -0
  445. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat3x3.hpp +0 -0
  446. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat3x3.inl +0 -0
  447. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat3x4.hpp +0 -0
  448. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat3x4.inl +0 -0
  449. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat4x2.hpp +0 -0
  450. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat4x2.inl +0 -0
  451. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat4x3.hpp +0 -0
  452. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat4x3.inl +0 -0
  453. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat4x4.hpp +0 -0
  454. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat4x4.inl +0 -0
  455. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_mat4x4_simd.inl +0 -0
  456. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_quat.hpp +0 -0
  457. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_quat.inl +0 -0
  458. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_quat_simd.inl +0 -0
  459. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_vec1.hpp +0 -0
  460. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_vec1.inl +0 -0
  461. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_vec2.hpp +0 -0
  462. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_vec2.inl +0 -0
  463. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_vec3.hpp +0 -0
  464. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_vec3.inl +0 -0
  465. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_vec4.hpp +0 -0
  466. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_vec4.inl +0 -0
  467. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/detail/type_vec_simd.inl +0 -0
  468. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/exponential.hpp +0 -0
  469. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/_matrix_vectorize.hpp +0 -0
  470. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_clip_space.hpp +0 -0
  471. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_clip_space.inl +0 -0
  472. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_common.hpp +0 -0
  473. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_common.inl +0 -0
  474. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double2x2.hpp +0 -0
  475. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double2x2_precision.hpp +0 -0
  476. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double2x3.hpp +0 -0
  477. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double2x3_precision.hpp +0 -0
  478. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double2x4.hpp +0 -0
  479. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double2x4_precision.hpp +0 -0
  480. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double3x2.hpp +0 -0
  481. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double3x2_precision.hpp +0 -0
  482. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double3x3.hpp +0 -0
  483. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double3x3_precision.hpp +0 -0
  484. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double3x4.hpp +0 -0
  485. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double3x4_precision.hpp +0 -0
  486. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double4x2.hpp +0 -0
  487. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double4x2_precision.hpp +0 -0
  488. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double4x3.hpp +0 -0
  489. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double4x3_precision.hpp +0 -0
  490. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double4x4.hpp +0 -0
  491. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_double4x4_precision.hpp +0 -0
  492. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float2x2.hpp +0 -0
  493. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float2x2_precision.hpp +0 -0
  494. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float2x3.hpp +0 -0
  495. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float2x3_precision.hpp +0 -0
  496. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float2x4.hpp +0 -0
  497. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float2x4_precision.hpp +0 -0
  498. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float3x2.hpp +0 -0
  499. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float3x2_precision.hpp +0 -0
  500. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float3x3.hpp +0 -0
  501. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float3x3_precision.hpp +0 -0
  502. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float3x4.hpp +0 -0
  503. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float3x4_precision.hpp +0 -0
  504. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float4x2.hpp +0 -0
  505. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float4x2_precision.hpp +0 -0
  506. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float4x3.hpp +0 -0
  507. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float4x3_precision.hpp +0 -0
  508. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float4x4.hpp +0 -0
  509. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_float4x4_precision.hpp +0 -0
  510. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int2x2.hpp +0 -0
  511. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int2x2_sized.hpp +0 -0
  512. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int2x3.hpp +0 -0
  513. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int2x3_sized.hpp +0 -0
  514. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int2x4.hpp +0 -0
  515. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int2x4_sized.hpp +0 -0
  516. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int3x2.hpp +0 -0
  517. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int3x2_sized.hpp +0 -0
  518. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int3x3.hpp +0 -0
  519. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int3x3_sized.hpp +0 -0
  520. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int3x4.hpp +0 -0
  521. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int3x4_sized.hpp +0 -0
  522. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int4x2.hpp +0 -0
  523. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int4x2_sized.hpp +0 -0
  524. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int4x3.hpp +0 -0
  525. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int4x3_sized.hpp +0 -0
  526. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int4x4.hpp +0 -0
  527. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_int4x4_sized.hpp +0 -0
  528. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_integer.hpp +0 -0
  529. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_integer.inl +0 -0
  530. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_projection.hpp +0 -0
  531. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_projection.inl +0 -0
  532. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_relational.hpp +0 -0
  533. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_relational.inl +0 -0
  534. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_transform.hpp +0 -0
  535. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_transform.inl +0 -0
  536. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint2x2.hpp +0 -0
  537. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint2x2_sized.hpp +0 -0
  538. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint2x3.hpp +0 -0
  539. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint2x3_sized.hpp +0 -0
  540. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint2x4.hpp +0 -0
  541. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint2x4_sized.hpp +0 -0
  542. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint3x2.hpp +0 -0
  543. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint3x2_sized.hpp +0 -0
  544. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint3x3.hpp +0 -0
  545. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint3x3_sized.hpp +0 -0
  546. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint3x4.hpp +0 -0
  547. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint3x4_sized.hpp +0 -0
  548. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint4x2.hpp +0 -0
  549. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint4x2_sized.hpp +0 -0
  550. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint4x3.hpp +0 -0
  551. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint4x3_sized.hpp +0 -0
  552. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint4x4.hpp +0 -0
  553. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/matrix_uint4x4_sized.hpp +0 -0
  554. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_common.hpp +0 -0
  555. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_common.inl +0 -0
  556. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_common_simd.inl +0 -0
  557. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_double.hpp +0 -0
  558. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_double_precision.hpp +0 -0
  559. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_exponential.hpp +0 -0
  560. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_exponential.inl +0 -0
  561. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_float.hpp +0 -0
  562. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_float_precision.hpp +0 -0
  563. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_geometric.hpp +0 -0
  564. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_geometric.inl +0 -0
  565. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_relational.hpp +0 -0
  566. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_relational.inl +0 -0
  567. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_transform.hpp +0 -0
  568. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_transform.inl +0 -0
  569. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_trigonometric.hpp +0 -0
  570. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/quaternion_trigonometric.inl +0 -0
  571. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_common.hpp +0 -0
  572. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_common.inl +0 -0
  573. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_constants.hpp +0 -0
  574. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_constants.inl +0 -0
  575. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_int_sized.hpp +0 -0
  576. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_integer.hpp +0 -0
  577. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_integer.inl +0 -0
  578. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_packing.hpp +0 -0
  579. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_packing.inl +0 -0
  580. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_reciprocal.hpp +0 -0
  581. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_reciprocal.inl +0 -0
  582. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_relational.hpp +0 -0
  583. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_relational.inl +0 -0
  584. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_uint_sized.hpp +0 -0
  585. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_ulp.hpp +0 -0
  586. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/scalar_ulp.inl +0 -0
  587. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_bool1.hpp +0 -0
  588. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_bool1_precision.hpp +0 -0
  589. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_bool2.hpp +0 -0
  590. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_bool2_precision.hpp +0 -0
  591. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_bool3.hpp +0 -0
  592. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_bool3_precision.hpp +0 -0
  593. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_bool4.hpp +0 -0
  594. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_bool4_precision.hpp +0 -0
  595. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_common.hpp +0 -0
  596. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_common.inl +0 -0
  597. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_double1.hpp +0 -0
  598. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_double1_precision.hpp +0 -0
  599. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_double2.hpp +0 -0
  600. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_double2_precision.hpp +0 -0
  601. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_double3.hpp +0 -0
  602. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_double3_precision.hpp +0 -0
  603. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_double4.hpp +0 -0
  604. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_double4_precision.hpp +0 -0
  605. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_float1.hpp +0 -0
  606. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_float1_precision.hpp +0 -0
  607. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_float2.hpp +0 -0
  608. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_float2_precision.hpp +0 -0
  609. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_float3.hpp +0 -0
  610. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_float3_precision.hpp +0 -0
  611. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_float4.hpp +0 -0
  612. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_float4_precision.hpp +0 -0
  613. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_int1.hpp +0 -0
  614. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_int1_sized.hpp +0 -0
  615. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_int2.hpp +0 -0
  616. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_int2_sized.hpp +0 -0
  617. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_int3.hpp +0 -0
  618. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_int3_sized.hpp +0 -0
  619. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_int4.hpp +0 -0
  620. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_int4_sized.hpp +0 -0
  621. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_integer.hpp +0 -0
  622. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_integer.inl +0 -0
  623. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_packing.hpp +0 -0
  624. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_packing.inl +0 -0
  625. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_reciprocal.hpp +0 -0
  626. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_reciprocal.inl +0 -0
  627. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_relational.hpp +0 -0
  628. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_relational.inl +0 -0
  629. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_uint1.hpp +0 -0
  630. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_uint1_sized.hpp +0 -0
  631. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_uint2.hpp +0 -0
  632. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_uint2_sized.hpp +0 -0
  633. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_uint3.hpp +0 -0
  634. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_uint3_sized.hpp +0 -0
  635. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_uint4.hpp +0 -0
  636. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_uint4_sized.hpp +0 -0
  637. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_ulp.hpp +0 -0
  638. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext/vector_ulp.inl +0 -0
  639. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/ext.hpp +0 -0
  640. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/fwd.hpp +0 -0
  641. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/geometric.hpp +0 -0
  642. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/glm.hpp +0 -0
  643. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/bitfield.hpp +0 -0
  644. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/bitfield.inl +0 -0
  645. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/color_space.hpp +0 -0
  646. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/color_space.inl +0 -0
  647. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/constants.hpp +0 -0
  648. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/constants.inl +0 -0
  649. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/epsilon.hpp +0 -0
  650. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/epsilon.inl +0 -0
  651. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/integer.hpp +0 -0
  652. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/integer.inl +0 -0
  653. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/matrix_access.hpp +0 -0
  654. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/matrix_access.inl +0 -0
  655. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/matrix_integer.hpp +0 -0
  656. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/matrix_inverse.hpp +0 -0
  657. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/matrix_inverse.inl +0 -0
  658. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/matrix_transform.hpp +0 -0
  659. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/matrix_transform.inl +0 -0
  660. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/noise.hpp +0 -0
  661. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/noise.inl +0 -0
  662. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/packing.hpp +0 -0
  663. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/packing.inl +0 -0
  664. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/quaternion.hpp +0 -0
  665. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/quaternion.inl +0 -0
  666. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/quaternion_simd.inl +0 -0
  667. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/random.hpp +0 -0
  668. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/random.inl +0 -0
  669. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/reciprocal.hpp +0 -0
  670. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/round.hpp +0 -0
  671. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/round.inl +0 -0
  672. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/type_aligned.hpp +0 -0
  673. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/type_precision.hpp +0 -0
  674. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/type_precision.inl +0 -0
  675. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/type_ptr.hpp +0 -0
  676. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/type_ptr.inl +0 -0
  677. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/ulp.hpp +0 -0
  678. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/ulp.inl +0 -0
  679. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtc/vec1.hpp +0 -0
  680. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/associated_min_max.hpp +0 -0
  681. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/associated_min_max.inl +0 -0
  682. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/bit.hpp +0 -0
  683. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/bit.inl +0 -0
  684. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/closest_point.hpp +0 -0
  685. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/closest_point.inl +0 -0
  686. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/color_encoding.hpp +0 -0
  687. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/color_encoding.inl +0 -0
  688. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/color_space.hpp +0 -0
  689. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/color_space.inl +0 -0
  690. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/color_space_YCoCg.hpp +0 -0
  691. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/color_space_YCoCg.inl +0 -0
  692. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/common.hpp +0 -0
  693. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/common.inl +0 -0
  694. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/compatibility.hpp +0 -0
  695. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/compatibility.inl +0 -0
  696. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/component_wise.hpp +0 -0
  697. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/component_wise.inl +0 -0
  698. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/dual_quaternion.hpp +0 -0
  699. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/dual_quaternion.inl +0 -0
  700. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/easing.hpp +0 -0
  701. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/easing.inl +0 -0
  702. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/euler_angles.hpp +0 -0
  703. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/euler_angles.inl +0 -0
  704. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/extend.hpp +0 -0
  705. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/extend.inl +0 -0
  706. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/extended_min_max.hpp +0 -0
  707. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/extended_min_max.inl +0 -0
  708. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/exterior_product.hpp +0 -0
  709. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/exterior_product.inl +0 -0
  710. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/fast_exponential.hpp +0 -0
  711. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/fast_exponential.inl +0 -0
  712. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/fast_square_root.hpp +0 -0
  713. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/fast_square_root.inl +0 -0
  714. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/fast_trigonometry.hpp +0 -0
  715. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/fast_trigonometry.inl +0 -0
  716. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/float_normalize.inl +0 -0
  717. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/functions.hpp +0 -0
  718. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/functions.inl +0 -0
  719. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/gradient_paint.hpp +0 -0
  720. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/gradient_paint.inl +0 -0
  721. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/handed_coordinate_space.hpp +0 -0
  722. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/handed_coordinate_space.inl +0 -0
  723. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/hash.hpp +0 -0
  724. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/hash.inl +0 -0
  725. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/integer.hpp +0 -0
  726. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/integer.inl +0 -0
  727. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/intersect.hpp +0 -0
  728. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/intersect.inl +0 -0
  729. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/io.hpp +0 -0
  730. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/io.inl +0 -0
  731. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/iteration.hpp +0 -0
  732. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/iteration.inl +0 -0
  733. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/log_base.hpp +0 -0
  734. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/log_base.inl +0 -0
  735. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_cross_product.hpp +0 -0
  736. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_cross_product.inl +0 -0
  737. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_decompose.hpp +0 -0
  738. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_decompose.inl +0 -0
  739. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_factorisation.hpp +0 -0
  740. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_factorisation.inl +0 -0
  741. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_interpolation.hpp +0 -0
  742. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_interpolation.inl +0 -0
  743. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_major_storage.hpp +0 -0
  744. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_major_storage.inl +0 -0
  745. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_operation.hpp +0 -0
  746. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_operation.inl +0 -0
  747. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_query.hpp +0 -0
  748. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_query.inl +0 -0
  749. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_transform_2d.hpp +0 -0
  750. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/matrix_transform_2d.inl +0 -0
  751. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/mixed_product.hpp +0 -0
  752. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/mixed_product.inl +0 -0
  753. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/norm.hpp +0 -0
  754. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/norm.inl +0 -0
  755. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/normal.hpp +0 -0
  756. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/normal.inl +0 -0
  757. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/normalize_dot.hpp +0 -0
  758. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/normalize_dot.inl +0 -0
  759. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/number_precision.hpp +0 -0
  760. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/optimum_pow.hpp +0 -0
  761. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/optimum_pow.inl +0 -0
  762. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/orthonormalize.hpp +0 -0
  763. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/orthonormalize.inl +0 -0
  764. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/pca.hpp +0 -0
  765. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/pca.inl +0 -0
  766. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/perpendicular.hpp +0 -0
  767. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/perpendicular.inl +0 -0
  768. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/polar_coordinates.hpp +0 -0
  769. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/polar_coordinates.inl +0 -0
  770. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/projection.hpp +0 -0
  771. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/projection.inl +0 -0
  772. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/quaternion.hpp +0 -0
  773. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/quaternion.inl +0 -0
  774. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/range.hpp +0 -0
  775. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/raw_data.hpp +0 -0
  776. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/raw_data.inl +0 -0
  777. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/rotate_normalized_axis.hpp +0 -0
  778. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/rotate_normalized_axis.inl +0 -0
  779. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/rotate_vector.hpp +0 -0
  780. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/rotate_vector.inl +0 -0
  781. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/scalar_multiplication.hpp +0 -0
  782. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/scalar_relational.hpp +0 -0
  783. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/scalar_relational.inl +0 -0
  784. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/spline.hpp +0 -0
  785. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/spline.inl +0 -0
  786. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/std_based_type.hpp +0 -0
  787. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/std_based_type.inl +0 -0
  788. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/string_cast.hpp +0 -0
  789. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/string_cast.inl +0 -0
  790. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/structured_bindings.hpp +0 -0
  791. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/structured_bindings.inl +0 -0
  792. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/texture.hpp +0 -0
  793. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/texture.inl +0 -0
  794. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/transform.hpp +0 -0
  795. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/transform.inl +0 -0
  796. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/transform2.hpp +0 -0
  797. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/transform2.inl +0 -0
  798. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/type_aligned.hpp +0 -0
  799. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/type_aligned.inl +0 -0
  800. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/type_trait.hpp +0 -0
  801. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/type_trait.inl +0 -0
  802. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/vec_swizzle.hpp +0 -0
  803. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/vector_angle.hpp +0 -0
  804. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/vector_angle.inl +0 -0
  805. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/vector_query.hpp +0 -0
  806. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/vector_query.inl +0 -0
  807. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/wrap.hpp +0 -0
  808. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/gtx/wrap.inl +0 -0
  809. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/integer.hpp +0 -0
  810. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/mat2x2.hpp +0 -0
  811. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/mat2x3.hpp +0 -0
  812. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/mat2x4.hpp +0 -0
  813. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/mat3x2.hpp +0 -0
  814. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/mat3x3.hpp +0 -0
  815. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/mat3x4.hpp +0 -0
  816. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/mat4x2.hpp +0 -0
  817. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/mat4x3.hpp +0 -0
  818. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/mat4x4.hpp +0 -0
  819. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/matrix.hpp +0 -0
  820. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/packing.hpp +0 -0
  821. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/simd/common.h +0 -0
  822. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/simd/exponential.h +0 -0
  823. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/simd/geometric.h +0 -0
  824. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/simd/integer.h +0 -0
  825. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/simd/matrix.h +0 -0
  826. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/simd/neon.h +0 -0
  827. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/simd/packing.h +0 -0
  828. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/simd/platform.h +0 -0
  829. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/simd/trigonometric.h +0 -0
  830. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/simd/vector_relational.h +0 -0
  831. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/trigonometric.hpp +0 -0
  832. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/vec2.hpp +0 -0
  833. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/vec3.hpp +0 -0
  834. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/vec4.hpp +0 -0
  835. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/glm/glm/vector_relational.hpp +0 -0
  836. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/json/LICENSE.MIT +0 -0
  837. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/json/README.md +0 -0
  838. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/json/include/nlohmann/json.hpp +0 -0
  839. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/json/include/nlohmann/json_fwd.hpp +0 -0
  840. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/nanovdb/LICENSE +0 -0
  841. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/nanovdb/PNanoVDB.h +0 -0
  842. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/stb/LICENSE +0 -0
  843. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/stb/README.md +0 -0
  844. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/stb/stb_image.h +0 -0
  845. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/stb/stb_image_write.h +0 -0
  846. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/stb.cpp +0 -0
  847. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vma/LICENSE.txt +0 -0
  848. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vma/README.md +0 -0
  849. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vma/include/vk_mem_alloc.h +0 -0
  850. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vma.cpp +0 -0
  851. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/volk/LICENSE.md +0 -0
  852. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/volk/README.md +0 -0
  853. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/volk/volk.c +0 -0
  854. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/volk/volk.h +0 -0
  855. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/LICENSE.md +0 -0
  856. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/LICENSES/Apache-2.0.txt +0 -0
  857. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/LICENSES/MIT.txt +0 -0
  858. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/README.md +0 -0
  859. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std.h +0 -0
  860. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std_decode.h +0 -0
  861. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std_encode.h +0 -0
  862. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std.h +0 -0
  863. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std_decode.h +0 -0
  864. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std_encode.h +0 -0
  865. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std.h +0 -0
  866. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std_decode.h +0 -0
  867. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std_encode.h +0 -0
  868. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_vp9std.h +0 -0
  869. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_vp9std_decode.h +0 -0
  870. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vk_video/vulkan_video_codecs_common.h +0 -0
  871. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vk_icd.h +0 -0
  872. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vk_layer.h +0 -0
  873. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vk_platform.h +0 -0
  874. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan.h +0 -0
  875. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_android.h +0 -0
  876. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_beta.h +0 -0
  877. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_core.h +0 -0
  878. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_directfb.h +0 -0
  879. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_fuchsia.h +0 -0
  880. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_ggp.h +0 -0
  881. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_ios.h +0 -0
  882. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_macos.h +0 -0
  883. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_metal.h +0 -0
  884. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_ohos.h +0 -0
  885. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_screen.h +0 -0
  886. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_ubm.h +0 -0
  887. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_vi.h +0 -0
  888. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_wayland.h +0 -0
  889. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_win32.h +0 -0
  890. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_xcb.h +0 -0
  891. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_xlib.h +0 -0
  892. {ernie_renderer-0.2.0.dev76 → ernie_renderer-0.2.0.dev117}/third_party/vulkan_headers/include/vulkan/vulkan_xlib_xrandr.h +0 -0
@@ -77,6 +77,14 @@ jobs:
77
77
  with:
78
78
  python-version: "3.12"
79
79
  - run: python -m pip install nanobind ninja
80
+ # The viewer's window: GLFW builds against X11's and Wayland's headers, and opens them at
81
+ # run time.
82
+ - name: Install window system headers
83
+ if: runner.os == 'Linux'
84
+ run: |
85
+ sudo apt-get update
86
+ sudo apt-get install -y libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev \
87
+ libxi-dev libwayland-dev libxkbcommon-dev
80
88
  # MSVC on the path for the Ninja generator.
81
89
  - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
82
90
  if: runner.os == 'Windows'
@@ -357,7 +365,8 @@ jobs:
357
365
  CMakeLists.txt
358
366
  - name: Build tools
359
367
  run: |
360
- dnf install -y -q rpm-build
368
+ dnf install -y -q rpm-build libX11-devel libXrandr-devel libXinerama-devel \
369
+ libXcursor-devel libXi-devel wayland-devel libxkbcommon-devel
361
370
  command -v ninja >/dev/null || pipx install -q ninja
362
371
  # One build; each format installs the library where its distributions look for it, as the
363
372
  # build image (RHEL's lib64) is not where Debian and Ubuntu look. The program relinks for
@@ -15,7 +15,7 @@ project(
15
15
  )
16
16
 
17
17
  # Pre-release suffix such as .dev12, written by CI.
18
- set(ERNIE_VERSION_SUFFIX ".dev76" CACHE STRING "Pre-release suffix of Ernie's version")
18
+ set(ERNIE_VERSION_SUFFIX ".dev117" CACHE STRING "Pre-release suffix of Ernie's version")
19
19
  set(ERNIE_VERSION "${PROJECT_VERSION}${ERNIE_VERSION_SUFFIX}")
20
20
 
21
21
  option(ERNIE_BUILD_TESTS "Build Ernie's tests" OFF)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ernie-renderer
3
- Version: 0.2.0.dev76
3
+ Version: 0.2.0.dev117
4
4
  Summary: Efficient Renderer for Natural and Interplanetary Environments: a physically based, spectral Vulkan ray tracer
5
5
  Author: Alex Maietta
6
6
  License-Expression: BSD-3-Clause
@@ -1,5 +1,12 @@
1
1
  # SPDX-License-Identifier: BSD-3-Clause
2
- add_executable(ernie_benchmarks main.cpp device/pose_step.cpp scene/extents.cpp scene/storage.cpp)
2
+ add_executable(
3
+ ernie_benchmarks
4
+ main.cpp
5
+ device/pose_step.cpp
6
+ render/transform_graph.cpp
7
+ scene/extents.cpp
8
+ scene/storage.cpp
9
+ )
3
10
  target_link_libraries(
4
11
  ernie_benchmarks
5
12
  PRIVATE ernie_static ernie_volk ernie_vma ernie_build_options
@@ -0,0 +1,85 @@
1
+ // SPDX-License-Identifier: BSD-3-Clause
2
+ /// @file transform_graph.cpp
3
+ /// @brief The transform graph at 10,000 environments of a body each: every body's transform
4
+ /// authored on the host, and the whole world removed in one update.
5
+ #include "ernie/render/transform_graph.h"
6
+ #include "benchmarks/bench.h"
7
+ #include "ernie/scene/xform.h"
8
+
9
+ #include <cstdio>
10
+ #include <memory>
11
+ #include <string>
12
+
13
+ namespace ernie::bench {
14
+ namespace {
15
+
16
+ constexpr int kEnvironments = 10'000;
17
+
18
+ /// A world of environments, each a body, and its transform graph.
19
+ struct World {
20
+ std::unique_ptr<DeviceContext> context;
21
+ std::unique_ptr<ShaderCompiler> compiler;
22
+ std::unique_ptr<Arenas> arenas;
23
+ std::unique_ptr<Scene> scene;
24
+ std::unique_ptr<TransformGraph> graph;
25
+
26
+ /// @return Whether there is a device to run on.
27
+ bool Open() {
28
+ try {
29
+ context = std::make_unique<DeviceContext>();
30
+ } catch (const DeviceError& error) {
31
+ std::printf("skipped: %s\n", error.what());
32
+ return false;
33
+ }
34
+ compiler = std::make_unique<ShaderCompiler>();
35
+ arenas = std::make_unique<Arenas>(*context, MemoryUse::Device, "transforms", 1 << 22);
36
+ return true;
37
+ }
38
+
39
+ void Build() {
40
+ graph.reset();
41
+ scene = std::make_unique<Scene>();
42
+ scene->Define("/World", "Xform");
43
+ for (int i = 0; i < kEnvironments; ++i) {
44
+ const std::string env = "/World/Env_" + std::to_string(i);
45
+ scene->Define(env, "Xform");
46
+ SetXform(*scene, env, {.translate = glm::dvec3(i, 0, 0)});
47
+ scene->Define(env + "/Body", "Xform");
48
+ SetXform(*scene, env + "/Body", {.translate = glm::dvec3(0), .scale = glm::dvec3(1)});
49
+ }
50
+ graph = std::make_unique<TransformGraph>(*context, *arenas, *scene, *compiler);
51
+ graph->Update().Wait();
52
+ }
53
+ };
54
+
55
+ const bool kHostEdits = Register("render.transform_graph.edit_10k_bodies", [] {
56
+ World world;
57
+ if (!world.Open()) {
58
+ return Timing{0.0, 5.0};
59
+ }
60
+ world.Build();
61
+ double height = 0.0;
62
+ const auto edit = [&] {
63
+ height += 1.0;
64
+ for (int i = 0; i < kEnvironments; ++i) {
65
+ world.scene->Set(*world.scene->Find("/World/Env_" + std::to_string(i) + "/Body"),
66
+ "xformOp:translate", glm::dvec3(0, 0, height));
67
+ }
68
+ };
69
+ return Timing{Fastest(edit, [&] { world.graph->Update().Wait(); }), 5.0};
70
+ });
71
+
72
+ const bool kRemoveWorld = Register("render.transform_graph.remove_20k_prims", [] {
73
+ World world;
74
+ if (!world.Open()) {
75
+ return Timing{0.0, 10.0};
76
+ }
77
+ const auto remove = [&] {
78
+ world.scene->Remove("/World");
79
+ world.graph->Update().Wait();
80
+ };
81
+ return Timing{Fastest([&] { world.Build(); }, remove, 3), 10.0};
82
+ });
83
+
84
+ } // namespace
85
+ } // namespace ernie::bench
@@ -2,7 +2,7 @@
2
2
  /// @file extents.cpp
3
3
  /// @brief Scene updates at 100,000 prims: the first, one edit's, and one inherited edit's.
4
4
  #include "benchmarks/bench.h"
5
- #include "ernie/scene/schemas/geom.h"
5
+ #include "ernie/scene/schema/geom.h"
6
6
 
7
7
  #include <memory>
8
8
  #include <string>
@@ -0,0 +1,40 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ set(ERNIE_DEP_VERSION_dear_imgui
3
+ v1.92.9b-docking
4
+ CACHE STRING
5
+ "Tag of Dear ImGui to fetch: a docking-branch tag, for dockable panels"
6
+ )
7
+ mark_as_advanced(ERNIE_DEP_VERSION_dear_imgui)
8
+
9
+ # Dear ImGui (MIT) has no CMake project; its sources are compiled here.
10
+ ernie_fetch(
11
+ dear_imgui
12
+ URL https://github.com/ocornut/imgui/archive/refs/tags/${ERNIE_DEP_VERSION_dear_imgui}.tar.gz
13
+ )
14
+ add_library(
15
+ ernie_imgui
16
+ STATIC
17
+ "${dear_imgui_SOURCE_DIR}/imgui.cpp"
18
+ "${dear_imgui_SOURCE_DIR}/imgui_demo.cpp"
19
+ "${dear_imgui_SOURCE_DIR}/imgui_draw.cpp"
20
+ "${dear_imgui_SOURCE_DIR}/imgui_tables.cpp"
21
+ "${dear_imgui_SOURCE_DIR}/imgui_widgets.cpp"
22
+ # Vulkan functions come from volk, as in the device layer.
23
+ "${dear_imgui_SOURCE_DIR}/backends/imgui_impl_vulkan.cpp"
24
+ )
25
+ target_include_directories(
26
+ ernie_imgui
27
+ SYSTEM
28
+ PUBLIC "${dear_imgui_SOURCE_DIR}" "${dear_imgui_SOURCE_DIR}/backends"
29
+ )
30
+ target_compile_definitions(ernie_imgui PUBLIC IMGUI_IMPL_VULKAN_USE_VOLK)
31
+ target_link_libraries(ernie_imgui PUBLIC ernie_volk)
32
+ ernie_quiet_third_party(ernie_imgui)
33
+
34
+ if(TARGET ernie_glfw)
35
+ add_library(ernie_imgui_glfw STATIC "${dear_imgui_SOURCE_DIR}/backends/imgui_impl_glfw.cpp")
36
+ # No OpenGL header from glfw3.h: the viewer draws with Vulkan.
37
+ target_compile_definitions(ernie_imgui_glfw PRIVATE GLFW_INCLUDE_NONE)
38
+ target_link_libraries(ernie_imgui_glfw PUBLIC ernie_imgui ernie_glfw)
39
+ ernie_quiet_third_party(ernie_imgui_glfw)
40
+ endif()
@@ -0,0 +1,67 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ set(ERNIE_DEP_VERSION_glfw 3.4 CACHE STRING "Tag of GLFW to fetch")
3
+ mark_as_advanced(ERNIE_DEP_VERSION_glfw)
4
+ option(
5
+ ERNIE_USE_SYSTEM_GLFW
6
+ "Use an installed GLFW 3.4 instead of building one in, which loads its window systems at run time"
7
+ OFF
8
+ )
9
+
10
+ # The viewer's window. `ernie_glfw` is defined only when a window system can be built for; without
11
+ # one the viewer still draws offscreen.
12
+ if(ERNIE_USE_SYSTEM_GLFW)
13
+ find_package(glfw3 3.4 REQUIRED)
14
+ add_library(ernie_glfw INTERFACE)
15
+ target_link_libraries(ernie_glfw INTERFACE glfw)
16
+ return()
17
+ endif()
18
+
19
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
20
+ # GLFW opens X11 and Wayland at run time, but needs their headers to build.
21
+ find_package(X11 QUIET)
22
+ find_package(PkgConfig QUIET)
23
+ if(PkgConfig_FOUND)
24
+ pkg_check_modules(ernie_wayland QUIET wayland-client wayland-cursor wayland-egl xkbcommon)
25
+ endif()
26
+ find_program(ernie_wayland_scanner wayland-scanner)
27
+ set(ernie_x11 OFF)
28
+ if(
29
+ X11_FOUND
30
+ AND X11_Xrandr_INCLUDE_PATH
31
+ AND X11_Xinerama_INCLUDE_PATH
32
+ AND X11_Xkb_INCLUDE_PATH
33
+ AND X11_Xcursor_INCLUDE_PATH
34
+ AND X11_Xi_INCLUDE_PATH
35
+ )
36
+ set(ernie_x11 ON)
37
+ endif()
38
+ set(ernie_wayland OFF)
39
+ if(ernie_wayland_FOUND AND ernie_wayland_scanner)
40
+ set(ernie_wayland ON)
41
+ endif()
42
+ if(NOT ernie_x11 AND NOT ernie_wayland)
43
+ message(
44
+ STATUS
45
+ "No X11 or Wayland development headers: the viewer is built without a window"
46
+ )
47
+ return()
48
+ endif()
49
+ set(GLFW_BUILD_X11 ${ernie_x11} CACHE BOOL "" FORCE)
50
+ set(GLFW_BUILD_WAYLAND ${ernie_wayland} CACHE BOOL "" FORCE)
51
+ endif()
52
+
53
+ set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
54
+ set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
55
+ set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
56
+ set(GLFW_INSTALL OFF CACHE BOOL "" FORCE)
57
+ set(ernie_saved_shared_libs ${BUILD_SHARED_LIBS})
58
+ set(BUILD_SHARED_LIBS OFF)
59
+ ernie_fetch(
60
+ glfw
61
+ URL https://github.com/glfw/glfw/archive/refs/tags/${ERNIE_DEP_VERSION_glfw}.tar.gz
62
+ )
63
+ set(BUILD_SHARED_LIBS ${ernie_saved_shared_libs})
64
+ ernie_quiet_third_party(glfw)
65
+
66
+ add_library(ernie_glfw INTERFACE)
67
+ target_link_libraries(ernie_glfw INTERFACE glfw)
@@ -0,0 +1,32 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ include("${PROJECT_SOURCE_DIR}/cmake/third_party/glfw.cmake")
3
+ include("${PROJECT_SOURCE_DIR}/cmake/third_party/dear_imgui.cmake")
4
+
5
+ # The viewer: its window, panels and frame loop, a library so tests drive it without a window.
6
+ add_library(ernie_viewer STATIC imgui_backend.cpp ui.cpp viewer.cpp)
7
+ target_link_libraries(
8
+ ernie_viewer
9
+ PUBLIC ernie_static ernie_imgui ernie_volk ernie_vma
10
+ PRIVATE ernie_build_options
11
+ )
12
+ if(TARGET ernie_glfw)
13
+ target_link_libraries(ernie_viewer PRIVATE ernie_imgui_glfw)
14
+ target_compile_definitions(ernie_viewer PUBLIC ERNIE_VIEWER_WINDOW=1)
15
+ endif()
16
+
17
+ add_executable(ernie_app main.cpp)
18
+ set_target_properties(ernie_app PROPERTIES OUTPUT_NAME ernie)
19
+ target_link_libraries(ernie_app PRIVATE ernie_viewer ernie_build_options)
20
+ install(TARGETS ernie_app RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT app)
21
+
22
+ # The licences of what the program carries.
23
+ set(ernie_app_notices "dear_imgui|${dear_imgui_SOURCE_DIR}/LICENSE.txt")
24
+ if(glfw_SOURCE_DIR)
25
+ list(APPEND ernie_app_notices "glfw|${glfw_SOURCE_DIR}/LICENSE.md")
26
+ endif()
27
+ foreach(notice ${ernie_app_notices})
28
+ string(REPLACE "|" ";" parts "${notice}")
29
+ list(GET parts 0 name)
30
+ list(GET parts 1 file)
31
+ install(FILES "${file}" DESTINATION "${CMAKE_INSTALL_DOCDIR}/third_party/${name}" COMPONENT app)
32
+ endforeach()
@@ -0,0 +1,141 @@
1
+ // SPDX-License-Identifier: BSD-3-Clause
2
+ /// @file imgui_backend.cpp
3
+ /// @brief Creating the ImGui context, setting up its Vulkan backend and recording its draws.
4
+ #include "ernie/app/imgui_backend.h"
5
+
6
+ #include "ernie/util/profiler.h"
7
+
8
+ #include <imgui.h>
9
+ #include <imgui_impl_vulkan.h>
10
+
11
+ namespace ernie::app {
12
+ namespace {
13
+
14
+ void Transition(VkCommandBuffer commands, VkImage image, VkImageLayout from, VkImageLayout to,
15
+ VkPipelineStageFlags2 srcStage, VkAccessFlags2 srcAccess,
16
+ VkPipelineStageFlags2 dstStage, VkAccessFlags2 dstAccess) {
17
+ const VkImageMemoryBarrier2 barrier{
18
+ .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
19
+ .srcStageMask = srcStage,
20
+ .srcAccessMask = srcAccess,
21
+ .dstStageMask = dstStage,
22
+ .dstAccessMask = dstAccess,
23
+ .oldLayout = from,
24
+ .newLayout = to,
25
+ .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
26
+ .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
27
+ .image = image,
28
+ .subresourceRange = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1}};
29
+ const VkDependencyInfo dependency{.sType = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
30
+ .imageMemoryBarrierCount = 1,
31
+ .pImageMemoryBarriers = &barrier};
32
+ vkCmdPipelineBarrier2(commands, &dependency);
33
+ }
34
+
35
+ } // namespace
36
+
37
+ ImGuiSession::ImGuiSession(const Theme& theme) {
38
+ ERNIE_ZONE("Set up ImGui");
39
+ IMGUI_CHECKVERSION();
40
+ context_ = ImGui::CreateContext();
41
+ ImGuiIO& io = ImGui::GetIO();
42
+ // Layouts are the viewer's to save; nothing is written behind its back.
43
+ io.IniFilename = nullptr;
44
+ io.LogFilename = nullptr;
45
+ io.ConfigFlags |= ImGuiConfigFlags_DockingEnable | ImGuiConfigFlags_NavEnableKeyboard;
46
+ io.Fonts->AddFontDefaultVector();
47
+ ApplyTheme(theme);
48
+ }
49
+
50
+ ImGuiSession::~ImGuiSession() {
51
+ ImGui::DestroyContext(context_);
52
+ }
53
+
54
+ ImGuiRenderer::ImGuiRenderer(DeviceContext& context, VkFormat format, std::uint32_t imageCount)
55
+ : context_(context) {
56
+ ERNIE_ZONE("Set up ImGui's Vulkan backend");
57
+ ImGui_ImplVulkan_InitInfo info{};
58
+ info.ApiVersion = VK_API_VERSION_1_3;
59
+ info.Instance = context.Instance();
60
+ info.PhysicalDevice = context.Physical();
61
+ info.Device = context.Device();
62
+ info.QueueFamily = context.Main().Family();
63
+ // Used only by texture uploads, which borrow the queue (`UpdateTextures`).
64
+ info.Queue = context.Main().Handle();
65
+ info.DescriptorPoolSize = 64;
66
+ info.MinImageCount = imageCount;
67
+ info.ImageCount = imageCount;
68
+ info.UseDynamicRendering = true;
69
+ info.PipelineInfoMain.MSAASamples = VK_SAMPLE_COUNT_1_BIT;
70
+ info.PipelineInfoMain.PipelineRenderingCreateInfo = {
71
+ .sType = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
72
+ .colorAttachmentCount = 1,
73
+ .pColorAttachmentFormats = &format};
74
+ info.PipelineCache = context.PipelineCache();
75
+ info.CheckVkResultFn = [](VkResult result) { CheckVk(result, "ImGui's Vulkan backend"); };
76
+ if (!ImGui_ImplVulkan_Init(&info)) {
77
+ throw DeviceError(DeviceErrorKind::Failed, "Could not set up ImGui's Vulkan backend");
78
+ }
79
+ }
80
+
81
+ ImGuiRenderer::~ImGuiRenderer() {
82
+ Quietly([this] { context_.Main().Last().Wait(); });
83
+ ImGui_ImplVulkan_Shutdown();
84
+ }
85
+
86
+ void ImGuiRenderer::NewFrame() {
87
+ ImGui_ImplVulkan_NewFrame();
88
+ }
89
+
90
+ ImTextureID ImGuiRenderer::AddTexture(VkImageView view, VkSampler sampler) {
91
+ return reinterpret_cast<ImTextureID>(
92
+ ImGui_ImplVulkan_AddTexture(sampler, view, VK_IMAGE_LAYOUT_GENERAL));
93
+ }
94
+
95
+ void ImGuiRenderer::RemoveTexture(ImTextureID texture) {
96
+ ImGui_ImplVulkan_RemoveTexture(reinterpret_cast<VkDescriptorSet>(texture));
97
+ }
98
+
99
+ void ImGuiRenderer::UpdateTextures(ImDrawData& data) {
100
+ if (data.Textures == nullptr) {
101
+ return;
102
+ }
103
+ for (ImTextureData* texture : *data.Textures) {
104
+ if (texture->Status != ImTextureStatus_OK) {
105
+ // The font atlas, on the first frame and when it grows; the backend submits the
106
+ // upload and waits for it itself.
107
+ ERNIE_ZONE("Upload a UI texture");
108
+ context_.Main().Borrow([&](VkQueue) { ImGui_ImplVulkan_UpdateTexture(texture); });
109
+ }
110
+ }
111
+ }
112
+
113
+ void ImGuiRenderer::Record(VkCommandBuffer commands, ImDrawData& data, const FrameTarget& target,
114
+ const glm::vec4& clear) {
115
+ // Whatever the image held is replaced; earlier work on it, a previous frame's, finishes first.
116
+ Transition(commands, target.image, VK_IMAGE_LAYOUT_UNDEFINED,
117
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,
118
+ VK_ACCESS_2_MEMORY_WRITE_BIT, VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,
119
+ VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT);
120
+ const VkRenderingAttachmentInfo attachment{
121
+ .sType = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
122
+ .imageView = target.view,
123
+ .imageLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
124
+ .loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR,
125
+ .storeOp = VK_ATTACHMENT_STORE_OP_STORE,
126
+ .clearValue = {.color = {.float32 = {clear.r, clear.g, clear.b, clear.a}}}};
127
+ const VkRenderingInfo rendering{.sType = VK_STRUCTURE_TYPE_RENDERING_INFO,
128
+ .renderArea = {{0, 0}, {target.extent.x, target.extent.y}},
129
+ .layerCount = 1,
130
+ .colorAttachmentCount = 1,
131
+ .pColorAttachments = &attachment};
132
+ vkCmdBeginRendering(commands, &rendering);
133
+ ImGui_ImplVulkan_RenderDrawData(&data, commands);
134
+ vkCmdEndRendering(commands);
135
+ Transition(commands, target.image, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, target.finalLayout,
136
+ VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT,
137
+ VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,
138
+ kAnyAccess);
139
+ }
140
+
141
+ } // namespace ernie::app
@@ -0,0 +1,58 @@
1
+ // SPDX-License-Identifier: BSD-3-Clause
2
+ /// @file imgui_backend.h
3
+ /// @brief Dear ImGui's plumbing: its context as the viewer sets it up, and its Vulkan backend.
4
+ #pragma once
5
+
6
+ #include "ernie/app/ui.h"
7
+ #include "ernie/device/context.h"
8
+
9
+ #include <glm/vec4.hpp>
10
+
11
+ struct ImDrawData;
12
+ struct ImGuiContext;
13
+
14
+ namespace ernie::app {
15
+
16
+ struct Theme;
17
+
18
+ /// @brief Makes and destroys an ImGui context with docking and keyboard navigation, the theme
19
+ /// applied and no settings file, current while it lives. One at a time.
20
+ class ImGuiSession {
21
+ public:
22
+ explicit ImGuiSession(const Theme& theme);
23
+ ~ImGuiSession();
24
+ ImGuiSession(const ImGuiSession&) = delete;
25
+ ImGuiSession& operator=(const ImGuiSession&) = delete;
26
+
27
+ private:
28
+ ImGuiContext* context_;
29
+ };
30
+
31
+ /// @brief ImGui's Vulkan backend on a device context's main queue, drawing into images of one
32
+ /// format with dynamic rendering. Needs a current ImGui context for its whole life.
33
+ class ImGuiRenderer {
34
+ public:
35
+ ImGuiRenderer(DeviceContext& context, VkFormat format, std::uint32_t imageCount);
36
+ ~ImGuiRenderer();
37
+ ImGuiRenderer(const ImGuiRenderer&) = delete;
38
+ ImGuiRenderer& operator=(const ImGuiRenderer&) = delete;
39
+
40
+ /// @brief Starts the backend's part of a UI frame.
41
+ void NewFrame();
42
+ /// @brief Uploads the textures ImGui asks for, such as its font atlas. The backend submits and
43
+ /// waits for these copies itself, so this runs before recording the frame.
44
+ void UpdateTextures(ImDrawData& data);
45
+ /// @brief Records clearing the target to `clear`, drawing the UI over it, and leaving it in
46
+ /// its final layout.
47
+ void Record(VkCommandBuffer commands, ImDrawData& data, const FrameTarget& target,
48
+ const glm::vec4& clear);
49
+ /// @return A texture the UI draws an image with in place, sampled in the general layout.
50
+ ImTextureID AddTexture(VkImageView view, VkSampler sampler);
51
+ /// @brief Forgets a texture `AddTexture` made, once no frame in flight draws with it.
52
+ void RemoveTexture(ImTextureID texture);
53
+
54
+ private:
55
+ DeviceContext& context_;
56
+ };
57
+
58
+ } // namespace ernie::app
@@ -1,14 +1,18 @@
1
1
  // SPDX-License-Identifier: BSD-3-Clause
2
2
  /// @file main.cpp
3
- /// @brief The ernie program.
3
+ /// @brief The ernie program: the viewer, and the schema and scene tools.
4
+ #include "ernie/app/viewer.h"
4
5
  #include "ernie/device/device.h"
5
6
  #include "ernie/scene/reference.h"
6
7
  #include "ernie/util/file.h"
7
8
  #include "ernie/util/version.h"
8
9
 
10
+ #include <algorithm>
9
11
  #include <cstdio>
10
12
  #include <exception>
11
13
  #include <filesystem>
14
+ #include <stdexcept>
15
+ #include <string>
12
16
  #include <string_view>
13
17
  #include <vector>
14
18
 
@@ -17,9 +21,11 @@ namespace {
17
21
  namespace fs = std::filesystem;
18
22
 
19
23
  void PrintUsage() {
20
- std::puts("Usage: ernie [--version] [--devices] [--help]\n"
21
- " ernie schema [--json-schema FILE] [--markdown DIR] [--usda DIR]\n"
22
- " ernie validate SCENE.json...");
24
+ std::printf("Usage: %.*s\n"
25
+ " ernie --version | --devices | --help\n"
26
+ " ernie schema [--json-schema FILE] [--markdown DIR] [--usda DIR]\n"
27
+ " ernie validate SCENE.json...\n",
28
+ static_cast<int>(ernie::app::ViewUsage().size()), ernie::app::ViewUsage().data());
23
29
  }
24
30
 
25
31
  int PrintDevices() {
@@ -31,13 +37,6 @@ int PrintDevices() {
31
37
  return 0;
32
38
  }
33
39
 
34
- void Write(const fs::path& path, std::string_view text) {
35
- if (path.has_parent_path()) {
36
- fs::create_directories(path.parent_path());
37
- }
38
- ernie::WriteTextFile(path, text);
39
- }
40
-
41
40
  /// Writes the views of the schema registry that `arguments` ask for.
42
41
  int Schema(const std::vector<std::string_view>& arguments) {
43
42
  if (arguments.empty() || arguments.size() % 2 != 0) {
@@ -47,15 +46,16 @@ int Schema(const std::vector<std::string_view>& arguments) {
47
46
  for (std::size_t i = 0; i < arguments.size(); i += 2) {
48
47
  const fs::path out(arguments[i + 1]);
49
48
  if (arguments[i] == "--json-schema") {
50
- Write(out, ernie::SceneJsonSchema());
49
+ ernie::WriteTextFile(out, ernie::SceneJsonSchema());
51
50
  } else if (arguments[i] == "--markdown") {
52
51
  for (const ernie::SchemaFamily& family : ernie::SchemaFamilies()) {
53
- Write(out / (std::string(family.name) + ".md"), ernie::ReferencePage(family));
52
+ ernie::WriteTextFile(out / (std::string(family.name) + ".md"),
53
+ ernie::ReferencePage(family));
54
54
  }
55
55
  } else if (arguments[i] == "--usda") {
56
56
  const ernie::UsdSchemaPlugin plugin = ernie::ErnieUsdSchemaPlugin();
57
- Write(out / "generatedSchema.usda", plugin.generatedSchema);
58
- Write(out / "plugInfo.json", plugin.plugInfo);
57
+ ernie::WriteTextFile(out / "generatedSchema.usda", plugin.generatedSchema);
58
+ ernie::WriteTextFile(out / "plugInfo.json", plugin.plugInfo);
59
59
  } else {
60
60
  PrintUsage();
61
61
  return 2;
@@ -82,28 +82,46 @@ int Validate(const std::vector<std::string_view>& files) {
82
82
  return status;
83
83
  }
84
84
 
85
+ /// Opens the viewer; only `ernie`, `ernie view` and a scene file or viewer options get here.
86
+ int View(const std::vector<std::string_view>& arguments) {
87
+ ernie::app::ViewCommand command;
88
+ try {
89
+ command = ernie::app::ParseViewCommand(arguments);
90
+ } catch (const std::invalid_argument& error) {
91
+ std::fprintf(stderr, "ernie: %s\n", error.what());
92
+ PrintUsage();
93
+ return 2;
94
+ }
95
+ return ernie::app::RunView(command);
96
+ }
97
+
85
98
  } // namespace
86
99
 
87
100
  int main(int argc, char** argv) {
88
- const std::string_view option = argc > 1 ? argv[1] : "--help";
89
- const std::vector<std::string_view> rest(argv + std::min(argc, 2), argv + argc);
101
+ const std::vector<std::string_view> arguments(argv + std::min(argc, 1), argv + argc);
102
+ const std::string_view command = arguments.empty() ? "" : arguments.front();
103
+ const std::vector<std::string_view> rest(arguments.begin() + (arguments.empty() ? 0 : 1),
104
+ arguments.end());
90
105
  try {
91
- if (option == "--version") {
106
+ if (command == "--version") {
92
107
  std::printf("ernie %.*s\n", static_cast<int>(ernie::Version().size()),
93
108
  ernie::Version().data());
94
109
  return 0;
95
110
  }
96
- if (option == "--devices") {
111
+ if (command == "--help") {
112
+ PrintUsage();
113
+ return 0;
114
+ }
115
+ if (command == "--devices") {
97
116
  return PrintDevices();
98
117
  }
99
- if (option == "schema") {
118
+ if (command == "schema") {
100
119
  return Schema(rest);
101
120
  }
102
- if (option == "validate") {
121
+ if (command == "validate") {
103
122
  return Validate(rest);
104
123
  }
105
- PrintUsage();
106
- return option == "--help" ? 0 : 2;
124
+ return View(command == "view" ? rest : arguments);
107
125
  } catch (const std::exception& error) {
108
126
  std::fprintf(stderr, "ernie: %s\n", error.what());
109
127
  return 1;