UNPKG

6.14 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/webgpu/WebGPUTexture2D.ts"],"names":["gl","WebGPUConstants","filterMap","formatMap","wrapModeMap","WebGPUTexture2D","engine","options","texture","sampler","width","height","createTexture","destroy","data","type","UNSIGNED_BYTE","flipY","format","RGBA","mipmap","wrapS","CLAMP_TO_EDGE","wrapT","aniso","alignment","premultiplyAlpha","mag","NEAREST","min","colorSpace","BROWSER_DEFAULT_WEBGL","usage","device","size","mipLevelCount","sampleCount","dimension","TextureDimension","E2d","TextureUsage","Sampled","CopyDst","createSampler","addressModeU","addressModeV","addressModeW","magFilter","minFilter","maxAnisotropy"],"mappings":"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","sourcesContent":["import {\n gl,\n ITexture2D,\n ITexture2DInitializationOptions,\n} from '@antv/g-webgpu-core';\nimport * as WebGPUConstants from '@webgpu/types/dist/constants';\nimport { WebGPUEngine } from '.';\nimport { filterMap, formatMap, wrapModeMap } from './constants';\n\n/**\n * adaptor for regl.Buffer\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#buffers\n */\nexport default class WebGPUTexture2D implements ITexture2D {\n private texture: GPUTexture;\n private sampler: GPUSampler;\n private width: number;\n private height: number;\n\n constructor(\n private engine: WebGPUEngine,\n private options: ITexture2DInitializationOptions,\n ) {\n this.createTexture();\n }\n\n public get() {\n return {\n texture: this.texture,\n sampler: this.sampler,\n };\n }\n public update() {\n // TODO\n }\n\n public resize({ width, height }: { width: number; height: number }): void {\n // TODO: it seems that Texture doesn't support `resize`\n if (width !== this.width || height !== this.height) {\n this.destroy();\n this.createTexture();\n }\n this.width = width;\n this.height = height;\n }\n\n public destroy() {\n if (this.texture) {\n this.texture.destroy();\n }\n }\n\n private createTexture() {\n const {\n data,\n type = gl.UNSIGNED_BYTE,\n width,\n height,\n flipY = false,\n format = gl.RGBA,\n mipmap = false,\n wrapS = gl.CLAMP_TO_EDGE,\n wrapT = gl.CLAMP_TO_EDGE,\n aniso = 0,\n alignment = 1,\n premultiplyAlpha = false,\n mag = gl.NEAREST,\n min = gl.NEAREST,\n colorSpace = gl.BROWSER_DEFAULT_WEBGL,\n usage,\n } = this.options;\n this.width = width;\n this.height = height;\n\n this.texture = this.engine.device.createTexture({\n size: [width, height, 1],\n // TODO: arrayLayerCount is deprecated: use size.depth\n // arrayLayerCount: 1,\n mipLevelCount: 1, // TODO: https://gpuweb.github.io/gpuweb/#dom-gputextureviewdescriptor-miplevelcount\n sampleCount: 1,\n dimension: WebGPUConstants.TextureDimension.E2d,\n format: formatMap[format],\n // could throw texture binding usage mismatch\n usage:\n usage ||\n WebGPUConstants.TextureUsage.Sampled |\n WebGPUConstants.TextureUsage.CopyDst,\n });\n\n if (!usage || usage & WebGPUConstants.TextureUsage.Sampled) {\n this.sampler = this.engine.device.createSampler({\n addressModeU: wrapModeMap[wrapS],\n addressModeV: wrapModeMap[wrapT],\n addressModeW: wrapModeMap[wrapS], // TODO: same as addressModeU\n magFilter: filterMap[mag],\n minFilter: filterMap[min],\n maxAnisotropy: aniso, // @see https://gpuweb.github.io/gpuweb/#dom-gpusamplerdescriptor-maxanisotropy\n });\n }\n }\n}\n"],"file":"WebGPUTexture2D.js"}
\No newline at end of file