This commit is contained in:
Akko
2025-08-04 18:57:35 +02:00
parent 8cf6e78a79
commit 9495868c2e
5030 changed files with 518594 additions and 17609 deletions

View File

@@ -0,0 +1,7 @@
/// <reference types="@webgpu/types" />
import type { TextureSource } from '../../../shared/texture/sources/TextureSource';
import type { GPU } from '../../GpuDeviceSystem';
export interface GpuTextureUploader<T extends TextureSource = TextureSource> {
type: string;
upload(source: T, gpuTexture: GPUTexture, gpu: GPU): void;
}

View File

@@ -0,0 +1,4 @@
'use strict';
"use strict";
//# sourceMappingURL=GpuTextureUploader.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"GpuTextureUploader.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}

View File

@@ -0,0 +1,2 @@
"use strict";
//# sourceMappingURL=GpuTextureUploader.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"GpuTextureUploader.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@@ -0,0 +1,3 @@
import type { BufferImageSource } from '../../../shared/texture/sources/BufferImageSource';
import type { GpuTextureUploader } from './GpuTextureUploader';
export declare const gpuUploadBufferImageResource: GpuTextureUploader<BufferImageSource>;

View File

@@ -0,0 +1,28 @@
'use strict';
"use strict";
const gpuUploadBufferImageResource = {
type: "image",
upload(source, gpuTexture, gpu) {
const resource = source.resource;
const total = (source.pixelWidth | 0) * (source.pixelHeight | 0);
const bytesPerPixel = resource.byteLength / total;
gpu.device.queue.writeTexture(
{ texture: gpuTexture },
resource,
{
offset: 0,
rowsPerImage: source.pixelHeight,
bytesPerRow: source.pixelHeight * bytesPerPixel
},
{
width: source.pixelWidth,
height: source.pixelHeight,
depthOrArrayLayers: 1
}
);
}
};
exports.gpuUploadBufferImageResource = gpuUploadBufferImageResource;
//# sourceMappingURL=gpuUploadBufferImageResource.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gpuUploadBufferImageResource.js","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadBufferImageResource.ts"],"sourcesContent":["import type { BufferImageSource } from '../../../shared/texture/sources/BufferImageSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\nexport const gpuUploadBufferImageResource = {\n\n type: 'image',\n\n upload(source: BufferImageSource, gpuTexture: GPUTexture, gpu: GPU)\n {\n const resource = source.resource;\n\n const total = (source.pixelWidth | 0) * (source.pixelHeight | 0);\n\n const bytesPerPixel = resource.byteLength / total;\n\n gpu.device.queue.writeTexture(\n { texture: gpuTexture },\n resource,\n {\n offset: 0,\n rowsPerImage: source.pixelHeight,\n bytesPerRow: source.pixelHeight * bytesPerPixel,\n },\n {\n width: source.pixelWidth,\n height: source.pixelHeight,\n depthOrArrayLayers: 1,\n }\n );\n }\n} as GpuTextureUploader<BufferImageSource>;\n\n"],"names":[],"mappings":";;;AAIO,MAAM,4BAA+B,GAAA;AAAA,EAExC,IAAM,EAAA,OAAA;AAAA,EAEN,MAAA,CAAO,MAA2B,EAAA,UAAA,EAAwB,GAC1D,EAAA;AACI,IAAA,MAAM,WAAW,MAAO,CAAA,QAAA,CAAA;AAExB,IAAA,MAAM,KAAS,GAAA,CAAA,MAAA,CAAO,UAAa,GAAA,CAAA,KAAM,OAAO,WAAc,GAAA,CAAA,CAAA,CAAA;AAE9D,IAAM,MAAA,aAAA,GAAgB,SAAS,UAAa,GAAA,KAAA,CAAA;AAE5C,IAAA,GAAA,CAAI,OAAO,KAAM,CAAA,YAAA;AAAA,MACb,EAAE,SAAS,UAAW,EAAA;AAAA,MACtB,QAAA;AAAA,MACA;AAAA,QACI,MAAQ,EAAA,CAAA;AAAA,QACR,cAAc,MAAO,CAAA,WAAA;AAAA,QACrB,WAAA,EAAa,OAAO,WAAc,GAAA,aAAA;AAAA,OACtC;AAAA,MACA;AAAA,QACI,OAAO,MAAO,CAAA,UAAA;AAAA,QACd,QAAQ,MAAO,CAAA,WAAA;AAAA,QACf,kBAAoB,EAAA,CAAA;AAAA,OACxB;AAAA,KACJ,CAAA;AAAA,GACJ;AACJ;;;;"}

View File

@@ -0,0 +1,26 @@
"use strict";
const gpuUploadBufferImageResource = {
type: "image",
upload(source, gpuTexture, gpu) {
const resource = source.resource;
const total = (source.pixelWidth | 0) * (source.pixelHeight | 0);
const bytesPerPixel = resource.byteLength / total;
gpu.device.queue.writeTexture(
{ texture: gpuTexture },
resource,
{
offset: 0,
rowsPerImage: source.pixelHeight,
bytesPerRow: source.pixelHeight * bytesPerPixel
},
{
width: source.pixelWidth,
height: source.pixelHeight,
depthOrArrayLayers: 1
}
);
}
};
export { gpuUploadBufferImageResource };
//# sourceMappingURL=gpuUploadBufferImageResource.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gpuUploadBufferImageResource.mjs","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadBufferImageResource.ts"],"sourcesContent":["import type { BufferImageSource } from '../../../shared/texture/sources/BufferImageSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\nexport const gpuUploadBufferImageResource = {\n\n type: 'image',\n\n upload(source: BufferImageSource, gpuTexture: GPUTexture, gpu: GPU)\n {\n const resource = source.resource;\n\n const total = (source.pixelWidth | 0) * (source.pixelHeight | 0);\n\n const bytesPerPixel = resource.byteLength / total;\n\n gpu.device.queue.writeTexture(\n { texture: gpuTexture },\n resource,\n {\n offset: 0,\n rowsPerImage: source.pixelHeight,\n bytesPerRow: source.pixelHeight * bytesPerPixel,\n },\n {\n width: source.pixelWidth,\n height: source.pixelHeight,\n depthOrArrayLayers: 1,\n }\n );\n }\n} as GpuTextureUploader<BufferImageSource>;\n\n"],"names":[],"mappings":";AAIO,MAAM,4BAA+B,GAAA;AAAA,EAExC,IAAM,EAAA,OAAA;AAAA,EAEN,MAAA,CAAO,MAA2B,EAAA,UAAA,EAAwB,GAC1D,EAAA;AACI,IAAA,MAAM,WAAW,MAAO,CAAA,QAAA,CAAA;AAExB,IAAA,MAAM,KAAS,GAAA,CAAA,MAAA,CAAO,UAAa,GAAA,CAAA,KAAM,OAAO,WAAc,GAAA,CAAA,CAAA,CAAA;AAE9D,IAAM,MAAA,aAAA,GAAgB,SAAS,UAAa,GAAA,KAAA,CAAA;AAE5C,IAAA,GAAA,CAAI,OAAO,KAAM,CAAA,YAAA;AAAA,MACb,EAAE,SAAS,UAAW,EAAA;AAAA,MACtB,QAAA;AAAA,MACA;AAAA,QACI,MAAQ,EAAA,CAAA;AAAA,QACR,cAAc,MAAO,CAAA,WAAA;AAAA,QACrB,WAAA,EAAa,OAAO,WAAc,GAAA,aAAA;AAAA,OACtC;AAAA,MACA;AAAA,QACI,OAAO,MAAO,CAAA,UAAA;AAAA,QACd,QAAQ,MAAO,CAAA,WAAA;AAAA,QACf,kBAAoB,EAAA,CAAA;AAAA,OACxB;AAAA,KACJ,CAAA;AAAA,GACJ;AACJ;;;;"}

View File

@@ -0,0 +1,8 @@
import type { CompressedSource } from '../../../shared/texture/sources/CompressedSource';
import type { GpuTextureUploader } from './GpuTextureUploader';
export declare const blockDataMap: Record<string, {
blockBytes: number;
blockWidth: number;
blockHeight: number;
}>;
export declare const gpuUploadCompressedTextureResource: GpuTextureUploader<CompressedSource>;

View File

@@ -0,0 +1,47 @@
'use strict';
"use strict";
const blockDataMap = {
"bc1-rgba-unorm": { blockBytes: 8, blockWidth: 4, blockHeight: 4 },
"bc2-rgba-unorm": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },
"bc3-rgba-unorm": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },
"bc7-rgba-unorm": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },
"etc1-rgb-unorm": { blockBytes: 8, blockWidth: 4, blockHeight: 4 },
"etc2-rgba8unorm": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },
"astc-4x4-unorm": { blockBytes: 16, blockWidth: 4, blockHeight: 4 }
};
const defaultBlockData = { blockBytes: 4, blockWidth: 1, blockHeight: 1 };
const gpuUploadCompressedTextureResource = {
type: "compressed",
upload(source, gpuTexture, gpu) {
let mipWidth = source.pixelWidth;
let mipHeight = source.pixelHeight;
const blockData = blockDataMap[source.format] || defaultBlockData;
for (let i = 0; i < source.resource.length; i++) {
const levelBuffer = source.resource[i];
const bytesPerRow = Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockBytes;
gpu.device.queue.writeTexture(
{
texture: gpuTexture,
mipLevel: i
},
levelBuffer,
{
offset: 0,
bytesPerRow
},
{
width: Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockWidth,
height: Math.ceil(mipHeight / blockData.blockHeight) * blockData.blockHeight,
depthOrArrayLayers: 1
}
);
mipWidth = Math.max(mipWidth >> 1, 1);
mipHeight = Math.max(mipHeight >> 1, 1);
}
}
};
exports.blockDataMap = blockDataMap;
exports.gpuUploadCompressedTextureResource = gpuUploadCompressedTextureResource;
//# sourceMappingURL=gpuUploadCompressedTextureResource.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gpuUploadCompressedTextureResource.js","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadCompressedTextureResource.ts"],"sourcesContent":["import type { CompressedSource } from '../../../shared/texture/sources/CompressedSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\nexport const blockDataMap: Record<string, {blockBytes: number, blockWidth: number, blockHeight: number}> = {\n 'bc1-rgba-unorm': { blockBytes: 8, blockWidth: 4, blockHeight: 4 },\n 'bc2-rgba-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'bc3-rgba-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'bc7-rgba-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'etc1-rgb-unorm': { blockBytes: 8, blockWidth: 4, blockHeight: 4 },\n 'etc2-rgba8unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'astc-4x4-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n};\n\nconst defaultBlockData = { blockBytes: 4, blockWidth: 1, blockHeight: 1 };\n\nexport const gpuUploadCompressedTextureResource = {\n\n type: 'compressed',\n\n upload(source: CompressedSource, gpuTexture: GPUTexture, gpu: GPU)\n {\n let mipWidth = source.pixelWidth;\n let mipHeight = source.pixelHeight;\n\n const blockData = blockDataMap[source.format] || defaultBlockData;\n\n for (let i = 0; i < source.resource.length; i++)\n {\n const levelBuffer = source.resource[i];\n\n const bytesPerRow = Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockBytes;\n\n gpu.device.queue.writeTexture(\n {\n texture: gpuTexture,\n mipLevel: i\n },\n levelBuffer,\n {\n offset: 0,\n bytesPerRow,\n },\n {\n width: Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockWidth,\n height: Math.ceil(mipHeight / blockData.blockHeight) * blockData.blockHeight,\n depthOrArrayLayers: 1,\n }\n );\n\n mipWidth = Math.max(mipWidth >> 1, 1);\n mipHeight = Math.max(mipHeight >> 1, 1);\n }\n }\n} as GpuTextureUploader<CompressedSource>;\n\n"],"names":[],"mappings":";;;AAIO,MAAM,YAA8F,GAAA;AAAA,EACvG,kBAAkB,EAAE,UAAA,EAAY,GAAG,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EACjE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EAClE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EAClE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EAClE,kBAAkB,EAAE,UAAA,EAAY,GAAG,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EACjE,mBAAmB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EACnE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AACtE,EAAA;AAEA,MAAM,mBAAmB,EAAE,UAAA,EAAY,GAAG,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA,CAAA;AAEjE,MAAM,kCAAqC,GAAA;AAAA,EAE9C,IAAM,EAAA,YAAA;AAAA,EAEN,MAAA,CAAO,MAA0B,EAAA,UAAA,EAAwB,GACzD,EAAA;AACI,IAAA,IAAI,WAAW,MAAO,CAAA,UAAA,CAAA;AACtB,IAAA,IAAI,YAAY,MAAO,CAAA,WAAA,CAAA;AAEvB,IAAA,MAAM,SAAY,GAAA,YAAA,CAAa,MAAO,CAAA,MAAM,CAAK,IAAA,gBAAA,CAAA;AAEjD,IAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,MAAO,CAAA,QAAA,CAAS,QAAQ,CAC5C,EAAA,EAAA;AACI,MAAM,MAAA,WAAA,GAAc,MAAO,CAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAErC,MAAA,MAAM,cAAc,IAAK,CAAA,IAAA,CAAK,WAAW,SAAU,CAAA,UAAU,IAAI,SAAU,CAAA,UAAA,CAAA;AAE3E,MAAA,GAAA,CAAI,OAAO,KAAM,CAAA,YAAA;AAAA,QACb;AAAA,UACI,OAAS,EAAA,UAAA;AAAA,UACT,QAAU,EAAA,CAAA;AAAA,SACd;AAAA,QACA,WAAA;AAAA,QACA;AAAA,UACI,MAAQ,EAAA,CAAA;AAAA,UACR,WAAA;AAAA,SACJ;AAAA,QACA;AAAA,UACI,OAAO,IAAK,CAAA,IAAA,CAAK,WAAW,SAAU,CAAA,UAAU,IAAI,SAAU,CAAA,UAAA;AAAA,UAC9D,QAAQ,IAAK,CAAA,IAAA,CAAK,YAAY,SAAU,CAAA,WAAW,IAAI,SAAU,CAAA,WAAA;AAAA,UACjE,kBAAoB,EAAA,CAAA;AAAA,SACxB;AAAA,OACJ,CAAA;AAEA,MAAA,QAAA,GAAW,IAAK,CAAA,GAAA,CAAI,QAAY,IAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACpC,MAAA,SAAA,GAAY,IAAK,CAAA,GAAA,CAAI,SAAa,IAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AAAA,KAC1C;AAAA,GACJ;AACJ;;;;;"}

View File

@@ -0,0 +1,44 @@
"use strict";
const blockDataMap = {
"bc1-rgba-unorm": { blockBytes: 8, blockWidth: 4, blockHeight: 4 },
"bc2-rgba-unorm": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },
"bc3-rgba-unorm": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },
"bc7-rgba-unorm": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },
"etc1-rgb-unorm": { blockBytes: 8, blockWidth: 4, blockHeight: 4 },
"etc2-rgba8unorm": { blockBytes: 16, blockWidth: 4, blockHeight: 4 },
"astc-4x4-unorm": { blockBytes: 16, blockWidth: 4, blockHeight: 4 }
};
const defaultBlockData = { blockBytes: 4, blockWidth: 1, blockHeight: 1 };
const gpuUploadCompressedTextureResource = {
type: "compressed",
upload(source, gpuTexture, gpu) {
let mipWidth = source.pixelWidth;
let mipHeight = source.pixelHeight;
const blockData = blockDataMap[source.format] || defaultBlockData;
for (let i = 0; i < source.resource.length; i++) {
const levelBuffer = source.resource[i];
const bytesPerRow = Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockBytes;
gpu.device.queue.writeTexture(
{
texture: gpuTexture,
mipLevel: i
},
levelBuffer,
{
offset: 0,
bytesPerRow
},
{
width: Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockWidth,
height: Math.ceil(mipHeight / blockData.blockHeight) * blockData.blockHeight,
depthOrArrayLayers: 1
}
);
mipWidth = Math.max(mipWidth >> 1, 1);
mipHeight = Math.max(mipHeight >> 1, 1);
}
}
};
export { blockDataMap, gpuUploadCompressedTextureResource };
//# sourceMappingURL=gpuUploadCompressedTextureResource.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gpuUploadCompressedTextureResource.mjs","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadCompressedTextureResource.ts"],"sourcesContent":["import type { CompressedSource } from '../../../shared/texture/sources/CompressedSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\nexport const blockDataMap: Record<string, {blockBytes: number, blockWidth: number, blockHeight: number}> = {\n 'bc1-rgba-unorm': { blockBytes: 8, blockWidth: 4, blockHeight: 4 },\n 'bc2-rgba-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'bc3-rgba-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'bc7-rgba-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'etc1-rgb-unorm': { blockBytes: 8, blockWidth: 4, blockHeight: 4 },\n 'etc2-rgba8unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n 'astc-4x4-unorm': { blockBytes: 16, blockWidth: 4, blockHeight: 4 },\n};\n\nconst defaultBlockData = { blockBytes: 4, blockWidth: 1, blockHeight: 1 };\n\nexport const gpuUploadCompressedTextureResource = {\n\n type: 'compressed',\n\n upload(source: CompressedSource, gpuTexture: GPUTexture, gpu: GPU)\n {\n let mipWidth = source.pixelWidth;\n let mipHeight = source.pixelHeight;\n\n const blockData = blockDataMap[source.format] || defaultBlockData;\n\n for (let i = 0; i < source.resource.length; i++)\n {\n const levelBuffer = source.resource[i];\n\n const bytesPerRow = Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockBytes;\n\n gpu.device.queue.writeTexture(\n {\n texture: gpuTexture,\n mipLevel: i\n },\n levelBuffer,\n {\n offset: 0,\n bytesPerRow,\n },\n {\n width: Math.ceil(mipWidth / blockData.blockWidth) * blockData.blockWidth,\n height: Math.ceil(mipHeight / blockData.blockHeight) * blockData.blockHeight,\n depthOrArrayLayers: 1,\n }\n );\n\n mipWidth = Math.max(mipWidth >> 1, 1);\n mipHeight = Math.max(mipHeight >> 1, 1);\n }\n }\n} as GpuTextureUploader<CompressedSource>;\n\n"],"names":[],"mappings":";AAIO,MAAM,YAA8F,GAAA;AAAA,EACvG,kBAAkB,EAAE,UAAA,EAAY,GAAG,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EACjE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EAClE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EAClE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EAClE,kBAAkB,EAAE,UAAA,EAAY,GAAG,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EACjE,mBAAmB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AAAA,EACnE,kBAAkB,EAAE,UAAA,EAAY,IAAI,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA;AACtE,EAAA;AAEA,MAAM,mBAAmB,EAAE,UAAA,EAAY,GAAG,UAAY,EAAA,CAAA,EAAG,aAAa,CAAE,EAAA,CAAA;AAEjE,MAAM,kCAAqC,GAAA;AAAA,EAE9C,IAAM,EAAA,YAAA;AAAA,EAEN,MAAA,CAAO,MAA0B,EAAA,UAAA,EAAwB,GACzD,EAAA;AACI,IAAA,IAAI,WAAW,MAAO,CAAA,UAAA,CAAA;AACtB,IAAA,IAAI,YAAY,MAAO,CAAA,WAAA,CAAA;AAEvB,IAAA,MAAM,SAAY,GAAA,YAAA,CAAa,MAAO,CAAA,MAAM,CAAK,IAAA,gBAAA,CAAA;AAEjD,IAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,MAAO,CAAA,QAAA,CAAS,QAAQ,CAC5C,EAAA,EAAA;AACI,MAAM,MAAA,WAAA,GAAc,MAAO,CAAA,QAAA,CAAS,CAAC,CAAA,CAAA;AAErC,MAAA,MAAM,cAAc,IAAK,CAAA,IAAA,CAAK,WAAW,SAAU,CAAA,UAAU,IAAI,SAAU,CAAA,UAAA,CAAA;AAE3E,MAAA,GAAA,CAAI,OAAO,KAAM,CAAA,YAAA;AAAA,QACb;AAAA,UACI,OAAS,EAAA,UAAA;AAAA,UACT,QAAU,EAAA,CAAA;AAAA,SACd;AAAA,QACA,WAAA;AAAA,QACA;AAAA,UACI,MAAQ,EAAA,CAAA;AAAA,UACR,WAAA;AAAA,SACJ;AAAA,QACA;AAAA,UACI,OAAO,IAAK,CAAA,IAAA,CAAK,WAAW,SAAU,CAAA,UAAU,IAAI,SAAU,CAAA,UAAA;AAAA,UAC9D,QAAQ,IAAK,CAAA,IAAA,CAAK,YAAY,SAAU,CAAA,WAAW,IAAI,SAAU,CAAA,WAAA;AAAA,UACjE,kBAAoB,EAAA,CAAA;AAAA,SACxB;AAAA,OACJ,CAAA;AAEA,MAAA,QAAA,GAAW,IAAK,CAAA,GAAA,CAAI,QAAY,IAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AACpC,MAAA,SAAA,GAAY,IAAK,CAAA,GAAA,CAAI,SAAa,IAAA,CAAA,EAAG,CAAC,CAAA,CAAA;AAAA,KAC1C;AAAA,GACJ;AACJ;;;;"}

View File

@@ -0,0 +1,3 @@
import type { TextureSource } from '../../../shared/texture/sources/TextureSource';
import type { GpuTextureUploader } from './GpuTextureUploader';
export declare const gpuUploadImageResource: GpuTextureUploader<TextureSource<any>>;

View File

@@ -0,0 +1,25 @@
'use strict';
"use strict";
const gpuUploadImageResource = {
type: "image",
upload(source, gpuTexture, gpu) {
const resource = source.resource;
if (!resource)
return;
const width = Math.min(gpuTexture.width, source.resourceWidth || source.pixelWidth);
const height = Math.min(gpuTexture.height, source.resourceHeight || source.pixelHeight);
const premultipliedAlpha = source.alphaMode === "premultiply-alpha-on-upload";
gpu.device.queue.copyExternalImageToTexture(
{ source: resource },
{ texture: gpuTexture, premultipliedAlpha },
{
width,
height
}
);
}
};
exports.gpuUploadImageResource = gpuUploadImageResource;
//# sourceMappingURL=gpuUploadImageSource.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gpuUploadImageSource.js","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadImageSource.ts"],"sourcesContent":["import type { TextureSource } from '../../../shared/texture/sources/TextureSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\nexport const gpuUploadImageResource = {\n\n type: 'image',\n\n upload(source: TextureSource, gpuTexture: GPUTexture, gpu: GPU)\n {\n const resource = source.resource as ImageBitmap | HTMLCanvasElement | OffscreenCanvas;\n\n if (!resource) return;\n\n const width = Math.min(gpuTexture.width, source.resourceWidth || source.pixelWidth);\n const height = Math.min(gpuTexture.height, source.resourceHeight || source.pixelHeight);\n\n const premultipliedAlpha = source.alphaMode === 'premultiply-alpha-on-upload';\n\n gpu.device.queue.copyExternalImageToTexture(\n { source: resource },\n { texture: gpuTexture, premultipliedAlpha },\n {\n width,\n height,\n }\n );\n }\n} as GpuTextureUploader<TextureSource>;\n\n"],"names":[],"mappings":";;;AAIO,MAAM,sBAAyB,GAAA;AAAA,EAElC,IAAM,EAAA,OAAA;AAAA,EAEN,MAAA,CAAO,MAAuB,EAAA,UAAA,EAAwB,GACtD,EAAA;AACI,IAAA,MAAM,WAAW,MAAO,CAAA,QAAA,CAAA;AAExB,IAAA,IAAI,CAAC,QAAA;AAAU,MAAA,OAAA;AAEf,IAAM,MAAA,KAAA,GAAQ,KAAK,GAAI,CAAA,UAAA,CAAW,OAAO,MAAO,CAAA,aAAA,IAAiB,OAAO,UAAU,CAAA,CAAA;AAClF,IAAM,MAAA,MAAA,GAAS,KAAK,GAAI,CAAA,UAAA,CAAW,QAAQ,MAAO,CAAA,cAAA,IAAkB,OAAO,WAAW,CAAA,CAAA;AAEtF,IAAM,MAAA,kBAAA,GAAqB,OAAO,SAAc,KAAA,6BAAA,CAAA;AAEhD,IAAA,GAAA,CAAI,OAAO,KAAM,CAAA,0BAAA;AAAA,MACb,EAAE,QAAQ,QAAS,EAAA;AAAA,MACnB,EAAE,OAAS,EAAA,UAAA,EAAY,kBAAmB,EAAA;AAAA,MAC1C;AAAA,QACI,KAAA;AAAA,QACA,MAAA;AAAA,OACJ;AAAA,KACJ,CAAA;AAAA,GACJ;AACJ;;;;"}

View File

@@ -0,0 +1,23 @@
"use strict";
const gpuUploadImageResource = {
type: "image",
upload(source, gpuTexture, gpu) {
const resource = source.resource;
if (!resource)
return;
const width = Math.min(gpuTexture.width, source.resourceWidth || source.pixelWidth);
const height = Math.min(gpuTexture.height, source.resourceHeight || source.pixelHeight);
const premultipliedAlpha = source.alphaMode === "premultiply-alpha-on-upload";
gpu.device.queue.copyExternalImageToTexture(
{ source: resource },
{ texture: gpuTexture, premultipliedAlpha },
{
width,
height
}
);
}
};
export { gpuUploadImageResource };
//# sourceMappingURL=gpuUploadImageSource.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gpuUploadImageSource.mjs","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadImageSource.ts"],"sourcesContent":["import type { TextureSource } from '../../../shared/texture/sources/TextureSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\nexport const gpuUploadImageResource = {\n\n type: 'image',\n\n upload(source: TextureSource, gpuTexture: GPUTexture, gpu: GPU)\n {\n const resource = source.resource as ImageBitmap | HTMLCanvasElement | OffscreenCanvas;\n\n if (!resource) return;\n\n const width = Math.min(gpuTexture.width, source.resourceWidth || source.pixelWidth);\n const height = Math.min(gpuTexture.height, source.resourceHeight || source.pixelHeight);\n\n const premultipliedAlpha = source.alphaMode === 'premultiply-alpha-on-upload';\n\n gpu.device.queue.copyExternalImageToTexture(\n { source: resource },\n { texture: gpuTexture, premultipliedAlpha },\n {\n width,\n height,\n }\n );\n }\n} as GpuTextureUploader<TextureSource>;\n\n"],"names":[],"mappings":";AAIO,MAAM,sBAAyB,GAAA;AAAA,EAElC,IAAM,EAAA,OAAA;AAAA,EAEN,MAAA,CAAO,MAAuB,EAAA,UAAA,EAAwB,GACtD,EAAA;AACI,IAAA,MAAM,WAAW,MAAO,CAAA,QAAA,CAAA;AAExB,IAAA,IAAI,CAAC,QAAA;AAAU,MAAA,OAAA;AAEf,IAAM,MAAA,KAAA,GAAQ,KAAK,GAAI,CAAA,UAAA,CAAW,OAAO,MAAO,CAAA,aAAA,IAAiB,OAAO,UAAU,CAAA,CAAA;AAClF,IAAM,MAAA,MAAA,GAAS,KAAK,GAAI,CAAA,UAAA,CAAW,QAAQ,MAAO,CAAA,cAAA,IAAkB,OAAO,WAAW,CAAA,CAAA;AAEtF,IAAM,MAAA,kBAAA,GAAqB,OAAO,SAAc,KAAA,6BAAA,CAAA;AAEhD,IAAA,GAAA,CAAI,OAAO,KAAM,CAAA,0BAAA;AAAA,MACb,EAAE,QAAQ,QAAS,EAAA;AAAA,MACnB,EAAE,OAAS,EAAA,UAAA,EAAY,kBAAmB,EAAA;AAAA,MAC1C;AAAA,QACI,KAAA;AAAA,QACA,MAAA;AAAA,OACJ;AAAA,KACJ,CAAA;AAAA,GACJ;AACJ;;;;"}

View File

@@ -0,0 +1,3 @@
import type { VideoSource } from '../../../shared/texture/sources/VideoSource';
import type { GpuTextureUploader } from './GpuTextureUploader';
export declare const gpuUploadVideoResource: GpuTextureUploader<VideoSource>;

View File

@@ -0,0 +1,14 @@
'use strict';
var gpuUploadImageSource = require('./gpuUploadImageSource.js');
"use strict";
const gpuUploadVideoResource = {
type: "video",
upload(source, gpuTexture, gpu) {
gpuUploadImageSource.gpuUploadImageResource.upload(source, gpuTexture, gpu);
}
};
exports.gpuUploadVideoResource = gpuUploadVideoResource;
//# sourceMappingURL=gpuUploadVideoSource.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gpuUploadVideoSource.js","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadVideoSource.ts"],"sourcesContent":["import { gpuUploadImageResource } from './gpuUploadImageSource';\n\nimport type { VideoSource } from '../../../shared/texture/sources/VideoSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\nexport const gpuUploadVideoResource = {\n\n type: 'video',\n\n upload(source: VideoSource, gpuTexture: GPUTexture, gpu: GPU)\n {\n gpuUploadImageResource.upload(source, gpuTexture, gpu);\n }\n} as GpuTextureUploader<VideoSource>;\n\n"],"names":["gpuUploadImageResource"],"mappings":";;;;;AAMO,MAAM,sBAAyB,GAAA;AAAA,EAElC,IAAM,EAAA,OAAA;AAAA,EAEN,MAAA,CAAO,MAAqB,EAAA,UAAA,EAAwB,GACpD,EAAA;AACI,IAAuBA,2CAAA,CAAA,MAAA,CAAO,MAAQ,EAAA,UAAA,EAAY,GAAG,CAAA,CAAA;AAAA,GACzD;AACJ;;;;"}

View File

@@ -0,0 +1,12 @@
import { gpuUploadImageResource } from './gpuUploadImageSource.mjs';
"use strict";
const gpuUploadVideoResource = {
type: "video",
upload(source, gpuTexture, gpu) {
gpuUploadImageResource.upload(source, gpuTexture, gpu);
}
};
export { gpuUploadVideoResource };
//# sourceMappingURL=gpuUploadVideoSource.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"gpuUploadVideoSource.mjs","sources":["../../../../../../src/rendering/renderers/gpu/texture/uploaders/gpuUploadVideoSource.ts"],"sourcesContent":["import { gpuUploadImageResource } from './gpuUploadImageSource';\n\nimport type { VideoSource } from '../../../shared/texture/sources/VideoSource';\nimport type { GPU } from '../../GpuDeviceSystem';\nimport type { GpuTextureUploader } from './GpuTextureUploader';\n\nexport const gpuUploadVideoResource = {\n\n type: 'video',\n\n upload(source: VideoSource, gpuTexture: GPUTexture, gpu: GPU)\n {\n gpuUploadImageResource.upload(source, gpuTexture, gpu);\n }\n} as GpuTextureUploader<VideoSource>;\n\n"],"names":[],"mappings":";;;AAMO,MAAM,sBAAyB,GAAA;AAAA,EAElC,IAAM,EAAA,OAAA;AAAA,EAEN,MAAA,CAAO,MAAqB,EAAA,UAAA,EAAwB,GACpD,EAAA;AACI,IAAuB,sBAAA,CAAA,MAAA,CAAO,MAAQ,EAAA,UAAA,EAAY,GAAG,CAAA,CAAA;AAAA,GACzD;AACJ;;;;"}