import {
|
Resource,
|
ResourceCacheKey,
|
SupportedImageFormats,
|
} from "../../Source/Cesium.js";
|
|
describe("ResourceCacheKey", function () {
|
var schemaUri = "https://example.com/schema.json";
|
var schemaResource = new Resource({ url: schemaUri });
|
|
var gltfUri = "https://example.com/parent.gltf";
|
var gltfResource = new Resource({ url: gltfUri });
|
|
var baseUri = "https://example.com/resources/";
|
var baseResource = new Resource({ url: baseUri });
|
|
var schemaJson = {};
|
|
var bufferUri = "https://example.com/external.bin";
|
var bufferResource = new Resource({ url: bufferUri });
|
var bufferId = 0;
|
|
var meshoptGltfEmbeddedBuffer = {
|
buffers: [
|
{
|
byteLength: 100,
|
},
|
],
|
bufferViews: [
|
{
|
buffer: 0,
|
byteOffset: 0,
|
byteLength: 100,
|
extensions: {
|
EXT_meshopt_compression: {
|
buffer: 1,
|
byteOffset: 25,
|
byteLength: 50,
|
},
|
},
|
},
|
],
|
};
|
|
var gltfEmbeddedBuffer = {
|
buffers: [
|
{
|
byteLength: 100,
|
},
|
],
|
bufferViews: [
|
{
|
buffer: 0,
|
byteOffset: 0,
|
byteLength: 100,
|
},
|
],
|
};
|
|
var gltfExternalBuffer = {
|
buffers: [
|
{
|
uri: "external.bin",
|
byteLength: 100,
|
},
|
],
|
bufferViews: [
|
{
|
buffer: 0,
|
byteOffset: 0,
|
byteLength: 100,
|
},
|
],
|
};
|
|
var gltfUncompressed = {
|
buffers: [
|
{
|
uri: "external.bin",
|
byteLength: 100,
|
},
|
],
|
bufferViews: [
|
{
|
buffer: 0,
|
byteOffset: 0,
|
byteLength: 40,
|
},
|
{
|
buffer: 0,
|
byteOffset: 40,
|
byteLength: 40,
|
},
|
{
|
buffer: 0,
|
byteOffset: 80,
|
byteLength: 20,
|
},
|
],
|
accessors: [
|
{
|
componentType: 5126,
|
count: 24,
|
max: [0.5, 0.5, 0.5],
|
min: [-0.5, -0.5, -0.5],
|
type: "VEC3",
|
bufferView: 0,
|
byteOffset: 0,
|
},
|
{
|
componentType: 5126,
|
count: 24,
|
type: "VEC3",
|
bufferView: 1,
|
byteOffset: 0,
|
},
|
{
|
componentType: 5123,
|
count: 36,
|
type: "SCALAR",
|
bufferView: 2,
|
byteOffset: 0,
|
},
|
],
|
meshes: [
|
{
|
primitives: [
|
{
|
attributes: {
|
POSITION: 0,
|
NORMAL: 1,
|
},
|
indices: 2,
|
},
|
],
|
},
|
],
|
};
|
|
var gltfDraco = {
|
buffers: [
|
{
|
uri: "external.bin",
|
byteLength: 100,
|
},
|
],
|
bufferViews: [
|
{
|
buffer: 0,
|
byteOffset: 0,
|
byteLength: 100,
|
},
|
],
|
accessors: [
|
{
|
componentType: 5126,
|
count: 24,
|
max: [0.5, 0.5, 0.5],
|
min: [-0.5, -0.5, -0.5],
|
type: "VEC3",
|
},
|
{
|
componentType: 5126,
|
count: 24,
|
type: "VEC3",
|
},
|
{
|
componentType: 5123,
|
count: 36,
|
type: "SCALAR",
|
},
|
],
|
meshes: [
|
{
|
primitives: [
|
{
|
attributes: {
|
POSITION: 0,
|
NORMAL: 1,
|
},
|
indices: 2,
|
extensions: {
|
KHR_draco_mesh_compression: {
|
bufferView: 0,
|
attributes: {
|
POSITION: 0,
|
NORMAL: 1,
|
},
|
},
|
},
|
},
|
],
|
},
|
],
|
};
|
|
var gltfWithTextures = {
|
buffers: [
|
{
|
uri: "external.bin",
|
byteLength: 100,
|
},
|
],
|
bufferViews: [
|
{
|
buffer: 0,
|
byteOffset: 0,
|
byteLength: 100,
|
},
|
],
|
images: [
|
{
|
uri: "image.png",
|
},
|
{
|
mimeType: "image/jpeg",
|
bufferView: 0,
|
},
|
{
|
uri: "image.webp",
|
},
|
{
|
uri: "image.ktx2",
|
},
|
],
|
textures: [
|
{
|
// Intentionally omitting sampler from this texture
|
source: 0,
|
},
|
{
|
sampler: 0,
|
source: 1,
|
},
|
{
|
source: 0,
|
extensions: {
|
EXT_texture_webp: {
|
source: 2,
|
},
|
},
|
},
|
{
|
source: 0,
|
extensions: {
|
KHR_texture_basisu: {
|
source: 3,
|
},
|
},
|
},
|
],
|
samplers: [
|
{
|
magFilter: 9728,
|
minFilter: 9984,
|
wrapS: 33071,
|
wrapT: 33648,
|
},
|
],
|
};
|
|
it("getSchemaCacheKey works for external schemas", function () {
|
var cacheKey = ResourceCacheKey.getSchemaCacheKey({
|
resource: schemaResource,
|
});
|
|
expect(cacheKey).toBe("external-schema:" + schemaUri);
|
});
|
|
it("getSchemaCacheKey works for JSON schemas", function () {
|
var cacheKey = ResourceCacheKey.getSchemaCacheKey({
|
schema: schemaJson,
|
});
|
|
expect(cacheKey).toBe("embedded-schema:" + JSON.stringify(schemaJson));
|
});
|
|
it("getSchemaCacheKey throws if neither options.schema nor options.resource are defined", function () {
|
expect(function () {
|
ResourceCacheKey.getSchemaCacheKey({});
|
}).toThrowDeveloperError();
|
});
|
|
it("getSchemaCacheKey throws if both options.schema and options.resource are defined", function () {
|
expect(function () {
|
ResourceCacheKey.getSchemaCacheKey({
|
schema: schemaJson,
|
resource: schemaResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getExternalBufferCacheKey works", function () {
|
var cacheKey = ResourceCacheKey.getExternalBufferCacheKey({
|
resource: bufferResource,
|
});
|
|
expect(cacheKey).toBe("external-buffer:" + bufferUri);
|
});
|
|
it("getExternalBufferCacheKey throws if resource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getExternalBufferCacheKey({});
|
}).toThrowDeveloperError();
|
});
|
|
it("getEmbeddedBufferCacheKey works", function () {
|
var cacheKey = ResourceCacheKey.getEmbeddedBufferCacheKey({
|
parentResource: gltfResource,
|
bufferId: bufferId,
|
});
|
|
expect(cacheKey).toBe("embedded-buffer:" + gltfUri + "-buffer-id-0");
|
});
|
|
it("getEmbeddedBufferCacheKey throws if parentResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getExternalBufferCacheKey({
|
bufferId: bufferId,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getEmbeddedBufferCacheKey throws if bufferId is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getExternalBufferCacheKey({
|
parentResource: gltfResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getGltfCacheKey works", function () {
|
var cacheKey = ResourceCacheKey.getGltfCacheKey({
|
gltfResource: gltfResource,
|
});
|
|
expect(cacheKey).toBe("gltf:" + gltfUri);
|
});
|
|
it("getGltfCacheKey throws if gltfResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getGltfCacheKey({});
|
}).toThrowDeveloperError();
|
});
|
|
it("getBufferViewCacheKey works with embedded buffer", function () {
|
var cacheKey = ResourceCacheKey.getBufferViewCacheKey({
|
gltf: gltfEmbeddedBuffer,
|
bufferViewId: 0,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
|
expect(cacheKey).toBe(
|
"buffer-view:" + gltfUri + "-buffer-id-0-range-0-100"
|
);
|
});
|
|
it("getBufferViewCacheKey works with external buffer", function () {
|
var cacheKey = ResourceCacheKey.getBufferViewCacheKey({
|
gltf: gltfExternalBuffer,
|
bufferViewId: 0,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
|
expect(cacheKey).toBe(
|
"buffer-view:https://example.com/resources/external.bin-range-0-100"
|
);
|
});
|
|
it("getBufferViewCacheKey works with meshopt", function () {
|
var cacheKey = ResourceCacheKey.getBufferViewCacheKey({
|
gltf: meshoptGltfEmbeddedBuffer,
|
bufferViewId: 0,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
|
expect(cacheKey).toBe(
|
"buffer-view:" + gltfUri + "-buffer-id-1-range-25-75"
|
);
|
});
|
|
it("getBufferViewCacheKey throws if gltf is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getBufferViewCacheKey({
|
gltf: undefined,
|
bufferViewId: 0,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getBufferViewCacheKey throws if bufferViewId is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getBufferViewCacheKey({
|
gltf: gltfEmbeddedBuffer,
|
bufferViewId: undefined,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getBufferViewCacheKey throws if gltfResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getBufferViewCacheKey({
|
gltf: gltfEmbeddedBuffer,
|
bufferViewId: 0,
|
gltfResource: undefined,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getBufferViewCacheKey throws if baseResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getBufferViewCacheKey({
|
gltf: gltfEmbeddedBuffer,
|
bufferViewId: 0,
|
gltfResource: gltfResource,
|
baseResource: undefined,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getDracoCacheKey works", function () {
|
var draco =
|
gltfDraco.meshes[0].primitives[0].extensions.KHR_draco_mesh_compression;
|
|
var cacheKey = ResourceCacheKey.getDracoCacheKey({
|
gltf: gltfDraco,
|
draco: draco,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
|
expect(cacheKey).toBe(
|
"draco:https://example.com/resources/external.bin-range-0-100"
|
);
|
});
|
|
it("getDracoCacheKey throws if gltf is undefined", function () {
|
var draco =
|
gltfDraco.meshes[0].primitives[0].extensions.KHR_draco_mesh_compression;
|
|
expect(function () {
|
ResourceCacheKey.getBufferViewCacheKey({
|
gltf: undefined,
|
draco: draco,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getDracoCacheKey throws if draco is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getBufferViewCacheKey({
|
gltf: gltfDraco,
|
draco: undefined,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getDracoCacheKey throws if gltfResource is undefined", function () {
|
var draco =
|
gltfDraco.meshes[0].primitives[0].extensions.KHR_draco_mesh_compression;
|
|
expect(function () {
|
ResourceCacheKey.getBufferViewCacheKey({
|
gltf: gltfDraco,
|
draco: draco,
|
gltfResource: undefined,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getDracoCacheKey throws if baseResource is undefined", function () {
|
var draco =
|
gltfDraco.meshes[0].primitives[0].extensions.KHR_draco_mesh_compression;
|
|
expect(function () {
|
ResourceCacheKey.getBufferViewCacheKey({
|
gltf: gltfDraco,
|
draco: draco,
|
gltfResource: gltfResource,
|
baseResource: undefined,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getVertexBufferCacheKey works from buffer view", function () {
|
var cacheKey = ResourceCacheKey.getVertexBufferCacheKey({
|
gltf: gltfUncompressed,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
bufferViewId: 0,
|
});
|
|
expect(cacheKey).toBe(
|
"vertex-buffer:https://example.com/resources/external.bin-range-0-40"
|
);
|
});
|
|
it("getVertexBufferCacheKey works from draco", function () {
|
var draco =
|
gltfDraco.meshes[0].primitives[0].extensions.KHR_draco_mesh_compression;
|
|
var cacheKey = ResourceCacheKey.getVertexBufferCacheKey({
|
gltf: gltfDraco,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
draco: draco,
|
attributeSemantic: "POSITION",
|
});
|
|
expect(cacheKey).toBe(
|
"vertex-buffer:https://example.com/resources/external.bin-range-0-100-draco-POSITION"
|
);
|
});
|
|
it("getVertexBufferCacheKey works with dequantize", function () {
|
var cacheKey = ResourceCacheKey.getVertexBufferCacheKey({
|
gltf: gltfUncompressed,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
bufferViewId: 0,
|
dequantize: true,
|
});
|
|
expect(cacheKey).toBe(
|
"vertex-buffer:https://example.com/resources/external.bin-range-0-40-dequantize"
|
);
|
});
|
|
it("getVertexBufferCacheKey works with loadAsTypedArray", function () {
|
var cacheKey = ResourceCacheKey.getVertexBufferCacheKey({
|
gltf: gltfUncompressed,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
bufferViewId: 0,
|
loadAsTypedArray: true,
|
});
|
|
expect(cacheKey).toBe(
|
"vertex-buffer:https://example.com/resources/external.bin-range-0-40-typed-array"
|
);
|
});
|
|
it("getVertexBufferCacheKey throws if gltf is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getVertexBufferCacheKey({
|
gltf: undefined,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
bufferViewId: 0,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getVertexBufferCacheKey throws if gltfResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getVertexBufferCacheKey({
|
gltf: gltfUncompressed,
|
gltfResource: undefined,
|
baseResource: baseResource,
|
bufferViewId: 0,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getVertexBufferCacheKey throws if baseResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getVertexBufferCacheKey({
|
gltf: gltfUncompressed,
|
gltfResource: gltfResource,
|
baseResource: undefined,
|
bufferViewId: 0,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getVertexBufferCacheKey throws if both bufferViewId and draco are undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getVertexBufferCacheKey({
|
gltf: gltfUncompressed,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getVertexBufferCacheKey throws if both bufferViewId and draco are defined", function () {
|
var draco =
|
gltfDraco.meshes[0].primitives[0].extensions.KHR_draco_mesh_compression;
|
|
expect(function () {
|
ResourceCacheKey.getVertexBufferCacheKey({
|
gltf: gltfDraco,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
bufferViewId: 0,
|
draco: draco,
|
attributeSemantic: "POSITION",
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getVertexBufferCacheKey throws if both draco is defined and attributeSemantic is undefined", function () {
|
var draco =
|
gltfDraco.meshes[0].primitives[0].extensions.KHR_draco_mesh_compression;
|
|
expect(function () {
|
ResourceCacheKey.getVertexBufferCacheKey({
|
gltf: gltfDraco,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
draco: draco,
|
attributeSemantic: undefined,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getIndexBufferCacheKey works from buffer view", function () {
|
var cacheKey = ResourceCacheKey.getIndexBufferCacheKey({
|
gltf: gltfUncompressed,
|
accessorId: 2,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
|
expect(cacheKey).toBe(
|
"index-buffer:https://example.com/resources/external.bin-accessor-80-5123-SCALAR-36"
|
);
|
});
|
|
it("getIndexBufferCacheKey works from draco", function () {
|
var draco =
|
gltfDraco.meshes[0].primitives[0].extensions.KHR_draco_mesh_compression;
|
|
var cacheKey = ResourceCacheKey.getIndexBufferCacheKey({
|
gltf: gltfDraco,
|
accessorId: 2,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
draco: draco,
|
});
|
|
expect(cacheKey).toBe(
|
"index-buffer:https://example.com/resources/external.bin-range-0-100-draco"
|
);
|
});
|
|
it("getIndexBufferCacheKey works with loadAsTypedArray", function () {
|
var cacheKey = ResourceCacheKey.getIndexBufferCacheKey({
|
gltf: gltfUncompressed,
|
accessorId: 2,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
loadAsTypedArray: true,
|
});
|
|
expect(cacheKey).toBe(
|
"index-buffer:https://example.com/resources/external.bin-accessor-80-5123-SCALAR-36-typed-array"
|
);
|
});
|
|
it("getIndexBufferCacheKey throws if gltf is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getIndexBufferCacheKey({
|
gltf: undefined,
|
accessorId: 2,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getIndexBufferCacheKey throws if gltfResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getIndexBufferCacheKey({
|
gltf: gltfUncompressed,
|
accessorId: 2,
|
gltfResource: undefined,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getIndexBufferCacheKey throws if baseResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getIndexBufferCacheKey({
|
gltf: gltfUncompressed,
|
accessorId: 2,
|
gltfResource: gltfResource,
|
baseResource: undefined,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getImageCacheKey works from uri", function () {
|
var cacheKey = ResourceCacheKey.getImageCacheKey({
|
gltf: gltfWithTextures,
|
imageId: 0,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
|
expect(cacheKey).toBe("image:https://example.com/resources/image.png");
|
});
|
|
it("getImageCacheKey works from buffer view", function () {
|
var cacheKey = ResourceCacheKey.getImageCacheKey({
|
gltf: gltfWithTextures,
|
imageId: 1,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
|
expect(cacheKey).toBe(
|
"image:https://example.com/resources/external.bin-range-0-100"
|
);
|
});
|
|
it("getImageCacheKey throws if gltf is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getImageCacheKey({
|
gltf: undefined,
|
imageId: 0,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getImageCacheKey throws if imageId is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getImageCacheKey({
|
gltf: gltfWithTextures,
|
imageId: undefined,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getImageCacheKey throws if gltfResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getImageCacheKey({
|
gltf: gltfWithTextures,
|
imageId: 0,
|
gltfResource: undefined,
|
baseResource: baseResource,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getImageCacheKey throws if baseResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getImageCacheKey({
|
gltf: gltfWithTextures,
|
imageId: 0,
|
gltfResource: gltfResource,
|
baseResource: undefined,
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getTextureCacheKey works with default sampler", function () {
|
var cacheKey = ResourceCacheKey.getTextureCacheKey({
|
gltf: gltfWithTextures,
|
textureInfo: {
|
index: 0,
|
texCoord: 0,
|
},
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
supportedImageFormats: new SupportedImageFormats(),
|
});
|
|
expect(cacheKey).toBe(
|
"texture:https://example.com/resources/image.png-sampler-10497-10497-9729-9729"
|
);
|
});
|
|
it("getTextureCacheKey works with explicit sampler", function () {
|
var cacheKey = ResourceCacheKey.getTextureCacheKey({
|
gltf: gltfWithTextures,
|
textureInfo: {
|
index: 1,
|
texCoord: 0,
|
},
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
supportedImageFormats: new SupportedImageFormats(),
|
});
|
|
expect(cacheKey).toBe(
|
"texture:https://example.com/resources/external.bin-range-0-100-sampler-33071-33648-9984-9728"
|
);
|
});
|
|
it("getTextureCacheKey works with EXT_texture_webp extension", function () {
|
var cacheKey = ResourceCacheKey.getTextureCacheKey({
|
gltf: gltfWithTextures,
|
textureInfo: {
|
index: 2,
|
texCoord: 0,
|
},
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
supportedImageFormats: new SupportedImageFormats({
|
webp: true,
|
}),
|
});
|
|
expect(cacheKey).toBe(
|
"texture:https://example.com/resources/image.webp-sampler-10497-10497-9729-9729"
|
);
|
});
|
|
it("getTextureCacheKey ignores EXT_texture_webp extension if WebP is not supported", function () {
|
var cacheKey = ResourceCacheKey.getTextureCacheKey({
|
gltf: gltfWithTextures,
|
textureInfo: {
|
index: 2,
|
texCoord: 0,
|
},
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
supportedImageFormats: new SupportedImageFormats(),
|
});
|
|
expect(cacheKey).toBe(
|
"texture:https://example.com/resources/image.png-sampler-10497-10497-9729-9729"
|
);
|
});
|
|
it("getTextureCacheKey works with KHR_texture_basisu extension", function () {
|
var cacheKey = ResourceCacheKey.getTextureCacheKey({
|
gltf: gltfWithTextures,
|
textureInfo: {
|
index: 3,
|
texCoord: 0,
|
},
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
supportedImageFormats: new SupportedImageFormats({
|
basis: true,
|
}),
|
});
|
|
expect(cacheKey).toBe(
|
"texture:https://example.com/resources/image.ktx2-sampler-10497-10497-9729-9729"
|
);
|
});
|
|
it("getTextureCacheKey ignores KHR_texture_basisu extension if Basis is not supported", function () {
|
var cacheKey = ResourceCacheKey.getTextureCacheKey({
|
gltf: gltfWithTextures,
|
textureInfo: {
|
index: 3,
|
texCoord: 0,
|
},
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
supportedImageFormats: new SupportedImageFormats(),
|
});
|
|
expect(cacheKey).toBe(
|
"texture:https://example.com/resources/image.png-sampler-10497-10497-9729-9729"
|
);
|
});
|
|
it("getTextureCacheKey throws if gltf is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getTextureCacheKey({
|
gltf: undefined,
|
textureInfo: {
|
index: 0,
|
texCoord: 0,
|
},
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
supportedImageFormats: new SupportedImageFormats(),
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getTextureCacheKey throws if textureInfo is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getTextureCacheKey({
|
gltf: gltfWithTextures,
|
textureInfo: undefined,
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
supportedImageFormats: new SupportedImageFormats(),
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getTextureCacheKey throws if gltfResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getTextureCacheKey({
|
gltf: gltfWithTextures,
|
textureInfo: {
|
index: 0,
|
texCoord: 0,
|
},
|
gltfResource: undefined,
|
baseResource: baseResource,
|
supportedImageFormats: new SupportedImageFormats(),
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getTextureCacheKey throws if baseResource is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getTextureCacheKey({
|
gltf: gltfWithTextures,
|
textureInfo: {
|
index: 0,
|
texCoord: 0,
|
},
|
gltfResource: gltfResource,
|
baseResource: undefined,
|
supportedImageFormats: new SupportedImageFormats(),
|
});
|
}).toThrowDeveloperError();
|
});
|
|
it("getTextureCacheKey throws if supportedImageFormats is undefined", function () {
|
expect(function () {
|
ResourceCacheKey.getTextureCacheKey({
|
gltf: gltfWithTextures,
|
textureInfo: {
|
index: 0,
|
texCoord: 0,
|
},
|
gltfResource: gltfResource,
|
baseResource: baseResource,
|
supportedImageFormats: undefined,
|
});
|
}).toThrowDeveloperError();
|
});
|
});
|