@agpu/bindings 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bufferusage.d.ts +1 -0
- package/dist/bufferusage.js +1 -0
- package/dist/classes/main/adapter.d.ts +1 -0
- package/dist/classes/main/adapter.js +1 -0
- package/dist/classes/main/context.d.ts +1 -0
- package/dist/classes/main/context.js +1 -0
- package/dist/classes/main/device.d.ts +1 -0
- package/dist/classes/main/device.js +1 -0
- package/dist/classes/main/webgpucontrols.d.ts +1 -0
- package/dist/classes/main/webgpucontrols.js +1 -0
- package/dist/classes/sub/pipeline/commandEncoder/computepass.d.ts +1 -0
- package/dist/classes/sub/pipeline/commandEncoder/computepass.js +1 -0
- package/dist/classes/sub/pipeline/commandEncoder/renderEncoderBase.d.ts +1 -0
- package/dist/classes/sub/pipeline/commandEncoder/renderEncoderBase.js +1 -0
- package/dist/classes/sub/pipeline/commandEncoder/renderPass/indirectBuffer.d.ts +1 -0
- package/dist/classes/sub/pipeline/commandEncoder/renderPass/indirectBuffer.js +1 -0
- package/dist/classes/sub/pipeline/commandEncoder/renderPass.d.ts +1 -0
- package/dist/classes/sub/pipeline/commandEncoder/renderPass.js +1 -0
- package/dist/classes/sub/pipeline/commandEncoder.d.ts +1 -0
- package/dist/classes/sub/pipeline/commandEncoder.js +1 -0
- package/dist/classes/sub/pipeline/computePipeline.d.ts +1 -0
- package/dist/classes/sub/pipeline/computePipeline.js +1 -0
- package/dist/classes/sub/pipeline/pipelineLayout.d.ts +1 -0
- package/dist/classes/sub/pipeline/pipelineLayout.js +1 -0
- package/dist/classes/sub/pipeline/querySet.d.ts +1 -0
- package/dist/classes/sub/pipeline/querySet.js +1 -0
- package/dist/classes/sub/pipeline/renderBundleEncoder/renderBundle.d.ts +1 -0
- package/dist/classes/sub/pipeline/renderBundleEncoder/renderBundle.js +1 -0
- package/dist/classes/sub/pipeline/renderBundleEncoder.d.ts +1 -0
- package/dist/classes/sub/pipeline/renderBundleEncoder.js +1 -0
- package/dist/classes/sub/pipeline/renderPipeline.d.ts +1 -0
- package/dist/classes/sub/pipeline/renderPipeline.js +1 -0
- package/dist/classes/sub/pipeline/sampler.d.ts +1 -0
- package/dist/classes/sub/pipeline/sampler.js +1 -0
- package/dist/constants/bufferusage.d.ts +1 -0
- package/dist/constants/bufferusage.js +1 -0
- package/dist/constants/textureusage.d.ts +1 -0
- package/dist/constants/textureusage.js +1 -0
- package/dist/device.d.ts +1 -0
- package/dist/device.js +1 -0
- package/dist/helpers/align.d.ts +1 -0
- package/dist/helpers/align.js +1 -0
- package/dist/helpers/decorators/brand.d.ts +1 -0
- package/dist/helpers/decorators/brand.js +1 -0
- package/dist/helpers/decorators/labelling.d.ts +1 -0
- package/dist/helpers/decorators/labelling.js +1 -0
- package/dist/helpers/decorators/raw.d.ts +1 -0
- package/dist/helpers/decorators/raw.js +1 -0
- package/dist/helpers/defaults.d.ts +1 -0
- package/dist/helpers/defaults.js +1 -0
- package/dist/helpers/errors.d.ts +1 -0
- package/dist/helpers/errors.js +1 -0
- package/dist/helpers/shaderRegex.d.ts +1 -0
- package/dist/helpers/shaderRegex.js +1 -0
- package/dist/helpers/types/DCMember.d.ts +1 -0
- package/dist/helpers/types/DCMember.js +1 -0
- package/dist/helpers/types/decoratorHelpers.d.ts +1 -0
- package/dist/helpers/types/decoratorHelpers.js +1 -0
- package/dist/helpers/types/nullish.d.ts +1 -0
- package/dist/helpers/types/nullish.js +1 -0
- package/dist/helpers/types/unsure.d.ts +1 -0
- package/dist/helpers/types/unsure.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/main classes/bindGroup.d.ts +1 -0
- package/dist/main classes/bindGroup.js +1 -0
- package/dist/main classes/bindGroupLayout.d.ts +1 -0
- package/dist/main classes/bindGroupLayout.js +1 -0
- package/dist/main classes/buffers/bufferUsageOptions.d.ts +1 -0
- package/dist/main classes/buffers/bufferUsageOptions.js +1 -0
- package/dist/main classes/buffers.d.ts +1 -0
- package/dist/main classes/buffers.js +1 -0
- package/dist/main classes/commandEncoder/computepass.d.ts +1 -0
- package/dist/main classes/commandEncoder/computepass.js +1 -0
- package/dist/main classes/commandEncoder/renderPass/indirectBuffer.d.ts +1 -0
- package/dist/main classes/commandEncoder/renderPass/indirectBuffer.js +1 -0
- package/dist/main classes/commandEncoder/renderPass.d.ts +1 -0
- package/dist/main classes/commandEncoder/renderPass.js +1 -0
- package/dist/main classes/commandEncoder.d.ts +1 -0
- package/dist/main classes/commandEncoder.js +1 -0
- package/dist/main classes/commandbuffer.d.ts +1 -0
- package/dist/main classes/commandbuffer.js +1 -0
- package/dist/main classes/computePipeline.d.ts +1 -0
- package/dist/main classes/computePipeline.js +1 -0
- package/dist/main classes/pipelineLayout.d.ts +1 -0
- package/dist/main classes/pipelineLayout.js +1 -0
- package/dist/main classes/querySet.d.ts +1 -0
- package/dist/main classes/querySet.js +1 -0
- package/dist/main classes/renderPipeline.d.ts +1 -0
- package/dist/main classes/renderPipeline.js +1 -0
- package/dist/main classes/sampler.d.ts +1 -0
- package/dist/main classes/sampler.js +1 -0
- package/dist/main classes/shaderModule.d.ts +1 -0
- package/dist/main classes/shaderModule.js +1 -0
- package/dist/main classes/texture/textureUsageOptions.d.ts +1 -0
- package/dist/main classes/texture/textureUsageOptions.js +1 -0
- package/dist/main classes/texture/textureView.d.ts +1 -0
- package/dist/main classes/texture/textureView.js +1 -0
- package/dist/main classes/texture.d.ts +1 -0
- package/dist/main classes/texture.js +1 -0
- package/package.json +40 -0
- package/pnpm-workspace.yaml +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare const BufferUsage:GPUBufferUsage;export default BufferUsage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=GPUBufferUsage;exports.default=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BRAND,RAW}from"../../helpers/types/decoratorHelpers";import DeviceControls from"./device";export interface ADAPTER_CONTROLS extends BRAND<"AdapterControls">,RAW<"adapter">{}export declare class AdapterControls{#private;constructor(adapter:GPUAdapter);readonly info:{__brand:"GPUAdapterInfo";vendor:string;architecture:string;device:string;description:string;subgroupMinSize?:number;subgroupMaxSize?:number;isFallbackAdapter:boolean;subgroup:{max:number|undefined;min:number|undefined}};readonly features:GPUSupportedFeatures;readonly limits:GPUSupportedLimits;adapter:GPUAdapter;device:(options:DEVICE_REQUEST)=>Promise<DeviceControls>}export default AdapterControls;interface DEVICE_REQUEST{required?:{features?:GPUFeatureName[];limits?:Record<string,GPUSize64|undefined>};defaultQueue?:GPUQueueDescriptor}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,r,i,a,s)=>{function o(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var n,u=i.kind,d="getter"===u?"get":"setter"===u?"set":"value",c=!t&&e?i.static?e:e.prototype:null,l=t||(c?Object.getOwnPropertyDescriptor(c,i.name):{}),f=!1,h=r.length-1;h>=0;h--){var p={};for(var m in i)p[m]="access"===m?{}:i[m];for(var m in i.access)p.access[m]=i.access[m];p.addInitializer=e=>{if(f)throw new TypeError("Cannot add initializers after decoration has completed");s.push(o(e||null))};var v=(0,r[h])("accessor"===u?{get:l.get,set:l.set}:l[d],p);if("accessor"===u){if(void 0===v)continue;if(null===v||"object"!=typeof v)throw new TypeError("Object expected");(n=o(v.get))&&(l.get=n),(n=o(v.set))&&(l.set=n),(n=o(v.init))&&a.unshift(n)}else(n=o(v))&&("field"===u?a.unshift(n):l[d]=n)}c&&Object.defineProperty(c,i.name,l),f=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var i=arguments.length>2,a=0;t.length>a;a++)r=i?t[a].call(e,r):t[a].call(e);return i?r:void 0};import r from"../../helpers/decorators/brand";import i from"../../helpers/errors";import a from"../../helpers/decorators/raw";import s from"./device";let o=(()=>{let o,n,u=[r("AdapterControls"),a("adapter")],d=[];return class{static{n=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,o={value:n},u,{kind:"class",name:n.name,metadata:r},null,d),n=o.value,r&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(n,d)}constructor(e){this.info={subgroup:{max:e.info.subgroupMaxSize,min:e.info.subgroupMinSize},...e.info},this.device=async t=>{if(this.#e)return this.#e;const r=t.required?.features?.filter(t=>!e.features.has(t))??[];if(r.length)throw i(29,`Adapter does not support required feature(s): ${r.join(", ")}.`,"Check adapter.features before requesting the device or remove unsupported required features.");return this.#e=new s(await e.requestDevice({requiredFeatures:t.required?.features,requiredLimits:t.required?.limits,defaultQueue:t.defaultQueue}).catch(()=>{throw i(30,"Failed to request a GPU device from the adapter.","Verify the required features and limits are valid for the selected adapter.")}))},this.features=e.features,this.limits=e.limits,this.adapter=e}#e;info;features;limits;adapter;device},n})();export{o as AdapterControls};export default o;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BRAND,RAW}from"../../helpers/types/decoratorHelpers";import TextureCreator from"../sub/data/texture";import DeviceControls from"./device";export declare class ContextControls{constructor(ctx:GPUCanvasContext);configure(config:CANVAS_CONFIG):undefined;unconfigure():undefined;config():CANVAS_CONFIG|null;currentTexture(device:DeviceControls):TextureCreator;canvas:HTMLCanvasElement|OffscreenCanvas;ctx:GPUCanvasContext}export interface ContextControls extends RAW<GPUCanvasContext>,BRAND<"ContextControls">{}export interface CANVAS_CONFIG{device:DeviceControls;format:GPUTextureFormat;usage?:number|undefined;viewFormats?:Iterable<GPUTextureFormat>|undefined;colorSpace?:PredefinedColorSpace|undefined;toneMapping?:GPUCanvasToneMapping|undefined;alphaMode?:GPUCanvasAlphaMode|undefined}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,r,n,o,i)=>{function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var c,s=n.kind,u="getter"===s?"get":"setter"===s?"set":"value",l=!t&&e?n.static?e:e.prototype:null,f=t||(l?Object.getOwnPropertyDescriptor(l,n.name):{}),d=!1,v=r.length-1;v>=0;v--){var h={};for(var p in n)h[p]="access"===p?{}:n[p];for(var p in n.access)h.access[p]=n.access[p];h.addInitializer=e=>{if(d)throw new TypeError("Cannot add initializers after decoration has completed");i.push(a(e||null))};var g=(0,r[v])("accessor"===s?{get:f.get,set:f.set}:f[u],h);if("accessor"===s){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw new TypeError("Object expected");(c=a(g.get))&&(f.get=c),(c=a(g.set))&&(f.set=c),(c=a(g.init))&&o.unshift(c)}else(c=a(g))&&("field"===s?o.unshift(c):f[u]=c)}l&&Object.defineProperty(l,n.name,f),d=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var n=arguments.length>2,o=0;t.length>o;o++)r=n?t[o].call(e,r):t[o].call(e);return n?r:void 0};import r from"../../helpers/decorators/brand";import n from"../../helpers/errors";import o from"../../helpers/decorators/raw";import i from"../sub/data/texture";import a from"./device";let c=(()=>{let c,s,u=[o("ctx"),r("ContextControls")],l=[];return class{static{s=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,c={value:s},u,{kind:"class",name:s.name,metadata:r},null,l),s=c.value,r&&Object.defineProperty(s,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(s,l)}constructor(e){this.ctx=e,this.canvas=e.canvas}configure(e){if(!e.device)throw n(31,"Canvas configuration requires a DeviceControls instance.","Pass the device returned by AdapterControls.device(...).");if(!e.format)throw n(32,"Canvas configuration requires a GPUTextureFormat.","Use WebGPUControls.preferredCanvasFormat() or another valid GPUTextureFormat.");let t={...e,device:e.device.raw()};return this.ctx.configure(t)}unconfigure(){return this.ctx.unconfigure()}config(){const e=this.ctx.getConfiguration();return e?{...e,device:new a(e.device)}:null}currentTexture(e){if(!this.ctx.getConfiguration())throw n(33,"Canvas context is not configured.","Call ContextControls.configure(...) before requesting the current texture.");return new i(e.raw(),this.ctx.getCurrentTexture())}canvas;ctx},s})();export{c as ContextControls};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import BindGroupLayoutCreator from"../sub/data/bindGroupLayout";import BufferCreator,{BUFFER_CONSTRUCTION_OPTIONS}from"../sub/data/buffers";import PipelineLayoutCreator,{PIPELINE_LAYOUT_OPTIONS}from"../sub/pipeline/pipelineLayout";import RenderPipelineCreator,{RENDER_PIPELINE_OPTIONS}from"../sub/pipeline/renderPipeline";import SamplerCreator from"../sub/pipeline/sampler";import ShaderModuleCreator,{SHADER_MODULE_OPTIONS}from"../sub/data/shaderModule";import TextureCreator,{TEXTURE_CREATOR_OPTIONS}from"../sub/data/texture";import BindGroupCreator,{BIND_GROUP_OPTIONS}from"../sub/data/bindGroup";import ComputePipelineCreator,{COMPUTE_PIPELINE_OPTION}from"../sub/pipeline/computePipeline";import RenderBundleEncoderCreator from"../sub/pipeline/renderBundleEncoder";import{BRAND,RAW}from"../../helpers/types/decoratorHelpers";import CommandBufferCreator from"../sub/data/commandbuffer";import CommandEncoderCreator from"../sub/pipeline/commandEncoder";export interface DeviceControls extends BRAND<"DeviceControls">,RAW<GPUDevice>{}export declare class DeviceControls{#private;constructor(device:GPUDevice);readonly queue:{submit:(commandBuffers:CommandBufferCreator[])=>undefined;on:(event:"submittedWorkDone",fn:Function)=>void};device:GPUDevice;readonly Buffer:{new(options?:BUFFER_CONSTRUCTION_OPTIONS):{"__#2@#currentBuffer":GPUBuffer;"__#2@#device":GPUDevice;"__#2@#value":GPUAllowSharedBufferSource;"__#2@#bufferUsage":number;"__#2@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#usageChanged":boolean;"__#2@#label"?:string;"__#2@#readComplete":boolean;"__#2@#onReadCompleteQueues":(Function)[];"__#2@#usageOptions":import("../sub/data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#2@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("../sub/data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():import("../../helpers/types/unsure").default<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#2@#ensureReady"():Promise<void>;readonly can:{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("../sub/data/buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("../sub/data/buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator};from(buf:GPUBuffer):Promise<BufferCreator>};readonly Texture:{new(options:TEXTURE_CREATOR_OPTIONS):{"__#8@#device":GPUDevice;"__#8@#texture":GPUTexture;"__#8@#view":import("../sub/data/texture/textureView").TextureViewCreator;"__#8@#options":TEXTURE_CREATOR_OPTIONS|undefined;"__#8@#value"?:GPUAllowSharedBufferSource;"__#8@#destroyed":boolean;"__#8@#usageOptions":import("../sub/data/texture/textureUsageOptions").default;"__#8@#usage":number;"__#8@#usageChanged":boolean;readonly View:{new():{"__#7@#view":GPUTextureView;view:GPUTextureView;raw():GPUTextureView;readonly __brand:"TextureViewCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}};"__#8@#dirty":boolean;value():GPUAllowSharedBufferSource|undefined;value<T extends GPUAllowSharedBufferSource>(data:T):T;readonly can:{copy:{read:boolean;write:boolean};binding:{texture:boolean;storage:boolean};renderAttachment:boolean};"__#8@#write"(data:GPUAllowSharedBufferSource):void;"__#8@#recreate"():void;sync():void;raw():GPUTexture;view():import("../sub/data/texture/textureView").TextureViewCreator;copyToBuffer(destination:import("../sub/data/texture").BUFFER_COPY_TARGET|GPUBuffer,options?:import("../sub/data/texture").TEXTURE_TO_BUFFER_OPTIONS):void;copyToTexture(destination:import("../sub/data/texture").TEXTURE_COPY_TARGET|GPUTexture,options?:import("../sub/data/texture").TEXTURE_TO_TEXTURE_OPTIONS):void;aspect():number;resize(newWidth:number,newHeight:number,newDepthOrArrayLayers?:number):void;destroy():boolean;destroy<T extends boolean>(val:T):T;label():import("../../helpers/types/unsure").default<string>;label<T extends string>(label:T):T;textureUsage():TextureCreator.bufferUsage.RETURNS;textureUsage<T extends number>(usage:T):T;textureUsage(usage:import("../sub/data/texture/textureUsageOptions").default):number;readonly __brand:"TextureCreator";[Symbol.hasInstance](instance:TextureCreator):instance is TextureCreator};fromURL(url:string):Promise<TextureCreator>;from(gputexture:GPUTexture):TextureCreator;fromBitmap(bitmap:ImageBitmap):Promise<{"__#8@#device":GPUDevice;"__#8@#texture":GPUTexture;"__#8@#view":import("../sub/data/texture/textureView").TextureViewCreator;"__#8@#options":TEXTURE_CREATOR_OPTIONS|undefined;"__#8@#value"?:GPUAllowSharedBufferSource;"__#8@#destroyed":boolean;"__#8@#usageOptions":import("../sub/data/texture/textureUsageOptions").default;"__#8@#usage":number;"__#8@#usageChanged":boolean;readonly View:{new():{"__#7@#view":GPUTextureView;view:GPUTextureView;raw():GPUTextureView;readonly __brand:"TextureViewCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}};"__#8@#dirty":boolean;value():GPUAllowSharedBufferSource|undefined;value<T extends GPUAllowSharedBufferSource>(data:T):T;readonly can:{copy:{read:boolean;write:boolean};binding:{texture:boolean;storage:boolean};renderAttachment:boolean};"__#8@#write"(data:GPUAllowSharedBufferSource):void;"__#8@#recreate"():void;sync():void;raw():GPUTexture;view():import("../sub/data/texture/textureView").TextureViewCreator;copyToBuffer(destination:import("../sub/data/texture").BUFFER_COPY_TARGET|GPUBuffer,options?:import("../sub/data/texture").TEXTURE_TO_BUFFER_OPTIONS):void;copyToTexture(destination:import("../sub/data/texture").TEXTURE_COPY_TARGET|GPUTexture,options?:import("../sub/data/texture").TEXTURE_TO_TEXTURE_OPTIONS):void;aspect():number;resize(newWidth:number,newHeight:number,newDepthOrArrayLayers?:number):void;destroy():boolean;destroy<T extends boolean>(val:T):T;label():import("../../helpers/types/unsure").default<string>;label<T extends string>(label:T):T;textureUsage():TextureCreator.bufferUsage.RETURNS;textureUsage<T extends number>(usage:T):T;textureUsage(usage:import("../sub/data/texture/textureUsageOptions").default):number;readonly __brand:"TextureCreator";[Symbol.hasInstance](instance:TextureCreator):instance is TextureCreator}>};readonly Sampler:{new(options?:GPUSamplerDescriptor):{label():import("../../helpers/types/unsure").default<string>;label<T extends string>(label:T):T;"__#6@#sampler":GPUSampler;"__#6@#label"?:string;sampler:GPUSampler;labelValue?:string;raw():GPUSampler;readonly __brand:"SamplerCreator";[Symbol.hasInstance](instance:any):boolean};from(sampler:GPUSampler):SamplerCreator};readonly ShaderModule:{new(code:string,options?:SHADER_MODULE_OPTIONS):{"__#4@#module":GPUShaderModule;"__#4@#code":string|undefined;"__#4@#device":GPUDevice;"__#4@#label":string;"__#4@#hints"?:Iterable<GPUShaderModuleCompilationHint>;"__#4@#entryPoint"?:string;"__#4@#constants"?:Record<string,number>;module:GPUShaderModule;labelValue:string;entryPoint():import("../../helpers/types/unsure").default<string>;constants():import("../../helpers/types/unsure").default<Record<string,number>>;code():string|undefined;compilationInfo():Promise<GPUCompilationInfo>;"__#4@#ciCache"?:GPUCompilationInfo;bindGroups():Set<number>;"__#4@#cbgCache"?:Set<number>;raw():GPUShaderModule;readonly __brand:"ShaderModuleCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};from(sm:GPUShaderModule):ShaderModuleCreator};readonly BindGroupLayout:{new(options:GPUBindGroupLayoutDescriptor):{label():import("../../helpers/types/unsure").default<string>;label<T extends string>(label:T):T;"__#1@#bindGroupLayoutDescriptor":GPUBindGroupLayout;"__#1@#label"?:string;bindGroupLayoutDescriptor:GPUBindGroupLayout;labelValue?:string;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean};from(bgl:GPUBindGroupLayout):BindGroupLayoutCreator};readonly BindGroup:{new(options:BIND_GROUP_OPTIONS):{label():import("../../helpers/types/unsure").default<string>;label<T extends string>(label:T):T;"__#9@#bindGroup":GPUBindGroup;"__#9@#label"?:string;"__#9@#layout":import("../../helpers/types/unsure").default<BindGroupLayoutCreator|import("../../helpers/types/DCMember").default<"BindGroupLayout">>;bindGroup:GPUBindGroup;labelValue?:string;"__#9@#buildOptions"(options:BIND_GROUP_OPTIONS):GPUBindGroupDescriptor;layout():import("../../helpers/types/unsure").default<BindGroupLayoutCreator|{label():import("../../helpers/types/unsure").default<string>;label<T extends string>(label:T):T;"__#1@#bindGroupLayoutDescriptor":GPUBindGroupLayout;"__#1@#label"?:string;bindGroupLayoutDescriptor:GPUBindGroupLayout;labelValue?:string;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean}>;raw():GPUBindGroup;readonly __brand:"BindGroupCreator";[Symbol.hasInstance](instance:any):boolean};from(bindGroup:GPUBindGroup):BindGroupCreator};readonly RenderPipeline:{new(options:RENDER_PIPELINE_OPTIONS):{label():Promise<import("../../helpers/types/unsure").default<string>>;label<T extends string>(label:T):Promise<T>;"__#5@#device":GPUDevice;"__#5@#options"?:RENDER_PIPELINE_OPTIONS;"__#5@#pipeline":Promise<GPURenderPipeline>;"__#5@#label"?:string;"__#5@#gblcache":Record<number,InstanceType<DeviceControls["BindGroupLayout"]>>;"__#5@#initWaiters":((bool:boolean)=>any)[];"__#5@#pipelineCreated":boolean;"__#5@#pipelineInitFailed":boolean;pipeline:Promise<GPURenderPipeline>;labelValue?:string;"__#5@#flushInitWaiters"(success:boolean):void;"__#5@#buildVertexState"():GPUVertexState;"__#5@#buildFragmentState"():GPUFragmentState;"__#5@#buildDepthStencil"(depthstencil?:import("../sub/pipeline/renderPipeline").DEPTH_STENCIL):GPUDepthStencilState;"__#5@#buildPipelineDescriptor"():GPURenderPipelineDescriptor;init():Promise<unknown>;bindGroupLayout(index:number):Promise<{label():import("../../helpers/types/unsure").default<string>;label<T extends string>(label:T):T;"__#1@#bindGroupLayoutDescriptor":GPUBindGroupLayout;"__#1@#label"?:string;bindGroupLayoutDescriptor:GPUBindGroupLayout;labelValue?:string;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean}>;raw():Promise<GPURenderPipeline>;readonly __brand:"RenderPipelineCreator";[Symbol.hasInstance](instance:any):boolean};from(grp:GPURenderPipeline):RenderPipelineCreator};readonly ComputePipeline:{new(options:COMPUTE_PIPELINE_OPTION):{label():Promise<import("../../helpers/types/unsure").default<string>>;label<T extends string>(label:T):Promise<T>;"__#10@#computePipeline":Promise<GPUComputePipeline>;"__#10@#label"?:string;"__#10@#initWaiters":((bool:boolean)=>void)[];"__#10@#pipelineCreated":boolean;computePipeline:Promise<GPUComputePipeline>;labelValue?:string;"__#10@#buildDescriptor"(options:COMPUTE_PIPELINE_OPTION):GPUComputePipelineDescriptor;init():Promise<boolean>;raw():Promise<GPUComputePipeline>;readonly __brand:"ComputePipelineCreator";[Symbol.hasInstance](instance:any):boolean};from(computePipeline:GPUComputePipeline):ComputePipelineCreator};readonly PipelineLayout:{new(options?:PIPELINE_LAYOUT_OPTIONS):{label():import("../../helpers/types/unsure").default<string>;label<T extends string>(label:T):T;labelValue?:string;pipelineLayout:GPUPipelineLayout;"__#3@#label"?:string;"__#3@#pipelineLayout":GPUPipelineLayout;"__#3@#buildFromOptions"(options:PIPELINE_LAYOUT_OPTIONS):GPUPipelineLayoutDescriptor;raw():GPUPipelineLayout;readonly __brand:"PipelineLayoutCreator";[Symbol.hasInstance](instance:any):boolean};from(pl:GPUPipelineLayout):PipelineLayoutCreator};readonly QuerySet:{new(options:GPUQuerySetDescriptor):{label():string;label<T extends string>(label:T):T;"__#11@#qs":GPUQuerySet;"__#11@#device":GPUDevice;"__#11@#descriptor":GPUQuerySetDescriptor;"__#11@#destroyed":boolean;querySet:GPUQuerySet;queryDescriptor:GPUQuerySetDescriptor;destroy():boolean;destroy<T extends boolean>(destroy:T):T;raw():GPUQuerySet;readonly __brand:"QuerySetCreator";[Symbol.hasInstance](instance:any):boolean}};readonly RenderBundleEncoder:{new(options:GPURenderBundleEncoderDescriptor):RenderBundleEncoderCreator};readonly CommandEncoder:{new(label?:string):{label():import("../../helpers/types/unsure").default<string>;label<T extends string>(label:T):T;"__#18@#cmdencoder":GPUCommandEncoder;"__#18@#label"?:string;cmdencoder:GPUCommandEncoder;labelValue?:string;readonly RenderPass:typeof import("../sub/pipeline/commandEncoder/renderPass").RenderPassCreator;readonly ComputePass:{new(options:import("../sub/pipeline/commandEncoder/computepass").COMPUTE_PASS_OPTIONS):{"__#15@#cppass":GPUComputePassEncoder;cppass:GPUComputePassEncoder;"__#15@#debugDepth":number;"__#15@#buildOptions"(options?:import("../sub/pipeline/commandEncoder/computepass").COMPUTE_PASS_OPTIONS):GPUComputePassDescriptor;bindGroup(index:number,bindGroup:BindGroupCreator|import("../../helpers/types/DCMember").default<"BindGroup">,dynamicOffsets?:number[]|Uint32Array,dynamicOffsetData?:import("../sub/pipeline/commandEncoder/computepass").ComputePassCreator.bindGroup.DYNAMIC_OFFSET_DATA):void;"__#15@#pipeline"?:ComputePipelineCreator;pipeline():Promise<import("../../helpers/types/unsure").default<ComputePipelineCreator>>;pipeline<T extends ComputePipelineCreator|import("../../helpers/types/DCMember").default<"ComputePipeline">>(pipeline:T):Promise<T>;dispatchWorkgroup:((x:number,y:number,z:number)=>void)&{IndirectBuffer:{new(options:import("../sub/pipeline/commandEncoder/renderPass/indirectBuffer").INDIRECT_BUFFER_OPTIONS):{"__#2@#currentBuffer":GPUBuffer;"__#2@#device":GPUDevice;"__#2@#value":GPUAllowSharedBufferSource;"__#2@#bufferUsage":number;"__#2@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#usageChanged":boolean;"__#2@#label"?:string;"__#2@#readComplete":boolean;"__#2@#onReadCompleteQueues":(Function)[];"__#2@#usageOptions":import("../sub/data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#2@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("../sub/data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():import("../../helpers/types/unsure").default<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#2@#ensureReady"():Promise<void>;readonly can:{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("../sub/data/buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("../sub/data/buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator};readonly len:3;from(buffer:BufferCreator|GPUBuffer):Promise<import("../sub/pipeline/commandEncoder/renderPass/indirectBuffer").default>};indirect:(buffer:{"__#2@#currentBuffer":GPUBuffer;"__#2@#device":GPUDevice;"__#2@#value":GPUAllowSharedBufferSource;"__#2@#bufferUsage":number;"__#2@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#usageChanged":boolean;"__#2@#label"?:string;"__#2@#readComplete":boolean;"__#2@#onReadCompleteQueues":(Function)[];"__#2@#usageOptions":import("../sub/data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#2@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("../sub/data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():import("../../helpers/types/unsure").default<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#2@#ensureReady"():Promise<void>;readonly can:{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("../sub/data/buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("../sub/data/buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator},offset:number)=>void};end():void;readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void};raw():GPUComputePassEncoder;readonly __brand:"ComputePassCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}};readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void};readonly copy:{textureToTexture:(texture:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,des:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,copySize:GPUExtent3DStrict)=>undefined;textureToBuffer:(texture:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,des:CommandEncoderCreator.copy.TEXEL_COPY_BUFFER,copySize:GPUExtent3DStrict)=>undefined;bufferToTexture:(buf:CommandEncoderCreator.copy.TEXEL_COPY_BUFFER,des:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,copySize:GPUExtent3DStrict)=>undefined;bufferToBuffer:(buf:BufferCreator,des:BufferCreator,copySize:number)=>undefined};"__#18@#debugDepth":number;finish(des:GPUObjectDescriptorBase):CommandBufferCreator;readonly __brand:"CommandEncoderCreator";[Symbol.hasInstance](instance:any):boolean};from(cmdencoder:GPUCommandEncoder):CommandEncoderCreator}}export default DeviceControls;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,r,s,o,n)=>{function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var a,u=s.kind,c="getter"===u?"get":"setter"===u?"set":"value",p=!t&&e?s.static?e:e.prototype:null,d=t||(p?Object.getOwnPropertyDescriptor(p,s.name):{}),l=!1,m=r.length-1;m>=0;m--){var f={};for(var h in s)f[h]="access"===h?{}:s[h];for(var h in s.access)f.access[h]=s.access[h];f.addInitializer=e=>{if(l)throw new TypeError("Cannot add initializers after decoration has completed");n.push(i(e||null))};var b=(0,r[m])("accessor"===u?{get:d.get,set:d.set}:d[c],f);if("accessor"===u){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(a=i(b.get))&&(d.get=a),(a=i(b.set))&&(d.set=a),(a=i(b.init))&&o.unshift(a)}else(a=i(b))&&("field"===u?o.unshift(a):d[c]=a)}p&&Object.defineProperty(p,s.name,d),l=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var s=arguments.length>2,o=0;t.length>o;o++)r=s?t[o].call(e,r):t[o].call(e);return s?r:void 0};import r from"../sub/data/bindGroupLayout";import s from"../sub/data/buffers";import o from"../sub/pipeline/pipelineLayout";import n from"../sub/pipeline/renderPipeline";import i from"../sub/pipeline/sampler";import a from"../sub/data/shaderModule";import u from"../sub/data/texture";import c from"../sub/data/bindGroup";import p from"../sub/pipeline/computePipeline";import d from"../../helpers/errors";import l from"../sub/pipeline/querySet";import m from"../sub/pipeline/renderBundleEncoder";import f from"../../helpers/decorators/brand";import h from"../../helpers/decorators/raw";import b from"../sub/pipeline/commandEncoder";let g=(()=>{let g,w,x=[f("DeviceControls"),h("device")],y=[];return class{static{w=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,g={value:w},x,{kind:"class",name:w.name,metadata:r},null,y),w=g.value,r&&Object.defineProperty(w,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(w,y)}constructor(e){this.#e=e,this.device=e,this.Buffer=class extends s{constructor(t){super(e,t)}static async from(t){if(!(t.usage&GPUBufferUsage.MAP_READ))throw d(18,"Buffer is not MAP_READ compatible","Ensure GPUBufferUsage.MAP_READ was set during creation.");await t.mapAsync(GPUMapMode.READ);const r=t.getMappedRange().slice(0);return t.unmap(),new s(e,{value:r,usage:t.usage})}};const t=this;this.Texture=class extends u{constructor(t){super(e,t)}static async fromURL(r){const s=await fetch(r),o=await s.blob(),n=await createImageBitmap(o),i=new t.Texture({size:[n.width,n.height,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return e.queue.copyExternalImageToTexture({source:n},{texture:i.raw()},[n.width,n.height]),i}static from(t){return new u(e,t)}static async fromBitmap(r){const s=new t.Texture({size:[r.width,r.height,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return e.queue.copyExternalImageToTexture({source:r},{texture:s.raw()},[r.width,r.height]),s}},this.Sampler=class extends i{constructor(t={magFilter:"linear",minFilter:"linear"}){super(e,t)}static from(t){return new i(e,t)}},this.ShaderModule=class extends a{constructor(t,r){super(e,t,r)}static from(t){return new a(e,t)}},this.RenderPipeline=class extends n{constructor(t){super(e,t)}static from(t){return new n(e,t)}},this.BindGroupLayout=class extends r{constructor(t){super(e,t)}static from(t){return new r(e,t)}},this.PipelineLayout=class extends o{constructor(t={}){super(e,t)}static from(t){return new o(e,t)}},this.BindGroup=class extends c{constructor(t){super(e,t)}static from(t){return new c(e,t)}},this.ComputePipeline=class extends p{constructor(t){super(e,t)}static from(t){return new p(e,t)}},this.QuerySet=class extends l{constructor(t){super(e,t)}},this.RenderBundleEncoder=class extends m{constructor(t){super(e,e.createRenderBundleEncoder(t))}},this.CommandEncoder=class extends b{constructor(t){super(e,t)}static from(t){return new b(e,t)}}}queue={submit:e=>{if(!Array.isArray(e)||0===e.length)throw d(34,"queue.submit requires at least one CommandBufferCreator.","Finish a command encoder first and pass the resulting command buffer(s) to queue.submit(...).");return this.#e.queue.submit(e.map(e=>e.raw()))},on:(e,t)=>{if("submittedWorkDone"!==e)throw d(35,`Unsupported queue event: ${e+""}.`,"Use queue.on('submittedWorkDone', callback).");this.#e.queue.onSubmittedWorkDone().then(()=>t())}};#e;device;Buffer;Texture;Sampler;ShaderModule;BindGroupLayout;BindGroup;RenderPipeline;ComputePipeline;PipelineLayout;QuerySet;RenderBundleEncoder;CommandEncoder},w})();export{g as DeviceControls};export default g;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BRAND}from"../../helpers/types/decoratorHelpers";import AdapterControls from"./adapter";import{ContextControls}from"./context";interface WebGPUControls extends BRAND<"WebGPUControls">{}declare class WebGPUControls{#private;constructor(canvas:HTMLCanvasElement);readonly cv:HTMLCanvasElement;preferredCanvasFormat():GPUTextureFormat;context():ContextControls;get Adapter():Promise<AdapterControls>}export default WebGPUControls;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,r,a,n,o)=>{function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,c=a.kind,l="getter"===c?"get":"setter"===c?"set":"value",d=!t&&e?a.static?e:e.prototype:null,u=t||(d?Object.getOwnPropertyDescriptor(d,a.name):{}),p=!1,h=r.length-1;h>=0;h--){var f={};for(var v in a)f[v]="access"===v?{}:a[v];for(var v in a.access)f.access[v]=a.access[v];f.addInitializer=e=>{if(p)throw new TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var m=(0,r[h])("accessor"===c?{get:u.get,set:u.set}:u[l],f);if("accessor"===c){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(s=i(m.get))&&(u.get=s),(s=i(m.set))&&(u.set=s),(s=i(m.init))&&n.unshift(s)}else(s=i(m))&&("field"===c?n.unshift(s):u[l]=s)}d&&Object.defineProperty(d,a.name,u),p=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var a=arguments.length>2,n=0;t.length>n;n++)r=a?t[n].call(e,r):t[n].call(e);return a?r:void 0};import r from"../../helpers/decorators/brand";import a from"../../helpers/errors";import n from"./adapter";import{ContextControls as o}from"./context";let i=(()=>{let i,s,c=[r("WebGPUControls")],l=[];return class{static{s=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,i={value:s},c,{kind:"class",name:s.name,metadata:r},null,l),s=i.value,r&&Object.defineProperty(s,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(s,l)}constructor(e){if(!navigator.gpu)throw a(24,"WebGPU not supported!");if(!(e instanceof HTMLCanvasElement))throw a(26,"WebGPUControls requires a HTMLCanvasElement.","Pass a real <canvas> element when constructing WebGPUControls.");this.#e=navigator.gpu.getPreferredCanvasFormat(),this.cv=e}cv;#e;preferredCanvasFormat(){return this.#e}context(){let e=this.cv.getContext("webgpu");if(e)return new o(e);throw a(27,"Failed to acquire a WebGPU canvas context.","Ensure the canvas supports getContext('webgpu') and has not been initialized with a different context type.")}#t;get Adapter(){return this.#t?Promise.resolve(this.#t):navigator.gpu.requestAdapter().then(e=>{if(!e)throw a(25,"navigator.gpu.requestAdapter returned null");return this.#t=new n(e)}).catch(e=>{if(e instanceof Error&&"code"in e)throw e;throw a(28,"Failed to acquire a GPU adapter.","Ensure a compatible WebGPU adapter is available and the browser has permission to use it.")})}},s})();export default i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BRAND,LABEL,RAW}from"../../../../helpers/types/decoratorHelpers";import DC_MEMBER from"../../../../helpers/types/DCMember";import UNSURE from"../../../../helpers/types/unsure";import BindGroupCreator from"../../data/bindGroup";import BufferCreator from"../../data/buffers";import ComputePipelineCreator from"../computePipeline";import QuerySetCreator from"../querySet";import IndirectBufferCreator,{INDIRECT_BUFFER_OPTIONS}from"./renderPass/indirectBuffer";export interface ComputePassCreator extends RAW<GPUComputePassEncoder>,BRAND<"ComputePassCreator">,LABEL{}export declare class ComputePassCreator{#private;cppass:GPUComputePassEncoder;constructor(device:GPUDevice,cmdencoder:GPUCommandEncoder,options?:COMPUTE_PASS_OPTIONS);bindGroup(index:number,bindGroup:BindGroupCreator|DC_MEMBER<"BindGroup">,dynamicOffsets?:number[]|Uint32Array,dynamicOffsetData?:ComputePassCreator.bindGroup.DYNAMIC_OFFSET_DATA):void;pipeline():Promise<UNSURE<ComputePipelineCreator>>;pipeline<T extends ComputePipelineCreator|DC_MEMBER<"ComputePipeline">>(pipeline:T):Promise<T>;dispatchWorkgroup:((x:number,y:number,z:number)=>void)&{IndirectBuffer:{new(options:INDIRECT_BUFFER_OPTIONS):{"__#2@#currentBuffer":GPUBuffer;"__#2@#device":GPUDevice;"__#2@#value":GPUAllowSharedBufferSource;"__#2@#bufferUsage":number;"__#2@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#usageChanged":boolean;"__#2@#label"?:string;"__#2@#readComplete":boolean;"__#2@#onReadCompleteQueues":(Function)[];"__#2@#usageOptions":import("../../data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#2@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("../../data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#2@#ensureReady"():Promise<void>;readonly can:{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("../../data/buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("../../data/buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator};readonly len:3;from(buffer:BufferCreator|GPUBuffer):Promise<IndirectBufferCreator>};indirect:(buffer:{"__#2@#currentBuffer":GPUBuffer;"__#2@#device":GPUDevice;"__#2@#value":GPUAllowSharedBufferSource;"__#2@#bufferUsage":number;"__#2@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#usageChanged":boolean;"__#2@#label"?:string;"__#2@#readComplete":boolean;"__#2@#onReadCompleteQueues":(Function)[];"__#2@#usageOptions":import("../../data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#2@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("../../data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#2@#ensureReady"():Promise<void>;readonly can:{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("../../data/buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("../../data/buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator},offset:number)=>void};end():void;readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void}}export declare namespace ComputePassCreator{namespace bindGroup{interface DYNAMIC_OFFSET_DATA{start:number;len:number}}}export default ComputePassCreator;export interface COMPUTE_PASS_OPTIONS extends GPUObjectDescriptorBase{timestampRewrites?:TIMESTAMP_REWRITES}export interface TIMESTAMP_REWRITES{querySet:QuerySetCreator|DC_MEMBER<"QuerySet">;passWriteIndex?:{beginning?:number;end?:number}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,s,r,i,a)=>{function n(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var p,o=r.kind,c="getter"===o?"get":"setter"===o?"set":"value",l=!t&&e?r.static?e:e.prototype:null,u=t||(l?Object.getOwnPropertyDescriptor(l,r.name):{}),d=!1,h=s.length-1;h>=0;h--){var f={};for(var b in r)f[b]="access"===b?{}:r[b];for(var b in r.access)f.access[b]=r.access[b];f.addInitializer=e=>{if(d)throw new TypeError("Cannot add initializers after decoration has completed");a.push(n(e||null))};var m=(0,s[h])("accessor"===o?{get:u.get,set:u.set}:u[c],f);if("accessor"===o){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(p=n(m.get))&&(u.get=p),(p=n(m.set))&&(u.set=p),(p=n(m.init))&&i.unshift(p)}else(p=n(m))&&("field"===o?i.unshift(p):u[c]=p)}l&&Object.defineProperty(l,r.name,u),d=!0}),t=this&&this.__runInitializers||function(e,t,s){for(var r=arguments.length>2,i=0;t.length>i;i++)s=r?t[i].call(e,s):t[i].call(e);return r?s:void 0};import s from"../../../../helpers/decorators/brand";import r from"../../../../helpers/decorators/raw";import i from"../../../../helpers/decorators/labelling";import a from"../../../../helpers/errors";import n from"../../data/buffers";import p from"./renderPass/indirectBuffer";let o=(()=>{let o,c,l=[s("ComputePassCreator"),r("cppass"),i({get:e=>e.cppass.label,set:(e,t)=>e.cppass.label=t})],u=[];return class{static{c=this}static{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,o={value:c},l,{kind:"class",name:c.name,metadata:s},null,u),c=o.value,s&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),t(c,u)}#e;cppass;constructor(e,t,s){this.#e=t.beginComputePass(this.#t(s)),this.cppass=this.#e;class r extends p{static len=1;constructor(t){super(e,t)}static async from(t){const s=t instanceof n?t:new n(e,t),r=s.can,i=await s.value();return r.beBoundAs.indirect=!0,new p(e,{value:i??new Uint32Array(this.len),usage:{copy:r.copy,map:r.map,buffer:r.beBoundAs,queryable:r.query}})}}this.dispatchWorkgroup=Object.assign((e,t,s)=>{this.#e.dispatchWorkgroups(e,t,s)},{IndirectBuffer:class extends r{static len=3},indirect:(e,t)=>{this.#e.dispatchWorkgroupsIndirect(e.raw(),t)}}),this.debug={push:e=>{this.#s++,this.#e.pushDebugGroup(e)},pop:()=>{if(0>=this.#s)throw a(17,"debug.pop used before init");this.#e.popDebugGroup(),this.#s--},insertMarker:e=>{this.#e.insertDebugMarker(e)}}}#s=0;#t(e){if(!e)return{};let t={label:e.label};return e.timestampRewrites&&(t.timestampRewrites={querySet:e.timestampRewrites.querySet.raw(),beginningOfPassWriteIndex:e.timestampRewrites.passWriteIndex?.beginning,endOfPassWriteIndex:e.timestampRewrites.passWriteIndex?.end}),t}bindGroup(e,t,s,r){r?this.#e.setBindGroup(e,t.raw(),s,r.start,r.len):this.#e.setBindGroup(e,t.raw())}#r;async pipeline(e){return void 0===e?this.#r:(this.#e.setPipeline(await e.raw()),this.#r=e)}dispatchWorkgroup;end(){this.#e.end()}debug},c})();export{o as ComputePassCreator};export default o;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DC_MEMBER from"../../../../helpers/types/DCMember";import UNSURE from"../../../../helpers/types/unsure";import BindGroupCreator from"../../data/bindGroup";import BufferCreator from"../../data/buffers";import IndirectBufferCreator,{INDIRECT_BUFFER_OPTIONS}from"./renderPass/indirectBuffer";import RenderPipelineCreator from"../renderPipeline";export interface INDIRECT_BUFFER_CONSTRUCTOR{new(options:INDIRECT_BUFFER_OPTIONS):IndirectBufferCreator;readonly len:number;from(buffer:BufferCreator|GPUBuffer):Promise<IndirectBufferCreator>}export interface DRAW_MACHINE{(vertexCount:number,instanceCount?:number,firstVertex?:number,firstInstance?:number):void;indexed(indexCount:number,instanceCount?:number,firstIndex?:number,baseVertex?:number,firstInstance?:number):void;indexedIndirect(buffer:IndirectBufferCreator,offset?:number):void;indirect(buffer:IndirectBufferCreator,offset?:number):void;IndexedIndirectBuffer:INDIRECT_BUFFER_CONSTRUCTOR;IndirectBuffer:INDIRECT_BUFFER_CONSTRUCTOR}export interface RENDER_ENCODER_BIND_GROUP_DYNAMIC_OFFSET_DATA{start:number;len:number}export interface COMMON_RENDER_ENCODER{label:string;draw(vertexCount:number,instanceCount?:number,firstVertex?:number,firstInstance?:number):void;drawIndexed(indexCount:number,instanceCount?:number,firstIndex?:number,baseVertex?:number,firstInstance?:number):void;drawIndexedIndirect(indirectBuffer:GPUBuffer,indirectOffset:number):void;drawIndirect(indirectBuffer:GPUBuffer,indirectOffset:number):void;setIndexBuffer(buffer:GPUBuffer,indexFormat:GPUIndexFormat,offset?:number,size?:number):void;setVertexBuffer(slot:number,buffer:GPUBuffer|null,offset?:number,size?:number):void;setBindGroup(index:number,bindGroup:GPUBindGroup|null,dynamicOffsets?:Iterable<number>):void;setBindGroup(index:number,bindGroup:GPUBindGroup|null,dynamicOffsetsData:Uint32Array,dynamicOffsetsDataStart:number,dynamicOffsetsDataLength:number):void;setPipeline(pipeline:GPURenderPipeline):void;pushDebugGroup(groupLabel:string):void;popDebugGroup():void;insertDebugMarker(markerLabel:string):void}export default class RenderEncoderBase<T_ENCODER extends COMMON_RENDER_ENCODER=COMMON_RENDER_ENCODER>{#private;protected readonly encoder:T_ENCODER;readonly draw:DRAW_MACHINE;readonly buffer:{index:(buffer:BufferCreator|DC_MEMBER<"Buffer">)=>void;vertex:(slot:number,buffer:BufferCreator|DC_MEMBER<"Buffer">)=>void};readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void};constructor(device:GPUDevice,encoder:T_ENCODER);bindGroup(index:number,bindGroup:BindGroupCreator|DC_MEMBER<"BindGroup">,dynamicOffsets?:number[]|Uint32Array,dynamicOffsetData?:RENDER_ENCODER_BIND_GROUP_DYNAMIC_OFFSET_DATA):void;pipeline():Promise<UNSURE<RenderPipelineCreator>>;pipeline<T extends RenderPipelineCreator|DC_MEMBER<"RenderPipeline">>(pipeline:T):Promise<T>}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,r,n,i,s)=>{function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var o,d=n.kind,c="getter"===d?"get":"setter"===d?"set":"value",u=!t&&e?n.static?e:e.prototype:null,l=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),f=!1,p=r.length-1;p>=0;p--){var h={};for(var b in n)h[b]="access"===b?{}:n[b];for(var b in n.access)h.access[b]=n.access[b];h.addInitializer=e=>{if(f)throw new TypeError("Cannot add initializers after decoration has completed");s.push(a(e||null))};var w=(0,r[p])("accessor"===d?{get:l.get,set:l.set}:l[c],h);if("accessor"===d){if(void 0===w)continue;if(null===w||"object"!=typeof w)throw new TypeError("Object expected");(o=a(w.get))&&(l.get=o),(o=a(w.set))&&(l.set=o),(o=a(w.init))&&i.unshift(o)}else(o=a(w))&&("field"===d?i.unshift(o):l[c]=o)}u&&Object.defineProperty(u,n.name,l),f=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var n=arguments.length>2,i=0;t.length>i;i++)r=n?t[i].call(e,r):t[i].call(e);return n?r:void 0};import r from"../../../../helpers/errors";import n from"../../../../helpers/decorators/labelling";import i from"../../../../helpers/decorators/raw";import s from"../../data/buffers";import a from"./renderPass/indirectBuffer";let o=(()=>{let o,d,c=[i("encoder"),n({get:e=>e.encoder.label,set:(e,t)=>e.encoder.label=t})],u=[];return class{static{d=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,o={value:d},c,{kind:"class",name:d.name,metadata:r},null,u),d=o.value,r&&Object.defineProperty(d,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(d,u)}encoder;draw;buffer;debug;#e=0;#t;constructor(e,t){this.encoder=t;class n extends a{static len=1;constructor(t){super(e,t)}static async from(t){const r=t instanceof s?t:new s(e,t),n=r.can,i=await r.value();return n.beBoundAs.indirect=!0,new a(e,{value:i??new Uint32Array(this.len),usage:{copy:n.copy,map:n.map,buffer:n.beBoundAs,queryable:n.query}})}}const i=this.encoder.draw.bind(this.encoder);this.draw=Object.assign(i,{indexed:this.encoder.drawIndexed.bind(this.encoder),indexedIndirect:(e,t=0)=>{this.encoder.drawIndexedIndirect(e.raw(),t)},indirect:(e,t=0)=>{this.encoder.drawIndirect(e.raw(),t)},IndirectBuffer:class extends n{static len=4},IndexedIndirectBuffer:class extends n{static len=5}}),this.buffer={index:e=>{if(!e.can.beBoundAs.index)throw r(22,"A buffer that does not support the GPUBufferUsage.INDEX flag was passed into buffer.index.");this.encoder.setIndexBuffer(e.raw(),e.value()instanceof Uint32Array?"uint32":"uint16")},vertex:(e,t)=>{if(!t.can.beBoundAs.vertex)throw r(22,"A buffer that does not support the GPUBufferUsage.VERTEX flag was passed into buffer.vertex.");this.encoder.setVertexBuffer(e,t.raw())}},this.debug={push:e=>{this.#e++,this.encoder.pushDebugGroup(e)},pop:()=>{if(0>=this.#e)throw r(17,"debug.pop used before init");this.encoder.popDebugGroup(),this.#e--},insertMarker:e=>{this.encoder.insertDebugMarker(e)}}}bindGroup(e,t,r,n){n?this.encoder.setBindGroup(e,t.raw(),r,n.start,n.len):this.encoder.setBindGroup(e,t.raw())}async pipeline(e){return void 0===e?this.#t:(this.encoder.setPipeline(await e.raw()),this.#t=e)}},d})();export default o;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import BufferCreator,{BUFFER_CONSTRUCTION_OPTIONS}from"../../../data/buffers";import BUFFER_USAGE_OPTIONS,{BUFFER_BINDING_OPTIONS}from"../../../data/buffers/bufferUsageOptions";export default class IndirectBufferCreator extends BufferCreator{constructor(device:GPUDevice,options:INDIRECT_BUFFER_OPTIONS)}export interface INDIRECT_BUFFER_OPTIONS extends BUFFER_CONSTRUCTION_OPTIONS{usage?:INDIRECT_BUFFER_USAGE_OPTIONS;value:GPUAllowSharedBufferSource}export interface INDIRECT_BUFFER_USAGE_OPTIONS extends BUFFER_USAGE_OPTIONS{buffer:INDIRECT_BUFFER_BINDING_OPTIONS}export interface INDIRECT_BUFFER_BINDING_OPTIONS extends BUFFER_BINDING_OPTIONS{indirect?:true}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import e from"../../../data/buffers";import{getOptionsFromUsage as r}from"../../../data/buffers/bufferUsageOptions";export default class f extends e{constructor(e,f){"number"==typeof f.usage&&(f.usage=r(f.usage)),f.usage?.buffer&&(f.usage.buffer.indirect=!0),super(e,f)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DC_MEMBER from"../../../../helpers/types/DCMember";import UNSURE from"../../../../helpers/types/unsure";import QuerySetCreator from"../querySet";import TextureCreator from"../../data/texture";import TextureViewCreator from"../../data/texture/textureView";import RenderEncoderBase,{RENDER_ENCODER_BIND_GROUP_DYNAMIC_OFFSET_DATA}from"./renderEncoderBase";import RenderBundleCreator from"../renderBundleEncoder/renderBundle";export declare class RenderPassCreator extends RenderEncoderBase<GPURenderPassEncoder>{#private;readonly OcclusionQuery:{new(queryIndex:number):{"__#17@#ended":boolean;end():void}};constructor(device:GPUDevice,cmdEncoder:GPUCommandEncoder,options:RENDER_PASS_OPTIONS);static buildDescriptor(options:RENDER_PASS_OPTIONS):GPURenderPassDescriptor;end():void;blendConstant():GPUColor;blendConstant<T extends GPUColor>(color:T):T;scissorRect():[number,number,number?,number?];scissorRect<T extends[number,number,number,number]>(x:T[0],y:T[1],width:T[2],height:T[3]):T;viewport():[number,number,UNSURE<number>,UNSURE<number>,number,number];viewport<T extends[number,number,number,number,number,number]>(x:T[0],y:T[1],width:T[2],height:T[3],minDepth:T[4],maxDepth:T[5]):T;executeBundles(bundles:RenderBundleCreator[]):undefined}export declare namespace RenderPassCreator{namespace bindGroup{interface DYNAMIC_OFFSET_DATA extends RENDER_ENCODER_BIND_GROUP_DYNAMIC_OFFSET_DATA{}}}export default RenderPassCreator;export interface RENDER_PASS_OPTIONS extends GPUObjectDescriptorBase{attachment?:RENDER_PASS_OPTIONS.ATTACHMENT;occlusionQuerySet?:QuerySetCreator;timestampRewrites?:RENDER_PASS_OPTIONS.TIMESTAMP_REWRITES;maxDrawCount?:number}export declare namespace RENDER_PASS_OPTIONS{interface ATTACHMENT{depthStencil:ATTACHMENT.DEPTH_STENCIL;color:ATTACHMENT.COLOR[]}interface OPERATIONS{load:GPULoadOp;store:GPUStoreOp}interface TIMESTAMP_REWRITES{querySet:QuerySetCreator|DC_MEMBER<"QuerySet">;passWriteIndex:{beginning?:number;end?:number}}}export declare namespace RENDER_PASS_OPTIONS.ATTACHMENT{interface COLOR{depthSlice?:number;operations:RENDER_PASS_OPTIONS.OPERATIONS;color:GPUColor;texture:RENDER_PASS_OPTIONS.ATTACHMENT.COLOR.TEXTURE}interface DEPTH_STENCIL{view:TextureCreator|DC_MEMBER<"Texture">|TextureViewCreator;depth:RENDER_PASS_OPTIONS.ATTACHMENT.DEPTH_STENCIL.COMMON;stencil:RENDER_PASS_OPTIONS.ATTACHMENT.DEPTH_STENCIL.COMMON}}export declare namespace RENDER_PASS_OPTIONS.ATTACHMENT.DEPTH_STENCIL{interface COMMON{clear?:number;operations?:RENDER_PASS_OPTIONS.OPERATIONS;readonly?:boolean}}export declare namespace RENDER_PASS_OPTIONS.ATTACHMENT.COLOR{interface TEXTURE{view:TextureCreator|DC_MEMBER<"Texture">|TextureViewCreator;resolve?:TextureCreator|DC_MEMBER<"Texture">|TextureViewCreator}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,r,o,n,i)=>{function s(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var c,a=o.kind,d="getter"===a?"get":"setter"===a?"set":"value",l=!t&&e?o.static?e:e.prototype:null,u=t||(l?Object.getOwnPropertyDescriptor(l,o.name):{}),p=!1,h=r.length-1;h>=0;h--){var v={};for(var m in o)v[m]="access"===m?{}:o[m];for(var m in o.access)v.access[m]=o.access[m];v.addInitializer=e=>{if(p)throw new TypeError("Cannot add initializers after decoration has completed");i.push(s(e||null))};var y=(0,r[h])("accessor"===a?{get:u.get,set:u.set}:u[d],v);if("accessor"===a){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw new TypeError("Object expected");(c=s(y.get))&&(u.get=c),(c=s(y.set))&&(u.set=c),(c=s(y.init))&&n.unshift(c)}else(c=s(y))&&("field"===a?n.unshift(c):u[d]=c)}l&&Object.defineProperty(l,o.name,u),p=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var o=arguments.length>2,n=0;t.length>n;n++)r=o?t[n].call(e,r):t[n].call(e);return o?r:void 0};import r from"../../../../helpers/errors";import o from"./renderEncoderBase";import n from"../../../../helpers/decorators/brand";let i=(()=>{let i,s,c=[n("RenderPassCreator")],a=[],d=o;var l=class extends d{static{s=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(d[Symbol.metadata]??null):void 0;e(null,i={value:s},c,{kind:"class",name:s.name,metadata:r},null,a),l=s=i.value,r&&Object.defineProperty(s,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(s,a)}#e;#t;#r=[0,0,0,0];#o=[0,0,void 0,void 0];#n=[0,0,void 0,void 0,0,1];OcclusionQuery;constructor(e,t,o){super(e,t.beginRenderPass(l.buildDescriptor(o)));const n=this;this.OcclusionQuery=class{#i=!1;constructor(e){if(!o.occlusionQuerySet)throw r(14,"Occlusion Query Set Not Provided!");void 0!==n.#e&&(n.encoder.endOcclusionQuery(),n.#t?.()),n.#e=e,n.encoder.beginOcclusionQuery(e),n.#t=()=>{this.#i=!0,this.end()}}end(){this.#i||(this.#i=!0,n.#e=void 0,n.encoder.endOcclusionQuery())}}}static buildDescriptor(e){const t={colorAttachments:[],label:e.label};if(e.attachment?.color&&(t.colorAttachments=e.attachment.color.map(e=>({view:e.texture.view.raw(),resolveTarget:e.texture.resolve?.raw(),depthSlice:e.depthSlice,loadOp:e.operations.load,storeOp:e.operations.store,clearValue:e.color??{r:0,g:0,b:0,a:1}}))),e.attachment?.depthStencil){const r=e.attachment.depthStencil,o={view:r.view.raw(),depthClearValue:r.depth.clear??1,depthLoadOp:r.depth.operations?.load??"clear",depthStoreOp:r.depth.operations?.store??"store",depthReadOnly:r.depth.readonly??!1};(void 0!==r.stencil?.clear||void 0!==r.stencil?.readonly||void 0!==r.stencil?.operations?.load||void 0!==r.stencil?.operations?.store)&&(o.stencilClearValue=r.stencil.clear??0,o.stencilLoadOp=r.stencil.operations?.load??"clear",o.stencilStoreOp=r.stencil.operations?.store??"store",o.stencilReadOnly=r.stencil.readonly??!1),t.depthStencilAttachment=o}return e.occlusionQuerySet&&(t.occlusionQuerySet=e.occlusionQuerySet.raw()),e.timestampRewrites&&(t.timestampWrites={querySet:e.timestampRewrites.querySet.raw(),beginningOfPassWriteIndex:e.timestampRewrites.passWriteIndex.beginning,endOfPassWriteIndex:e.timestampRewrites.passWriteIndex.end}),e.maxDrawCount&&(t.maxDrawCount=e.maxDrawCount),t}end(){this.encoder.end()}blendConstant(e){return void 0===e?this.#r:(this.encoder.setBlendConstant(e),this.#r=e)}scissorRect(e,t,o,n){if(void 0===e)return this.#o;if(void 0===t||void 0===o||void 0===n)throw r(20,"scissorRect requires (x, y, width, height) to set.");this.encoder.setScissorRect(e,t,o,n);const i=[e,t,o,n];return this.#o=i,i}viewport(e,t,o,n,i,s){if(void 0===e)return this.#n;if(void 0===t||void 0===o||void 0===n||void 0===i||void 0===s)throw r(21,"viewport requires 6 arguments (x, y, width, height, minDepth, maxDepth) to set.");this.encoder.setViewport(e,t,o,n,i,s);const c=[e,t,o,n,i,s];return this.#n=c,c}executeBundles(e){return this.encoder.executeBundles(e.map(e=>e.raw()))}};return l=s})();export{i as RenderPassCreator};export default i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DC_MEMBER from"../../../helpers/types/DCMember";import{BRAND}from"../../../helpers/types/decoratorHelpers";import UNSURE from"../../../helpers/types/unsure";import BufferCreator from"../data/buffers";import CommandBufferCreator from"../data/commandbuffer";import ComputePassCreator,{COMPUTE_PASS_OPTIONS}from"./commandEncoder/computepass";import RenderPassCreator from"./commandEncoder/renderPass";import TextureCreator from"../data/texture";export interface CommandEncoderCreator extends BRAND<"CommandEncoderCreator">{label():UNSURE<string>;label<T extends string>(label:T):T}export declare class CommandEncoderCreator{#private;cmdencoder:GPUCommandEncoder;labelValue?:string;readonly RenderPass:typeof RenderPassCreator;readonly ComputePass:{new(options:COMPUTE_PASS_OPTIONS):{"__#15@#cppass":GPUComputePassEncoder;cppass:GPUComputePassEncoder;"__#15@#debugDepth":number;"__#15@#buildOptions"(options?:COMPUTE_PASS_OPTIONS):GPUComputePassDescriptor;bindGroup(index:number,bindGroup:import("../data/bindGroup").BindGroupCreator|DC_MEMBER<"BindGroup">,dynamicOffsets?:number[]|Uint32Array,dynamicOffsetData?:ComputePassCreator.bindGroup.DYNAMIC_OFFSET_DATA):void;"__#15@#pipeline"?:import("./computePipeline").ComputePipelineCreator;pipeline():Promise<UNSURE<import("./computePipeline").ComputePipelineCreator>>;pipeline<T extends import("./computePipeline").ComputePipelineCreator|DC_MEMBER<"ComputePipeline">>(pipeline:T):Promise<T>;dispatchWorkgroup:((x:number,y:number,z:number)=>void)&{IndirectBuffer:{new(options:import("./commandEncoder/renderPass/indirectBuffer").INDIRECT_BUFFER_OPTIONS):{"__#2@#currentBuffer":GPUBuffer;"__#2@#device":GPUDevice;"__#2@#value":GPUAllowSharedBufferSource;"__#2@#bufferUsage":number;"__#2@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#usageChanged":boolean;"__#2@#label"?:string;"__#2@#readComplete":boolean;"__#2@#onReadCompleteQueues":(Function)[];"__#2@#usageOptions":import("../data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#2@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("../data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#2@#ensureReady"():Promise<void>;readonly can:{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("../data/buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("../data/buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator};readonly len:3;from(buffer:BufferCreator|GPUBuffer):Promise<import("./commandEncoder/renderPass/indirectBuffer").default>};indirect:(buffer:{"__#2@#currentBuffer":GPUBuffer;"__#2@#device":GPUDevice;"__#2@#value":GPUAllowSharedBufferSource;"__#2@#bufferUsage":number;"__#2@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#usageChanged":boolean;"__#2@#label"?:string;"__#2@#readComplete":boolean;"__#2@#onReadCompleteQueues":(Function)[];"__#2@#usageOptions":import("../data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#2@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("../data/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#2@#ensureReady"():Promise<void>;readonly can:{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("../data/buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("../data/buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator},offset:number)=>void};end():void;readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void};raw():GPUComputePassEncoder;readonly __brand:"ComputePassCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}};readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void};readonly copy:{textureToTexture:(texture:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,des:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,copySize:GPUExtent3DStrict)=>undefined;textureToBuffer:(texture:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,des:CommandEncoderCreator.copy.TEXEL_COPY_BUFFER,copySize:GPUExtent3DStrict)=>undefined;bufferToTexture:(buf:CommandEncoderCreator.copy.TEXEL_COPY_BUFFER,des:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,copySize:GPUExtent3DStrict)=>undefined;bufferToBuffer:(buf:BufferCreator,des:BufferCreator,copySize:number)=>undefined};constructor(device:GPUDevice,labelOrCommandEncoder:UNSURE<string>|GPUCommandEncoder);finish(des:GPUObjectDescriptorBase):CommandBufferCreator}export declare namespace CommandEncoderCreator{namespace copy{interface TEXEL_COPY_TEXTURE{texture:TextureCreator|DC_MEMBER<"Texture">;origin?:GPUOrigin3D;aspect?:GPUTextureAspect;mipLevel?:number}interface TEXEL_COPY_BUFFER extends GPUTexelCopyBufferLayout{buffer:BufferCreator|DC_MEMBER<"Buffer">}}}export default CommandEncoderCreator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,r,t,o,s,i)=>{function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var c,n=o.kind,u="getter"===n?"get":"setter"===n?"set":"value",d=!r&&e?o.static?e:e.prototype:null,l=r||(d?Object.getOwnPropertyDescriptor(d,o.name):{}),f=!1,p=t.length-1;p>=0;p--){var m={};for(var h in o)m[h]="access"===h?{}:o[h];for(var h in o.access)m.access[h]=o.access[h];m.addInitializer=e=>{if(f)throw new TypeError("Cannot add initializers after decoration has completed");i.push(a(e||null))};var b=(0,t[p])("accessor"===n?{get:l.get,set:l.set}:l[u],m);if("accessor"===n){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(c=a(b.get))&&(l.get=c),(c=a(b.set))&&(l.set=c),(c=a(b.init))&&s.unshift(c)}else(c=a(b))&&("field"===n?s.unshift(c):l[u]=c)}d&&Object.defineProperty(d,o.name,l),f=!0}),r=this&&this.__runInitializers||function(e,r,t){for(var o=arguments.length>2,s=0;r.length>s;s++)t=o?r[s].call(e,t):r[s].call(e);return o?t:void 0};import t from"../../../helpers/errors";import o from"../../../helpers/decorators/brand";import s from"../../../helpers/decorators/labelling";import i from"../data/commandbuffer";import a from"./commandEncoder/computepass";import c from"./commandEncoder/renderPass";let n=(()=>{let n,u,d=[o("CommandEncoderCreator"),s({get:e=>e.labelValue,set:(e,r)=>e.cmdencoder.label=e.labelValue=r})],l=[];return class{static{u=this}static{const t="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,n={value:u},d,{kind:"class",name:u.name,metadata:t},null,l),u=n.value,t&&Object.defineProperty(u,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t}),r(u,l)}#e;#r;cmdencoder;labelValue;RenderPass;ComputePass;debug;copy;#t=0;constructor(e,r){this.#e=r instanceof GPUCommandEncoder?r:e.createCommandEncoder({label:r}),this.#r="string"==typeof r?r:r?.label,this.cmdencoder=this.#e,this.labelValue=this.#r;const o=this;this.RenderPass=class extends c{constructor(r){super(e,o.#e,r)}},this.ComputePass=class extends a{constructor(r){super(e,o.#e,r)}},this.debug={push:e=>{this.#t++,this.#e.pushDebugGroup(e)},pop:()=>{if(0>=this.#t)throw t(17,"debug.pop used before init");this.#e.popDebugGroup(),this.#t--},insertMarker:e=>{this.#e.insertDebugMarker(e)}},this.copy={textureToTexture:(e,r,t)=>this.#e.copyTextureToTexture({texture:e.texture.raw(),mipLevel:e.mipLevel,aspect:e.aspect,origin:e.origin},{texture:r.texture.raw(),mipLevel:r.mipLevel,aspect:r.aspect,origin:r.origin},t),textureToBuffer:(e,r,t)=>this.#e.copyTextureToBuffer({texture:e.texture.raw(),mipLevel:e.mipLevel,aspect:e.aspect,origin:e.origin},{buffer:r.buffer.raw(),bytesPerRow:r.bytesPerRow,offset:r.offset,rowsPerImage:r.rowsPerImage},t),bufferToTexture:(e,r,t)=>this.#e.copyBufferToTexture({buffer:e.buffer.raw(),bytesPerRow:e.bytesPerRow,offset:e.offset,rowsPerImage:e.rowsPerImage},{texture:r.texture.raw(),mipLevel:r.mipLevel,aspect:r.aspect,origin:r.origin},t),bufferToBuffer:(e,r,t)=>this.#e.copyBufferToBuffer(e.raw(),r.raw(),t)}}finish(e){return new i(this.#e.finish(e))}},u})();export{n as CommandEncoderCreator};export default n;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BRAND,RAW}from"../../../helpers/types/decoratorHelpers";import DC_MEMBER from"../../../helpers/types/DCMember";import UNSURE from"../../../helpers/types/unsure";import PipelineLayoutCreator from"./pipelineLayout";import ShaderModuleCreator from"../data/shaderModule";export interface ComputePipelineCreator extends RAW<Promise<GPUComputePipeline>>,BRAND<"ComputePipelineCreator">{label():Promise<UNSURE<string>>;label<T extends string>(label:T):Promise<T>}export declare class ComputePipelineCreator{#private;computePipeline:Promise<GPUComputePipeline>;labelValue?:string;constructor(device:GPUDevice,sm:COMPUTE_PIPELINE_OPTION|GPUComputePipeline);init():Promise<boolean>}export default ComputePipelineCreator;export interface COMPUTE_PIPELINE_OPTION extends GPUObjectDescriptorBase{module:ShaderModuleCreator|DC_MEMBER<"ShaderModule">;async?:boolean;layout:PipelineLayoutCreator}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,i,r,a,l)=>{function n(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var o,s=r.kind,c="getter"===s?"get":"setter"===s?"set":"value",p=!t&&e?r.static?e:e.prototype:null,u=t||(p?Object.getOwnPropertyDescriptor(p,r.name):{}),h=!1,m=i.length-1;m>=0;m--){var d={};for(var f in r)d[f]="access"===f?{}:r[f];for(var f in r.access)d.access[f]=r.access[f];d.addInitializer=e=>{if(h)throw new TypeError("Cannot add initializers after decoration has completed");l.push(n(e||null))};var b=(0,i[m])("accessor"===s?{get:u.get,set:u.set}:u[c],d);if("accessor"===s){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(o=n(b.get))&&(u.get=o),(o=n(b.set))&&(u.set=o),(o=n(b.init))&&a.unshift(o)}else(o=n(b))&&("field"===s?a.unshift(o):u[c]=o)}p&&Object.defineProperty(p,r.name,u),h=!0}),t=this&&this.__runInitializers||function(e,t,i){for(var r=arguments.length>2,a=0;t.length>a;a++)i=r?t[a].call(e,i):t[a].call(e);return r?i:void 0};import i from"../../../helpers/decorators/brand";import r from"../../../helpers/decorators/labelling";import a from"../../../helpers/decorators/raw";let l=(()=>{let l,n,o=[i("ComputePipelineCreator"),a("computePipeline"),r({get:e=>Promise.resolve(e.labelValue),set:async(e,t)=>(await e.computePipeline).label=e.labelValue=t})],s=[];return class{static{n=this}static{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,l={value:n},o,{kind:"class",name:n.name,metadata:i},null,s),n=l.value,i&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),t(n,s)}#e;#t;#i=[];#r=!1;computePipeline;labelValue;constructor(e,t){const i=t;this.#e=i.module?i.async?e.createComputePipelineAsync(this.#a(i)).then(e=>(this.#i.forEach(e=>e(!0)),this.#r=!0,e)):new Promise(()=>(this.#i.forEach(e=>e(!0)),this.#r=!0,e.createComputePipeline(this.#a(i)))):new Promise(()=>(this.#i.forEach(e=>e(!0)),this.#r=!0,t)),this.#t=t.label,this.computePipeline=this.#e,this.labelValue=this.#t}#a(e){return{layout:e.layout.raw(),compute:{module:e.module.raw(),constants:e.module.constants(),entryPoint:e.module.entryPoint()},label:e.label}}init(){return this.#r?new Promise(e=>!0):new Promise(e=>{this.#i.push(t=>{e(t)})})}},n})();export{l as ComputePipelineCreator};export default l;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DeviceControls from"../../main/device";import{BRAND,RAW}from"../../../helpers/types/decoratorHelpers";import UNSURE from"../../../helpers/types/unsure";import BindGroupLayoutCreator from"../data/bindGroupLayout";export interface PipelineLayoutCreator extends RAW<GPUPipelineLayout>,BRAND<"PipelineLayoutCreator">{label():UNSURE<string>;label<T extends string>(label:T):T}export declare class PipelineLayoutCreator{#private;labelValue?:string;pipelineLayout:GPUPipelineLayout;constructor(device:GPUDevice,pipelineLayoutOrOptions:GPUPipelineLayout|PIPELINE_LAYOUT_OPTIONS)}export default PipelineLayoutCreator;export interface PIPELINE_LAYOUT_OPTIONS extends GPUObjectDescriptorBase{bindGroupLayouts?:(InstanceType<DeviceControls["BindGroupLayout"]>|BindGroupLayoutCreator)[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,a,i,l,r)=>{function o(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var n,s=i.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?i.static?e:e.prototype:null,p=t||(c?Object.getOwnPropertyDescriptor(c,i.name):{}),b=!1,d=a.length-1;d>=0;d--){var f={};for(var h in i)f[h]="access"===h?{}:i[h];for(var h in i.access)f.access[h]=i.access[h];f.addInitializer=e=>{if(b)throw new TypeError("Cannot add initializers after decoration has completed");r.push(o(e||null))};var y=(0,a[d])("accessor"===s?{get:p.get,set:p.set}:p[u],f);if("accessor"===s){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw new TypeError("Object expected");(n=o(y.get))&&(p.get=n),(n=o(y.set))&&(p.set=n),(n=o(y.init))&&l.unshift(n)}else(n=o(y))&&("field"===s?l.unshift(n):p[u]=n)}c&&Object.defineProperty(c,i.name,p),b=!0}),t=this&&this.__runInitializers||function(e,t,a){for(var i=arguments.length>2,l=0;t.length>l;l++)a=i?t[l].call(e,a):t[l].call(e);return i?a:void 0};import a from"../../../helpers/decorators/brand";import i from"../../../helpers/decorators/labelling";import l from"../../../helpers/decorators/raw";let r=(()=>{let r,o,n=[a("PipelineLayoutCreator"),l("pipelineLayout"),i({get:e=>e.labelValue,set:(e,t)=>e.pipelineLayout.label=e.labelValue=t})],s=[];return class{static{o=this}static{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,r={value:o},n,{kind:"class",name:o.name,metadata:a},null,s),o=r.value,a&&Object.defineProperty(o,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a}),t(o,s)}labelValue;pipelineLayout;constructor(e,t){this.#e=t instanceof GPUPipelineLayout?t:e.createPipelineLayout(this.#t(t)),this.#a=t.label,this.labelValue=this.#a,this.pipelineLayout=this.#e}#a;#e;#t(e){return{label:e.label,bindGroupLayouts:e.bindGroupLayouts?.map(e=>e.raw())??[]}}},o})();export{r as PipelineLayoutCreator};export default r;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BRAND,RAW}from"../../../helpers/types/decoratorHelpers";export interface QuerySetCreator extends RAW<GPUQuerySet>,BRAND<"QuerySetCreator">{label():string;label<T extends string>(label:T):T}export declare class QuerySetCreator{#private;querySet:GPUQuerySet;queryDescriptor:GPUQuerySetDescriptor;constructor(device:GPUDevice,options:GPUQuerySetDescriptor|GPUQuerySet);destroy():boolean;destroy<T extends boolean>(destroy:T):T}export default QuerySetCreator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,r,s,i,o)=>{function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var c,n=s.kind,l="getter"===n?"get":"setter"===n?"set":"value",d=!t&&e?s.static?e:e.prototype:null,u=t||(d?Object.getOwnPropertyDescriptor(d,s.name):{}),y=!1,h=r.length-1;h>=0;h--){var p={};for(var f in s)p[f]="access"===f?{}:s[f];for(var f in s.access)p.access[f]=s.access[f];p.addInitializer=e=>{if(y)throw new TypeError("Cannot add initializers after decoration has completed");o.push(a(e||null))};var b=(0,r[h])("accessor"===n?{get:u.get,set:u.set}:u[l],p);if("accessor"===n){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(c=a(b.get))&&(u.get=c),(c=a(b.set))&&(u.set=c),(c=a(b.init))&&i.unshift(c)}else(c=a(b))&&("field"===n?i.unshift(c):u[l]=c)}d&&Object.defineProperty(d,s.name,u),y=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var s=arguments.length>2,i=0;t.length>i;i++)r=s?t[i].call(e,r):t[i].call(e);return s?r:void 0};import r from"../../../helpers/decorators/brand";import s from"../../../helpers/decorators/labelling";import i from"../../../helpers/decorators/raw";let o=(()=>{let o,a,c=[r("QuerySetCreator"),i("querySet"),s({get:e=>e.querySet.label,set:(e,t)=>(e.queryDescriptor.label=t,e.querySet.label=t)})],n=[];return class{static{a=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,o={value:a},c,{kind:"class",name:a.name,metadata:r},null,n),a=o.value,r&&Object.defineProperty(a,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(a,n)}#e;#t;#r;#s=!1;querySet;queryDescriptor;constructor(e,t){this.#t=e,t instanceof GPUQuerySet?(this.#e=t,this.#r={type:t.type,count:t.count,label:t.label}):(this.#r=t,this.#e=e.createQuerySet(t)),this.querySet=this.#e,this.queryDescriptor=this.#r}destroy(e){return void 0===e?this.#s:!(!this.#s||!e)||(!this.#s&&e?(this.#s=!0,this.#e.destroy(),!0):!(!this.#s&&!e)&&(this.#s&&!e?(this.#e=this.#t.createQuerySet(this.#r),this.#s=!1,!1):this.#s))}[Symbol("Symbol.dispose")](){this.destroy(!0)}},a})();export{o as QuerySetCreator};export default o;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BRAND,RAW}from"../../../../helpers/types/decoratorHelpers";import UNSURE from"../../../../helpers/types/unsure";export interface RenderBundleCreator extends RAW<GPURenderBundle>,BRAND<"RenderBundleCreator">{label():UNSURE<string>;label<T extends string>(label:T):T}export declare class RenderBundleCreator{#private;renderBundle:GPURenderBundle;constructor(renbun:GPURenderBundle)}export default RenderBundleCreator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,r,n,a,o)=>{function l(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var i,s=n.kind,c="getter"===s?"get":"setter"===s?"set":"value",d=!t&&e?n.static?e:e.prototype:null,u=t||(d?Object.getOwnPropertyDescriptor(d,n.name):{}),f=!1,p=r.length-1;p>=0;p--){var h={};for(var b in n)h[b]="access"===b?{}:n[b];for(var b in n.access)h.access[b]=n.access[b];h.addInitializer=e=>{if(f)throw new TypeError("Cannot add initializers after decoration has completed");o.push(l(e||null))};var m=(0,r[p])("accessor"===s?{get:u.get,set:u.set}:u[c],h);if("accessor"===s){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(i=l(m.get))&&(u.get=i),(i=l(m.set))&&(u.set=i),(i=l(m.init))&&a.unshift(i)}else(i=l(m))&&("field"===s?a.unshift(i):u[c]=i)}d&&Object.defineProperty(d,n.name,u),f=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var n=arguments.length>2,a=0;t.length>a;a++)r=n?t[a].call(e,r):t[a].call(e);return n?r:void 0};import r from"../../../../helpers/decorators/brand";import n from"../../../../helpers/decorators/labelling";import a from"../../../../helpers/decorators/raw";let o=(()=>{let o,l,i=[r("RenderBundleCreator"),a("renderBundle"),n({get:e=>e.renderBundle.label,set:(e,t)=>e.renderBundle.label=t})],s=[];return class{static{l=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,o={value:l},i,{kind:"class",name:l.name,metadata:r},null,s),l=o.value,r&&Object.defineProperty(l,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(l,s)}#e;renderBundle;constructor(e){this.#e=e,this.renderBundle=this.#e}},l})();export{o as RenderBundleCreator};export default o;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BRAND,RAW}from"../../../helpers/types/decoratorHelpers";import RenderEncoderBase from"./commandEncoder/renderEncoderBase";export interface RenderBundleEncoderCreator extends RAW<GPURenderBundleEncoder>,BRAND<"RenderBundleEncoderCreator">{label():string;label<T extends string>(label:T):T}export declare class RenderBundleEncoderCreator extends RenderEncoderBase<GPURenderBundleEncoder>{constructor(device:GPUDevice,renBun:GPURenderBundleEncoder);finish({label}:{label?:string}):void}export default RenderBundleEncoderCreator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,r,n,a,o)=>{function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var c,l=n.kind,s="getter"===l?"get":"setter"===l?"set":"value",d=!t&&e?n.static?e:e.prototype:null,u=t||(d?Object.getOwnPropertyDescriptor(d,n.name):{}),f=!1,p=r.length-1;p>=0;p--){var m={};for(var h in n)m[h]="access"===h?{}:n[h];for(var h in n.access)m.access[h]=n.access[h];m.addInitializer=e=>{if(f)throw new TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var b=(0,r[p])("accessor"===l?{get:u.get,set:u.set}:u[s],m);if("accessor"===l){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(c=i(b.get))&&(u.get=c),(c=i(b.set))&&(u.set=c),(c=i(b.init))&&a.unshift(c)}else(c=i(b))&&("field"===l?a.unshift(c):u[s]=c)}d&&Object.defineProperty(d,n.name,u),f=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var n=arguments.length>2,a=0;t.length>a;a++)r=n?t[a].call(e,r):t[a].call(e);return n?r:void 0};import r from"../../../helpers/decorators/brand";import n from"./commandEncoder/renderEncoderBase";import a from"./renderBundleEncoder/renderBundle";let o=(()=>{let o,i,c=[r("RenderBundleEncoderCreator")],l=[],s=n;return class extends s{static{i=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(s[Symbol.metadata]??null):void 0;e(null,o={value:i},c,{kind:"class",name:i.name,metadata:r},null,l),i=o.value,r&&Object.defineProperty(i,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(i,l)}constructor(e,t){super(e,t)}finish({label:e}){new a(this.encoder.finish({label:e}))}},i})();export{o as RenderBundleEncoderCreator};export default o;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BRAND,RAW}from"../../../helpers/types/decoratorHelpers";import UNSURE from"../../../helpers/types/unsure";import DeviceControls from"../../main/device";import ShaderModuleCreator from"../data/shaderModule";import PipelineLayoutCreator from"./pipelineLayout";export interface RenderPipelineCreator extends RAW<Promise<GPURenderPipeline>>,BRAND<"RenderPipelineCreator">{label():Promise<UNSURE<string>>;label<T extends string>(label:T):Promise<T>}export declare class RenderPipelineCreator{#private;pipeline:Promise<GPURenderPipeline>;labelValue?:string;constructor(device:GPUDevice,optionsOrPipeline:RENDER_PIPELINE_OPTIONS|GPURenderPipeline);init():Promise<unknown>;bindGroupLayout(index:number):Promise<{label():UNSURE<string>;label<T extends string>(label:T):T;"__#1@#bindGroupLayoutDescriptor":GPUBindGroupLayout;"__#1@#label"?:string;bindGroupLayoutDescriptor:GPUBindGroupLayout;labelValue?:string;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean}>}export interface RENDER_PIPELINE_OPTIONS extends GPUObjectDescriptorBase{vertex:VERTEX_STATE;primitive?:GPUPrimitiveState;depthStencil?:DEPTH_STENCIL;multisample?:GPUMultisampleState;fragment?:FRAGMENT_STATE;layout:InstanceType<DeviceControls["PipelineLayout"]>|PipelineLayoutCreator|GPUAutoLayoutMode;async?:boolean}export interface DEPTH_STENCIL{format:GPUTextureFormat;depth?:{write?:boolean;compare?:GPUCompareFunction};stencil?:{front?:STENCIL_FACE_STATE;back?:STENCIL_FACE_STATE;mask?:{read?:GPUStencilValue;write?:GPUStencilValue}};depthBias?:{value?:GPUDepthBias;slopeScale?:number;clamp?:number}}export interface STENCIL_FACE_STATE{compare?:GPUCompareFunction;operation?:{fail?:GPUStencilOperation;depthFail?:GPUStencilOperation;pass?:GPUStencilOperation}}export interface VERTEX_STATE extends PROGRAMMABLE_STAGE{buffers?:Iterable<UNSURE<GPUVertexBufferLayout>>}export interface PROGRAMMABLE_STAGE{module:InstanceType<DeviceControls["ShaderModule"]>|ShaderModuleCreator}export interface FRAGMENT_STATE extends PROGRAMMABLE_STAGE{targets:Iterable<GPUColorTargetState>}export default RenderPipelineCreator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,i,r,n,s)=>{function l(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var a,o=r.kind,p="getter"===o?"get":"setter"===o?"set":"value",c=!t&&e?r.static?e:e.prototype:null,h=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),d=!1,u=i.length-1;u>=0;u--){var m={};for(var f in r)m[f]="access"===f?{}:r[f];for(var f in r.access)m.access[f]=r.access[f];m.addInitializer=e=>{if(d)throw new TypeError("Cannot add initializers after decoration has completed");s.push(l(e||null))};var b=(0,i[u])("accessor"===o?{get:h.get,set:h.set}:h[p],m);if("accessor"===o){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(a=l(b.get))&&(h.get=a),(a=l(b.set))&&(h.set=a),(a=l(b.init))&&n.unshift(a)}else(a=l(b))&&("field"===o?n.unshift(a):h[p]=a)}c&&Object.defineProperty(c,r.name,h),d=!0}),t=this&&this.__runInitializers||function(e,t,i){for(var r=arguments.length>2,n=0;t.length>n;n++)i=r?t[n].call(e,i):t[n].call(e);return r?i:void 0};import i from"../../../helpers/decorators/brand";import r from"../../../helpers/errors";import n from"../../../helpers/decorators/labelling";import s from"../../../helpers/decorators/raw";import l from"../data/bindGroupLayout";const a={topology:"triangle-list",frontFace:"ccw",cullMode:"back"},o={format:"depth24plus",depth:{write:!0,compare:"less"}},p={count:4,alphaToCoverageEnabled:!1};let c=(()=>{let c,h,d=[i("RenderPipelineCreator"),s("pipeline"),n({get:e=>Promise.resolve(e.labelValue),set:async(e,t)=>(await e.pipeline).label=e.labelValue=t})],u=[];return class{static{h=this}static{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,c={value:h},d,{kind:"class",name:h.name,metadata:i},null,u),h=c.value,i&&Object.defineProperty(h,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),t(h,u)}#e;#t;#i;#r;#n={};#s=[];#l=!1;#a=!1;pipeline;labelValue;constructor(e,t){this.#e=e;let i={multisample:p,depthStencil:o,primitive:a};t instanceof GPURenderPipeline||(this.#t=i={...i,...t}),this.#r=t.label,t instanceof GPURenderPipeline?(this.#l=!0,this.#i=Promise.resolve(t)):t?.async?this.#i=e.createRenderPipelineAsync(this.#o()).then(e=>(this.#l=!0,this.#a=!1,this.#p(!0),e)).catch(e=>{throw this.#l=!1,this.#a=!0,this.#p(!1),e}):(this.#l=!0,this.#a=!1,this.#i=Promise.resolve(e.createRenderPipeline(this.#o()))),this.pipeline=this.#i,this.labelValue=this.#r}#p(e){this.#s.splice(0).forEach(t=>t(e))}#c(){let e=this.#t.vertex.module,t={module:e.raw()},i=e.entryPoint();i&&(t.entryPoint=i);let r=e.constants();r&&(t.constants=r);let n=this.#t.vertex.buffers;return n&&(t.buffers=n),t}#h(){let e=this.#t.fragment.module,t={module:e.raw(),targets:this.#t.fragment.targets},i=e.entryPoint();i&&(t.entryPoint=i);let r=e.constants();return r&&(t.constants=r),t}#d(e){return e?{format:e.format,depthWriteEnabled:e.depth?.write,depthCompare:e.depth?.compare,stencilBack:e.stencil?.back,stencilFront:e.stencil?.front,stencilReadMask:e.stencil?.mask?.read,stencilWriteMask:e.stencil?.mask?.write,depthBias:e.depthBias?.value,depthBiasClamp:e.depthBias?.clamp,depthBiasSlopeScale:e.depthBias?.slopeScale}:{format:"depth24plus"}}#o(){if(!this.#t?.vertex?.module)throw r(40,"RenderPipeline requires a vertex shader module.","Pass vertex.module when constructing RenderPipelineCreator.");if(!this.#t?.layout)throw r(41,"RenderPipeline requires a pipeline layout or auto layout mode.","Pass a PipelineLayout wrapper or a valid GPUAutoLayoutMode.");let e={layout:this.#t.layout.raw()??this.#t?.layout,vertex:this.#c()};return this.#t.fragment?.module&&(e.fragment=this.#h()),this.#t.depthStencil&&(e.depthStencil=this.#d(this.#t?.depthStencil)),this.#t.multisample&&(e.multisample=this.#t.multisample),this.#t.primitive&&(e.primitive=this.#t.primitive),this.#t.label&&(e.label=this.#t.label),e}init(){return this.#l?Promise.resolve(!0):this.#a?Promise.reject(r(42,"RenderPipeline initialization failed.","Inspect the pipeline descriptor, shader entry points, and GPU validation messages for the original failure.")):new Promise((e,t)=>{this.#s.push(i=>{i?e(i):t(i)})})}async bindGroupLayout(e){return this.#n[e]?this.#n[e]:this.#n[e]=new l(this.#e,(await this.#i).getBindGroupLayout(e))}},h})();export{c as RenderPipelineCreator};export default c;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BRAND,RAW}from"../../../helpers/types/decoratorHelpers";import UNSURE from"../../../helpers/types/unsure";export interface SamplerCreator extends RAW<GPUSampler>,BRAND<"SamplerCreator">{label():UNSURE<string>;label<T extends string>(label:T):T}export declare class SamplerCreator{#private;sampler:GPUSampler;labelValue?:string;constructor(device:GPUDevice,optionsOrSampler:GPUSamplerDescriptor|GPUSampler)}export default SamplerCreator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=this&&this.__esDecorate||((e,t,r,a,l,s)=>{function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var o,n=a.kind,c="getter"===n?"get":"setter"===n?"set":"value",p=!t&&e?a.static?e:e.prototype:null,u=t||(p?Object.getOwnPropertyDescriptor(p,a.name):{}),m=!1,f=r.length-1;f>=0;f--){var b={};for(var d in a)b[d]="access"===d?{}:a[d];for(var d in a.access)b.access[d]=a.access[d];b.addInitializer=e=>{if(m)throw new TypeError("Cannot add initializers after decoration has completed");s.push(i(e||null))};var h=(0,r[f])("accessor"===n?{get:u.get,set:u.set}:u[c],b);if("accessor"===n){if(void 0===h)continue;if(null===h||"object"!=typeof h)throw new TypeError("Object expected");(o=i(h.get))&&(u.get=o),(o=i(h.set))&&(u.set=o),(o=i(h.init))&&l.unshift(o)}else(o=i(h))&&("field"===n?l.unshift(o):u[c]=o)}p&&Object.defineProperty(p,a.name,u),m=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var a=arguments.length>2,l=0;t.length>l;l++)r=a?t[l].call(e,r):t[l].call(e);return a?r:void 0};import r from"../../../helpers/decorators/brand";import a from"../../../helpers/decorators/labelling";import l from"../../../helpers/decorators/raw";let s=(()=>{let s,i,o=[r("SamplerCreator"),l("sampler"),a({get:e=>e.labelValue,set:(e,t)=>e.sampler.label=e.labelValue=t})],n=[];return class{static{i=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,s={value:i},o,{kind:"class",name:i.name,metadata:r},null,n),i=s.value,r&&Object.defineProperty(i,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(i,n)}#e;#t;sampler;labelValue;constructor(e,t){this.#e=t instanceof GPUSampler?t:e.createSampler(t),t?.label&&(this.#e.label=this.#t=t.label),this.sampler=this.#e,this.labelValue=this.#t}},i})();export{s as SamplerCreator};export default s;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare const BufferUsage:GPUBufferUsage;export default BufferUsage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=GPUBufferUsage;export default e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare const TextureUsage:GPUTextureUsage;export default TextureUsage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=GPUTextureUsage;export default e;
|
package/dist/device.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import BindGroupLayoutCreator from"./main classes/bindGroupLayout";import BufferCreator,{BUFFER_CONSTRUCTION_OPTIONS}from"./main classes/buffers";import PipelineLayoutCreator,{PIPELINE_LAYOUT_OPTIONS}from"./main classes/pipelineLayout";import RenderPipelineCreator,{RENDER_PIPELINE_OPTIONS}from"./main classes/renderPipeline";import SamplerCreator from"./main classes/sampler";import ShaderModuleCreator,{SHADER_MODULE_OPTIONS}from"./main classes/shaderModule";import TextureCreator,{TEXTURE_CREATOR_OPTIONS}from"./main classes/texture";import BindGroupCreator,{BIND_GROUP_OPTIONS}from"./main classes/bindGroup";import ComputePipelineCreator,{COMPUTE_PIPELINE_OPTION}from"./main classes/computePipeline";import QuerySetCreator from"./main classes/querySet";export default class DeviceControls{#private;constructor(device:GPUDevice);readonly Buffer:{new(options?:BUFFER_CONSTRUCTION_OPTIONS):{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#bufferUsage":number;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#usageChanged":boolean;"__#private@#label"?:string;"__#private@#readComplete":boolean;"__#private@#onReadCompleteQueues":(Function)[];"__#private@#usageOptions":import("./main classes/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#private@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("./main classes/buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():import("./helpers/types/unsure").default<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#private@#ensureReady"():Promise<void>;get can():{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("./main classes/buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("./main classes/buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator};from(buf:GPUBuffer):Promise<BufferCreator>};readonly Texture:{new(options:TEXTURE_CREATOR_OPTIONS):{"__#private@#device":GPUDevice;"__#private@#texture":GPUTexture;"__#private@#view":import("./main classes/texture/textureView").default;"__#private@#options":TEXTURE_CREATOR_OPTIONS|undefined;"__#private@#value"?:GPUAllowSharedBufferSource;"__#private@#destroyed":boolean;"__#private@#usageOptions":import("./main classes/texture/textureUsageOptions").default;"__#private@#usage":number;"__#private@#usageChanged":boolean;readonly View:{new():{"__#private@#view":GPUTextureView;label():string;label<T extends string>(label:T):T;raw():GPUTextureView}};"__#private@#dirty":boolean;value():GPUAllowSharedBufferSource|undefined;value<T extends GPUAllowSharedBufferSource>(data:T):T;get can():{copy:{read:boolean;write:boolean};binding:{texture:boolean;storage:boolean};renderAttachment:boolean};"__#private@#write"(data:GPUAllowSharedBufferSource):void;"__#private@#recreate"():void;sync():void;raw():GPUTexture;view():import("./main classes/texture/textureView").default;copyToBuffer(destination:import("./main classes/texture").BUFFER_COPY_TARGET|GPUBuffer,options?:import("./main classes/texture").TEXTURE_TO_BUFFER_OPTIONS):void;copyToTexture(destination:import("./main classes/texture").TEXTURE_COPY_TARGET|GPUTexture,options?:import("./main classes/texture").TEXTURE_TO_TEXTURE_OPTIONS):void;aspect():number;resize(newWidth:number,newHeight:number,newDepthOrArrayLayers?:number):void;destroy():boolean;destroy<T extends boolean>(val:T):T;label():import("./helpers/types/unsure").default<string>;label<T extends string>(label:T):T;textureUsage():TextureCreator.bufferUsage.RETURNS;textureUsage<T extends number>(usage:T):T;textureUsage(usage:import("./main classes/texture/textureUsageOptions").default):number;readonly __brand:"TextureCreator";[Symbol.hasInstance](instance:TextureCreator):instance is TextureCreator};fromURL(url:string):Promise<TextureCreator>;from(gputexture:GPUTexture):TextureCreator;fromBitmap(bitmap:ImageBitmap):Promise<{"__#private@#device":GPUDevice;"__#private@#texture":GPUTexture;"__#private@#view":import("./main classes/texture/textureView").default;"__#private@#options":TEXTURE_CREATOR_OPTIONS|undefined;"__#private@#value"?:GPUAllowSharedBufferSource;"__#private@#destroyed":boolean;"__#private@#usageOptions":import("./main classes/texture/textureUsageOptions").default;"__#private@#usage":number;"__#private@#usageChanged":boolean;readonly View:{new():{"__#private@#view":GPUTextureView;label():string;label<T extends string>(label:T):T;raw():GPUTextureView}};"__#private@#dirty":boolean;value():GPUAllowSharedBufferSource|undefined;value<T extends GPUAllowSharedBufferSource>(data:T):T;get can():{copy:{read:boolean;write:boolean};binding:{texture:boolean;storage:boolean};renderAttachment:boolean};"__#private@#write"(data:GPUAllowSharedBufferSource):void;"__#private@#recreate"():void;sync():void;raw():GPUTexture;view():import("./main classes/texture/textureView").default;copyToBuffer(destination:import("./main classes/texture").BUFFER_COPY_TARGET|GPUBuffer,options?:import("./main classes/texture").TEXTURE_TO_BUFFER_OPTIONS):void;copyToTexture(destination:import("./main classes/texture").TEXTURE_COPY_TARGET|GPUTexture,options?:import("./main classes/texture").TEXTURE_TO_TEXTURE_OPTIONS):void;aspect():number;resize(newWidth:number,newHeight:number,newDepthOrArrayLayers?:number):void;destroy():boolean;destroy<T extends boolean>(val:T):T;label():import("./helpers/types/unsure").default<string>;label<T extends string>(label:T):T;textureUsage():TextureCreator.bufferUsage.RETURNS;textureUsage<T extends number>(usage:T):T;textureUsage(usage:import("./main classes/texture/textureUsageOptions").default):number;readonly __brand:"TextureCreator";[Symbol.hasInstance](instance:TextureCreator):instance is TextureCreator}>};readonly Sampler:{new(options?:GPUSamplerDescriptor):{"__#private@#sampler":GPUSampler;"__#private@#label"?:string;raw():GPUSampler;label():import("./helpers/types/unsure").default<string>;label<T extends string>(label:string):T;readonly __brand:"SamplerCreator";[Symbol.hasInstance](instance:SamplerCreator):instance is SamplerCreator};from(sampler:GPUSampler):SamplerCreator};readonly ShaderModule:{new(code:string,options?:SHADER_MODULE_OPTIONS):{"__#private@#module":GPUShaderModule;"__#private@#code":string|undefined;"__#private@#device":GPUDevice;"__#private@#label":string;"__#private@#hints"?:Iterable<GPUShaderModuleCompilationHint>;"__#private@#entryPoint"?:string;"__#private@#constants"?:Record<string,number>;raw():GPUShaderModule;label():string;label<T extends string>(label:T):T;entryPoint():import("./helpers/types/unsure").default<string>;constants():import("./helpers/types/unsure").default<Record<string,number>>;code():string|undefined;compilationInfo():Promise<GPUCompilationInfo>;"__#private@#ciCache"?:GPUCompilationInfo;bindGroups():Set<number>;"__#private@#cbgCache"?:Set<number>;readonly __brand:"ShaderModuleCreator";[Symbol.hasInstance](instance:ShaderModuleCreator):instance is ShaderModuleCreator};from(sm:GPUShaderModule):ShaderModuleCreator};readonly BindGroupLayout:{new(options:GPUBindGroupLayoutDescriptor):{"__#private@#bindGroupLayoutDescriptor":GPUBindGroupLayout;"__#private@#label"?:string;label():import("./helpers/types/unsure").default<string>;label<T extends string>(label:T):T;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:BindGroupLayoutCreator):instance is BindGroupLayoutCreator};from(bgl:GPUBindGroupLayout):BindGroupLayoutCreator};readonly BindGroup:{new(options:BIND_GROUP_OPTIONS):{"__#private@#bindGroup":GPUBindGroup;"__#private@#label"?:string;"__#private@#layout":import("./helpers/types/unsure").default<BindGroupLayoutCreator|import("./helpers/types/DCMember").default<"BindGroupLayout">>;"__#private@#buildOptions"(options:BIND_GROUP_OPTIONS):GPUBindGroupDescriptor;layout():import("./helpers/types/unsure").default<{"__#private@#bindGroupLayoutDescriptor":GPUBindGroupLayout;"__#private@#label"?:string;label():import("./helpers/types/unsure").default<string>;label<T extends string>(label:T):T;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:BindGroupLayoutCreator):instance is BindGroupLayoutCreator}|BindGroupLayoutCreator>;readonly __brand:"BindGroupCreator";raw():GPUBindGroup;label():import("./helpers/types/unsure").default<string>;label<T extends string>(label:T):T;[Symbol.hasInstance](instance:BindGroupCreator):instance is BindGroupCreator};from(bindGroup:GPUBindGroup):BindGroupCreator};readonly RenderPipeline:{new(options:RENDER_PIPELINE_OPTIONS):{"__#private@#device":GPUDevice;"__#private@#options"?:RENDER_PIPELINE_OPTIONS;"__#private@#pipeline":Promise<GPURenderPipeline>;"__#private@#label"?:string;"__#private@#gblcache":Record<number,InstanceType<DeviceControls["BindGroupLayout"]>>;"__#private@#initWaiters":((bool:boolean)=>any)[];"__#private@#pipelineCreated":boolean;"__#private@#buildVertexState"():GPUVertexState;"__#private@#buildFragmentState"():GPUFragmentState;"__#private@#buildDepthStencil"(depthstencil?:import("./main classes/renderPipeline").DEPTH_STENCIL):GPUDepthStencilState;"__#private@#buildPipelineDescriptor"():GPURenderPipelineDescriptor;init():Promise<unknown>;label():Promise<import("./helpers/types/unsure").default<string>>;label<T extends string>(label:T):Promise<T>;bindGroupLayout(index:number):Promise<{"__#private@#bindGroupLayoutDescriptor":GPUBindGroupLayout;"__#private@#label"?:string;label():import("./helpers/types/unsure").default<string>;label<T extends string>(label:T):T;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:BindGroupLayoutCreator):instance is BindGroupLayoutCreator}>;raw():Promise<GPURenderPipeline>;readonly __brand:"RenderPipelineCreator";[Symbol.hasInstance](instance:RenderPipelineCreator):instance is RenderPipelineCreator};from(grp:GPURenderPipeline):RenderPipelineCreator};readonly ComputePipeline:{new(options:COMPUTE_PIPELINE_OPTION):{"__#private@#computePipeline":Promise<GPUComputePipeline>;"__#private@#label"?:string;"__#private@#initWaiters":((bool:boolean)=>void)[];"__#private@#pipelineCreated":boolean;"__#private@#buildDescriptor"(options:COMPUTE_PIPELINE_OPTION):GPUComputePipelineDescriptor;init():Promise<boolean>;readonly __brand:"ComputePipelineCreator";label():Promise<import("./helpers/types/unsure").default<string>>;label<T extends string>(label:T):Promise<T>;raw():Promise<GPUComputePipeline>;[Symbol.hasInstance](instance:ComputePipelineCreator):instance is ComputePipelineCreator};from(computePipeline:GPUComputePipeline):ComputePipelineCreator};readonly PipelineLayout:{new(options?:PIPELINE_LAYOUT_OPTIONS):{"__#private@#label"?:string;"__#private@#pipelineLayout":GPUPipelineLayout;"__#private@#buildFromOptions"(options:PIPELINE_LAYOUT_OPTIONS):GPUPipelineLayoutDescriptor;label():import("./helpers/types/unsure").default<string>;label<T extends string>(label:T):T;readonly __brand:"PipelineLayoutCreator";raw():GPUPipelineLayout;[Symbol.hasInstance](instance:PipelineLayoutCreator):instance is PipelineLayoutCreator};from(pl:GPUPipelineLayout):PipelineLayoutCreator};readonly QuerySet:{new(options:GPUQuerySetDescriptor):{"__#private@#qs":GPUQuerySet;"__#private@#device":GPUDevice;"__#private@#descriptor":GPUQuerySetDescriptor;"__#private@#destroyed":boolean;destroy():boolean;destroy<T extends boolean>(destroy:T):T;readonly __brand:"QuerySetCreator";raw():GPUQuerySet;label():string;label<T extends string>(label:T):T;[Symbol.hasInstance](instance:QuerySetCreator):instance is QuerySetCreator}};raw():GPUDevice}
|
package/dist/device.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0});const t=e(require("./main classes/bindGroupLayout")),r=e(require("./main classes/buffers")),s=e(require("./main classes/pipelineLayout")),a=e(require("./main classes/renderPipeline")),u=e(require("./main classes/sampler")),i=e(require("./main classes/shaderModule")),n=e(require("./main classes/texture")),o=e(require("./main classes/bindGroup")),c=e(require("./main classes/computePipeline")),l=e(require("./helpers/errors")),d=e(require("./main classes/querySet"));exports.default=class{constructor(e){this.#e=e,this.Buffer=class extends r.default{constructor(t){super(e,t)}static async from(t){if(!(t.usage&GPUBufferUsage.MAP_READ))throw(0,l.default)(18,"Buffer is not MAP_READ compatible","Ensure GPUBufferUsage.MAP_READ was set during creation.");await t.mapAsync(GPUMapMode.READ);const s=t.getMappedRange();return s.slice(0),t.unmap(),new r.default(e,{value:s,usage:t.usage})}};const f=this;this.Texture=class extends n.default{constructor(t){super(e,t)}static async fromURL(t){const r=await fetch(t),s=await r.blob(),a=await createImageBitmap(s),u=new f.Texture({size:[a.width,a.height,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return e.queue.copyExternalImageToTexture({source:a},{texture:u.raw()},[a.width,a.height]),u}static from(t){return new n.default(e,t)}static async fromBitmap(t){const r=new f.Texture({size:[t.width,t.height,1],format:"rgba8unorm",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return e.queue.copyExternalImageToTexture({source:t},{texture:r.raw()},[t.width,t.height]),r}},this.Sampler=class extends u.default{constructor(t={magFilter:"linear",minFilter:"linear"}){super(e,t)}static from(t){return new u.default(e,t)}},this.ShaderModule=class extends i.default{constructor(t,r){super(e,t,r)}static from(t){return new i.default(e,t)}},this.RenderPipeline=class extends a.default{constructor(t){super(e,t)}static from(t){return new a.default(e,t)}},this.BindGroupLayout=class extends t.default{constructor(t){super(e,t)}static from(r){return new t.default(e,r)}},this.PipelineLayout=class extends s.default{constructor(t={}){super(e,t)}static from(t){return new s.default(e,t)}},this.BindGroup=class extends o.default{constructor(t){super(e,t)}static from(t){return new o.default(e,t)}},this.ComputePipeline=class extends c.default{constructor(t){super(e,t)}static from(t){return new c.default(e,t)}},this.QuerySet=class extends d.default{constructor(t){super(e,t)}}}#e;Buffer;Texture;Sampler;ShaderModule;BindGroupLayout;BindGroup;RenderPipeline;ComputePipeline;PipelineLayout;QuerySet;raw(){return this.#e}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const align:(n:number,alignment:number)=>number;export default align;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const align=(t,a)=>Math.ceil(t/a)*a;export default align;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function brand(str:string):(target:any,context:ClassDecoratorContext)=>void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function e(e){return(n,r)=>{n.prototype.__brand=e,Object.defineProperty(n,Symbol.hasInstance,{value:n=>n?.__brand===e,configurable:!0})}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
type LABEL_CONFIG<T>={get:(instance:T)=>unknown;set:(instance:T,label:string)=>unknown};export default function labeling<T>(config:LABEL_CONFIG<T>):(target:any,context:ClassDecoratorContext)=>void;export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function t(t){return function(e,n){e.prototype.label=function(e){return void 0===e?t.get(this):t.set(this,e)}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function raw(key:string):<T extends{new(...args:any[]):{}}>(target:T,context:ClassDecoratorContext)=>{new(...args:any[]):{raw():any}}&T;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function t(t){return function(n,r){return class extends n{raw(){return this[t]}}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare const defaults:{bufferUsage:number;textureUsage:number};export default defaults;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e={bufferUsage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,textureUsage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST};export default e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare class AndromedaError extends Error{readonly code:`AGPU_${number}`;constructor(code:number,message:string,hint?:string)};/**;* Creates an {@link AndromedaError} with a standardized message format.;*/;export default function error(code:number,message:string,hint?:string):AndromedaError;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export class AndromedaError extends Error{code;constructor(r,t,o){super(`${t}\nHint: ${o??"No Hint"}\nVisit docs at https://briklab-docs.pages.dev/packages/@andromeda-gpu/bindings/ecodes/introduction.html`),this.name="AGPU_"+r,this.code="AGPU_"+r,Object.setPrototypeOf(this,AndromedaError.prototype)}}export default function r(r,t,o){return new AndromedaError(r,t,o)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function getBindGroups(code:string):Set<Readonly<number>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const t=/@group\(([\d]+)\)/g;export default function n(n){const e=[...n.matchAll(t)].map(t=>+t[1]);return new Set(e)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DeviceControls from"../../classes/main/device";type CLASS_KEYS<T>={[K in keyof T]:T[K]extends abstract new(...args:any)=>any?K:never}[keyof T];type DC_MEMBER<K extends CLASS_KEYS<DeviceControls>>=DeviceControls[K]extends abstract new(...args:any)=>infer R?R:never;export default DC_MEMBER;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export interface RAW<T>{raw():T}export interface BRAND<T extends string>{readonly __brand:T;[Symbol.hasInstance](instance:any):boolean}export interface LABEL{label():string;label<T extends string>(val:T):T}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
type NULLISH=undefined|null;export default NULLISH;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import NULLISH from"./nullish";type UNSURE<T>=T|NULLISH;export default UNSURE;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import BufferUsage from"./constants/bufferusage";import TextureUsage from"./constants/textureusage";import WebGPUControls from"./classes/main/webgpucontrols";export{WebGPUControls,BufferUsage,TextureUsage};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"./constants/bufferusage";import t from"./constants/textureusage";import r from"./classes/main/webgpucontrols";export{r as WebGPUControls,o as BufferUsage,t as TextureUsage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DC_MEMBER from"../helpers/types/DCMember";import UNSURE from"../helpers/types/unsure";import BindGroupLayoutCreator from"./bindGroupLayout";import BufferCreator from"./buffers";import SamplerCreator from"./sampler";import TextureCreator from"./texture";export declare class BindGroupCreator{#private;constructor(device:GPUDevice,options:BIND_GROUP_OPTIONS|GPUBindGroup);layout():UNSURE<{"__#private@#bindGroupLayoutDescriptor":GPUBindGroupLayout;"__#private@#label"?:string;label():UNSURE<string>;label<T extends string>(label:T):T;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:BindGroupLayoutCreator):instance is BindGroupLayoutCreator}|BindGroupLayoutCreator>;[Symbol.hasInstance](instance:BindGroupCreator):instance is BindGroupCreator;readonly __brand="BindGroupCreator";raw():GPUBindGroup;label():UNSURE<string>;label<T extends string>(label:T):T}export default BindGroupCreator;export interface BIND_GROUP_OPTIONS extends GPUObjectDescriptorBase{layout:BindGroupLayoutCreator|DC_MEMBER<"BindGroupLayout">;entries:{binding:number;resource:TextureCreator|DC_MEMBER<"Texture">|BufferCreator|DC_MEMBER<"Buffer">|SamplerCreator|DC_MEMBER<"Sampler">}[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.BindGroupCreator=void 0;class r{#r;#t;#e;constructor(r,t){this.#r=t.layout?r.createBindGroup(this.#o(t)):t,this.#t=t.label,this.#e=t.layout}#o(r){return{layout:r.layout.raw(),entries:r.entries.map(r=>({binding:r.binding,resource:r.resource.raw()})),label:r.label}}layout(){return this.#e}[Symbol.hasInstance](r){return"BindGroupCreator"===r.__brand}__brand="BindGroupCreator";raw(){return this.#r}label(r){return void 0===r?this.#t:this.#r.label=this.#t=r}}exports.BindGroupCreator=r,exports.default=r;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import UNSURE from"../helpers/types/unsure";export default class BindGroupLayoutCreator{#private;constructor(device:GPUDevice,bgldOrBgl:GPUBindGroupLayoutDescriptor|GPUBindGroupLayout);label():UNSURE<string>;label<T extends string>(label:T):T;raw():GPUBindGroupLayout;readonly __brand="BindGroupLayoutCreator";[Symbol.hasInstance](instance:BindGroupLayoutCreator):instance is BindGroupLayoutCreator}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class t{#t;#r;constructor(t,r){this.#t=r instanceof GPUBindGroupLayout?r:t.createBindGroupLayout(r),this.#r=r.label}label(t){return void 0===t?this.#r:this.#t.label=this.#r=t}raw(){return this.#t}__brand="BindGroupLayoutCreator";[Symbol.hasInstance](t){return"BindGroupLayoutCreator"===t.__brand}}exports.default=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export interface BUFFER_COPY_OPTIONS{read?:boolean;write?:boolean}export interface BUFFER_BINDING_OPTIONS{vertex?:boolean;index?:boolean;uniform?:boolean;storage?:boolean;indirect?:boolean}export interface BUFFER_MAP_OPTIONS{read?:boolean;write?:boolean}export interface BUFFER_USAGE_OPTIONS{copy?:BUFFER_COPY_OPTIONS|boolean;buffer?:BUFFER_BINDING_OPTIONS;map?:BUFFER_MAP_OPTIONS|boolean;queryable?:boolean}export default BUFFER_USAGE_OPTIONS;export declare function getBufferUsage(options?:BUFFER_USAGE_OPTIONS):number;export declare function getOptionsFromUsage(usage:number):BUFFER_USAGE_OPTIONS;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getBufferUsage=(e={})=>{let f=0,r=e.copy;r&&("boolean"==typeof r?(f|=GPUBufferUsage.COPY_DST,f|=GPUBufferUsage.COPY_SRC):(r.read&&(f|=GPUBufferUsage.COPY_SRC),r.write&&(f|=GPUBufferUsage.COPY_DST)));let U=e.buffer;U&&(U.index&&(f|=GPUBufferUsage.INDEX),U.indirect&&(f|=GPUBufferUsage.INDIRECT),U.storage&&(f|=GPUBufferUsage.STORAGE),U.uniform&&(f|=GPUBufferUsage.UNIFORM),U.vertex&&(f|=GPUBufferUsage.VERTEX));let a=e.map;return a&&("boolean"==typeof a?(f|=GPUBufferUsage.MAP_READ,f|=GPUBufferUsage.MAP_WRITE):(a.read&&(f|=GPUBufferUsage.MAP_READ),a.write&&(f|=GPUBufferUsage.MAP_WRITE))),e.queryable&&(f|=GPUBufferUsage.QUERY_RESOLVE),f},exports.getOptionsFromUsage=e=>{const f={},r=!!(e&GPUBufferUsage.COPY_SRC),U=!!(e&GPUBufferUsage.COPY_DST);r&&U?f.copy=!0:(r||U)&&(f.copy={read:r,write:U});const a={};e&GPUBufferUsage.INDEX&&(a.index=!0),e&GPUBufferUsage.INDIRECT&&(a.indirect=!0),e&GPUBufferUsage.STORAGE&&(a.storage=!0),e&GPUBufferUsage.UNIFORM&&(a.uniform=!0),e&GPUBufferUsage.VERTEX&&(a.vertex=!0),Object.keys(a).length>0&&(f.buffer=a);const s=!!(e&GPUBufferUsage.MAP_READ),P=!!(e&GPUBufferUsage.MAP_WRITE);return s&&P?f.map=!0:(s||P)&&(f.map={read:s,write:P}),e&GPUBufferUsage.QUERY_RESOLVE&&(f.queryable=!0),f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import UNSURE from"../helpers/types/unsure";import BUFFER_USAGE_OPTIONS from"./buffers/bufferUsageOptions";export interface BUFFER_CONSTRUCTION_OPTIONS extends GPUObjectDescriptorBase{value?:GPUAllowSharedBufferSource;usage?:BUFFER_USAGE_OPTIONS|number}export declare const bufferDestroyedError:import("../helpers/errors").AndromedaError;export declare const cannotBeRead:import("../helpers/errors").AndromedaError;export declare const initCannotRead:import("../helpers/errors").AndromedaError;export declare const initCouldNotAssignValue:import("../helpers/errors").AndromedaError;export declare const couldNotAssignValue:import("../helpers/errors").AndromedaError;export declare const cannotBeWrittenTo:import("../helpers/errors").AndromedaError;export declare const otherCannotBeWrittenTo:import("../helpers/errors").AndromedaError;export declare const otherTextureCannotBeWrittenTo:import("../helpers/errors").AndromedaError;export interface TEXTURE_COPY_DESTINATION{raw():GPUTexture;can:{copy:{write:boolean}}}export interface BUFFER_TO_TEXTURE_OPTIONS{offset?:number;bytesPerRow?:number;rowsPerImage?:number;origin?:GPUOrigin3D;mipLevel?:number;aspect?:GPUTextureAspect;size?:GPUExtent3D}export declare class BufferCreator{#private;constructor(device:GPUDevice,options?:BUFFER_CONSTRUCTION_OPTIONS);raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:BUFFER_USAGE_OPTIONS):number;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;get can():{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:TEXTURE_COPY_DESTINATION|GPUTexture,options?:BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator;readonly __brand="BufferCreator"}export declare namespace BufferCreator{namespace bufferUsage{interface RETURNS extends BUFFER_USAGE_OPTIONS{number:number}}}export default BufferCreator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function e(e,t,r,s){let i={size:t.byteLength,usage:r,label:s};return s&&(i.label=s),e.createBuffer(i)}function t(e){return"function"==typeof e.raw}var r=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.BufferCreator=exports.otherTextureCannotBeWrittenTo=exports.otherCannotBeWrittenTo=exports.cannotBeWrittenTo=exports.couldNotAssignValue=exports.initCouldNotAssignValue=exports.initCannotRead=exports.cannotBeRead=exports.bufferDestroyedError=void 0;const s=r(require("../helpers/defaults")),i=r(require("../helpers/align")),o=r(require("../helpers/errors")),n=require("./buffers/bufferUsageOptions"),a=require("./texture/textureUsageOptions"),u=require("./buffers/bufferUsageOptions");exports.bufferDestroyedError=(0,o.default)(1,"The buffer is already destroyed!"),exports.cannotBeRead=(0,o.default)(3,"Buffer cannot be read"),exports.initCannotRead=(0,o.default)(4,"Buffer could not be initialized since the given buffer cannot be read"),exports.initCouldNotAssignValue=(0,o.default)(5,"Buffer could not be initialized since the flag 'usage.copy.write' is false or undefined"),exports.couldNotAssignValue=(0,o.default)(6,"Buffer.value didnt work as the flag 'usage.copy.write' is set to false."),exports.cannotBeWrittenTo=(0,o.default)(7,"Buffer could not be copied because the flag 'usage.copy.write' is disabled in it"),exports.otherCannotBeWrittenTo=(0,o.default)(8,"Buffer could not be copied since the other buffer doesnt allow so."),exports.otherTextureCannotBeWrittenTo=(0,o.default)(10,"Buffer could not be copied since the other texture doesnt allow writing to it");const f={r8unorm:1,r8snorm:1,r8uint:1,r8sint:1,r16uint:2,r16sint:2,r16float:2,rg8unorm:2,rgba8unorm:4,"rgba8unorm-srgb":4,bgra8unorm:4,rg16float:4,r32float:4,rgba16float:8,rg32float:8,rgba32float:16};class h{#e;#t;#r;#s;#i=!1;#o=!1;#n=!1;#a;#u;#f=[];#h;constructor(t,r){if(r?.value&&!(r?.usage).copy)throw exports.initCouldNotAssignValue;if(this.#t=t,this.#h="object"==typeof r?.usage?r.usage:"number"==typeof r?.usage?(0,n.getOptionsFromUsage)(r.usage):{},this.#a=r?.label,this.#r=r?.value??new Float32Array(16),this.#s="object"==typeof r?.usage?(0,u.getBufferUsage)(r?.usage):"number"==typeof r?.usage?r?.usage:s.default.bufferUsage,this.#e=e(t,this.#r,this.#s,this.#a),this.#t.queue.writeBuffer(this.#e,0,this.#r),!this.#d())throw(0,o.default)(18,"Buffer flag validation error");this.#u=!0}#d(){const e=this.can,t=this.#r,r=t.byteLength;if(e.beBoundAs.index&&!(t instanceof Uint32Array||t instanceof Uint16Array))return!1;if(e.beBoundAs.indirect&&!(t instanceof Uint32Array))return!1;if(e.beBoundAs.vertex&&r%4!=0)return!1;if(e.beBoundAs.uniform){if(r%16!=0)return!1;if(r>65536)return!1}return!e.beBoundAs.storage||r%4==0}raw(){return this.#e}[Symbol("Symbol.disposable")](){this.destroy(!0)}destroy(t){return void 0===t?this.#o:!(!this.#o||!t)||(!this.#o&&t?(this.#o=!0,this.#e.destroy(),!0):!(!this.#o&&!t)&&(this.#o&&!t?(this.#e=e(this.#t,this.#r,this.#s,this.#a),this.#t.queue.writeBuffer(this.#e,0,this.#r),this.#o=!1,!1):this.#o))}bufferUsage(e){if(this.#o)throw exports.bufferDestroyedError;return void 0===e?{number:this.#s,...this.#h}:(e!==this.#s&&(this.#n=!0,this.#i=!0,"number"==typeof e?(this.#s=e,this.#h=(0,n.getOptionsFromUsage)(e)):(this.#s=(0,u.getBufferUsage)(e),this.#h=e)),"number"==typeof e?e:(0,u.getBufferUsage)(e))}value(e){if(this.#o)throw exports.bufferDestroyedError;return void 0===e?this.#r:(e!==this.#r&&(this.#r=e,this.#i=!0),e)}label(e){if(this.#o)throw exports.bufferDestroyedError;return void 0===e?this.#a??this.#e.label:(e!==this.#a&&(this.#a=e,this.#e.label=e),e)}sync(){if(this.#o)throw exports.bufferDestroyedError;if(!this.#i)return;const t=this.#e.size,r=this.#r.byteLength,s=this.#n;if((r>t||s)&&(this.#e.destroy(),this.#e=e(this.#t,this.#r,this.#s,this.#a)),!this.can.copy.write)throw exports.couldNotAssignValue;this.#t.queue.writeBuffer(this.#e,0,this.#r,0,r),this.#n=!1,this.#i=!1}async read(){if(!this.can.map.read)throw exports.cannotBeRead;const e=this.#t.createBuffer({size:this.#e.size,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),t=this.#t.createCommandEncoder();t.copyBufferToBuffer(this.#e,0,e,0,this.#e.size),this.#t.queue.submit([t.finish()]),await e.mapAsync(GPUMapMode.READ);const r=e.getMappedRange().slice();return e.unmap(),e.destroy(),r}async#c(){if(!this.#u)return new Promise(e=>{this.#f.push(()=>e())})}get can(){return{copy:{read:!!(this.#s&GPUBufferUsage.COPY_SRC),write:!!(this.#s&GPUBufferUsage.COPY_DST)},map:{read:!!(this.#s&GPUBufferUsage.MAP_READ),write:!!(this.#s&GPUBufferUsage.MAP_WRITE)},beBoundAs:{index:!!(this.#s&GPUBufferUsage.INDEX),vertex:!!(this.#s&GPUBufferUsage.VERTEX),uniform:!!(this.#s&GPUBufferUsage.UNIFORM),storage:!!(this.#s&GPUBufferUsage.STORAGE),indirect:!!(this.#s&GPUBufferUsage.INDIRECT)},query:!!(this.#s&GPUBufferUsage.QUERY_RESOLVE)}}copyToBuffer(e,t){if(this.#i&&this.sync(),!this.can.copy.read)throw exports.cannotBeRead;if(e instanceof h){if(!e.can.copy.write)throw exports.otherCannotBeWrittenTo}else{const t=(0,n.getOptionsFromUsage)(e.usage);if(!t.copy?.write)throw exports.otherCannotBeWrittenTo}const r=e instanceof h?e.raw():e,s=t??this.#e.size,i=this.#t.createCommandEncoder();i.copyBufferToBuffer(this.#e,0,r,0,s),this.#t.queue.submit([i.finish()])}copyToTexture(e,r={}){if(this.#i&&this.sync(),!this.can.copy.read)throw exports.cannotBeRead;if(t(e)){if(!e.can.copy.write)throw exports.otherTextureCannotBeWrittenTo}else{const t=(0,a.getOptionsFromTextureUsage)(e.usage);if(!1===t.copy||!0!==t.copy&&!t.copy?.write)throw exports.otherTextureCannotBeWrittenTo}const s=t(e)?e.raw():e,o=r.size?(e=>{if("number"==typeof e)return{width:e,height:1,depthOrArrayLayers:1};if(Symbol.iterator in Object(e)){const t=Array.from(e);return{width:t[0]??1,height:t[1]??1,depthOrArrayLayers:t[2]??1}}return{width:e.width,height:e.height??1,depthOrArrayLayers:e.depthOrArrayLayers??1}})(r.size):{width:s.width,height:s.height,depthOrArrayLayers:s.depthOrArrayLayers},n=r.bytesPerRow??(0,i.default)(o.width*(f[s.format]??4),256),u=r.rowsPerImage??o.height,h=this.#t.createCommandEncoder();h.copyBufferToTexture({buffer:this.#e,offset:r.offset,bytesPerRow:n,rowsPerImage:u},{texture:s,origin:r.origin,mipLevel:r.mipLevel,aspect:r.aspect},o),this.#t.queue.submit([h.finish()])}query(e,t=0,r=1,s=0){if(!this.can.query)throw(0,o.default)(9,"The given buffer does not support GPUBufferUsage.QUERY_RESOLVE");const i=this.#t.createCommandEncoder();i.resolveQuerySet(e,t,r,this.#e,s),this.#t.queue.submit([i.finish()]),this.#i=!0}[Symbol.hasInstance](e){return"BufferCreator"===this.__brand}__brand="BufferCreator"}exports.BufferCreator=h,exports.default=h;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DC_MEMBER from"../../helpers/types/DCMember";import UNSURE from"../../helpers/types/unsure";import BindGroupCreator from"../bindGroup";import BufferCreator from"../buffers";import ComputePipelineCreator from"../computePipeline";import QuerySetCreator from"../querySet";import IndirectBufferCreator,{INDIRECT_BUFFER_OPTIONS}from"./renderPass/indirectBuffer";export declare class ComputePassCreator{#private;constructor(device:GPUDevice,cmdencoder:GPUCommandEncoder,options?:COMPUTE_PASS_OPTIONS);bindGroup(index:number,bindGroup:BindGroupCreator|DC_MEMBER<"BindGroup">,dynamicOffsets?:number[]|Uint32Array,dynamicOffsetData?:ComputePassCreator.bindGroup.DYNAMIC_OFFSET_DATA):void;pipeline():Promise<UNSURE<ComputePipelineCreator>>;pipeline<T extends ComputePipelineCreator|DC_MEMBER<"ComputePipeline">>(pipeline:T):Promise<T>;dispatchWorkgroup:((x:number,y:number,z:number)=>void)&{IndirectBuffer:{new(options:INDIRECT_BUFFER_OPTIONS):{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#bufferUsage":number;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#usageChanged":boolean;"__#private@#label"?:string;"__#private@#readComplete":boolean;"__#private@#onReadCompleteQueues":(Function)[];"__#private@#usageOptions":import("../buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#private@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("../buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#private@#ensureReady"():Promise<void>;get can():{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("../buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("../buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator};readonly len:3;from(buffer:BufferCreator|GPUBuffer):Promise<IndirectBufferCreator>};indirect:(buffer:{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#bufferUsage":number;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#usageChanged":boolean;"__#private@#label"?:string;"__#private@#readComplete":boolean;"__#private@#onReadCompleteQueues":(Function)[];"__#private@#usageOptions":import("../buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#private@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("../buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#private@#ensureReady"():Promise<void>;get can():{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("../buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("../buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator},offset:number)=>void};end():void;label():string;label<T extends string>(label:T):T;readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void}}export declare namespace ComputePassCreator{namespace bindGroup{interface DYNAMIC_OFFSET_DATA{start:number;len:number}}}export default ComputePassCreator;export interface COMPUTE_PASS_OPTIONS extends GPUObjectDescriptorBase{timestampRewrites?:TIMESTAMP_REWRITES}export interface TIMESTAMP_REWRITES{querySet:QuerySetCreator|DC_MEMBER<"QuerySet">;passWriteIndex?:{beginning?:number;end?:number}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ComputePassCreator=void 0;const t=e(require("../../helpers/errors")),s=e(require("../buffers")),r=e(require("./renderPass/indirectBuffer"));class i{#e;constructor(e,i,a){this.#e=i.beginComputePass(this.#t(a));class n extends r.default{static len=1;constructor(t){super(e,t)}static async from(t){const i=t instanceof s.default?t:new s.default(e,t),a=i.can,n=await i.value();return a.beBoundAs.indirect=!0,new r.default(e,{value:n??new Uint32Array(this.len),usage:{copy:a.copy,map:a.map,buffer:a.beBoundAs,queryable:a.query}})}}this.dispatchWorkgroup=Object.assign((e,t,s)=>{this.#e.dispatchWorkgroups(e,t,s)},{IndirectBuffer:class extends n{static len=3},indirect:(e,t)=>{this.#e.dispatchWorkgroupsIndirect(e.raw(),t)}}),this.debug={push:e=>{this.#s++,this.#e.pushDebugGroup(e)},pop:()=>{if(0>=this.#s)throw(0,t.default)(17,"debug.pop used before init");this.#e.popDebugGroup(),this.#s--},insertMarker:e=>{this.#e.insertDebugMarker(e)}}}#s=0;#t(e){if(!e)return{};let t={label:e.label};return e.timestampRewrites&&(t.timestampRewrites={querySet:e.timestampRewrites.querySet.raw(),beginningOfPassWriteIndex:e.timestampRewrites.passWriteIndex?.beginning,endOfPassWriteIndex:e.timestampRewrites.passWriteIndex?.end}),t}bindGroup(e,t,s,r){r?this.#e.setBindGroup(e,t.raw(),s,r.start,r.len):this.#e.setBindGroup(e,t.raw())}#r;async pipeline(e){return void 0===e?this.#r:(this.#e.setPipeline(await e.raw()),this.#r=e)}dispatchWorkgroup;end(){this.#e.end()}label(e){return void 0===e?this.#e.label:this.#e.label=e}debug}exports.ComputePassCreator=i,exports.default=i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import BufferCreator,{BUFFER_CONSTRUCTION_OPTIONS}from"../../buffers";import BUFFER_USAGE_OPTIONS,{BUFFER_BINDING_OPTIONS}from"../../buffers/bufferUsageOptions";export default class IndirectBufferCreator extends BufferCreator{constructor(device:GPUDevice,options:INDIRECT_BUFFER_OPTIONS)}export interface INDIRECT_BUFFER_OPTIONS extends BUFFER_CONSTRUCTION_OPTIONS{usage?:INDIRECT_BUFFER_USAGE_OPTIONS;value:GPUAllowSharedBufferSource}export interface INDIRECT_BUFFER_USAGE_OPTIONS extends BUFFER_USAGE_OPTIONS{buffer:INDIRECT_BUFFER_BINDING_OPTIONS}export interface INDIRECT_BUFFER_BINDING_OPTIONS extends BUFFER_BINDING_OPTIONS{indirect?:true}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0});const s=e(require("../../buffers")),u=require("../../buffers/bufferUsageOptions");exports.default=class extends s.default{constructor(e,s){"number"==typeof s.usage&&(s.usage=(0,u.getOptionsFromUsage)(s.usage)),s.usage?.buffer&&(s.usage.buffer.indirect=!0),super(e,s)}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DC_MEMBER from"../../helpers/types/DCMember";import UNSURE from"../../helpers/types/unsure";import BufferCreator from"../buffers";import IndirectBufferCreator,{INDIRECT_BUFFER_OPTIONS}from"./renderPass/indirectBuffer";import QuerySetCreator from"../querySet";import TextureCreator from"../texture";import TextureViewCreator from"../texture/textureView";import BindGroupCreator from"../bindGroup";import RenderPipelineCreator from"../renderPipeline";export interface IndirectBufferConstructor{new(options:INDIRECT_BUFFER_OPTIONS):IndirectBufferCreator;readonly len:number;from(buffer:BufferCreator|GPUBuffer):Promise<IndirectBufferCreator>}export interface DRAW_MACHINE{(vertexCount:number,instanceCount?:number,firstVertex?:number,firstInstance?:number):void;indexed(indexCount:number,instanceCount?:number,firstIndex?:number,baseVertex?:number,firstInstance?:number):void;indexedIndirect(buffer:IndirectBufferCreator,offset?:number):void;indirect(buffer:IndirectBufferCreator,offset?:number):void;IndexedIndirectBuffer:IndirectBufferConstructor;IndirectBuffer:IndirectBufferConstructor}export declare class RenderPassCreator{#private;readonly OcclusionQuery:{new(queryIndex:number):{"__#private@#ended":boolean;end():void}};readonly draw:DRAW_MACHINE;readonly buffer:{index:(buffer:BufferCreator|DC_MEMBER<"Buffer">)=>void;vertex:(slot:number,buffer:BufferCreator|DC_MEMBER<"Buffer">)=>void};readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void};constructor(device:GPUDevice,cmdEncoder:GPUCommandEncoder,options:RENDER_PASS_OPTIONS);end():void;raw():GPURenderPassEncoder;bindGroup(index:number,bindGroup:BindGroupCreator|DC_MEMBER<"BindGroup">,dynamicOffsets?:number[]|Uint32Array,dynamicOffsetData?:RenderPassCreator.bindGroup.DYNAMIC_OFFSET_DATA):void;blendConstant():GPUColor;blendConstant<T extends GPUColor>(color:T):T;scissorRect():[number,number,number?,number?];scissorRect<T extends[number,number,number,number]>(x:T[0],y:T[1],width:T[2],height:T[3]):T;viewport():[number,number,UNSURE<number>,UNSURE<number>,number,number];viewport<T extends[number,number,number,number,number,number]>(x:T[0],y:T[1],width:T[2],height:T[3],minDepth:T[4],maxDepth:T[5]):T;pipeline():Promise<UNSURE<RenderPipelineCreator>>;pipeline<T extends RenderPipelineCreator|DC_MEMBER<"RenderPipeline">>(pipeline:T):Promise<T>;label():string;label<T extends string>(label:T):T}export declare namespace RenderPassCreator{namespace bindGroup{interface DYNAMIC_OFFSET_DATA{start:number;len:number}}}export default RenderPassCreator;export interface RENDER_PASS_OPTIONS extends GPUObjectDescriptorBase{attachment?:RENDER_PASS_OPTIONS.ATTACHMENT;occlusionQuerySet?:QuerySetCreator;timestampRewrites?:RENDER_PASS_OPTIONS.TIMESTAMP_REWRITES;maxDrawCount?:number}export declare namespace RENDER_PASS_OPTIONS{interface ATTACHMENT{depthStencil:ATTACHMENT.DEPTH_STENCIL;color:ATTACHMENT.COLOR[]}interface OPERATIONS{load:GPULoadOp;store:GPUStoreOp}interface TIMESTAMP_REWRITES{querySet:QuerySetCreator|DC_MEMBER<"QuerySet">;passWriteIndex:{beginning?:number;end?:number}}}export declare namespace RENDER_PASS_OPTIONS.ATTACHMENT{interface COLOR{depthSlice?:number;operations:RENDER_PASS_OPTIONS.OPERATIONS;color:GPUColor;texture:RENDER_PASS_OPTIONS.ATTACHMENT.COLOR.TEXTURE}interface DEPTH_STENCIL{view:TextureCreator|DC_MEMBER<"Texture">|TextureViewCreator;depth:RENDER_PASS_OPTIONS.ATTACHMENT.DEPTH_STENCIL.COMMON;stencil:RENDER_PASS_OPTIONS.ATTACHMENT.DEPTH_STENCIL.COMMON}}export declare namespace RENDER_PASS_OPTIONS.ATTACHMENT.DEPTH_STENCIL{interface COMMON{clear?:number;operations?:RENDER_PASS_OPTIONS.OPERATIONS;readonly?:boolean}}export declare namespace RENDER_PASS_OPTIONS.ATTACHMENT.COLOR{interface TEXTURE{view:TextureCreator|DC_MEMBER<"Texture">|TextureViewCreator;resolve?:TextureCreator|DC_MEMBER<"Texture">|TextureViewCreator}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.RenderPassCreator=void 0;const t=e(require("../../helpers/errors")),r=e(require("../buffers")),s=e(require("./renderPass/indirectBuffer"));class i{#e;#t;#r;OcclusionQuery;draw;buffer;debug;#s=0;constructor(e,i,n){this.#e=i.beginRenderPass(this.#i(n));const a=this;this.OcclusionQuery=class{#n=!1;constructor(e){if(!n.occlusionQuerySet)throw(0,t.default)(14,"Occlusion Query Set Not Provided!");void 0!==a.#t&&(a.#e.endOcclusionQuery(),a.#r?.()),a.#t=e,a.#e.beginOcclusionQuery(e),a.#r=()=>{this.#n=!0,this.end()}}end(){this.#n||(this.#n=!0,a.#t=void 0,a.#e.endOcclusionQuery())}};class o extends s.default{static len=1;constructor(t){super(e,t)}static async from(t){const i=t instanceof r.default?t:new r.default(e,t),n=i.can,a=await i.value();return n.beBoundAs.indirect=!0,new s.default(e,{value:a??new Uint32Array(this.len),usage:{copy:n.copy,map:n.map,buffer:n.beBoundAs,queryable:n.query}})}}const d=this.#e.draw.bind(this.#e);this.draw=Object.assign(d,{indexed:this.#e.drawIndexed.bind(this.#e),indexedIndirect:(e,t=0)=>{this.#e.drawIndexedIndirect(e.raw(),t)},indirect:(e,t=0)=>{this.#e.drawIndirect(e.raw(),t)},IndirectBuffer:class extends o{static len=4},IndexedIndirectBuffer:class extends o{static len=5}}),this.buffer={index:e=>{if(!e.can.beBoundAs.index)throw(0,t.default)(22,"A buffer that does not support the GPUBufferUsage.INDEX flag was passed into buffer.index.");this.#e.setIndexBuffer(e.raw(),e.value()instanceof Uint32Array?"uint32":"uint16")},vertex:(e,r)=>{if(!r.can.beBoundAs.vertex)throw(0,t.default)(22,"A buffer that does not support the GPUBufferUsage.VERTEX flag was passed into buffer.vertex.");this.#e.setVertexBuffer(e,r.raw())}},this.debug={push:e=>{this.#s++,this.#e.pushDebugGroup(e)},pop:()=>{if(0>=this.#s)throw(0,t.default)(17,"debug.pop used before init");this.#e.popDebugGroup(),this.#s--},insertMarker:e=>{this.#e.insertDebugMarker(e)}}}#i(e){const t={colorAttachments:[],label:e.label};if(e.attachment?.color&&(t.colorAttachments=e.attachment.color.map(e=>({view:e.texture.view.raw(),resolveTarget:e.texture.resolve?.raw(),depthSlice:e.depthSlice,loadOp:e.operations.load,storeOp:e.operations.store,clearValue:e.color??{r:0,g:0,b:0,a:1}}))),e.attachment?.depthStencil){const r=e.attachment.depthStencil;t.depthStencilAttachment={view:r.view.raw(),depthClearValue:r.depth.clear??1,depthLoadOp:r.depth.operations?.load??"clear",depthStoreOp:r.depth.operations?.store??"store",depthReadOnly:r.depth.readonly??!1,stencilClearValue:r.stencil.clear??0,stencilLoadOp:r.stencil.operations?.load??"clear",stencilStoreOp:r.stencil.operations?.store??"store",stencilReadOnly:r.stencil.readonly??!1}}return e.occlusionQuerySet&&(t.occlusionQuerySet=e.occlusionQuerySet.raw()),e.timestampRewrites&&(t.timestampWrites={querySet:e.timestampRewrites.querySet.raw(),beginningOfPassWriteIndex:e.timestampRewrites.passWriteIndex.beginning,endOfPassWriteIndex:e.timestampRewrites.passWriteIndex.end}),e.maxDrawCount&&(t.maxDrawCount=e.maxDrawCount),t}end(){this.#e.end()}raw(){return this.#e}bindGroup(e,t,r,s){s?this.#e.setBindGroup(e,t.raw(),r,s.start,s.len):this.#e.setBindGroup(e,t.raw())}#a=[0,0,0,0];blendConstant(e){return void 0===e?this.#a:(this.#e.setBlendConstant(e),this.#a=e)}#o=[0,0,void 0,void 0];scissorRect(e,r,s,i){if(void 0===e)return this.#o;if(void 0===r||void 0===s||void 0===i)throw(0,t.default)(20,"scissorRect requires (x, y, width, height) to set.");this.#e.setScissorRect(e,r,s,i);const n=[e,r,s,i];return this.#o=n,n}#d=[0,0,void 0,void 0,0,1];viewport(e,r,s,i,n,a){if(void 0===e)return this.#d;if(void 0===r||void 0===s||void 0===i||void 0===n||void 0===a)throw(0,t.default)(21,"viewport requires 6 arguments (x, y, width, height, minDepth, maxDepth) to set.");this.#e.setViewport(e,r,s,i,n,a);const o=[e,r,s,i,n,a];return this.#d=o,o}#u;async pipeline(e){return void 0===e?this.#u:(this.#e.setPipeline(await e.raw()),this.#u=e)}label(e){return void 0===e?this.#e.label:this.#e.label=e}}exports.RenderPassCreator=i,exports.default=i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DC_MEMBER from"../helpers/types/DCMember";import UNSURE from"../helpers/types/unsure";import BufferCreator from"./buffers";import CommandBufferCreator from"./commandbuffer";import ComputePassCreator,{COMPUTE_PASS_OPTIONS}from"./commandEncoder/computepass";import RenderPassCreator,{RENDER_PASS_OPTIONS}from"./commandEncoder/renderPass";import TextureCreator from"./texture";export declare class CommandEncoderCreator{#private;readonly RenderPass:{new(options:RENDER_PASS_OPTIONS):{"__#private@#renPass":GPURenderPassEncoder;"__#private@#currentOcclusionQueryIndex"?:number;"__#private@#endCurrOcculsionQuery"?:(()=>any)|undefined;readonly OcclusionQuery:{new(queryIndex:number):{"__#private@#ended":boolean;end():void}};readonly draw:import("./commandEncoder/renderPass").DRAW_MACHINE;readonly buffer:{index:(buffer:BufferCreator|DC_MEMBER<"Buffer">)=>void;vertex:(slot:number,buffer:BufferCreator|DC_MEMBER<"Buffer">)=>void};readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void};"__#private@#debugDepth":number;"__#private@#buildDescriptor"(options:RENDER_PASS_OPTIONS):GPURenderPassDescriptor;end():void;raw():GPURenderPassEncoder;bindGroup(index:number,bindGroup:import("./bindGroup").BindGroupCreator|DC_MEMBER<"BindGroup">,dynamicOffsets?:number[]|Uint32Array,dynamicOffsetData?:RenderPassCreator.bindGroup.DYNAMIC_OFFSET_DATA):void;"__#private@#blendConstant":GPUColor;blendConstant():GPUColor;blendConstant<T extends GPUColor>(color:T):T;"__#private@#scissorRect":[number,number,number?,number?];scissorRect():[number,number,number?,number?];scissorRect<T extends[number,number,number,number]>(x:T[0],y:T[1],width:T[2],height:T[3]):T;"__#private@#viewport":[number,number,UNSURE<number>,UNSURE<number>,number,number];viewport():[number,number,UNSURE<number>,UNSURE<number>,number,number];viewport<T extends[number,number,number,number,number,number]>(x:T[0],y:T[1],width:T[2],height:T[3],minDepth:T[4],maxDepth:T[5]):T;"__#private@#pipeline"?:import("./renderPipeline").default;pipeline():Promise<UNSURE<import("./renderPipeline").default>>;pipeline<T extends import("./renderPipeline").default|DC_MEMBER<"RenderPipeline">>(pipeline:T):Promise<T>;label():string;label<T extends string>(label:T):T}};readonly ComputePass:{new(options:COMPUTE_PASS_OPTIONS):{"__#private@#cppass":GPUComputePassEncoder;"__#private@#debugDepth":number;"__#private@#buildOptions"(options?:COMPUTE_PASS_OPTIONS):GPUComputePassDescriptor;bindGroup(index:number,bindGroup:import("./bindGroup").BindGroupCreator|DC_MEMBER<"BindGroup">,dynamicOffsets?:number[]|Uint32Array,dynamicOffsetData?:ComputePassCreator.bindGroup.DYNAMIC_OFFSET_DATA):void;"__#private@#pipeline"?:import("./computePipeline").default;pipeline():Promise<UNSURE<import("./computePipeline").default>>;pipeline<T extends import("./computePipeline").default|DC_MEMBER<"ComputePipeline">>(pipeline:T):Promise<T>;dispatchWorkgroup:((x:number,y:number,z:number)=>void)&{IndirectBuffer:{new(options:import("./commandEncoder/renderPass/indirectBuffer").INDIRECT_BUFFER_OPTIONS):{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#bufferUsage":number;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#usageChanged":boolean;"__#private@#label"?:string;"__#private@#readComplete":boolean;"__#private@#onReadCompleteQueues":(Function)[];"__#private@#usageOptions":import("./buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#private@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("./buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#private@#ensureReady"():Promise<void>;get can():{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("./buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("./buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator};readonly len:3;from(buffer:BufferCreator|GPUBuffer):Promise<import("./commandEncoder/renderPass/indirectBuffer").default>};indirect:(buffer:{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#bufferUsage":number;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#usageChanged":boolean;"__#private@#label"?:string;"__#private@#readComplete":boolean;"__#private@#onReadCompleteQueues":(Function)[];"__#private@#usageOptions":import("./buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS;"__#private@#checkFlags"():boolean;raw():GPUBuffer;destroy():boolean;destroy<T extends boolean>(destroy:T):T;bufferUsage():BufferCreator.bufferUsage.RETURNS;bufferUsage<T extends number>(usage:T):T;bufferUsage(usage:import("./buffers/bufferUsageOptions").BUFFER_USAGE_OPTIONS):number;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;"__#private@#ensureReady"():Promise<void>;get can():{copy:{read:boolean;write:boolean};map:{read:boolean;write:boolean};beBoundAs:{index:boolean;vertex:boolean;uniform:boolean;storage:boolean;indirect:boolean};query:boolean};copyToBuffer(destination:BufferCreator|GPUBuffer,size?:number):void;copyToTexture(destination:import("./buffers").TEXTURE_COPY_DESTINATION|GPUTexture,options?:import("./buffers").BUFFER_TO_TEXTURE_OPTIONS):void;query(querySet:GPUQuerySet,firstQuery?:number,queryCount?:number,destinationOffset?:number):void;readonly __brand:"BufferCreator";[Symbol.hasInstance](instance:BufferCreator):instance is BufferCreator},offset:number)=>void};end():void;label():string;label<T extends string>(label:T):T;readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void}}};readonly debug:{push:(label:string)=>void;pop:()=>void;insertMarker:(label:string)=>void};readonly copy:{textureToTexture:(texture:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,des:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,copySize:GPUExtent3DStrict)=>undefined;textureToBuffer:(texture:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,des:CommandEncoderCreator.copy.TEXEL_COPY_BUFFER,copySize:GPUExtent3DStrict)=>undefined;bufferToTexture:(buf:CommandEncoderCreator.copy.TEXEL_COPY_BUFFER,des:CommandEncoderCreator.copy.TEXEL_COPY_TEXTURE,copySize:GPUExtent3DStrict)=>undefined;bufferToBuffer:(buf:BufferCreator,des:BufferCreator,copySize:number)=>undefined};constructor(device:GPUDevice,labelOrCommandEncoder:UNSURE<string>|GPUCommandEncoder);[Symbol.hasInstance](instance:CommandEncoderCreator):instance is CommandEncoderCreator;readonly __brand="CommandEncoderCreator";label():UNSURE<string>;label<T extends string>(label:T):T;finish(des:GPUObjectDescriptorBase):CommandBufferCreator}export declare namespace CommandEncoderCreator{namespace copy{interface TEXEL_COPY_TEXTURE{texture:TextureCreator|DC_MEMBER<"Texture">;origin?:GPUOrigin3D;aspect?:GPUTextureAspect;mipLevel?:number}interface TEXEL_COPY_BUFFER extends GPUTexelCopyBufferLayout{buffer:BufferCreator|DC_MEMBER<"Buffer">}}}export default CommandEncoderCreator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.CommandEncoderCreator=void 0;const r=e(require("../helpers/errors")),t=e(require("./commandbuffer")),s=e(require("./commandEncoder/computepass")),o=e(require("./commandEncoder/renderPass"));class i{#e;#r;RenderPass;ComputePass;debug;copy;#t=0;constructor(e,t){this.#e=t instanceof GPUCommandEncoder?t:e.createCommandEncoder({label:t}),this.#r="string"==typeof t?t:t?.label;const i=this;this.RenderPass=class extends o.default{constructor(r){super(e,i.#e,r)}},this.ComputePass=class extends s.default{constructor(r){super(e,i.#e,r)}},this.debug={push:e=>{this.#t++,this.#e.pushDebugGroup(e)},pop:()=>{if(0>=this.#t)throw(0,r.default)(17,"debug.pop used before init");this.#e.popDebugGroup(),this.#t--},insertMarker:e=>{this.#e.insertDebugMarker(e)}},this.copy={textureToTexture:(e,r,t)=>this.#e.copyTextureToTexture({texture:e.texture.raw(),mipLevel:e.mipLevel,aspect:e.aspect,origin:e.origin},{texture:r.texture.raw(),mipLevel:r.mipLevel,aspect:r.aspect,origin:r.origin},t),textureToBuffer:(e,r,t)=>this.#e.copyTextureToBuffer({texture:e.texture.raw(),mipLevel:e.mipLevel,aspect:e.aspect,origin:e.origin},{buffer:r.buffer.raw(),bytesPerRow:r.bytesPerRow,offset:r.offset,rowsPerImage:r.rowsPerImage},t),bufferToTexture:(e,r,t)=>this.#e.copyBufferToTexture({buffer:e.buffer.raw(),bytesPerRow:e.bytesPerRow,offset:e.offset,rowsPerImage:e.rowsPerImage},{texture:r.texture.raw(),mipLevel:r.mipLevel,aspect:r.aspect,origin:r.origin},t),bufferToBuffer:(e,r,t)=>this.#e.copyBufferToBuffer(e.raw(),r.raw(),t)}}[Symbol.hasInstance](e){return"CommandEncoderCreator"===e.__brand}__brand="CommandEncoderCreator";label(e){return void 0===e?this.#r:this.#e.label=this.#r=e}finish(e){return new t.default(this.#e.finish(e))}}exports.CommandEncoderCreator=i,exports.default=i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default class CommandBufferCreator{#private;constructor(cmdbuf:GPUCommandBuffer);label():string;label<T extends string>(label:T):T}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=class{#e;constructor(e){this.#e=e}label(e){return void 0===e?this.#e.label:this.#e.label=e}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DC_MEMBER from"../helpers/types/DCMember";import UNSURE from"../helpers/types/unsure";import PipelineLayoutCreator from"./pipelineLayout";import ShaderModuleCreator from"./shaderModule";export default class ComputePipelineCreator{#private;constructor(device:GPUDevice,sm:COMPUTE_PIPELINE_OPTION|GPUComputePipeline);init():Promise<boolean>;[Symbol.hasInstance](instance:ComputePipelineCreator):instance is ComputePipelineCreator;readonly __brand="ComputePipelineCreator";label():Promise<UNSURE<string>>;label<T extends string>(label:T):Promise<T>;raw():Promise<GPUComputePipeline>}export interface COMPUTE_PIPELINE_OPTION extends GPUObjectDescriptorBase{module:ShaderModuleCreator|DC_MEMBER<"ShaderModule">;async?:boolean;layout:PipelineLayoutCreator}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class e{#e;#t;#s=[];#i=!1;constructor(e,t){const s=t;this.#e=s.module?s.async?e.createComputePipelineAsync(this.#r(s)).then(e=>(this.#s.forEach(e=>e(!0)),this.#i=!0,e)):new Promise(()=>(this.#s.forEach(e=>e(!0)),this.#i=!0,e.createComputePipeline(this.#r(s)))):new Promise(()=>(this.#s.forEach(e=>e(!0)),this.#i=!0,t)),this.#t=t.label}#r(e){return{layout:e.layout.raw(),compute:{module:e.module.raw(),constants:e.module.constants(),entryPoint:e.module.entryPoint()},label:e.label}}init(){return this.#i?new Promise(e=>!0):new Promise(e=>{this.#s.push(t=>{e(t)})})}[Symbol.hasInstance](e){return"ComputePipelineCreator"===e.__brand}__brand="ComputePipelineCreator";async label(e){return void 0===e?this.#t:(await this.#e).label=this.#t=e}async raw(){return await this.#e}}exports.default=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DeviceControls from"../device";import UNSURE from"../helpers/types/unsure";import BindGroupLayoutCreator from"./bindGroupLayout";export default class PipelineLayoutCreator{#private;constructor(device:GPUDevice,pipelineLayoutOrOptions:GPUPipelineLayout|PIPELINE_LAYOUT_OPTIONS);label():UNSURE<string>;label<T extends string>(label:T):T;[Symbol.hasInstance](instance:PipelineLayoutCreator):instance is PipelineLayoutCreator;readonly __brand="PipelineLayoutCreator";raw():GPUPipelineLayout}export interface PIPELINE_LAYOUT_OPTIONS extends GPUObjectDescriptorBase{bindGroupLayouts?:(InstanceType<DeviceControls["BindGroupLayout"]>|BindGroupLayoutCreator)[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class e{constructor(e,t){this.#e=t instanceof GPUPipelineLayout?t:e.createPipelineLayout(this.#t(t)),this.#a=t.label}#a;#e;#t(e){return{label:e.label,bindGroupLayouts:e.bindGroupLayouts?.map(e=>e.raw())??[]}}label(e){return void 0===e?this.#a:this.#e.label=this.#a=e}[Symbol.hasInstance](e){return"PipelineLayoutCreator"===e.__brand}__brand="PipelineLayoutCreator";raw(){return this.#e}}exports.default=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default class QuerySetCreator{#private;constructor(device:GPUDevice,options:GPUQuerySetDescriptor|GPUQuerySet);destroy():boolean;destroy<T extends boolean>(destroy:T):T;[Symbol.hasInstance](instance:QuerySetCreator):instance is QuerySetCreator;readonly __brand="QuerySetCreator";raw():GPUQuerySet;label():string;label<T extends string>(label:T):T}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class t{#t;#e;#s;#r=!1;constructor(t,e){this.#e=t,e instanceof GPUQuerySet?(this.#t=e,this.#s={type:e.type,count:e.count,label:e.label}):(this.#s=e,this.#t=t.createQuerySet(e))}destroy(t){return void 0===t?this.#r:!(!this.#r||!t)||(!this.#r&&t?(this.#r=!0,this.#t.destroy(),!0):!(!this.#r&&!t)&&(this.#r&&!t?(this.#t=this.#e.createQuerySet(this.#s),this.#r=!1,!1):this.#r))}[Symbol("Symbol.dispose")](){this.destroy(!0)}[Symbol.hasInstance](t){return"QuerySetCreator"===t.__brand}__brand="QuerySetCreator";raw(){return this.#t}label(t){return void 0===t?this.#t.label:(this.#s.label=t,this.#t.label=t)}}exports.default=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import UNSURE from"../helpers/types/unsure";import DeviceControls from"../device";import BindGroupLayoutCreator from"./bindGroupLayout";import ShaderModuleCreator from"./shaderModule";import PipelineLayoutCreator from"./pipelineLayout";export default class RenderPipelineCreator{#private;constructor(device:GPUDevice,optionsOrPipeline:RENDER_PIPELINE_OPTIONS|GPURenderPipeline);init():Promise<unknown>;label():Promise<UNSURE<string>>;label<T extends string>(label:T):Promise<T>;bindGroupLayout(index:number):Promise<{"__#private@#bindGroupLayoutDescriptor":GPUBindGroupLayout;"__#private@#label"?:string;label():UNSURE<string>;label<T extends string>(label:T):T;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:BindGroupLayoutCreator):instance is BindGroupLayoutCreator}>;raw():Promise<GPURenderPipeline>;[Symbol.hasInstance](instance:RenderPipelineCreator):instance is RenderPipelineCreator;readonly __brand="RenderPipelineCreator"}export interface RENDER_PIPELINE_OPTIONS extends GPUObjectDescriptorBase{vertex:VERTEX_STATE;primitive?:GPUPrimitiveState;depthStencil?:DEPTH_STENCIL;multisample?:GPUMultisampleState;fragment?:FRAGMENT_STATE;layout:InstanceType<DeviceControls["PipelineLayout"]>|PipelineLayoutCreator|GPUAutoLayoutMode;async?:boolean}export interface DEPTH_STENCIL{format:GPUTextureFormat;depth?:{write?:boolean;compare?:GPUCompareFunction};stencil?:{front?:STENCIL_FACE_STATE;back?:STENCIL_FACE_STATE;mask?:{read?:GPUStencilValue;write?:GPUStencilValue}};depthBias?:{value?:GPUDepthBias;slopeScale?:number;clamp?:number}}export interface STENCIL_FACE_STATE{compare?:GPUCompareFunction;operation?:{fail?:GPUStencilOperation;depthFail?:GPUStencilOperation;pass?:GPUStencilOperation}}export interface VERTEX_STATE extends PROGRAMMABLE_STAGE{buffers?:Iterable<UNSURE<GPUVertexBufferLayout>>}export interface PROGRAMMABLE_STAGE{module:InstanceType<DeviceControls["ShaderModule"]>|ShaderModuleCreator}export interface FRAGMENT_STATE extends PROGRAMMABLE_STAGE{targets:Iterable<GPUColorTargetState>}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0});const t=e(require("./bindGroupLayout")),i={topology:"triangle-list",frontFace:"ccw",cullMode:"back"},s={format:"depth24plus",depth:{write:!0,compare:"less"}},r={count:4,alphaToCoverageEnabled:!1};class a{#e;#t;#i;#s;#r={};#a=[];#n=!1;constructor(e,t){this.#e=e;let a={multisample:r,depthStencil:s,primitive:i};t instanceof GPURenderPipeline||(this.#t=a={...a,...t}),this.#s=t.label,this.#i=t instanceof GPURenderPipeline?new Promise(e=>{this.#n=!0,this.#a.forEach(e=>e(!0)),e(t)}):new Promise(t?.async?(t,i)=>{e.createRenderPipelineAsync(this.#l()).catch(e=>i(e)).then(e=>{if(null==e)return i(),this.#n=!1,void this.#a.forEach(e=>e(!1));this.#n=!0,this.#a.forEach(e=>e(!0)),t(e)})}:t=>{this.#a.forEach(e=>e(!0)),t(e.createRenderPipeline(this.#l()))})}#h(){let e=this.#t.vertex.module,t={module:e.raw()},i=e.entryPoint();i&&(t.entryPoint=i);let s=e.constants();s&&(t.constants=s);let r=this.#t.vertex.buffers;return r&&(t.buffers=r),t}#o(){let e=this.#t.fragment.module,t={module:e.raw(),targets:this.#t.fragment.targets},i=e.entryPoint();i&&(t.entryPoint=i);let s=e.constants();return s&&(t.constants=s),t}#p(e){return e?{format:e.format,depthWriteEnabled:e.depth?.write,depthCompare:e.depth?.compare,stencilBack:e.stencil?.back,stencilFront:e.stencil?.front,stencilReadMask:e.stencil?.mask?.read,stencilWriteMask:e.stencil?.mask?.write,depthBias:e.depthBias?.value,depthBiasClamp:e.depthBias?.clamp,depthBiasSlopeScale:e.depthBias?.slopeScale}:{format:"depth24plus"}}#l(){let e={layout:this.#t.layout.raw()??this.#t?.layout,vertex:this.#h()};return this.#t.fragment?.module&&(e.fragment=this.#o()),this.#t.depthStencil&&(e.depthStencil=this.#p(this.#t?.depthStencil)),this.#t.multisample&&(e.multisample=this.#t.multisample),this.#t.primitive&&(e.primitive=this.#t.primitive),this.#t.label&&(e.label=this.#t.label),e}init(){return this.#n?new Promise(e=>e(!0)):new Promise((e,t)=>{this.#a.push(i=>{i?e(i):t(i)})})}async label(e){return void 0===e?this.#s:(await this.#i).label=this.#s=e}async bindGroupLayout(e){return this.#r[e]?this.#r[e]:this.#r[e]=new t.default(this.#e,(await this.#i).getBindGroupLayout(e))}async raw(){return await this.#i}[Symbol.hasInstance](e){return"RenderPipelineCreator"===e.__brand}__brand="RenderPipelineCreator"}exports.default=a;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import UNSURE from"../helpers/types/unsure";export default class SamplerCreator{#private;constructor(device:GPUDevice,optionsOrSampler:GPUSamplerDescriptor|GPUSampler);raw():GPUSampler;label():UNSURE<string>;label<T extends string>(label:string):T;[Symbol.hasInstance](instance:SamplerCreator):instance is SamplerCreator;readonly __brand="SamplerCreator"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class e{#e;#r;constructor(e,r){this.#e=r instanceof GPUSampler?r:e.createSampler(r),r?.label&&(this.#e.label=this.#r=r.label)}raw(){return this.#e}label(e){return void 0===e?this.#r:this.#e.label=this.#r=e}[Symbol.hasInstance](e){return"SamplerCreator"===e.__brand}__brand="SamplerCreator"}exports.default=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import UNSURE from"../helpers/types/unsure";export interface SHADER_MODULE_OPTIONS extends GPUObjectDescriptorBase{hints?:Iterable<GPUShaderModuleCompilationHint>;entryPoint?:string;constants?:Record<string,number>}export default class ShaderModuleCreator{#private;constructor(device:GPUDevice,codeOrModule:string|GPUShaderModule,options?:SHADER_MODULE_OPTIONS);raw():GPUShaderModule;label():string;label<T extends string>(label:T):T;entryPoint():UNSURE<string>;constants():UNSURE<Record<string,number>>;code():string|undefined;compilationInfo():Promise<GPUCompilationInfo>;bindGroups():Set<number>;[Symbol.hasInstance](instance:ShaderModuleCreator):instance is ShaderModuleCreator;readonly __brand="ShaderModuleCreator"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var t=this&&this.__importDefault||(t=>t&&t.__esModule?t:{default:t});Object.defineProperty(exports,"__esModule",{value:!0});const e=t(require("../helpers/shaderRegex"));class i{#t;#e;#i;#s;#r;#h;#o;constructor(t,e,i){if(this.#i=t,"string"==typeof e){this.#e=e,this.#h=i?.entryPoint,this.#o=i?.constants,this.#s=i?.label??"";let s={code:e,label:i?.label??""};i?.hints&&(s.compilationHints=i.hints),this.#t=t.createShaderModule(s),this.#r=i?.hints}else this.#t=e,this.#e=void 0,this.#s=e.label||"",this.#r=void 0,this.#h=void 0,this.#o=void 0}raw(){return this.#t}label(t){return void 0===t?this.#s:this.#t.label=this.#s=t}entryPoint(){return this.#h}constants(){return this.#o}code(){return this.#e}async compilationInfo(){return this.#n?this.#n:this.#n=await this.#t.getCompilationInfo()}#n;bindGroups(){return this.#a?this.#a:this.#a=(0,e.default)(this.#e??"")}#a;[Symbol.hasInstance](t){return"ShaderModuleCreator"===t.__brand}__brand="ShaderModuleCreator"}exports.default=i;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
interface TEXTURE_COPY_OPTIONS{read?:boolean;write?:boolean}interface TEXTURE_BINDING_OPTIONS{storage?:boolean;texture?:boolean}interface TEXTURE_USAGE_OPTIONS{copy?:TEXTURE_COPY_OPTIONS|boolean;renderAttachment?:boolean;binding?:TEXTURE_BINDING_OPTIONS}export default TEXTURE_USAGE_OPTIONS;export declare function getOptionsFromTextureUsage(usage:number):TEXTURE_USAGE_OPTIONS;export declare function getTextureUsage(options:TEXTURE_USAGE_OPTIONS):number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getOptionsFromTextureUsage=e=>{const t=!!(e&GPUTextureUsage.COPY_SRC),r=!!(e&GPUTextureUsage.COPY_DST);return{copy:!(!t||!r)||{read:t,write:r},renderAttachment:!!(e&GPUTextureUsage.RENDER_ATTACHMENT),binding:{texture:!!(e&GPUTextureUsage.TEXTURE_BINDING),storage:!!(e&GPUTextureUsage.STORAGE_BINDING)}}},exports.getTextureUsage=e=>{let t=0;return!0===e.copy?t|=GPUTextureUsage.COPY_SRC|GPUTextureUsage.COPY_DST:"object"==typeof e.copy&&(e.copy.read&&(t|=GPUTextureUsage.COPY_SRC),e.copy.write&&(t|=GPUTextureUsage.COPY_DST)),e.renderAttachment&&(t|=GPUTextureUsage.RENDER_ATTACHMENT),e.binding&&(e.binding.texture&&(t|=GPUTextureUsage.TEXTURE_BINDING),e.binding.storage&&(t|=GPUTextureUsage.STORAGE_BINDING)),t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default class TextureViewCreator{#private;constructor(view:GPUTextureView);label():string;label<T extends string>(label:T):T;raw():GPUTextureView}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=class{#e;constructor(e){this.#e=e}label(e){return void 0===e?this.#e.label:this.#e.label=e}raw(){return this.#e}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import UNSURE from"../helpers/types/unsure";import TEXTURE_USAGE_OPTIONS from"./texture/textureUsageOptions";import TextureViewCreator from"./texture/textureView";interface TCO_BASE{value?:GPUAllowSharedBufferSource;size:GPUExtent3DStrict;mipLevelCount?:number|undefined;sampleCount?:number|undefined;dimension?:GPUTextureDimension|undefined;format:GPUTextureFormat;viewFormats?:Iterable<GPUTextureFormat>|undefined;textureBindingViewDimension?:GPUTextureViewDimension|undefined}export interface TEXTURE_CREATOR_OPTIONS extends TCO_BASE{usage?:TEXTURE_USAGE_OPTIONS|number}export interface BUFFER_COPY_TARGET{raw():GPUBuffer;can:{copy:{write:boolean}}}export interface TEXTURE_COPY_TARGET{raw():GPUTexture;can:{copy:{write:boolean}}}export interface TEXTURE_TO_BUFFER_OPTIONS{offset?:number;bytesPerRow?:number;rowsPerImage?:number;origin?:GPUOrigin3D;aspect?:GPUTextureAspect;mipLevel?:number;size?:GPUExtent3D}export interface TEXTURE_TO_TEXTURE_OPTIONS{sourceMipLevel?:number;destinationMipLevel?:number;sourceOrigin?:GPUOrigin3D;destinationOrigin?:GPUOrigin3D;size?:GPUExtent3D}export declare class TextureCreator{#private;constructor(device:GPUDevice,optionsOrTexture:TEXTURE_CREATOR_OPTIONS|GPUTexture);readonly View:{new():{"__#private@#view":GPUTextureView;label():string;label<T extends string>(label:T):T;raw():GPUTextureView}};value():GPUAllowSharedBufferSource|undefined;value<T extends GPUAllowSharedBufferSource>(data:T):T;get can():{copy:{read:boolean;write:boolean};binding:{texture:boolean;storage:boolean};renderAttachment:boolean};sync():void;raw():GPUTexture;view():TextureViewCreator;copyToBuffer(destination:BUFFER_COPY_TARGET|GPUBuffer,options?:TEXTURE_TO_BUFFER_OPTIONS):void;copyToTexture(destination:TEXTURE_COPY_TARGET|GPUTexture,options?:TEXTURE_TO_TEXTURE_OPTIONS):void;aspect():number;resize(newWidth:number,newHeight:number,newDepthOrArrayLayers?:number):void;destroy():boolean;destroy<T extends boolean>(val:T):T;label():UNSURE<string>;label<T extends string>(label:T):T;textureUsage():TextureCreator.bufferUsage.RETURNS;textureUsage<T extends number>(usage:T):T;textureUsage(usage:TEXTURE_USAGE_OPTIONS):number;[Symbol.hasInstance](instance:TextureCreator):instance is TextureCreator;readonly __brand="TextureCreator"}export declare namespace TextureCreator{namespace bufferUsage{interface RETURNS extends TEXTURE_USAGE_OPTIONS{number?:number}}}export default TextureCreator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function e(e,t,r){if(r)return(e=>{if("number"==typeof e)return{width:e,height:1,depthOrArrayLayers:1};if(Symbol.iterator in Object(e)){const t=Array.from(e);return{width:t[0]??1,height:t[1]??1,depthOrArrayLayers:t[2]??1}}return{width:e.width,height:e.height??1,depthOrArrayLayers:e.depthOrArrayLayers??1}})(r);const i=t??0;return{width:Math.max(1,e.width>>i),height:Math.max(1,e.height>>i),depthOrArrayLayers:e.depthOrArrayLayers}}function t(e){return"function"==typeof e.raw}function r(e){return"function"==typeof e.raw}var i=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.TextureCreator=void 0;const s=i(require("../helpers/align")),h=i(require("../helpers/defaults")),o=i(require("../helpers/errors")),a=require("./texture/textureUsageOptions"),u=i(require("./texture/textureView")),n={r8unorm:1,r8snorm:1,r8uint:1,r8sint:1,r16uint:2,r16sint:2,r16float:2,rg8unorm:2,rgba8unorm:4,"rgba8unorm-srgb":4,bgra8unorm:4,rg16float:4,r32float:4,rgba16float:8,rg32float:8,rgba32float:16},c=(0,o.default)(2,"Texture already destroyed!"),f=(0,o.default)(10,"Cannot write to texture since the flag 'usage.copy.write' is false or undefined"),d=(0,o.default)(11,"Texture cannot be copied because the flag 'usage.copy.read' is false or undefined"),w=(0,o.default)(12,"Texture could not be copied since the other texture doesnt allow writing to it"),g=(0,o.default)(13,"Texture could not be copied since the other buffer doesnt allow writing to it");class l{#e;#t;#r;#i;#s;#h=!1;#o;#a;#u=!1;constructor(e,t){if(this.#e=e,"value"in t){const{value:r,usage:i,...s}=t,o=this.#a="number"==typeof i?i:"object"==typeof i?(0,a.getTextureUsage)(i):h.default.textureUsage;this.#o=(0,a.getOptionsFromTextureUsage)(o),this.#i={...t,usage:o},this.#t=e.createTexture({...s,usage:o});let n=this.#i;this.#t=e.createTexture(n),this.#r=new u.default(this.#t.createView()),r&&(this.value(r),this.#s=r)}else{const e=t;this.#o=(0,a.getOptionsFromTextureUsage)(e.usage),this.#t=e,this.#r=new u.default(e.createView()),this.#i=void 0,this.#s=void 0,this.#a=e.usage}const r=this;this.View=class extends u.default{constructor(){super(r.#t.createView())}}}View;#n=!1;value(e){if(this.#h)throw c;if(void 0===e)return this.#s;if(!this.can.copy.write)throw f;return e!==this.#s&&(this.#s=e,this.#n=!0),e}get can(){const e=this.#o,t=e.copy,r=e.binding;return{copy:{read:!1!==t&&(!0===t||!!t?.read),write:!1!==t&&(!0===t||!!t?.write)},binding:{texture:!!r?.texture,storage:!!r?.storage},renderAttachment:!!e.renderAttachment}}#c(e){const t=this.#t.format,r=this.#t.width*(n[t]??4),i=(0,s.default)(r,256);this.#e.queue.writeTexture({texture:this.#t},e,{bytesPerRow:i,rowsPerImage:this.#t.height},{width:this.#t.width,height:this.#t.height,depthOrArrayLayers:this.#t.depthOrArrayLayers})}#f(){if(!this.#i)throw Error("Cannot recreate a raw GPUTexture (no original descriptor)");this.#t.destroy(),this.#i={...this.#i,usage:this.#a},this.#t=this.#e.createTexture(this.#i),this.#r=new u.default(this.#t.createView())}sync(){if(this.#h)throw c;if(this.#n||this.#u){if(this.#u&&this.#f(),this.#s){if(!this.can.copy.write)throw f;this.#c(this.#s)}this.#u=!1,this.#n=!1}}raw(){return this.#t}view(){return this.#r}copyToBuffer(r,i={}){if(this.#h)throw c;if(!this.can.copy.read)throw d;if(this.#n&&this.sync(),t(r)){if(!r.can.copy.write)throw g}else if(!(r.usage&GPUBufferUsage.COPY_DST))throw g;const h=e(this.#t,i.mipLevel,i.size),o=i.bytesPerRow??(0,s.default)(h.width*(a=this.#t.format,n[a]??4),256);var a;const u=i.rowsPerImage??h.height,f=t(r)?r.raw():r,w=this.#e.createCommandEncoder();w.copyTextureToBuffer({texture:this.#t,origin:i.origin,aspect:i.aspect,mipLevel:i.mipLevel},{buffer:f,offset:i.offset,bytesPerRow:o,rowsPerImage:u},h),this.#e.queue.submit([w.finish()])}copyToTexture(t,i={}){if(this.#h)throw c;if(!this.can.copy.read)throw d;if(this.#n&&this.sync(),r(t)){if(!t.can.copy.write)throw w}else{const e=(0,a.getOptionsFromTextureUsage)(t.usage);if(!1===e.copy||!0!==e.copy&&!e.copy?.write)throw w}const s=r(t)?t.raw():t,h=e(this.#t,i.sourceMipLevel,i.size),o=this.#e.createCommandEncoder();o.copyTextureToTexture({texture:this.#t,mipLevel:i.sourceMipLevel,origin:i.sourceOrigin},{texture:s,mipLevel:i.destinationMipLevel,origin:i.destinationOrigin},h),this.#e.queue.submit([o.finish()])}aspect(){if(this.#h)throw c;return this.#t.width/this.#t.height}resize(e,t,r=this.#t.depthOrArrayLayers){if(this.#h)throw c;if(!this.#i)throw Error("Cannot resize a raw GPUTexture (no original descriptor)");const i=this.#t.width,s=this.#t.height,h=this.#t.depthOrArrayLayers;e===i&&t===s&&r===h||(this.#t.destroy(),this.#t=this.#e.createTexture({...this.#i,size:[e,t,r]}),this.#r=new u.default(this.#t.createView()),this.#s&&(this.#n=!0,this.sync()))}destroy(e){if(void 0===e)return this.#h;if(!0===e&&!this.#h)return this.#t.destroy(),this.#h=!0,!0;if(!1===e&&this.#h){if(!this.#i)throw Error("Cannot resurrect a raw GPUTexture");return this.#t=this.#e.createTexture(this.#i),this.#r=new u.default(this.#t.createView()),this.#h=!1,this.#s&&this.#c(this.#s),!1}return this.#h}label(e){if(this.#h)throw c;return void 0===e?this.#i?.label:this.#t.label=e}textureUsage(e){if(this.#h)throw c;return void 0===e?{number:this.#a,...this.#o}:(("number"==typeof e?e:(0,a.getTextureUsage)(e))!==this.#a&&(this.#u=!0,this.#n=!0,"number"==typeof e?(this.#a=e,this.#o=(0,a.getOptionsFromTextureUsage)(e)):(this.#a=(0,a.getTextureUsage)(e),this.#o=e)),"number"==typeof e?e:(0,a.getTextureUsage)(e))}[Symbol.hasInstance](e){return"TextureCreator"===e.__brand}__brand="TextureCreator"}exports.TextureCreator=l,exports.default=l;
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"devDependencies": {
|
|
3
|
+
"@eslint/js": "^10.0.1",
|
|
4
|
+
"@typescript-eslint/eslint-plugin": "^8.57.1",
|
|
5
|
+
"@typescript-eslint/parser": "^8.57.1",
|
|
6
|
+
"dts-bundle-generator": "^9.5.1",
|
|
7
|
+
"dts-minify": "^0.3.3",
|
|
8
|
+
"eslint": "^10.0.3",
|
|
9
|
+
"node": "^25.8.2",
|
|
10
|
+
"shx": "^0.4.0",
|
|
11
|
+
"terser": "^5.46.1",
|
|
12
|
+
"typescript": "^5.9.3"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@webgpu/types": "^0.1.69"
|
|
16
|
+
},
|
|
17
|
+
"name": "@agpu/bindings",
|
|
18
|
+
"version": "0.2.0",
|
|
19
|
+
"author": {
|
|
20
|
+
"name": "Kryft Studios",
|
|
21
|
+
"email": "AfriaStudios@outlook.in",
|
|
22
|
+
"url": "https://github.com/Kryft-Studios"
|
|
23
|
+
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
},
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"default": "./dist/index.js",
|
|
30
|
+
"types": "./dist/index.d.ts"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"lint": "eslint",
|
|
35
|
+
"build": "node --no-warnings cmd/build.js",
|
|
36
|
+
"minify:js": "node --no-warnings minify-js.js",
|
|
37
|
+
"minify:dts": "node --no-warnings minify-dts.js",
|
|
38
|
+
"minify:end": "node --no-warnings minify-end.js"
|
|
39
|
+
}
|
|
40
|
+
}
|