Skip to content

Commit 748afe1

Browse files
authored
glTF Exporter: Touch up image cache checks (#17072)
Some brush up here for Native. - Ensure HTMLImageElement exists before check - Reorganize check order; URL and ArrayBufferViews are probably the most common cases
1 parent 8093988 commit 748afe1

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

packages/dev/serializers/src/glTF/2.0/glTFMaterialExporter.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,19 +91,19 @@ async function GetCachedImageAsync(babylonTexture: BaseTexture): Promise<Nullabl
9191
if (!buffer) {
9292
data = await Tools.LoadFileAsync(internalTexture.url);
9393
mimeType = GetMimeType(internalTexture.url) || mimeType;
94+
} else if (ArrayBuffer.isView(buffer)) {
95+
data = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength) as ArrayBuffer;
96+
} else if (buffer instanceof ArrayBuffer) {
97+
data = buffer;
98+
} else if (buffer instanceof Blob) {
99+
data = await buffer.arrayBuffer();
100+
mimeType = buffer.type || mimeType;
94101
} else if (typeof buffer === "string") {
95102
data = await Tools.LoadFileAsync(buffer);
96103
mimeType = GetMimeType(buffer) || mimeType;
97-
} else if (buffer instanceof HTMLImageElement) {
104+
} else if (typeof HTMLImageElement !== "undefined" && buffer instanceof HTMLImageElement) {
98105
data = await Tools.LoadFileAsync(buffer.src);
99106
mimeType = GetMimeType(buffer.src) || mimeType;
100-
} else if (buffer instanceof Blob) {
101-
data = await buffer.arrayBuffer();
102-
mimeType = buffer.type || mimeType;
103-
} else if (ArrayBuffer.isView(buffer)) {
104-
data = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength) as ArrayBuffer;
105-
} else if (buffer instanceof ArrayBuffer) {
106-
data = buffer;
107107
}
108108

109109
if (data && mimeType) {

0 commit comments

Comments
 (0)