A C++14/C++17 header-only library for simple, efficient, and robust serialization/deserialization of glTF 2.0
This release introduces the use of std::filesystem
to properly support Unicode paths on various platforms. Along the way some minor improvements have also occurred.
inline constexpr
for c++17 onwards #89Note: The introduction of std::filesystem
will cause build breaks around the parts of code dealing with filepaths, hence the major version bump here.
This is primarily a bug fix release which addresses the following:
Additional changes include:
A new release primarily to support iostream loading/saving! The new overloads can be used when more flexibility is required beyond the already existing raw file loading/saving support.
Changes from v1.0.2
fx-gltf: iostream loading/saving (originally from skrat: https://github.com/skrat)
misc: updates for the included dependencies of CLI11, Catch2, nlohmann-json, and glTF-Sample-Models
A minor release with some pretty important additions and fixes. First, CMake installation and dependency support was added! Secondly, a fuzzing run was performed and that exposed a buffer overrun around how .glb header data was handled. Please update to this version to pick up these critical fuzzing fixes.
Changes from v1.0.1
fx-gltf: CMake support! (courtesy of Ansoulom)
fx-gltf: Fix buffer overrun in GLB header parsing/processing (found through local AFL fuzzing run)
viewer: fixes project file to properly copy the assets/shaders into the right location on build (vs 2017 and vs 2019)
viewer: random assortment of cleanups and static analysis changes
viewer: updates for d3dx12.h
tests: stricter checks for certain parts of roundtrip tests
misc: updates for the included dependencies of CLI11, Catch2, nlohmann-json, and glTF-Sample-Models
See current README.md for complete docs.
This release focuses on fixes related to nlohmann-json's latest version. Along the way several minor tweaks and updates were made as well.
Changes from v1.0.0
fx-gltf: adjust to newer versions of nlohmann-json which changed their SFINAE support slightly (reorder header)
fx-gltf: fix Save(...) argument type to take a reference instead of a copy
fx-gltf: prevent unused var warning when not using c++17
viewer: use more appropriate DirectX feature level in the viewer to allow acceleration on earlier DirectX 12 capable cards
misc: update glTF-Sample-Models
misc: update CLI11, Catch2, nlohmann-json
See current README.md for complete docs.
This release sees a number of changes to round out glTF spec conformance as well as the standard assortment of updates to the sample models and testing / viewer thirdparty headers.
Changes from v0.9.9
fx-gltf: fix GLB alignment of JSON chunk during saving (spec conformance)
fx-gltf: write out the bufferView field, even if set to its default of 0, when the uri is empty (spec conformance)
fx-gltf: write out empty {} sampler objects when using a default Sampler object
viewer: no changes
misc: update glTF-Sample-Models
misc: update CLI11 and Catch2 headers
See current README.md for complete docs. This release includes:
Changes from v0.9.8
fx-gltf: uses more appropriate mimetype detection
fx-gltf: fixes the default value of texCoord for Textures
viewer: no changes
misc: full automated builds and testing for MSVC, Clang 5/6, and GCC 6/7/8 (c++14 and c++17 modes)
misc: updated CLI11 and Catch2 headers
See current README.md for complete docs. This release includes:
Changes from v0.9.0
fx-gltf: proper exception contracts for the main public Load/Save APIs implemented
fx-gltf: added API for loading in embedded fx::gltf::Image
data / removed API for loading in embedded fx::gltf::Buffer
data (handled internally)
fx-gltf: more tests added
fx-gltf: added helper method for formatting nested exceptions
fx-gltf: fixed gcc/clang compile
viewer: added an orbit camera
viewer: calculate tangents if not included in the mesh
viewer: properly load embedded and binary image data
viewer: WIC image loading (jpg now supported)
viewer: added fps counter
misc: refreshed glTF-Sample-Models repo
See current README.md for complete docs. This release includes:
Changes from v0.8.1
See current README.md for complete docs. This release includes:
Changes from v0.8.0
A proof-of-concept DX12 viewer is in the works and has demonstrated true end-to-end usage of the API and data buffer handling implementation.