GLTFLoader: support MSFT DDS texture sources (MSFT_texture_dds)#265
Open
hzqst wants to merge 8 commits into
Open
GLTFLoader: support MSFT DDS texture sources (MSFT_texture_dds)#265hzqst wants to merge 8 commits into
MSFT_texture_dds)#265hzqst wants to merge 8 commits into
Conversation
Co-Authored-By: GPT 5.5
Co-Authored-By: GPT 5.5
There was a problem hiding this comment.
Pull request overview
Adds support in the AssetLoader glTF pipeline for selecting DDS image sources declared via the MSFT_texture_dds extension, allowing DDS textures to be loaded when present (and reducing spurious “missing standard image” warnings when DDS is used as the supported alternative).
Changes:
- Parse
MSFT_texture_ddsontinygltf::Textureobjects and prefer the extension-provided image source during texture loading. - Add warning post-processing to suppress tinygltf “missing standard image” warnings when DDS alternatives are available.
- Introduce helper utilities for source validation, image availability checks, and warning string cleanup.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Treat GLTF images with loaded dimensions as available for MSFT_texture_dds so DDS sources selected through the resource manager or texture cache do not require decoded image bytes. Decode image URIs before building file and cache paths, matching tinygltf external file resolution for percent-encoded names. Add regression coverage for cached image metadata and encoded DDS URIs. Co-Authored-By: GPT 5.5
Return early when EraseAll is asked to remove an empty substring so future callers cannot hang in a no-progress find/erase loop. Co-Authored-By: GPT 5.5
RemoveWarnings() suppressed the missing-image warning for every texture that had an available DDS alternative. When the same standard image was also referenced by another texture without a DDS alternative, the still actionable "file not found" warning was erased. Classify standard images in a first pass: an image is superseded only when every referencing texture has an available DDS alternative, and is still needed otherwise. Suppress warnings only for fully superseded images, iterating images directly since tinygltf emits one warning per image. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The MSFT_texture_dds warning suppression only ever fired when a superseded standard image was missing from the filesystem. That is a legitimate warning: the GLTF declares an image that does not exist and tinygltf reports it. A GLTF that ships DDS textures has no need to also reference standard images, so masking the warning hid a real problem. Remove RemoveWarnings and the now-unused EraseAll helper so tinygltf warnings are logged verbatim. The DDS source-selection helpers (GetSource/IsImageAvailable/IsValidImageSource) are retained, so LoadTextures still prefers an available DDS source over the standard image. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See: https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/MSFT_texture_dds/README.md