Skip to content

Commit

Permalink
Merge pull request #516 from jim-ec/respect-required-exts
Browse files Browse the repository at this point in the history
Respect required extensions
  • Loading branch information
UX3D-kanzler authored Jan 17, 2024
2 parents 2eceb91 + 8b96833 commit 6546208
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 4 deletions.
9 changes: 7 additions & 2 deletions app_web/src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { GltfView } from 'gltf-viewer-source';

import { UIModel } from './logic/uimodel.js';
import { app } from './ui/ui.js';
import { from, merge } from 'rxjs';
import { mergeMap, map, share } from 'rxjs/operators';
import { EMPTY, from, merge } from 'rxjs';
import { mergeMap, map, share, catchError } from 'rxjs/operators';
import { GltfModelPathProvider, fillEnvironmentWithPaths } from './model_path_provider.js';

export default async () => {
Expand Down Expand Up @@ -72,6 +72,11 @@ export default async () => {
return state;
}));
}),
catchError(error => {
console.error(error);
uiModel.exitLoadingState();
return EMPTY;
}),
share()
);

Expand Down
27 changes: 27 additions & 0 deletions source/gltf/gltf.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,27 @@ import { gltfAnimation } from './animation.js';
import { gltfSkin } from './skin.js';
import { gltfVariant } from './variant.js';

const allowedExtensions = [
"KHR_draco_mesh_compression",
"KHR_texture_basisu",
"KHR_texture_transform",
"KHR_lights_punctual",
"KHR_lights_image_based",
"KHR_materials_variants",
"KHR_materials_unlit",
"KHR_materials_clearcoat",
"KHR_materials_sheen",
"KHR_materials_transmission",
"KHR_materials_volume",
"KHR_materials_ior",
"KHR_materials_iridescence",
"KHR_materials_anisotropy",
"KHR_materials_specular",
"KHR_materials_emissive_strength",
"KHR_materials_xmp_json_ld",
"KHR_materials_pbrSpecularGlossiness",
];

class glTF extends GltfObject
{
constructor(file)
Expand Down Expand Up @@ -52,6 +73,12 @@ class glTF extends GltfObject
{
super.fromJson(json);

for (const extensionName of json.extensionsRequired ?? []) {
if (!allowedExtensions.includes(extensionName)) {
throw new Error("Unsupported extension: " + extensionName);
}
}

this.asset = objectFromJson(json.asset, gltfAsset);
this.cameras = objectsFromJsons(json.cameras, gltfCamera);
this.accessors = objectsFromJsons(json.accessors, gltfAccessor);
Expand Down
2 changes: 0 additions & 2 deletions source/gltf/image.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,6 @@ class gltfImage extends GltfObject
return false;
}

console.log("Load image: " + this.mimeType);

const buffer = gltf.buffers[view.buffer].buffer;
const array = new Uint8Array(buffer, view.byteOffset, view.byteLength);
if (this.mimeType === ImageMimeType.KTX2)
Expand Down

0 comments on commit 6546208

Please sign in to comment.