ernie-renderer 0.2.0.dev43__tar.gz → 0.2.0.dev45__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 (289) hide show
  1. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/.github/workflows/ci.yml +12 -2
  2. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/.gitignore +3 -0
  3. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/CMakeLists.txt +1 -1
  4. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/PKG-INFO +1 -1
  5. ernie_renderer-0.2.0.dev45/docs/README.md +10 -0
  6. ernie_renderer-0.2.0.dev45/ernie/app/main.cpp +110 -0
  7. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/CMakeLists.txt +9 -1
  8. ernie_renderer-0.2.0.dev45/ernie/scene/json.cpp +528 -0
  9. ernie_renderer-0.2.0.dev45/ernie/scene/json.h +77 -0
  10. ernie_renderer-0.2.0.dev45/ernie/scene/json_value.h +32 -0
  11. ernie_renderer-0.2.0.dev45/ernie/scene/reference.cpp +534 -0
  12. ernie_renderer-0.2.0.dev45/ernie/scene/reference.h +60 -0
  13. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/scene.cpp +5 -0
  14. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/scene.h +2 -0
  15. ernie_renderer-0.2.0.dev45/ernie/scene/usd_plugin.cpp +219 -0
  16. ernie_renderer-0.2.0.dev45/ernie/scene/validate.cpp +98 -0
  17. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/file.cpp +7 -0
  18. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/file.h +5 -0
  19. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/text.h +19 -0
  20. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/mkdocs.yml +10 -0
  21. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/CMakeLists.txt +6 -1
  22. ernie_renderer-0.2.0.dev45/tests/fixtures/scenes/README.md +7 -0
  23. ernie_renderer-0.2.0.dev45/tests/fixtures/scenes/invalid/problems.expected +11 -0
  24. ernie_renderer-0.2.0.dev45/tests/fixtures/scenes/invalid/problems.json +17 -0
  25. ernie_renderer-0.2.0.dev45/tests/fixtures/scenes/rover.json +64 -0
  26. ernie_renderer-0.2.0.dev45/tests/fixtures/scenes/rover.saved.json +107 -0
  27. ernie_renderer-0.2.0.dev45/tests/python/test_scene_schema.py +70 -0
  28. ernie_renderer-0.2.0.dev45/tests/scene/json_test.cpp +113 -0
  29. ernie_renderer-0.2.0.dev45/tests/scene/reference_test.cpp +80 -0
  30. ernie_renderer-0.2.0.dev43/docs/README.md +0 -7
  31. ernie_renderer-0.2.0.dev43/ernie/app/main.cpp +0 -44
  32. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/.clang-format +0 -0
  33. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/.clang-tidy +0 -0
  34. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/.dockerignore +0 -0
  35. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/.gersemirc +0 -0
  36. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/.gitattributes +0 -0
  37. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/.github/scripts/coverage_badge.py +0 -0
  38. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/.github/scripts/install-lavapipe-windows.sh +0 -0
  39. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/.pre-commit-config.yaml +0 -0
  40. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/CMakePresets.json +0 -0
  41. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/Dockerfile +0 -0
  42. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/LICENSE +0 -0
  43. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/README.md +0 -0
  44. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/benchmarks/CMakeLists.txt +0 -0
  45. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/benchmarks/bench.h +0 -0
  46. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/benchmarks/main.cpp +0 -0
  47. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/benchmarks/scene/extents.cpp +0 -0
  48. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/benchmarks/scene/storage.cpp +0 -0
  49. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/ErnieConfig.cmake.in +0 -0
  50. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/ErnieFetch.cmake +0 -0
  51. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/ErnieInstall.cmake +0 -0
  52. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/ErniePackaging.cmake +0 -0
  53. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/ErnieTesting.cmake +0 -0
  54. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/ernie.pc.in +0 -0
  55. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/bc7enc.cmake +0 -0
  56. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/dlpack.cmake +0 -0
  57. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/glm.cmake +0 -0
  58. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/googletest.cmake +0 -0
  59. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/json.cmake +0 -0
  60. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/nanobind.cmake +0 -0
  61. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/openexr.cmake +0 -0
  62. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/stb.cmake +0 -0
  63. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/tracy.cmake +0 -0
  64. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/volk.cmake +0 -0
  65. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/cmake/third_party/vulkan_headers.cmake +0 -0
  66. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/docs/index.md +0 -0
  67. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/docs/requirements.txt +0 -0
  68. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/CMakeLists.txt +0 -0
  69. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/app/CMakeLists.txt +0 -0
  70. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/device/CMakeLists.txt +0 -0
  71. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/device/vulkan_devices.cpp +0 -0
  72. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/device/vulkan_devices.h +0 -0
  73. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/geometry/CMakeLists.txt +0 -0
  74. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/geometry/bounds.h +0 -0
  75. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/graph/CMakeLists.txt +0 -0
  76. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/CMakeLists.txt +0 -0
  77. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/ies.cpp +0 -0
  78. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/ies.h +0 -0
  79. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/image.cpp +0 -0
  80. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/image.h +0 -0
  81. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/nanovdb.cpp +0 -0
  82. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/nanovdb.h +0 -0
  83. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/raster.cpp +0 -0
  84. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/raster.h +0 -0
  85. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/texture.cpp +0 -0
  86. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/io/texture.h +0 -0
  87. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/CMakeLists.txt +0 -0
  88. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/astronomy.cpp +0 -0
  89. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/astronomy.h +0 -0
  90. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/atmosphere.cpp +0 -0
  91. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/atmosphere.h +0 -0
  92. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/cloud.cpp +0 -0
  93. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/cloud.h +0 -0
  94. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/constants.h +0 -0
  95. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/reflectance_library.cpp +0 -0
  96. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/reflectance_library.h +0 -0
  97. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/reflectance_table.h +0 -0
  98. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/regolith.cpp +0 -0
  99. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/regolith.h +0 -0
  100. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/scattering.cpp +0 -0
  101. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/scattering.h +0 -0
  102. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/solar.cpp +0 -0
  103. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/solar.h +0 -0
  104. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/solar_table.h +0 -0
  105. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/spectrum.cpp +0 -0
  106. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/physics/spectrum.h +0 -0
  107. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/python/CMakeLists.txt +0 -0
  108. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/python/ernie/__init__.py +0 -0
  109. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/python/module.cpp +0 -0
  110. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/render/CMakeLists.txt +0 -0
  111. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/convert.h +0 -0
  112. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/extent_cache.cpp +0 -0
  113. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/extent_cache.h +0 -0
  114. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/holder_index.cpp +0 -0
  115. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/holder_index.h +0 -0
  116. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/inherit.cpp +0 -0
  117. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/path.cpp +0 -0
  118. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/path.h +0 -0
  119. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schema.cpp +0 -0
  120. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schema.h +0 -0
  121. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/camera.cpp +0 -0
  122. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/camera.h +0 -0
  123. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/collection.cpp +0 -0
  124. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/collection.h +0 -0
  125. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/geom.cpp +0 -0
  126. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/geom.h +0 -0
  127. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/instancer.cpp +0 -0
  128. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/instancer.h +0 -0
  129. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/laser.cpp +0 -0
  130. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/laser.h +0 -0
  131. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/lux.cpp +0 -0
  132. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/lux.h +0 -0
  133. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/mesh.cpp +0 -0
  134. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/mesh.h +0 -0
  135. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/planet.cpp +0 -0
  136. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/planet.h +0 -0
  137. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/registry.cpp +0 -0
  138. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/render.cpp +0 -0
  139. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/render.h +0 -0
  140. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/shade.cpp +0 -0
  141. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/shade.h +0 -0
  142. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/vol.cpp +0 -0
  143. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/schemas/vol.h +0 -0
  144. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/storage.cpp +0 -0
  145. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/storage.h +0 -0
  146. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/tokens.h +0 -0
  147. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/value.h +0 -0
  148. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/view.cpp +0 -0
  149. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/view.h +0 -0
  150. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/xform.cpp +0 -0
  151. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/scene/xform.h +0 -0
  152. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/CMakeLists.txt +0 -0
  153. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/algorithm.h +0 -0
  154. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/bytes.h +0 -0
  155. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/disk_cache.cpp +0 -0
  156. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/disk_cache.h +0 -0
  157. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/glm.h +0 -0
  158. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/hash_index.h +0 -0
  159. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/linear_algebra.h +0 -0
  160. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/log.cpp +0 -0
  161. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/log.h +0 -0
  162. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/math.h +0 -0
  163. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/noise.cpp +0 -0
  164. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/noise.h +0 -0
  165. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/numbers.h +0 -0
  166. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/parallel.h +0 -0
  167. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/profiler.cpp +0 -0
  168. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/profiler.h +0 -0
  169. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/random.h +0 -0
  170. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/tensor.cpp +0 -0
  171. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/tensor.h +0 -0
  172. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/version.cpp +0 -0
  173. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/version.h +0 -0
  174. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/ernie/util/worker_pool.h +0 -0
  175. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/pyproject.toml +0 -0
  176. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/common.h +0 -0
  177. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/consumer/CMakeLists.txt +0 -0
  178. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/consumer/main.cpp +0 -0
  179. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/device/vulkan_devices_test.cpp +0 -0
  180. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/exr/README.md +0 -0
  181. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/exr/make_exr.py +0 -0
  182. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/exr/rgb_float_zip.exr +0 -0
  183. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/exr/rgba_half_window.exr +0 -0
  184. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/exr/y_half_zips.exr +0 -0
  185. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/ies/README.md +0 -0
  186. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/ies/downlight_quadrant.ies +0 -0
  187. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/ies/floodlight_type_b.ies +0 -0
  188. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/ies/lamp.tilt +0 -0
  189. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/images/grey16.png +0 -0
  190. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/ktx2/README.md +0 -0
  191. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/ktx2/quadrants_etc1s.ktx2 +0 -0
  192. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/ktx2/quadrants_uastc_zstd.ktx2 +0 -0
  193. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/ktx2/tilted_normal_etc1s.ktx2 +0 -0
  194. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/ktx2/tilted_normal_uastc.ktx2 +0 -0
  195. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/tiff/README.md +0 -0
  196. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/tiff/float_deflate_predictor3.tif +0 -0
  197. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/tiff/float_raw.tif +0 -0
  198. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/tiff/int16_bigtiff_bigendian.tif +0 -0
  199. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/tiff/rgb_lzw_predictor2.tif +0 -0
  200. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/tiff/rgb_planar_lzw.tif +0 -0
  201. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/tiff/rgb_planar_raw.tif +0 -0
  202. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/tiff/rgb_tiled_deflate.tif +0 -0
  203. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/volumes/cube.nvdb +0 -0
  204. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/fixtures/volumes/make_nvdb.py +0 -0
  205. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/geometry/bounds_test.cpp +0 -0
  206. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/io/ies_test.cpp +0 -0
  207. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/io/image_test.cpp +0 -0
  208. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/io/nanovdb_test.cpp +0 -0
  209. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/io/raster_test.cpp +0 -0
  210. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/io/texture_test.cpp +0 -0
  211. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/physics/astronomy_test.cpp +0 -0
  212. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/physics/atmosphere_test.cpp +0 -0
  213. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/physics/cloud_test.cpp +0 -0
  214. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/physics/reflectance_library_test.cpp +0 -0
  215. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/physics/regolith_test.cpp +0 -0
  216. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/physics/scattering_test.cpp +0 -0
  217. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/physics/solar_test.cpp +0 -0
  218. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/physics/spectrum_test.cpp +0 -0
  219. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/python/test_package.py +0 -0
  220. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/api_test.cpp +0 -0
  221. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/extent_cache_test.cpp +0 -0
  222. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/holder_index_test.cpp +0 -0
  223. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/inherit_test.cpp +0 -0
  224. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/instancer_test.cpp +0 -0
  225. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/lux_test.cpp +0 -0
  226. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/mesh_test.cpp +0 -0
  227. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/path_test.cpp +0 -0
  228. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/planet_test.cpp +0 -0
  229. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/render_test.cpp +0 -0
  230. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/scene_test.cpp +0 -0
  231. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/schema_test.cpp +0 -0
  232. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/shade_test.cpp +0 -0
  233. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/storage_test.cpp +0 -0
  234. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/vol_test.cpp +0 -0
  235. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/scene/xform_test.cpp +0 -0
  236. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/algorithm_test.cpp +0 -0
  237. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/bytes_test.cpp +0 -0
  238. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/disk_cache_test.cpp +0 -0
  239. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/file_test.cpp +0 -0
  240. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/hash_index_test.cpp +0 -0
  241. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/linear_algebra_test.cpp +0 -0
  242. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/log_test.cpp +0 -0
  243. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/math_test.cpp +0 -0
  244. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/noise_test.cpp +0 -0
  245. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/parallel_test.cpp +0 -0
  246. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/profiler_test.cpp +0 -0
  247. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/random_test.cpp +0 -0
  248. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/tensor_test.cpp +0 -0
  249. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/text_test.cpp +0 -0
  250. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/version_test.cpp +0 -0
  251. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/tests/util/worker_pool_test.cpp +0 -0
  252. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/CMakeLists.txt +0 -0
  253. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/LICENSE +0 -0
  254. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/LICENSES/Apache-2.0.txt +0 -0
  255. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/LICENSES/BSD-3-clause.txt +0 -0
  256. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/LICENSES/MIT.txt +0 -0
  257. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/NOTICE +0 -0
  258. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/README.md +0 -0
  259. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu.h +0 -0
  260. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_astc_cfgs.inl +0 -0
  261. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_astc_hdr_core.h +0 -0
  262. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_astc_helpers.h +0 -0
  263. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_containers.h +0 -0
  264. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_containers_impl.h +0 -0
  265. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_dds_transcoder.inl +0 -0
  266. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_etc1_mods.inl +0 -0
  267. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_file_headers.h +0 -0
  268. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_idct.h +0 -0
  269. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder.cpp +0 -0
  270. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder.h +0 -0
  271. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_internal.h +0 -0
  272. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_tables_astc.inc +0 -0
  273. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_tables_astc_0_255.inc +0 -0
  274. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_tables_atc_55.inc +0 -0
  275. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_tables_atc_56.inc +0 -0
  276. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_tables_bc7_m5_alpha.inc +0 -0
  277. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_tables_bc7_m5_color.inc +0 -0
  278. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_tables_dxt1_5.inc +0 -0
  279. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_tables_dxt1_6.inc +0 -0
  280. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_tables_pvrtc2_45.inc +0 -0
  281. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_tables_pvrtc2_alpha_33.inc +0 -0
  282. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_transcoder_uastc.h +0 -0
  283. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_xbc7_decoder.h +0 -0
  284. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/transcoder/basisu_xbc7_decoder.inl +0 -0
  285. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/zstd/LICENSE +0 -0
  286. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/zstd/zstd.h +0 -0
  287. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/basisu/zstd/zstd_errors.h +0 -0
  288. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/nanovdb/LICENSE +0 -0
  289. {ernie_renderer-0.2.0.dev43 → ernie_renderer-0.2.0.dev45}/third_party/nanovdb/PNanoVDB.h +0 -0
@@ -134,7 +134,7 @@ jobs:
134
134
  - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
135
135
  with:
136
136
  python-version: "3.12"
137
- - run: python -m pip install pytest
137
+ - run: python -m pip install pytest jsonschema
138
138
  - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
139
139
  with:
140
140
  name: build-${{ matrix.os }}
@@ -213,8 +213,10 @@ jobs:
213
213
  path: coverage
214
214
  retention-days: 14
215
215
 
216
- # The documentation, built strictly so broken links and warnings fail.
216
+ # The documentation, built strictly so broken links and warnings fail, with the schema reference
217
+ # pages and the scene files' JSON Schema generated by the Linux build.
217
218
  docs:
219
+ needs: build
218
220
  runs-on: ubuntu-24.04
219
221
  timeout-minutes: 10
220
222
  steps:
@@ -222,6 +224,14 @@ jobs:
222
224
  - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
223
225
  with:
224
226
  python-version: "3.12"
227
+ - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
228
+ with:
229
+ name: build-ubuntu-24.04
230
+ - name: Generate the schema reference
231
+ run: |
232
+ tar -xf build-ci.tar
233
+ build/ci/bin/ernie schema --json-schema docs/schema/ernie-scene.schema.json \
234
+ --markdown docs/reference
225
235
  - run: python -m pip install -r docs/requirements.txt
226
236
  - run: mkdocs build --strict
227
237
  - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
@@ -7,6 +7,9 @@ build/
7
7
  dist/
8
8
  site/
9
9
  .deps/
10
+ # Generated by `ernie schema` before the docs build
11
+ /docs/reference/
12
+ /docs/schema/
10
13
  *.egg-info/
11
14
  __pycache__/
12
15
  .venv/
@@ -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 ".dev43" CACHE STRING "Pre-release suffix of Ernie's version")
18
+ set(ERNIE_VERSION_SUFFIX ".dev45" 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.dev43
3
+ Version: 0.2.0.dev45
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
@@ -0,0 +1,10 @@
1
+ # Docs
2
+
3
+ The schema reference pages and the scene files' JSON Schema are generated from the schema registry by a build of `ernie`, before the site is built:
4
+
5
+ ```sh
6
+ ernie schema --json-schema docs/schema/ernie-scene.schema.json --markdown docs/reference
7
+ python -m pip install -r docs/requirements.txt
8
+ mkdocs serve # live preview at http://127.0.0.1:8000
9
+ mkdocs build # static site in site/
10
+ ```
@@ -0,0 +1,110 @@
1
+ // SPDX-License-Identifier: BSD-3-Clause
2
+ /// @file main.cpp
3
+ /// @brief The ernie program.
4
+ #include "ernie/device/vulkan_devices.h"
5
+ #include "ernie/scene/reference.h"
6
+ #include "ernie/util/file.h"
7
+ #include "ernie/util/version.h"
8
+
9
+ #include <cstdio>
10
+ #include <exception>
11
+ #include <filesystem>
12
+ #include <string_view>
13
+ #include <vector>
14
+
15
+ namespace {
16
+
17
+ namespace fs = std::filesystem;
18
+
19
+ 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...");
23
+ }
24
+
25
+ int PrintDevices() {
26
+ for (const ernie::VulkanDeviceInfo& device : ernie::ListVulkanDevices()) {
27
+ std::printf("%s (%s, Vulkan %u.%u%s)\n", device.name.c_str(), ernie::ToString(device.type),
28
+ device.apiMajor, device.apiMinor, device.rayQuery ? ", ray queries" : "");
29
+ }
30
+ return 0;
31
+ }
32
+
33
+ void Write(const fs::path& path, std::string_view text) {
34
+ if (path.has_parent_path()) {
35
+ fs::create_directories(path.parent_path());
36
+ }
37
+ ernie::WriteTextFile(path, text);
38
+ }
39
+
40
+ /// Writes the views of the schema registry that `arguments` ask for.
41
+ int Schema(const std::vector<std::string_view>& arguments) {
42
+ if (arguments.empty() || arguments.size() % 2 != 0) {
43
+ PrintUsage();
44
+ return 2;
45
+ }
46
+ for (std::size_t i = 0; i < arguments.size(); i += 2) {
47
+ const fs::path out(arguments[i + 1]);
48
+ if (arguments[i] == "--json-schema") {
49
+ Write(out, ernie::SceneJsonSchema());
50
+ } else if (arguments[i] == "--markdown") {
51
+ for (const ernie::SchemaFamily& family : ernie::SchemaFamilies()) {
52
+ Write(out / (std::string(family.name) + ".md"), ernie::ReferencePage(family));
53
+ }
54
+ } else if (arguments[i] == "--usda") {
55
+ const ernie::UsdSchemaPlugin plugin = ernie::ErnieUsdSchemaPlugin();
56
+ Write(out / "generatedSchema.usda", plugin.generatedSchema);
57
+ Write(out / "plugInfo.json", plugin.plugInfo);
58
+ } else {
59
+ PrintUsage();
60
+ return 2;
61
+ }
62
+ }
63
+ return 0;
64
+ }
65
+
66
+ /// Prints every problem of the scene files; fails if any has one.
67
+ int Validate(const std::vector<std::string_view>& files) {
68
+ if (files.empty()) {
69
+ PrintUsage();
70
+ return 2;
71
+ }
72
+ int status = 0;
73
+ for (const std::string_view file : files) {
74
+ for (const ernie::SceneProblem& problem :
75
+ ernie::ValidateScene(ernie::ReadTextFile(fs::path(file)))) {
76
+ std::printf("%.*s: %s\n", static_cast<int>(file.size()), file.data(),
77
+ problem.Message().c_str());
78
+ status = 1;
79
+ }
80
+ }
81
+ return status;
82
+ }
83
+
84
+ } // namespace
85
+
86
+ int main(int argc, char** argv) {
87
+ const std::string_view option = argc > 1 ? argv[1] : "--help";
88
+ const std::vector<std::string_view> rest(argv + std::min(argc, 2), argv + argc);
89
+ try {
90
+ if (option == "--version") {
91
+ std::printf("ernie %.*s\n", static_cast<int>(ernie::Version().size()),
92
+ ernie::Version().data());
93
+ return 0;
94
+ }
95
+ if (option == "--devices") {
96
+ return PrintDevices();
97
+ }
98
+ if (option == "schema") {
99
+ return Schema(rest);
100
+ }
101
+ if (option == "validate") {
102
+ return Validate(rest);
103
+ }
104
+ PrintUsage();
105
+ return option == "--help" ? 0 : 2;
106
+ } catch (const std::exception& error) {
107
+ std::fprintf(stderr, "ernie: %s\n", error.what());
108
+ return 1;
109
+ }
110
+ }
@@ -5,10 +5,14 @@ add_library(
5
5
  extent_cache.cpp
6
6
  holder_index.cpp
7
7
  inherit.cpp
8
+ json.cpp
8
9
  path.cpp
10
+ reference.cpp
9
11
  schema.cpp
10
12
  scene.cpp
11
13
  storage.cpp
14
+ usd_plugin.cpp
15
+ validate.cpp
12
16
  view.cpp
13
17
  xform.cpp
14
18
  schemas/camera.cpp
@@ -24,4 +28,8 @@ add_library(
24
28
  schemas/shade.cpp
25
29
  schemas/vol.cpp
26
30
  )
27
- target_link_libraries(ernie_scene PUBLIC ernie_physics ernie_io PRIVATE ernie_build_options)
31
+ target_link_libraries(
32
+ ernie_scene
33
+ PUBLIC ernie_physics ernie_io
34
+ PRIVATE ernie_json ernie_build_options
35
+ )