From 6c1247333914b1e44be13fd70cbd22375cf8b3b6 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Sat, 3 Jan 2026 19:49:23 +0000 Subject: [PATCH 1/5] Add XNA_texture_xnb extension --- .../2.0/Vendor/XNA_texture_xnb/README.md | 77 +++++++++++++++++++ .../schema/glTF.XNA_texture_xnb.schema.json | 15 ++++ 2 files changed, 92 insertions(+) create mode 100644 extensions/2.0/Vendor/XNA_texture_xnb/README.md create mode 100644 extensions/2.0/Vendor/XNA_texture_xnb/schema/glTF.XNA_texture_xnb.schema.json diff --git a/extensions/2.0/Vendor/XNA_texture_xnb/README.md b/extensions/2.0/Vendor/XNA_texture_xnb/README.md new file mode 100644 index 0000000000..51c4d30167 --- /dev/null +++ b/extensions/2.0/Vendor/XNA_texture_xnb/README.md @@ -0,0 +1,77 @@ +# XNA_texture_xnb + +## Contributors + +* Dean Ellis, MonoGame + +## Status + +Draft + +## Dependencies + +Written against the glTF 2.0 spec. + +## Overview + +This extension adds the ability to specify textures using the XNa Binary format (XNB). An implementation of this extension can use the textures provided in the XNB files as an alternative to the PNG or JPG textures available in glTF 2.0. + +The extension is added to the `textures` node and specifies a `source` property that points to the index of the `images` node which in turn points to the XNB texture file. A client that does not understand this extension can ignore the XNB file and continue to rely on the PNG or JPG textures specified. + +```json +"textures": [ + { + "source": 0, + "extensions": { + "XNA_texture_xnb": { + "source": 1 + } + } + } +], +"images": [ + { + "uri": "defaultTexture.png" + }, + { + "uri": "XNBTexture.xnb" + } +] +``` + +When used in the glTF Binary (.glb) format the `images` node that points to the XNB file uses the `mimeType` value of *image/vnd-ms.xnb*. + +```json +"textures": [ + { + "source": 0, + "extensions": { + "XNA_texture_xnb": { + "source": 1 + } + } + } +], +"images": [ + { + "mimeType": "image/png", + "bufferView": 1 + }, + { + "mimeType": "image/vnd-ms.xnb", + "bufferView": 2 + } +] +``` + +## glTF Schema Updates + +* **JSON schema**: [glTF.XNA_texture_xnb.schema.json](schema/glTF.XNA_texture_xnb.schema.json) + +## Known Implementations + +This extension is used by users of XNA like frameworks such as MonoGame,FNA and KNI to load glTF files at runtime by including XNB textures. + +## License + +MonoGame has made this Specification available under the Open Web Foundation Agreement Version 1.0, which is available at https://www.openwebfoundation.org/the-agreements/the-owf-1-0-agreements-granted-claims/owfa-1-0. diff --git a/extensions/2.0/Vendor/XNA_texture_xnb/schema/glTF.XNA_texture_xnb.schema.json b/extensions/2.0/Vendor/XNA_texture_xnb/schema/glTF.XNA_texture_xnb.schema.json new file mode 100644 index 0000000000..5e15da05d5 --- /dev/null +++ b/extensions/2.0/Vendor/XNA_texture_xnb/schema/glTF.XNA_texture_xnb.schema.json @@ -0,0 +1,15 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema", + "title": "XNA_texture_xnb extension", + "type": "object", + "description": "glTF extension to specify textures using the XNA Binary format (XNB).", + "allOf": [ { "$ref": "glTFProperty.schema.json" } ], + "properties": { + "source": { + "allOf": [ { "$ref": "glTFid.schema.json" } ], + "description": "The index of the images node which points to a XNB texture file." + }, + "extensions": {}, + "extras": {} + } +} \ No newline at end of file From 7aaa3381baf0f5a9970d3d92b790843eb7e31b1f Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Mon, 5 Jan 2026 22:46:47 +0000 Subject: [PATCH 2/5] move from XNA_texture_xnb to MSTF_texture_xnb --- .../{XNA_texture_xnb => MSFT_texture_xnb}/README.md | 10 +++++----- .../schema/glTF.MSFT_texture_xnb.schema.json} | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) rename extensions/2.0/Vendor/{XNA_texture_xnb => MSFT_texture_xnb}/README.md (87%) rename extensions/2.0/Vendor/{XNA_texture_xnb/schema/glTF.XNA_texture_xnb.schema.json => MSFT_texture_xnb/schema/glTF.MSFT_texture_xnb.schema.json} (91%) diff --git a/extensions/2.0/Vendor/XNA_texture_xnb/README.md b/extensions/2.0/Vendor/MSFT_texture_xnb/README.md similarity index 87% rename from extensions/2.0/Vendor/XNA_texture_xnb/README.md rename to extensions/2.0/Vendor/MSFT_texture_xnb/README.md index 51c4d30167..31a5de93a4 100644 --- a/extensions/2.0/Vendor/XNA_texture_xnb/README.md +++ b/extensions/2.0/Vendor/MSFT_texture_xnb/README.md @@ -1,4 +1,4 @@ -# XNA_texture_xnb +# MSFT_texture_xnb ## Contributors @@ -14,7 +14,7 @@ Written against the glTF 2.0 spec. ## Overview -This extension adds the ability to specify textures using the XNa Binary format (XNB). An implementation of this extension can use the textures provided in the XNB files as an alternative to the PNG or JPG textures available in glTF 2.0. +This extension adds the ability to specify textures using the XNA Binary format (XNB). An implementation of this extension can use the textures provided in the XNB files as an alternative to the PNG or JPG textures available in glTF 2.0. The extension is added to the `textures` node and specifies a `source` property that points to the index of the `images` node which in turn points to the XNB texture file. A client that does not understand this extension can ignore the XNB file and continue to rely on the PNG or JPG textures specified. @@ -23,7 +23,7 @@ The extension is added to the `textures` node and specifies a `source` property { "source": 0, "extensions": { - "XNA_texture_xnb": { + "MSFT_texture_xnb": { "source": 1 } } @@ -46,7 +46,7 @@ When used in the glTF Binary (.glb) format the `images` node that points to the { "source": 0, "extensions": { - "XNA_texture_xnb": { + "MSFT_texture_xnb": { "source": 1 } } @@ -66,7 +66,7 @@ When used in the glTF Binary (.glb) format the `images` node that points to the ## glTF Schema Updates -* **JSON schema**: [glTF.XNA_texture_xnb.schema.json](schema/glTF.XNA_texture_xnb.schema.json) +* **JSON schema**: [glTF.MSFT_texture_xnb.schema.json](schema/glTF.MSFT_texture_xnb.schema.json) ## Known Implementations diff --git a/extensions/2.0/Vendor/XNA_texture_xnb/schema/glTF.XNA_texture_xnb.schema.json b/extensions/2.0/Vendor/MSFT_texture_xnb/schema/glTF.MSFT_texture_xnb.schema.json similarity index 91% rename from extensions/2.0/Vendor/XNA_texture_xnb/schema/glTF.XNA_texture_xnb.schema.json rename to extensions/2.0/Vendor/MSFT_texture_xnb/schema/glTF.MSFT_texture_xnb.schema.json index 5e15da05d5..036e374abd 100644 --- a/extensions/2.0/Vendor/XNA_texture_xnb/schema/glTF.XNA_texture_xnb.schema.json +++ b/extensions/2.0/Vendor/MSFT_texture_xnb/schema/glTF.MSFT_texture_xnb.schema.json @@ -1,6 +1,6 @@ { "$schema": "http://json-schema.org/draft-04/schema", - "title": "XNA_texture_xnb extension", + "title": "MSFT_texture_xnb extension", "type": "object", "description": "glTF extension to specify textures using the XNA Binary format (XNB).", "allOf": [ { "$ref": "glTFProperty.schema.json" } ], From 71105f0b307b969fb3e2119a70802e277156c7c6 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Mon, 5 Jan 2026 23:08:58 +0000 Subject: [PATCH 3/5] Fixed mimitype --- extensions/2.0/Vendor/MSFT_texture_xnb/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/2.0/Vendor/MSFT_texture_xnb/README.md b/extensions/2.0/Vendor/MSFT_texture_xnb/README.md index 31a5de93a4..3ecc83db1d 100644 --- a/extensions/2.0/Vendor/MSFT_texture_xnb/README.md +++ b/extensions/2.0/Vendor/MSFT_texture_xnb/README.md @@ -39,7 +39,7 @@ The extension is added to the `textures` node and specifies a `source` property ] ``` -When used in the glTF Binary (.glb) format the `images` node that points to the XNB file uses the `mimeType` value of *image/vnd-ms.xnb*. +When used in the glTF Binary (.glb) format the `images` node that points to the XNB file uses the `mimeType` value of *image/vnd.ms-xnb*. ```json "textures": [ @@ -58,7 +58,7 @@ When used in the glTF Binary (.glb) format the `images` node that points to the "bufferView": 1 }, { - "mimeType": "image/vnd-ms.xnb", + "mimeType": "image/vnd.ms-xnb", "bufferView": 2 } ] From 6892381e4ae4cf8b404a1fc4248d6cfa6d315a9f Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Mon, 12 Jan 2026 13:59:45 +0000 Subject: [PATCH 4/5] Fix punctuation and add resources in README.md Corrected punctuation and added resources section for clarity. --- extensions/2.0/Vendor/MSFT_texture_xnb/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/extensions/2.0/Vendor/MSFT_texture_xnb/README.md b/extensions/2.0/Vendor/MSFT_texture_xnb/README.md index 3ecc83db1d..13ac929b3c 100644 --- a/extensions/2.0/Vendor/MSFT_texture_xnb/README.md +++ b/extensions/2.0/Vendor/MSFT_texture_xnb/README.md @@ -70,7 +70,11 @@ When used in the glTF Binary (.glb) format the `images` node that points to the ## Known Implementations -This extension is used by users of XNA like frameworks such as MonoGame,FNA and KNI to load glTF files at runtime by including XNB textures. +This extension is used by users of XNA like frameworks such as MonoGame, FNA and KNI to load glTF files at runtime by including XNB textures. + +## Resources + +* **XNB Format Specification**: [XNB%20Format.docx](https://docs.monogame.net/articles/getting_to_know/whatis/content_pipeline/XNB%20Format.docx) ## License From 6b1c0e3e4ed0fd542522523338533678b50d6738 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Mon, 12 Jan 2026 14:20:54 +0000 Subject: [PATCH 5/5] Fix link formatting in README.md --- extensions/2.0/Vendor/MSFT_texture_xnb/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/2.0/Vendor/MSFT_texture_xnb/README.md b/extensions/2.0/Vendor/MSFT_texture_xnb/README.md index 13ac929b3c..1ed351ea0c 100644 --- a/extensions/2.0/Vendor/MSFT_texture_xnb/README.md +++ b/extensions/2.0/Vendor/MSFT_texture_xnb/README.md @@ -74,7 +74,7 @@ This extension is used by users of XNA like frameworks such as MonoGame, FNA and ## Resources -* **XNB Format Specification**: [XNB%20Format.docx](https://docs.monogame.net/articles/getting_to_know/whatis/content_pipeline/XNB%20Format.docx) +* **XNB Format Specification**: [XNB Format.docx](https://docs.monogame.net/articles/getting_to_know/whatis/content_pipeline/XNB%20Format.docx) ## License