@agpu/bindings 0.2.1 → 0.2.3

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.
Files changed (45) hide show
  1. package/dist/classes/main/adapter.d.ts +1 -1
  2. package/dist/classes/main/adapter.js +1 -1
  3. package/dist/classes/main/context.d.ts +1 -1
  4. package/dist/classes/main/context.js +1 -1
  5. package/dist/classes/main/device.d.ts +1 -1
  6. package/dist/classes/main/device.js +1 -1
  7. package/dist/classes/main/webgpucontrols.d.ts +1 -1
  8. package/dist/classes/main/webgpucontrols.js +1 -1
  9. package/dist/classes/sub/pipeline/commandEncoder/computepass.d.ts +1 -1
  10. package/dist/classes/sub/pipeline/commandEncoder/computepass.js +1 -1
  11. package/dist/classes/sub/pipeline/commandEncoder/renderEncoderBase.d.ts +1 -1
  12. package/dist/classes/sub/pipeline/commandEncoder/renderEncoderBase.js +1 -1
  13. package/dist/classes/sub/pipeline/commandEncoder/renderPass/indirectBuffer.js +1 -1
  14. package/dist/classes/sub/pipeline/commandEncoder/renderPass.d.ts +1 -1
  15. package/dist/classes/sub/pipeline/commandEncoder/renderPass.js +1 -1
  16. package/dist/classes/sub/pipeline/commandEncoder.d.ts +1 -1
  17. package/dist/classes/sub/pipeline/commandEncoder.js +1 -1
  18. package/dist/classes/sub/pipeline/computePipeline.d.ts +1 -1
  19. package/dist/classes/sub/pipeline/computePipeline.js +1 -1
  20. package/dist/classes/sub/pipeline/pipelineLayout.d.ts +1 -1
  21. package/dist/classes/sub/pipeline/pipelineLayout.js +1 -1
  22. package/dist/classes/sub/pipeline/querySet.d.ts +1 -1
  23. package/dist/classes/sub/pipeline/querySet.js +1 -1
  24. package/dist/classes/sub/pipeline/renderBundleEncoder/renderBundle.d.ts +1 -1
  25. package/dist/classes/sub/pipeline/renderBundleEncoder/renderBundle.js +1 -1
  26. package/dist/classes/sub/pipeline/renderBundleEncoder.d.ts +1 -1
  27. package/dist/classes/sub/pipeline/renderBundleEncoder.js +1 -1
  28. package/dist/classes/sub/pipeline/renderPipeline.d.ts +1 -1
  29. package/dist/classes/sub/pipeline/renderPipeline.js +1 -1
  30. package/dist/classes/sub/pipeline/sampler.d.ts +1 -1
  31. package/dist/classes/sub/pipeline/sampler.js +1 -1
  32. package/dist/constants/bufferusage.js +1 -1
  33. package/dist/constants/textureusage.js +1 -1
  34. package/dist/helpers/align.js +1 -1
  35. package/dist/helpers/defaults.js +1 -1
  36. package/dist/helpers/errors.d.ts +1 -1
  37. package/dist/helpers/errors.js +1 -1
  38. package/dist/helpers/shaderRegex.js +1 -1
  39. package/dist/helpers/types/DCMember.js +1 -1
  40. package/dist/index.js +1 -1
  41. package/dist/main classes/buffers.js +1 -1
  42. package/dist/main classes/renderPipeline.js +1 -1
  43. package/dist/main classes/shaderModule.js +1 -1
  44. package/dist/main classes/texture.js +1 -1
  45. package/package.json +6 -5
@@ -1 +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}
1
+ import{BRAND,RAW}from"@agpu/helpers/decorators";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}
@@ -1 +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;
1
+ "use strict";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 u,n=i.kind,d="getter"===n?"get":"setter"===n?"set":"value",l=!t&&e?i.static?e:e.prototype:null,c=t||(l?Object.getOwnPropertyDescriptor(l,i.name):{}),f=!1,p=r.length-1;p>=0;p--){var h={};for(var v in i)h[v]="access"===v?{}:i[v];for(var v in i.access)h.access[v]=i.access[v];h.addInitializer=e=>{if(f)throw new TypeError("Cannot add initializers after decoration has completed");s.push(o(e||null))};var m=(0,r[p])("accessor"===n?{get:c.get,set:c.set}:c[d],h);if("accessor"===n){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(u=o(m.get))&&(c.get=u),(u=o(m.set))&&(c.set=u),(u=o(m.init))&&a.unshift(u)}else(u=o(m))&&("field"===n?a.unshift(u):c[d]=u)}l&&Object.defineProperty(l,i.name,c),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},r=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.AdapterControls=void 0;const i=require("@agpu/helpers/decorators"),a=r(require("../../helpers/errors")),s=require("@agpu/helpers/decorators"),o=r(require("./device"));let u=(()=>{let r,u,n=[(0,i.brand)("AdapterControls"),(0,s.raw)("adapter")],d=[];return class{static{u=this}static{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,r={value:u},n,{kind:"class",name:u.name,metadata:i},null,d),u=r.value,i&&Object.defineProperty(u,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),t(u,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(0,a.default)(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 o.default(await e.requestDevice({requiredFeatures:t.required?.features,requiredLimits:t.required?.limits,defaultQueue:t.defaultQueue}).catch(()=>{throw(0,a.default)(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},u})();exports.AdapterControls=u,exports.default=u;
@@ -1 +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}
1
+ import{BRAND,RAW}from"@agpu/helpers/decorators";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}
@@ -1 +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};
1
+ "use strict";var e=this&&this.__esDecorate||((e,t,r,n,o,a)=>{function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,c=n.kind,u="getter"===c?"get":"setter"===c?"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 g in n)h[g]="access"===g?{}:n[g];for(var g in n.access)h.access[g]=n.access[g];h.addInitializer=e=>{if(d)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var p=(0,r[v])("accessor"===c?{get:f.get,set:f.set}:f[u],h);if("accessor"===c){if(void 0===p)continue;if(null===p||"object"!=typeof p)throw new TypeError("Object expected");(s=i(p.get))&&(f.get=s),(s=i(p.set))&&(f.set=s),(s=i(p.init))&&o.unshift(s)}else(s=i(p))&&("field"===c?o.unshift(s):f[u]=s)}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},r=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ContextControls=void 0;const n=require("@agpu/helpers/decorators"),o=r(require("../../helpers/errors")),a=require("@agpu/helpers/decorators"),i=r(require("../sub/data/texture")),s=r(require("./device"));let c=(()=>{let r,c,u=[(0,a.raw)("ctx"),(0,n.brand)("ContextControls")],l=[];return class{static{c=this}static{const n="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,r={value:c},u,{kind:"class",name:c.name,metadata:n},null,l),c=r.value,n&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n}),t(c,l)}constructor(e){this.ctx=e,this.canvas=e.canvas}configure(e){if(!e.device)throw(0,o.default)(31,"Canvas configuration requires a DeviceControls instance.","Pass the device returned by AdapterControls.device(...).");if(!e.format)throw(0,o.default)(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 s.default(e.device)}:null}currentTexture(e){if(!this.ctx.getConfiguration())throw(0,o.default)(33,"Canvas context is not configured.","Call ContextControls.configure(...) before requesting the current texture.");return new i.default(e.raw(),this.ctx.getCurrentTexture())}canvas;ctx},c})();exports.ContextControls=c;
@@ -1 +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 QuerySetCreator from"../sub/pipeline/querySet";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):{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;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>;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("../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):{"__#private@#device":GPUDevice;"__#private@#texture":GPUTexture;"__#private@#view":import("../sub/data/texture/textureView").TextureViewCreator;"__#private@#options":TEXTURE_CREATOR_OPTIONS|undefined;"__#private@#value"?:GPUAllowSharedBufferSource;"__#private@#destroyed":boolean;"__#private@#usageOptions":import("../sub/data/texture/textureUsageOptions").default;readonly View:{new():{readonly view:GPUTextureView;raw():GPUTextureView;readonly __brand:"TextureViewCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}};"__#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;sync():void;raw():GPUTexture;clone():TextureCreator;view():import("../sub/data/texture/textureView").TextureViewCreator;copyToBuffer(destination:BufferCreator|import("../../helpers/types/DCMember").default<"Buffer">|GPUBuffer,options?:import("../sub/data/texture").TEXTURE_TO_BUFFER_OPTIONS):void;copyToTexture(destination:TextureCreator|import("../../helpers/types/DCMember").default<"Texture">|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;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("../sub/data/texture/textureView").TextureViewCreator;"__#private@#options":TEXTURE_CREATOR_OPTIONS|undefined;"__#private@#value"?:GPUAllowSharedBufferSource;"__#private@#destroyed":boolean;"__#private@#usageOptions":import("../sub/data/texture/textureUsageOptions").default;readonly View:{new():{readonly view:GPUTextureView;raw():GPUTextureView;readonly __brand:"TextureViewCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}};"__#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;sync():void;raw():GPUTexture;clone():TextureCreator;view():import("../sub/data/texture/textureView").TextureViewCreator;copyToBuffer(destination:BufferCreator|import("../../helpers/types/DCMember").default<"Buffer">|GPUBuffer,options?:import("../sub/data/texture").TEXTURE_TO_BUFFER_OPTIONS):void;copyToTexture(destination:TextureCreator|import("../../helpers/types/DCMember").default<"Texture">|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;readonly __brand:"TextureCreator";[Symbol.hasInstance](instance:TextureCreator):instance is TextureCreator}>};readonly Sampler:{new(options?:GPUSamplerDescriptor):{"__#private@#device"?:GPUDevice;"__#private@#descriptor"?:GPUSamplerDescriptor;sampler:GPUSampler;clone():SamplerCreator;raw():GPUSampler;readonly __brand:"SamplerCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};from(sampler:GPUSampler):SamplerCreator};readonly ShaderModule:{new(code:string,options?:SHADER_MODULE_OPTIONS):{"__#private@#device"?:GPUDevice;"__#private@#code"?:string;"__#private@#entryPoint"?:string;"__#private@#constants"?:Record<string,number>;"__#private@#label"?:string;"__#private@#hints"?:Iterable<GPUShaderModuleCompilationHint>;readonly module:GPUShaderModule;clone():ShaderModuleCreator;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>;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):{"__#private@#device"?:GPUDevice;"__#private@#descriptor"?:GPUBindGroupLayoutDescriptor;readonly bindGroupLayout:GPUBindGroupLayout;clone():BindGroupLayoutCreator;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};from(bgl:GPUBindGroupLayout):BindGroupLayoutCreator};readonly BindGroup:{new(options:BIND_GROUP_OPTIONS):{"__#private@#device"?:GPUDevice;"__#private@#options"?:BIND_GROUP_OPTIONS;"__#private@#layout":BindGroupLayoutCreator|import("../../helpers/types/DCMember").default<"BindGroupLayout">;readonly bindGroup:GPUBindGroup;"__#private@#buildOptions"(options:BIND_GROUP_OPTIONS):GPUBindGroupDescriptor;layout():BindGroupLayoutCreator|{"__#private@#device"?:GPUDevice;"__#private@#descriptor"?:GPUBindGroupLayoutDescriptor;readonly bindGroupLayout:GPUBindGroupLayout;clone():BindGroupLayoutCreator;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};clone():BindGroupCreator;raw():GPUBindGroup;readonly __brand:"BindGroupCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};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>;"__#private@#device"?:GPUDevice;"__#private@#options"?:RENDER_PIPELINE_OPTIONS;"__#private@#gblcache":Record<number,InstanceType<DeviceControls["BindGroupLayout"]>>;"__#private@#initWaiters":((bool:boolean)=>any)[];"__#private@#pipelineCreated":boolean;"__#private@#pipelineInitFailed":boolean;pipeline:Promise<GPURenderPipeline>;"__#private@#flushInitWaiters"(success:boolean):void;"__#private@#buildVertexState"(opts:import("../sub/pipeline/renderPipeline").VERTEX_STATE):GPUVertexState;"__#private@#buildFragmentState"(opts:import("../sub/pipeline/renderPipeline").FRAGMENT_STATE):GPUFragmentState;"__#private@#buildDepthStencil"(depthstencil?:import("../sub/pipeline/renderPipeline").DEPTH_STENCIL):GPUDepthStencilState;"__#private@#buildPipelineDescriptor"(opts:RENDER_PIPELINE_OPTIONS):GPURenderPipelineDescriptor;init():Promise<unknown>;bindGroupLayout:(index:number)=>Promise<{"__#private@#device"?:GPUDevice;"__#private@#descriptor"?:GPUBindGroupLayoutDescriptor;readonly bindGroupLayout:GPUBindGroupLayout;clone():BindGroupLayoutCreator;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}>;clone():RenderPipelineCreator;raw():Promise<GPURenderPipeline>;readonly __brand:"RenderPipelineCreator";[Symbol.hasInstance](instance:any):boolean};from(grp:GPURenderPipeline):RenderPipelineCreator};readonly ComputePipeline:{new(options:COMPUTE_PIPELINE_OPTION):{label():Promise<string>;label<T extends string>(label:T):Promise<T>;"__#private@#device"?:GPUDevice;"__#private@#options"?:COMPUTE_PIPELINE_OPTION;"__#private@#initWaiters":((bool:boolean)=>void)[];"__#private@#pipelineCreated":boolean;computePipeline:Promise<GPUComputePipeline>;"__#private@#buildDescriptor"(options:COMPUTE_PIPELINE_OPTION):GPUComputePipelineDescriptor;init():Promise<boolean>;clone():ComputePipelineCreator;raw():Promise<GPUComputePipeline>;readonly __brand:"ComputePipelineCreator";[Symbol.hasInstance](instance:any):boolean};from(computePipeline:GPUComputePipeline):ComputePipelineCreator};readonly PipelineLayout:{new(options?:PIPELINE_LAYOUT_OPTIONS):{"__#private@#device"?:GPUDevice;"__#private@#options"?:PIPELINE_LAYOUT_OPTIONS;pipelineLayout:GPUPipelineLayout;"__#private@#pipelineLayout":GPUPipelineLayout;"__#private@#buildFromOptions"(options:PIPELINE_LAYOUT_OPTIONS):GPUPipelineLayoutDescriptor;clone():PipelineLayoutCreator;raw():GPUPipelineLayout;readonly __brand:"PipelineLayoutCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};from(pl:GPUPipelineLayout):PipelineLayoutCreator};readonly QuerySet:{new(options:GPUQuerySetDescriptor):{label():string;label<T extends string>(label:T):T;"__#private@#device":GPUDevice;"__#private@#destroyed":boolean;querySet:GPUQuerySet;queryDescriptor:GPUQuerySetDescriptor;clone():QuerySetCreator;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):{cmdencoder:GPUCommandEncoder;readonly RenderPass:typeof import("../sub/pipeline/commandEncoder/renderPass").RenderPassCreator;readonly ComputePass:{new(options:import("../sub/pipeline/commandEncoder/computepass").COMPUTE_PASS_OPTIONS):{readonly computepass:GPUComputePassEncoder;"__#private@#debugDepth":number;"__#private@#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;"__#private@#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):{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;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>;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("../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:{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;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>;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("../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};"__#private@#debugDepth":number;finish(des:GPUObjectDescriptorBase):CommandBufferCreator;readonly __brand:"CommandEncoderCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};from(cmdencoder:GPUCommandEncoder):CommandEncoderCreator}}export default DeviceControls;
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 QuerySetCreator from"../sub/pipeline/querySet";import RenderBundleEncoderCreator from"../sub/pipeline/renderBundleEncoder";import{BRAND,RAW}from"@agpu/helpers/decorators";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@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;value():import("@agpu/helpers/unsure").default<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;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):{"__#7@#device":GPUDevice;"__#7@#texture":GPUTexture;"__#7@#view":import("../sub/data/texture/textureView").TextureViewCreator;"__#7@#options":TEXTURE_CREATOR_OPTIONS|undefined;"__#7@#value"?:GPUAllowSharedBufferSource;"__#7@#destroyed":boolean;"__#7@#usageOptions":import("../sub/data/texture/textureUsageOptions").default;readonly View:{new():{readonly view:GPUTextureView;raw():GPUTextureView;readonly __brand:"TextureViewCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}};"__#7@#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};"__#7@#write"(data:GPUAllowSharedBufferSource):void;sync():void;raw():GPUTexture;clone():TextureCreator;view():import("../sub/data/texture/textureView").TextureViewCreator;copyToBuffer(destination:BufferCreator|import("../../helpers/types/DCMember").default<"Buffer">|GPUBuffer,options?:import("../sub/data/texture").TEXTURE_TO_BUFFER_OPTIONS):void;copyToTexture(destination:TextureCreator|import("../../helpers/types/DCMember").default<"Texture">|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("@agpu/helpers/unsure").default<string>;label<T extends string>(label:T):T;readonly __brand:"TextureCreator";[Symbol.hasInstance](instance:TextureCreator):instance is TextureCreator};fromURL(url:string):Promise<TextureCreator>;from(gputexture:GPUTexture):TextureCreator;fromBitmap(bitmap:ImageBitmap):Promise<{"__#7@#device":GPUDevice;"__#7@#texture":GPUTexture;"__#7@#view":import("../sub/data/texture/textureView").TextureViewCreator;"__#7@#options":TEXTURE_CREATOR_OPTIONS|undefined;"__#7@#value"?:GPUAllowSharedBufferSource;"__#7@#destroyed":boolean;"__#7@#usageOptions":import("../sub/data/texture/textureUsageOptions").default;readonly View:{new():{readonly view:GPUTextureView;raw():GPUTextureView;readonly __brand:"TextureViewCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}};"__#7@#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};"__#7@#write"(data:GPUAllowSharedBufferSource):void;sync():void;raw():GPUTexture;clone():TextureCreator;view():import("../sub/data/texture/textureView").TextureViewCreator;copyToBuffer(destination:BufferCreator|import("../../helpers/types/DCMember").default<"Buffer">|GPUBuffer,options?:import("../sub/data/texture").TEXTURE_TO_BUFFER_OPTIONS):void;copyToTexture(destination:TextureCreator|import("../../helpers/types/DCMember").default<"Texture">|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("@agpu/helpers/unsure").default<string>;label<T extends string>(label:T):T;readonly __brand:"TextureCreator";[Symbol.hasInstance](instance:TextureCreator):instance is TextureCreator}>};readonly Sampler:{new(options?:GPUSamplerDescriptor):{"__#6@#device"?:GPUDevice;"__#6@#descriptor"?:GPUSamplerDescriptor;sampler:GPUSampler;clone():SamplerCreator;raw():GPUSampler;readonly __brand:"SamplerCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};from(sampler:GPUSampler):SamplerCreator};readonly ShaderModule:{new(code:string,options?:SHADER_MODULE_OPTIONS):{"__#4@#device"?:GPUDevice;"__#4@#code"?:string;"__#4@#entryPoint"?:string;"__#4@#constants"?:Record<string,number>;"__#4@#label"?:string;"__#4@#hints"?:Iterable<GPUShaderModuleCompilationHint>;readonly module:GPUShaderModule;clone():ShaderModuleCreator;entryPoint():import("@agpu/helpers/unsure").default<string>;constants():import("@agpu/helpers/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):{"__#1@#device"?:GPUDevice;"__#1@#descriptor"?:GPUBindGroupLayoutDescriptor;readonly bindGroupLayout:GPUBindGroupLayout;clone():BindGroupLayoutCreator;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};from(bgl:GPUBindGroupLayout):BindGroupLayoutCreator};readonly BindGroup:{new(options:BIND_GROUP_OPTIONS):{"__#8@#device"?:GPUDevice;"__#8@#options"?:BIND_GROUP_OPTIONS;"__#8@#layout":BindGroupLayoutCreator|import("../../helpers/types/DCMember").default<"BindGroupLayout">;readonly bindGroup:GPUBindGroup;"__#8@#buildOptions"(options:BIND_GROUP_OPTIONS):GPUBindGroupDescriptor;layout():BindGroupLayoutCreator|{"__#1@#device"?:GPUDevice;"__#1@#descriptor"?:GPUBindGroupLayoutDescriptor;readonly bindGroupLayout:GPUBindGroupLayout;clone():BindGroupLayoutCreator;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};clone():BindGroupCreator;raw():GPUBindGroup;readonly __brand:"BindGroupCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};from(bindGroup:GPUBindGroup):BindGroupCreator};readonly RenderPipeline:{new(options:RENDER_PIPELINE_OPTIONS):{label():Promise<import("@agpu/helpers/unsure").default<string>>;label<T extends string>(label:T):Promise<T>;"__#5@#device"?:GPUDevice;"__#5@#options"?:RENDER_PIPELINE_OPTIONS;"__#5@#gblcache":Record<number,InstanceType<DeviceControls["BindGroupLayout"]>>;"__#5@#initWaiters":((bool:boolean)=>any)[];"__#5@#pipelineCreated":boolean;"__#5@#pipelineInitFailed":boolean;pipeline:Promise<GPURenderPipeline>;"__#5@#flushInitWaiters"(success:boolean):void;"__#5@#buildVertexState"(opts:import("../sub/pipeline/renderPipeline").VERTEX_STATE):GPUVertexState;"__#5@#buildFragmentState"(opts:import("../sub/pipeline/renderPipeline").FRAGMENT_STATE):GPUFragmentState;"__#5@#buildDepthStencil"(depthstencil?:import("../sub/pipeline/renderPipeline").DEPTH_STENCIL):GPUDepthStencilState;"__#5@#buildPipelineDescriptor"(opts:RENDER_PIPELINE_OPTIONS):GPURenderPipelineDescriptor;init():Promise<unknown>;bindGroupLayout:(index:number)=>Promise<{"__#1@#device"?:GPUDevice;"__#1@#descriptor"?:GPUBindGroupLayoutDescriptor;readonly bindGroupLayout:GPUBindGroupLayout;clone():BindGroupLayoutCreator;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}>;clone():RenderPipelineCreator;raw():Promise<GPURenderPipeline>;readonly __brand:"RenderPipelineCreator";[Symbol.hasInstance](instance:any):boolean};from(grp:GPURenderPipeline):RenderPipelineCreator};readonly ComputePipeline:{new(options:COMPUTE_PIPELINE_OPTION):{label():Promise<string>;label<T extends string>(label:T):Promise<T>;"__#9@#device"?:GPUDevice;"__#9@#options"?:COMPUTE_PIPELINE_OPTION;"__#9@#initWaiters":((bool:boolean)=>void)[];"__#9@#pipelineCreated":boolean;computePipeline:Promise<GPUComputePipeline>;"__#9@#buildDescriptor"(options:COMPUTE_PIPELINE_OPTION):GPUComputePipelineDescriptor;init():Promise<boolean>;clone():ComputePipelineCreator;raw():Promise<GPUComputePipeline>;readonly __brand:"ComputePipelineCreator";[Symbol.hasInstance](instance:any):boolean};from(computePipeline:GPUComputePipeline):ComputePipelineCreator};readonly PipelineLayout:{new(options?:PIPELINE_LAYOUT_OPTIONS):{"__#3@#device"?:GPUDevice;"__#3@#options"?:PIPELINE_LAYOUT_OPTIONS;pipelineLayout:GPUPipelineLayout;"__#3@#pipelineLayout":GPUPipelineLayout;"__#3@#buildFromOptions"(options:PIPELINE_LAYOUT_OPTIONS):GPUPipelineLayoutDescriptor;clone():PipelineLayoutCreator;raw():GPUPipelineLayout;readonly __brand:"PipelineLayoutCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};from(pl:GPUPipelineLayout):PipelineLayoutCreator};readonly QuerySet:{new(options:GPUQuerySetDescriptor):{label():string;label<T extends string>(label:T):T;"__#10@#device":GPUDevice;"__#10@#destroyed":boolean;querySet:GPUQuerySet;queryDescriptor:GPUQuerySetDescriptor;clone():QuerySetCreator;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):{cmdencoder:GPUCommandEncoder;readonly RenderPass:typeof import("../sub/pipeline/commandEncoder/renderPass").RenderPassCreator;readonly ComputePass:{new(options:import("../sub/pipeline/commandEncoder/computepass").COMPUTE_PASS_OPTIONS):{readonly computepass:GPUComputePassEncoder;"__#12@#debugDepth":number;"__#12@#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;"__#12@#pipeline"?:ComputePipelineCreator;pipeline():Promise<import("@agpu/helpers/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@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;value():import("@agpu/helpers/unsure").default<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;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@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;value():import("@agpu/helpers/unsure").default<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;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};"__#15@#debugDepth":number;finish(des:GPUObjectDescriptorBase):CommandBufferCreator;readonly __brand:"CommandEncoderCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T};from(cmdencoder:GPUCommandEncoder):CommandEncoderCreator}}export default DeviceControls;
@@ -1 +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;
1
+ "use strict";var e=this&&this.__esDecorate||((e,t,r,u,s,a)=>{function n(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var i,o=u.kind,c="getter"===o?"get":"setter"===o?"set":"value",l=!t&&e?u.static?e:e.prototype:null,d=t||(l?Object.getOwnPropertyDescriptor(l,u.name):{}),p=!1,f=r.length-1;f>=0;f--){var m={};for(var h in u)m[h]="access"===h?{}:u[h];for(var h in u.access)m.access[h]=u.access[h];m.addInitializer=e=>{if(p)throw new TypeError("Cannot add initializers after decoration has completed");a.push(n(e||null))};var b=(0,r[f])("accessor"===o?{get:d.get,set:d.set}:d[c],m);if("accessor"===o){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(i=n(b.get))&&(d.get=i),(i=n(b.set))&&(d.set=i),(i=n(b.init))&&s.unshift(i)}else(i=n(b))&&("field"===o?s.unshift(i):d[c]=i)}l&&Object.defineProperty(l,u.name,d),p=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var u=arguments.length>2,s=0;t.length>s;s++)r=u?t[s].call(e,r):t[s].call(e);return u?r:void 0},r=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.DeviceControls=void 0;const u=r(require("../sub/data/bindGroupLayout")),s=r(require("../sub/data/buffers")),a=r(require("../sub/pipeline/pipelineLayout")),n=r(require("../sub/pipeline/renderPipeline")),i=r(require("../sub/pipeline/sampler")),o=r(require("../sub/data/shaderModule")),c=r(require("../sub/data/texture")),l=r(require("../sub/data/bindGroup")),d=r(require("../sub/pipeline/computePipeline")),p=r(require("../../helpers/errors")),f=r(require("../sub/pipeline/querySet")),m=r(require("../sub/pipeline/renderBundleEncoder")),h=require("@agpu/helpers/decorators"),b=require("@agpu/helpers/decorators"),g=r(require("../sub/pipeline/commandEncoder"));let w=(()=>{let r,w,x=[(0,h.brand)("DeviceControls"),(0,b.raw)("device")],y=[];return class{static{w=this}static{const u="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,r={value:w},x,{kind:"class",name:w.name,metadata:u},null,y),w=r.value,u&&Object.defineProperty(w,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:u}),t(w,y)}constructor(e){this.#e=e,this.device=e,this.Buffer=class extends s.default{constructor(t){super(e,t)}static async from(t){if(!(t.usage&GPUBufferUsage.MAP_READ))throw(0,p.default)(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.default(e,{value:r,usage:t.usage})}};const t=this;this.Texture=class extends c.default{constructor(t){super(e,t)}static async fromURL(r){const u=await fetch(r),s=await u.blob(),a=await createImageBitmap(s),n=new t.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:n.raw()},[a.width,a.height]),n}static from(t){return new c.default(e,t)}static async fromBitmap(r){const u=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:u.raw()},[r.width,r.height]),u}},this.Sampler=class extends i.default{constructor(t={magFilter:"linear",minFilter:"linear"}){super(e,t)}static from(t){return new i.default(e,t)}},this.ShaderModule=class extends o.default{constructor(t,r){super(e,t,r)}static from(t){return new o.default(e,t)}},this.RenderPipeline=class extends n.default{constructor(t){super(e,t)}static from(t){return new n.default(e,t)}},this.BindGroupLayout=class extends u.default{constructor(t){super(e,t)}static from(t){return new u.default(e,t)}},this.PipelineLayout=class extends a.default{constructor(t={}){super(e,t)}static from(t){return new a.default(e,t)}},this.BindGroup=class extends l.default{constructor(t){super(e,t)}static from(t){return new l.default(e,t)}},this.ComputePipeline=class extends d.default{constructor(t){super(e,t)}static from(t){return new d.default(e,t)}},this.QuerySet=class extends f.default{constructor(t){super(e,t)}},this.RenderBundleEncoder=class extends m.default{constructor(t){super(e,e.createRenderBundleEncoder(t))}},this.CommandEncoder=class extends g.default{constructor(t){super(e,t)}static from(t){return new g.default(e,t)}}}queue={submit:e=>{if(!Array.isArray(e)||0===e.length)throw(0,p.default)(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(0,p.default)(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})();exports.DeviceControls=w,exports.default=w;
@@ -1 +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;
1
+ import{BRAND}from"@agpu/helpers/decorators";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;
@@ -1 +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;
1
+ "use strict";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",u=!t&&e?a.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,a.name):{}),f=!1,h=r.length-1;h>=0;h--){var p={};for(var v in a)p[v]="access"===v?{}:a[v];for(var v in a.access)p.access[v]=a.access[v];p.addInitializer=e=>{if(f)throw new TypeError("Cannot add initializers after decoration has completed");o.push(i(e||null))};var g=(0,r[h])("accessor"===c?{get:d.get,set:d.set}:d[l],p);if("accessor"===c){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw new TypeError("Object expected");(s=i(g.get))&&(d.get=s),(s=i(g.set))&&(d.set=s),(s=i(g.init))&&n.unshift(s)}else(s=i(g))&&("field"===c?n.unshift(s):d[l]=s)}u&&Object.defineProperty(u,a.name,d),f=!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},r=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0});const a=require("@agpu/helpers/decorators"),n=r(require("../../helpers/errors")),o=r(require("./adapter")),i=require("./context");let s=(()=>{let r,s,c=[(0,a.brand)("WebGPUControls")],l=[];return class{static{s=this}static{const a="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,r={value:s},c,{kind:"class",name:s.name,metadata:a},null,l),s=r.value,a&&Object.defineProperty(s,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a}),t(s,l)}constructor(e){if(!navigator.gpu)throw(0,n.default)(24,"WebGPU not supported!");if(!(e instanceof HTMLCanvasElement))throw(0,n.default)(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 i.ContextControls(e);throw(0,n.default)(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(0,n.default)(25,"navigator.gpu.requestAdapter returned null");return this.#t=new o.default(e)}).catch(e=>{if(e instanceof Error&&"code"in e)throw e;throw(0,n.default)(28,"Failed to acquire a GPU adapter.","Ensure a compatible WebGPU adapter is available and the browser has permission to use it.")})}},s})();exports.default=s;
@@ -1 +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;readonly computepass: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):{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;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: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:{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;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: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}}
1
+ import{BRAND,LABEL,RAW}from"@agpu/helpers/decorators";import DC_MEMBER from"../../../../helpers/types/DCMember";import UNSURE from"@agpu/helpers/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;readonly computepass: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@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;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@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;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}}
@@ -1 +1 @@
1
- var e=this&&this.__esDecorate||((e,t,r,s,i,a)=>{function n(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var o,p=s.kind,u="getter"===p?"get":"setter"===p?"set":"value",c=!t&&e?s.static?e:e.prototype:null,l=t||(c?Object.getOwnPropertyDescriptor(c,s.name):{}),d=!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(d)throw new TypeError("Cannot add initializers after decoration has completed");a.push(n(e||null))};var b=(0,r[m])("accessor"===p?{get:l.get,set:l.set}:l[u],f);if("accessor"===p){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(o=n(b.get))&&(l.get=o),(o=n(b.set))&&(l.set=o),(o=n(b.init))&&i.unshift(o)}else(o=n(b))&&("field"===p?i.unshift(o):l[u]=o)}c&&Object.defineProperty(c,s.name,l),d=!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/raw";import i from"../../../../helpers/decorators/labelling";import a from"../../../../helpers/errors";import n from"../../data/buffers";import o from"./renderPass/indirectBuffer";let p=(()=>{let p,u,c=[r("ComputePassCreator"),s("computepass"),i({get:e=>e.computepass.label,set:(e,t)=>e.computepass.label=t})],l=[];return class{static{u=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,p={value:u},c,{kind:"class",name:u.name,metadata:r},null,l),u=p.value,r&&Object.defineProperty(u,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(u,l)}computepass;constructor(e,t,r){this.computepass=t.beginComputePass(this.#e(r));class s extends o{static len=1;constructor(t){super(e,t)}static async from(t){const r=t instanceof n?t:new n(e,t),s=r.can,i=await r.value();return s.beBoundAs.indirect=!0,new o(e,{value:i??new Uint32Array(this.len),usage:{copy:s.copy,map:s.map,buffer:s.beBoundAs,queryable:s.query}})}}const i=this.computepass;this.dispatchWorkgroup=Object.assign((e,t,r)=>{i.dispatchWorkgroups(e,t,r)},{IndirectBuffer:class extends s{static len=3},indirect:(e,t)=>{i.dispatchWorkgroupsIndirect(e.raw(),t)}}),this.debug={push:e=>{this.#t++,i.pushDebugGroup(e)},pop:()=>{if(0>=this.#t)throw a(17,"debug.pop used before init");i.popDebugGroup(),this.#t--},insertMarker:e=>{i.insertDebugMarker(e)}}}#t=0;#e(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,r,s){s?this.computepass.setBindGroup(e,t.raw(),r,s.start,s.len):this.computepass.setBindGroup(e,t.raw())}#r;async pipeline(e){return void 0===e?this.#r:(this.computepass.setPipeline(await e.raw()),this.#r=e)}dispatchWorkgroup;end(){this.computepass.end()}debug},u})();export{p as ComputePassCreator};export default p;
1
+ "use strict";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 o,u=r.kind,p="getter"===u?"get":"setter"===u?"set":"value",c=!t&&e?r.static?e:e.prototype:null,l=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),d=!1,f=s.length-1;f>=0;f--){var h={};for(var b in r)h[b]="access"===b?{}:r[b];for(var b in r.access)h.access[b]=r.access[b];h.addInitializer=e=>{if(d)throw new TypeError("Cannot add initializers after decoration has completed");a.push(n(e||null))};var m=(0,s[f])("accessor"===u?{get:l.get,set:l.set}:l[p],h);if("accessor"===u){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(o=n(m.get))&&(l.get=o),(o=n(m.set))&&(l.set=o),(o=n(m.init))&&i.unshift(o)}else(o=n(m))&&("field"===u?i.unshift(o):l[p]=o)}c&&Object.defineProperty(c,r.name,l),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},s=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.ComputePassCreator=void 0;const r=require("@agpu/helpers/decorators"),i=require("@agpu/helpers/decorators"),a=require("@agpu/helpers/decorators"),n=s(require("../../../../helpers/errors")),o=s(require("../../data/buffers")),u=s(require("./renderPass/indirectBuffer"));let p=(()=>{let s,p,c=[(0,r.brand)("ComputePassCreator"),(0,i.raw)("computepass"),(0,a.labeling)({get:e=>e.computepass.label,set:(e,t)=>e.computepass.label=t})],l=[];return class{static{p=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,s={value:p},c,{kind:"class",name:p.name,metadata:r},null,l),p=s.value,r&&Object.defineProperty(p,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(p,l)}computepass;constructor(e,t,s){this.computepass=t.beginComputePass(this.#e(s));class r extends u.default{static len=1;constructor(t){super(e,t)}static async from(t){const s=t instanceof o.default?t:new o.default(e,t),r=s.can,i=await s.value();return r.beBoundAs.indirect=!0,new u.default(e,{value:i??new Uint32Array(this.len),usage:{copy:r.copy,map:r.map,buffer:r.beBoundAs,queryable:r.query}})}}const i=this.computepass;this.dispatchWorkgroup=Object.assign((e,t,s)=>{i.dispatchWorkgroups(e,t,s)},{IndirectBuffer:class extends r{static len=3},indirect:(e,t)=>{i.dispatchWorkgroupsIndirect(e.raw(),t)}}),this.debug={push:e=>{this.#t++,i.pushDebugGroup(e)},pop:()=>{if(0>=this.#t)throw(0,n.default)(17,"debug.pop used before init");i.popDebugGroup(),this.#t--},insertMarker:e=>{i.insertDebugMarker(e)}}}#t=0;#e(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.computepass.setBindGroup(e,t.raw(),s,r.start,r.len):this.computepass.setBindGroup(e,t.raw())}#s;async pipeline(e){return void 0===e?this.#s:(this.computepass.setPipeline(await e.raw()),this.#s=e)}dispatchWorkgroup;end(){this.computepass.end()}debug},p})();exports.ComputePassCreator=p,exports.default=p;
@@ -1 +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;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>}
1
+ import DC_MEMBER from"../../../../helpers/types/DCMember";import UNSURE from"@agpu/helpers/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;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>}
@@ -1 +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;
1
+ "use strict";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,u="getter"===d?"get":"setter"===d?"set":"value",c=!t&&e?n.static?e:e.prototype:null,l=t||(c?Object.getOwnPropertyDescriptor(c,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[u],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[u]=o)}c&&Object.defineProperty(c,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},r=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0});const n=r(require("../../../../helpers/errors")),i=require("@agpu/helpers/decorators"),s=require("@agpu/helpers/decorators"),a=r(require("../../data/buffers")),o=r(require("./renderPass/indirectBuffer"));let d=(()=>{let r,d,u=[(0,s.raw)("encoder"),(0,i.labeling)({get:e=>e.encoder.label,set:(e,t)=>e.encoder.label=t})],c=[];return class{static{d=this}static{const n="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,r={value:d},u,{kind:"class",name:d.name,metadata:n},null,c),d=r.value,n&&Object.defineProperty(d,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n}),t(d,c)}encoder;draw;buffer;debug;#e=0;#t;constructor(e,t){this.encoder=t;class r extends o.default{static len=1;constructor(t){super(e,t)}static async from(t){const r=t instanceof a.default?t:new a.default(e,t),n=r.can,i=await r.value();return n.beBoundAs.indirect=!0,new o.default(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 r{static len=4},IndexedIndirectBuffer:class extends r{static len=5}}),this.buffer={index:e=>{if(!e.can.beBoundAs.index)throw(0,n.default)(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(0,n.default)(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(0,n.default)(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})();exports.default=d;
@@ -1 +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)}}
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("../../../data/buffers")),t=require("../../../data/buffers/bufferUsageOptions");exports.default=class extends s.default{constructor(e,s){"number"==typeof s.usage&&(s.usage=(0,t.getOptionsFromUsage)(s.usage)),s.usage?.buffer&&(s.usage.buffer.indirect=!0),super(e,s)}};
@@ -1 +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):{"__#private@#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}}
1
+ import DC_MEMBER from"../../../../helpers/types/DCMember";import UNSURE from"@agpu/helpers/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):{"__#14@#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}}
@@ -1 +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;
1
+ "use strict";var e=this&&this.__esDecorate||((e,t,r,o,s,i)=>{function n(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 y in o)v[y]="access"===y?{}:o[y];for(var y in o.access)v.access[y]=o.access[y];v.addInitializer=e=>{if(p)throw new TypeError("Cannot add initializers after decoration has completed");i.push(n(e||null))};var m=(0,r[h])("accessor"===a?{get:u.get,set:u.set}:u[d],v);if("accessor"===a){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(c=n(m.get))&&(u.get=c),(c=n(m.set))&&(u.set=c),(c=n(m.init))&&s.unshift(c)}else(c=n(m))&&("field"===a?s.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,s=0;t.length>s;s++)r=o?t[s].call(e,r):t[s].call(e);return o?r:void 0},r=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.RenderPassCreator=void 0;const o=r(require("../../../../helpers/errors")),s=r(require("./renderEncoderBase")),i=require("@agpu/helpers/decorators");let n=(()=>{let r,n,c=[(0,i.brand)("RenderPassCreator")],a=[],d=s.default;var l=class extends d{static{n=this}static{const o="function"==typeof Symbol&&Symbol.metadata?Object.create(d[Symbol.metadata]??null):void 0;e(null,r={value:n},c,{kind:"class",name:n.name,metadata:o},null,a),l=n=r.value,o&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o}),t(n,a)}#e;#t;#r=[0,0,0,0];#o=[0,0,void 0,void 0];#s=[0,0,void 0,void 0,0,1];OcclusionQuery;constructor(e,t,r){super(e,t.beginRenderPass(l.buildDescriptor(r)));const s=this;this.OcclusionQuery=class{#i=!1;constructor(e){if(!r.occlusionQuerySet)throw(0,o.default)(14,"Occlusion Query Set Not Provided!");void 0!==s.#e&&(s.encoder.endOcclusionQuery(),s.#t?.()),s.#e=e,s.encoder.beginOcclusionQuery(e),s.#t=()=>{this.#i=!0,this.end()}}end(){this.#i||(this.#i=!0,s.#e=void 0,s.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,r,s){if(void 0===e)return this.#o;if(void 0===t||void 0===r||void 0===s)throw(0,o.default)(20,"scissorRect requires (x, y, width, height) to set.");this.encoder.setScissorRect(e,t,r,s);const i=[e,t,r,s];return this.#o=i,i}viewport(e,t,r,s,i,n){if(void 0===e)return this.#s;if(void 0===t||void 0===r||void 0===s||void 0===i||void 0===n)throw(0,o.default)(21,"viewport requires 6 arguments (x, y, width, height, minDepth, maxDepth) to set.");this.encoder.setViewport(e,t,r,s,i,n);const c=[e,t,r,s,i,n];return this.#s=c,c}executeBundles(e){return this.encoder.executeBundles(e.map(e=>e.raw()))}};return l=n})();exports.RenderPassCreator=n,exports.default=n;
@@ -1 +1 @@
1
- import DC_MEMBER from"../../../helpers/types/DCMember";import{BRAND,LABEL}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{}export declare class CommandEncoderCreator{#private;cmdencoder:GPUCommandEncoder;readonly RenderPass:typeof RenderPassCreator;readonly ComputePass:{new(options:COMPUTE_PASS_OPTIONS):{readonly computepass:GPUComputePassEncoder;"__#private@#debugDepth":number;"__#private@#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;"__#private@#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):{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;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: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:{"__#private@#currentBuffer":GPUBuffer;"__#private@#device":GPUDevice;"__#private@#value":GPUAllowSharedBufferSource;"__#private@#dirty":boolean;"__#private@#destroyed":boolean;"__#private@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;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: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;
1
+ import DC_MEMBER from"../../../helpers/types/DCMember";import{BRAND,LABEL}from"@agpu/helpers/decorators";import UNSURE from"@agpu/helpers/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{}export declare class CommandEncoderCreator{#private;cmdencoder:GPUCommandEncoder;readonly RenderPass:typeof RenderPassCreator;readonly ComputePass:{new(options:COMPUTE_PASS_OPTIONS):{readonly computepass:GPUComputePassEncoder;"__#12@#debugDepth":number;"__#12@#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;"__#12@#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@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;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@#dirty":boolean;"__#2@#destroyed":boolean;"__#2@#checkFlags"():boolean;raw():GPUBuffer;clone():BufferCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T;value():UNSURE<GPUAllowSharedBufferSource>;value<T extends GPUAllowSharedBufferSource>(val:T):T;label():string;label<T extends string>(label:T):T;sync():void;read():Promise<ArrayBuffer>;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;
@@ -1 +1 @@
1
- var e=this&&this.__esDecorate||((e,r,t,o,s,c)=>{function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var n,a=o.kind,d="getter"===a?"get":"setter"===a?"set":"value",u=!r&&e?o.static?e:e.prototype:null,f=r||(u?Object.getOwnPropertyDescriptor(u,o.name):{}),p=!1,m=t.length-1;m>=0;m--){var l={};for(var h in o)l[h]="access"===h?{}:o[h];for(var h in o.access)l.access[h]=o.access[h];l.addInitializer=e=>{if(p)throw new TypeError("Cannot add initializers after decoration has completed");c.push(i(e||null))};var b=(0,t[m])("accessor"===a?{get:f.get,set:f.set}:f[d],l);if("accessor"===a){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(n=i(b.get))&&(f.get=n),(n=i(b.set))&&(f.set=n),(n=i(b.init))&&s.unshift(n)}else(n=i(b))&&("field"===a?s.unshift(n):f[d]=n)}u&&Object.defineProperty(u,o.name,f),p=!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 c from"../data/commandbuffer";import i from"./commandEncoder/computepass";import n from"./commandEncoder/renderPass";let a=(()=>{let a,d,u=[o("CommandEncoderCreator"),s({get:e=>e.cmdencoder.label,set:(e,r)=>e.cmdencoder.label=r})],f=[];return class{static{d=this}static{const t="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,a={value:d},u,{kind:"class",name:d.name,metadata:t},null,f),d=a.value,t&&Object.defineProperty(d,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t}),r(d,f)}cmdencoder;RenderPass;ComputePass;debug;copy;#e=0;constructor(e,r){this.cmdencoder=r instanceof GPUCommandEncoder?r:e.createCommandEncoder({label:r}),this.cmdencoder=this.cmdencoder;const o=this;this.RenderPass=class extends n{constructor(r){super(e,o.cmdencoder,r)}},this.ComputePass=class extends i{constructor(r){super(e,o.cmdencoder,r)}},this.debug={push:e=>{this.#e++,this.cmdencoder.pushDebugGroup(e)},pop:()=>{if(0>=this.#e)throw t(17,"debug.pop used before init");this.cmdencoder.popDebugGroup(),this.#e--},insertMarker:e=>{this.cmdencoder.insertDebugMarker(e)}},this.copy={textureToTexture:(e,r,t)=>this.cmdencoder.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.cmdencoder.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.cmdencoder.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.cmdencoder.copyBufferToBuffer(e.raw(),r.raw(),t)}}finish(e){return new c(this.cmdencoder.finish(e))}},d})();export{a as CommandEncoderCreator};export default a;
1
+ "use strict";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,f=r||(d?Object.getOwnPropertyDescriptor(d,o.name):{}),l=!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(l)throw new TypeError("Cannot add initializers after decoration has completed");i.push(a(e||null))};var b=(0,t[p])("accessor"===n?{get:f.get,set:f.set}:f[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))&&(f.get=c),(c=a(b.set))&&(f.set=c),(c=a(b.init))&&s.unshift(c)}else(c=a(b))&&("field"===n?s.unshift(c):f[u]=c)}d&&Object.defineProperty(d,o.name,f),l=!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},t=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.CommandEncoderCreator=void 0;const o=t(require("../../../helpers/errors")),s=require("@agpu/helpers/decorators"),i=require("@agpu/helpers/decorators"),a=t(require("../data/commandbuffer")),c=t(require("./commandEncoder/computepass")),n=t(require("./commandEncoder/renderPass"));let u=(()=>{let t,u,d=[(0,s.brand)("CommandEncoderCreator"),(0,i.labeling)({get:e=>e.cmdencoder.label,set:(e,r)=>e.cmdencoder.label=r})],f=[];return class{static{u=this}static{const o="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,t={value:u},d,{kind:"class",name:u.name,metadata:o},null,f),u=t.value,o&&Object.defineProperty(u,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o}),r(u,f)}cmdencoder;RenderPass;ComputePass;debug;copy;#e=0;constructor(e,r){this.cmdencoder=r instanceof GPUCommandEncoder?r:e.createCommandEncoder({label:r}),this.cmdencoder=this.cmdencoder;const t=this;this.RenderPass=class extends n.default{constructor(r){super(e,t.cmdencoder,r)}},this.ComputePass=class extends c.default{constructor(r){super(e,t.cmdencoder,r)}},this.debug={push:e=>{this.#e++,this.cmdencoder.pushDebugGroup(e)},pop:()=>{if(0>=this.#e)throw(0,o.default)(17,"debug.pop used before init");this.cmdencoder.popDebugGroup(),this.#e--},insertMarker:e=>{this.cmdencoder.insertDebugMarker(e)}},this.copy={textureToTexture:(e,r,t)=>this.cmdencoder.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.cmdencoder.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.cmdencoder.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.cmdencoder.copyBufferToBuffer(e.raw(),r.raw(),t)}}finish(e){return new a.default(this.cmdencoder.finish(e))}},u})();exports.CommandEncoderCreator=u,exports.default=u;
@@ -1 +1 @@
1
- import{BRAND,RAW}from"../../../helpers/types/decoratorHelpers";import DC_MEMBER from"../../../helpers/types/DCMember";import PipelineLayoutCreator from"./pipelineLayout";import ShaderModuleCreator from"../data/shaderModule";export interface ComputePipelineCreator extends RAW<Promise<GPUComputePipeline>>,BRAND<"ComputePipelineCreator">{label():Promise<string>;label<T extends string>(label:T):Promise<T>}export declare class ComputePipelineCreator{#private;computePipeline:Promise<GPUComputePipeline>;constructor(device:GPUDevice,sm:COMPUTE_PIPELINE_OPTION|GPUComputePipeline);init():Promise<boolean>;clone():ComputePipelineCreator}export default ComputePipelineCreator;export interface COMPUTE_PIPELINE_OPTION extends GPUObjectDescriptorBase{module:ShaderModuleCreator|DC_MEMBER<"ShaderModule">;async?:boolean;layout:PipelineLayoutCreator}
1
+ import{BRAND,RAW}from"@agpu/helpers/decorators";import DC_MEMBER from"../../../helpers/types/DCMember";import PipelineLayoutCreator from"./pipelineLayout";import ShaderModuleCreator from"../data/shaderModule";export interface ComputePipelineCreator extends RAW<Promise<GPUComputePipeline>>,BRAND<"ComputePipelineCreator">{label():Promise<string>;label<T extends string>(label:T):Promise<T>}export declare class ComputePipelineCreator{#private;computePipeline:Promise<GPUComputePipeline>;constructor(device:GPUDevice,sm:COMPUTE_PIPELINE_OPTION|GPUComputePipeline);init():Promise<boolean>;clone():ComputePipelineCreator}export default ComputePipelineCreator;export interface COMPUTE_PIPELINE_OPTION extends GPUObjectDescriptorBase{module:ShaderModuleCreator|DC_MEMBER<"ShaderModule">;async?:boolean;layout:PipelineLayoutCreator}
@@ -1 +1 @@
1
- var e=this&&this.__esDecorate||((e,t,i,r,o,n)=>{function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=r.kind,c="getter"===l?"get":"setter"===l?"set":"value",p=!t&&e?r.static?e:e.prototype:null,u=t||(p?Object.getOwnPropertyDescriptor(p,r.name):{}),d=!1,h=i.length-1;h>=0;h--){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");n.push(a(e||null))};var y=(0,i[h])("accessor"===l?{get:u.get,set:u.set}:u[c],m);if("accessor"===l){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw new TypeError("Object expected");(s=a(y.get))&&(u.get=s),(s=a(y.set))&&(u.set=s),(s=a(y.init))&&o.unshift(s)}else(s=a(y))&&("field"===l?o.unshift(s):u[c]=s)}p&&Object.defineProperty(p,r.name,u),d=!0}),t=this&&this.__runInitializers||function(e,t,i){for(var r=arguments.length>2,o=0;t.length>o;o++)i=r?t[o].call(e,i):t[o].call(e);return r?i:void 0};import i from"../../../helpers/decorators/brand";import r from"../../../helpers/decorators/labelling";import o from"../../../helpers/decorators/raw";let n=(()=>{let n,a,s=[i("ComputePipelineCreator"),o("computePipeline"),r({get:async e=>(await e.computePipeline).label,set:async(e,t)=>(await e.computePipeline).label=t})],l=[];var c=class{static{a=this}static{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,n={value:a},s,{kind:"class",name:a.name,metadata:i},null,l),c=a=n.value,i&&Object.defineProperty(a,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),t(a,l)}#e;#t;#i=[];#r=!1;computePipeline;constructor(e,t){const i=t;i.module&&(this.#e=e,this.#t={...i}),this.computePipeline=i.module?i.async?e.createComputePipelineAsync(this.#o(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.#o(i)))):new Promise(()=>(this.#i.forEach(e=>e(!0)),this.#r=!0,t))}#o(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(()=>!0):new Promise(e=>{this.#i.push(t=>{e(t)})})}clone(){if(!this.#e||!this.#t)throw new TypeError("Cannot clone a ComputePipelineCreator created from a raw GPUComputePipeline.");return new c(this.#e,{...this.#t})}};return c=a})();export{n as ComputePipelineCreator};export default n;
1
+ "use strict";var e=this&&this.__esDecorate||((e,t,i,r,o,n)=>{function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=r.kind,c="getter"===l?"get":"setter"===l?"set":"value",p=!t&&e?r.static?e:e.prototype:null,u=t||(p?Object.getOwnPropertyDescriptor(p,r.name):{}),d=!1,h=i.length-1;h>=0;h--){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");n.push(a(e||null))};var y=(0,i[h])("accessor"===l?{get:u.get,set:u.set}:u[c],m);if("accessor"===l){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw new TypeError("Object expected");(s=a(y.get))&&(u.get=s),(s=a(y.set))&&(u.set=s),(s=a(y.init))&&o.unshift(s)}else(s=a(y))&&("field"===l?o.unshift(s):u[c]=s)}p&&Object.defineProperty(p,r.name,u),d=!0}),t=this&&this.__runInitializers||function(e,t,i){for(var r=arguments.length>2,o=0;t.length>o;o++)i=r?t[o].call(e,i):t[o].call(e);return r?i:void 0};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ComputePipelineCreator=void 0;const i=require("@agpu/helpers/decorators"),r=require("@agpu/helpers/decorators"),o=require("@agpu/helpers/decorators");let n=(()=>{let n,a,s=[(0,i.brand)("ComputePipelineCreator"),(0,o.raw)("computePipeline"),(0,r.labeling)({get:async e=>(await e.computePipeline).label,set:async(e,t)=>(await e.computePipeline).label=t})],l=[];var c=class{static{a=this}static{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,n={value:a},s,{kind:"class",name:a.name,metadata:i},null,l),c=a=n.value,i&&Object.defineProperty(a,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),t(a,l)}#e;#t;#i=[];#r=!1;computePipeline;constructor(e,t){const i=t;i.module&&(this.#e=e,this.#t={...i}),this.computePipeline=i.module?i.async?e.createComputePipelineAsync(this.#o(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.#o(i)))):new Promise(()=>(this.#i.forEach(e=>e(!0)),this.#r=!0,t))}#o(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(()=>!0):new Promise(e=>{this.#i.push(t=>{e(t)})})}clone(){if(!this.#e||!this.#t)throw new TypeError("Cannot clone a ComputePipelineCreator created from a raw GPUComputePipeline.");return new c(this.#e,{...this.#t})}};return c=a})();exports.ComputePipelineCreator=n,exports.default=n;
@@ -1 +1 @@
1
- import DeviceControls from"../../main/device";import{BRAND,LABEL,RAW}from"../../../helpers/types/decoratorHelpers";import BindGroupLayoutCreator from"../data/bindGroupLayout";export interface PipelineLayoutCreator extends RAW<GPUPipelineLayout>,BRAND<"PipelineLayoutCreator">,LABEL{}export declare class PipelineLayoutCreator{#private;pipelineLayout:GPUPipelineLayout;constructor(device:GPUDevice,pipelineLayoutOrOptions:GPUPipelineLayout|PIPELINE_LAYOUT_OPTIONS);clone():PipelineLayoutCreator}export default PipelineLayoutCreator;export interface PIPELINE_LAYOUT_OPTIONS extends GPUObjectDescriptorBase{bindGroupLayouts?:(InstanceType<DeviceControls["BindGroupLayout"]>|BindGroupLayoutCreator)[]}
1
+ import DeviceControls from"../../main/device";import{BRAND,LABEL,RAW}from"@agpu/helpers/decorators";import BindGroupLayoutCreator from"../data/bindGroupLayout";export interface PipelineLayoutCreator extends RAW<GPUPipelineLayout>,BRAND<"PipelineLayoutCreator">,LABEL{}export declare class PipelineLayoutCreator{#private;pipelineLayout:GPUPipelineLayout;constructor(device:GPUDevice,pipelineLayoutOrOptions:GPUPipelineLayout|PIPELINE_LAYOUT_OPTIONS);clone():PipelineLayoutCreator}export default PipelineLayoutCreator;export interface PIPELINE_LAYOUT_OPTIONS extends GPUObjectDescriptorBase{bindGroupLayouts?:(InstanceType<DeviceControls["BindGroupLayout"]>|BindGroupLayoutCreator)[]}
@@ -1 +1 @@
1
- var e=this&&this.__esDecorate||((e,t,i,o,r,a)=>{function n(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=o.kind,p="getter"===l?"get":"setter"===l?"set":"value",u=!t&&e?o.static?e:e.prototype:null,c=t||(u?Object.getOwnPropertyDescriptor(u,o.name):{}),d=!1,y=i.length-1;y>=0;y--){var h={};for(var b in o)h[b]="access"===b?{}:o[b];for(var b in o.access)h.access[b]=o.access[b];h.addInitializer=e=>{if(d)throw new TypeError("Cannot add initializers after decoration has completed");a.push(n(e||null))};var f=(0,i[y])("accessor"===l?{get:c.get,set:c.set}:c[p],h);if("accessor"===l){if(void 0===f)continue;if(null===f||"object"!=typeof f)throw new TypeError("Object expected");(s=n(f.get))&&(c.get=s),(s=n(f.set))&&(c.set=s),(s=n(f.init))&&r.unshift(s)}else(s=n(f))&&("field"===l?r.unshift(s):c[p]=s)}u&&Object.defineProperty(u,o.name,c),d=!0}),t=this&&this.__runInitializers||function(e,t,i){for(var o=arguments.length>2,r=0;t.length>r;r++)i=o?t[r].call(e,i):t[r].call(e);return o?i:void 0};import i from"../../../helpers/decorators/brand";import o from"../../../helpers/decorators/labelling";import r from"../../../helpers/decorators/raw";let a=(()=>{let a,n,s=[i("PipelineLayoutCreator"),r("pipelineLayout"),o({get:e=>e.pipelineLayout.label,set:(e,t)=>e.pipelineLayout.label=t})],l=[];var p=class{static{n=this}static{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,a={value:n},s,{kind:"class",name:n.name,metadata:i},null,l),p=n=a.value,i&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),t(n,l)}#e;#t;pipelineLayout;constructor(e,t){t instanceof GPUPipelineLayout?this.#i=t:(this.#e=e,this.#t={...t,bindGroupLayouts:t.bindGroupLayouts?[...t.bindGroupLayouts]:void 0},this.#i=e.createPipelineLayout(this.#o(t))),this.pipelineLayout=this.#i}#i;#o(e){return{label:e.label,bindGroupLayouts:e.bindGroupLayouts?.map(e=>e.raw())??[]}}clone(){if(!this.#e||!this.#t)throw new TypeError("Cannot clone a PipelineLayoutCreator created from a raw GPUPipelineLayout.");return new p(this.#e,{...this.#t,label:this.pipelineLayout.label||this.#t.label,bindGroupLayouts:this.#t.bindGroupLayouts?[...this.#t.bindGroupLayouts]:void 0})}};return p=n})();export{a as PipelineLayoutCreator};export default a;
1
+ "use strict";var e=this&&this.__esDecorate||((e,t,i,o,r,a)=>{function n(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,l=o.kind,p="getter"===l?"get":"setter"===l?"set":"value",u=!t&&e?o.static?e:e.prototype:null,c=t||(u?Object.getOwnPropertyDescriptor(u,o.name):{}),d=!1,y=i.length-1;y>=0;y--){var h={};for(var b in o)h[b]="access"===b?{}:o[b];for(var b in o.access)h.access[b]=o.access[b];h.addInitializer=e=>{if(d)throw new TypeError("Cannot add initializers after decoration has completed");a.push(n(e||null))};var f=(0,i[y])("accessor"===l?{get:c.get,set:c.set}:c[p],h);if("accessor"===l){if(void 0===f)continue;if(null===f||"object"!=typeof f)throw new TypeError("Object expected");(s=n(f.get))&&(c.get=s),(s=n(f.set))&&(c.set=s),(s=n(f.init))&&r.unshift(s)}else(s=n(f))&&("field"===l?r.unshift(s):c[p]=s)}u&&Object.defineProperty(u,o.name,c),d=!0}),t=this&&this.__runInitializers||function(e,t,i){for(var o=arguments.length>2,r=0;t.length>r;r++)i=o?t[r].call(e,i):t[r].call(e);return o?i:void 0};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PipelineLayoutCreator=void 0;const i=require("@agpu/helpers/decorators"),o=require("@agpu/helpers/decorators"),r=require("@agpu/helpers/decorators");let a=(()=>{let a,n,s=[(0,i.brand)("PipelineLayoutCreator"),(0,r.raw)("pipelineLayout"),(0,o.labeling)({get:e=>e.pipelineLayout.label,set:(e,t)=>e.pipelineLayout.label=t})],l=[];var p=class{static{n=this}static{const i="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,a={value:n},s,{kind:"class",name:n.name,metadata:i},null,l),p=n=a.value,i&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i}),t(n,l)}#e;#t;pipelineLayout;constructor(e,t){t instanceof GPUPipelineLayout?this.#i=t:(this.#e=e,this.#t={...t,bindGroupLayouts:t.bindGroupLayouts?[...t.bindGroupLayouts]:void 0},this.#i=e.createPipelineLayout(this.#o(t))),this.pipelineLayout=this.#i}#i;#o(e){return{label:e.label,bindGroupLayouts:e.bindGroupLayouts?.map(e=>e.raw())??[]}}clone(){if(!this.#e||!this.#t)throw new TypeError("Cannot clone a PipelineLayoutCreator created from a raw GPUPipelineLayout.");return new p(this.#e,{...this.#t,label:this.pipelineLayout.label||this.#t.label,bindGroupLayouts:this.#t.bindGroupLayouts?[...this.#t.bindGroupLayouts]:void 0})}};return p=n})();exports.PipelineLayoutCreator=a,exports.default=a;
@@ -1 +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);clone():QuerySetCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T}export default QuerySetCreator;
1
+ import{BRAND,RAW}from"@agpu/helpers/decorators";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);clone():QuerySetCreator;destroy():boolean;destroy<T extends boolean>(destroy:T):T}export default QuerySetCreator;
@@ -1 +1 @@
1
- var e=this&&this.__esDecorate||((e,t,r,o,s,i)=>{function n(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var a,l=o.kind,c="getter"===l?"get":"setter"===l?"set":"value",d=!t&&e?o.static?e:e.prototype:null,u=t||(d?Object.getOwnPropertyDescriptor(d,o.name):{}),y=!1,h=r.length-1;h>=0;h--){var f={};for(var p in o)f[p]="access"===p?{}:o[p];for(var p in o.access)f.access[p]=o.access[p];f.addInitializer=e=>{if(y)throw new TypeError("Cannot add initializers after decoration has completed");i.push(n(e||null))};var m=(0,r[h])("accessor"===l?{get:u.get,set:u.set}:u[c],f);if("accessor"===l){if(void 0===m)continue;if(null===m||"object"!=typeof m)throw new TypeError("Object expected");(a=n(m.get))&&(u.get=a),(a=n(m.set))&&(u.set=a),(a=n(m.init))&&s.unshift(a)}else(a=n(m))&&("field"===l?s.unshift(a):u[c]=a)}d&&Object.defineProperty(d,o.name,u),y=!0}),t=this&&this.__runInitializers||function(e,t,r){for(var o=arguments.length>2,s=0;t.length>s;s++)r=o?t[s].call(e,r):t[s].call(e);return o?r:void 0};import r from"../../../helpers/decorators/brand";import o from"../../../helpers/decorators/labelling";import s from"../../../helpers/decorators/raw";import i from"../../../helpers/errors";let n=(()=>{let n,a,l=[r("QuerySetCreator"),s("querySet"),o({get:e=>e.querySet.label,set:(e,t)=>e.querySet.label=t})],c=[];var d=class{static{a=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,n={value:a},l,{kind:"class",name:a.name,metadata:r},null,c),d=a=n.value,r&&Object.defineProperty(a,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(a,c)}#e;#t=!1;querySet;queryDescriptor;constructor(e,t){this.#e=e,t instanceof GPUQuerySet?(this.querySet=t,this.queryDescriptor={type:t.type,count:t.count,label:t.label}):(this.queryDescriptor=t,this.querySet=e.createQuerySet(t))}clone(){if(this.#t)throw i(52,"Cannot clone a destroyed QuerySet.","Clone the query set before destroying it.");return new d(this.#e,{...this.queryDescriptor})}destroy(e){if(void 0===e)return this.#t;if(this.#t&&e)return!0;if(!this.#t&&e)return this.#t=!0,this.querySet.destroy(),!0;if(!this.#t&&!e)return!1;if(this.#t&&!e)throw i(51,"Resurrecting a query set is not allowed. This feature is deprecated");return this.#t}[Symbol("Symbol.dispose")](){this.destroy(!0)}};return d=a})();export{n as QuerySetCreator};export default n;
1
+ "use strict";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 n,u=s.kind,l="getter"===u?"get":"setter"===u?"set":"value",d=!t&&e?s.static?e:e.prototype:null,c=t||(d?Object.getOwnPropertyDescriptor(d,s.name):{}),y=!1,h=r.length-1;h>=0;h--){var f={};for(var p in s)f[p]="access"===p?{}:s[p];for(var p in s.access)f.access[p]=s.access[p];f.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"===u?{get:c.get,set:c.set}:c[l],f);if("accessor"===u){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(n=a(b.get))&&(c.get=n),(n=a(b.set))&&(c.set=n),(n=a(b.init))&&i.unshift(n)}else(n=a(b))&&("field"===u?i.unshift(n):c[l]=n)}d&&Object.defineProperty(d,s.name,c),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},r=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.QuerySetCreator=void 0;const s=require("@agpu/helpers/decorators"),i=require("@agpu/helpers/decorators"),o=require("@agpu/helpers/decorators"),a=r(require("../../../helpers/errors"));let n=(()=>{let r,n,u=[(0,s.brand)("QuerySetCreator"),(0,o.raw)("querySet"),(0,i.labeling)({get:e=>e.querySet.label,set:(e,t)=>e.querySet.label=t})],l=[];var d=class{static{n=this}static{const s="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,r={value:n},u,{kind:"class",name:n.name,metadata:s},null,l),d=n=r.value,s&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:s}),t(n,l)}#e;#t=!1;querySet;queryDescriptor;constructor(e,t){this.#e=e,t instanceof GPUQuerySet?(this.querySet=t,this.queryDescriptor={type:t.type,count:t.count,label:t.label}):(this.queryDescriptor=t,this.querySet=e.createQuerySet(t))}clone(){if(this.#t)throw(0,a.default)(52,"Cannot clone a destroyed QuerySet.","Clone the query set before destroying it.");return new d(this.#e,{...this.queryDescriptor})}destroy(e){if(void 0===e)return this.#t;if(this.#t&&e)return!0;if(!this.#t&&e)return this.#t=!0,this.querySet.destroy(),!0;if(!this.#t&&!e)return!1;if(this.#t&&!e)throw(0,a.default)(51,"Resurrecting a query set is not allowed. This feature is deprecated");return this.#t}[Symbol("Symbol.dispose")](){this.destroy(!0)}};return d=n})();exports.QuerySetCreator=n,exports.default=n;
@@ -1 +1 @@
1
- import{BRAND,LABEL,RAW}from"../../../../helpers/types/decoratorHelpers";export interface RenderBundleCreator extends RAW<GPURenderBundle>,BRAND<"RenderBundleCreator">,LABEL{}export declare class RenderBundleCreator{renderBundle:GPURenderBundle;constructor(renbun:GPURenderBundle)}export default RenderBundleCreator;
1
+ import{BRAND,LABEL,RAW}from"@agpu/helpers/decorators";export interface RenderBundleCreator extends RAW<GPURenderBundle>,BRAND<"RenderBundleCreator">,LABEL{}export declare class RenderBundleCreator{renderBundle:GPURenderBundle;constructor(renbun:GPURenderBundle)}export default RenderBundleCreator;
@@ -1 +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 m in n)h[m]="access"===m?{}:n[m];for(var m in n.access)h.access[m]=n.access[m];h.addInitializer=e=>{if(f)throw new TypeError("Cannot add initializers after decoration has completed");o.push(l(e||null))};var b=(0,r[p])("accessor"===s?{get:u.get,set:u.set}:u[c],h);if("accessor"===s){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(i=l(b.get))&&(u.get=i),(i=l(b.set))&&(u.set=i),(i=l(b.init))&&a.unshift(i)}else(i=l(b))&&("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)}renderBundle;constructor(e){this.renderBundle=e}},l})();export{o as RenderBundleCreator};export default o;
1
+ "use strict";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 s,i=n.kind,c="getter"===i?"get":"setter"===i?"set":"value",d=!t&&e?n.static?e:e.prototype:null,u=t||(d?Object.getOwnPropertyDescriptor(d,n.name):{}),p=!1,f=r.length-1;f>=0;f--){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(p)throw new TypeError("Cannot add initializers after decoration has completed");o.push(l(e||null))};var v=(0,r[f])("accessor"===i?{get:u.get,set:u.set}:u[c],h);if("accessor"===i){if(void 0===v)continue;if(null===v||"object"!=typeof v)throw new TypeError("Object expected");(s=l(v.get))&&(u.get=s),(s=l(v.set))&&(u.set=s),(s=l(v.init))&&a.unshift(s)}else(s=l(v))&&("field"===i?a.unshift(s):u[c]=s)}d&&Object.defineProperty(d,n.name,u),p=!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};Object.defineProperty(exports,"__esModule",{value:!0}),exports.RenderBundleCreator=void 0;const r=require("@agpu/helpers/decorators"),n=require("@agpu/helpers/decorators"),a=require("@agpu/helpers/decorators");let o=(()=>{let o,l,s=[(0,r.brand)("RenderBundleCreator"),(0,a.raw)("renderBundle"),(0,n.labeling)({get:e=>e.renderBundle.label,set:(e,t)=>e.renderBundle.label=t})],i=[];return class{static{l=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,o={value:l},s,{kind:"class",name:l.name,metadata:r},null,i),l=o.value,r&&Object.defineProperty(l,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(l,i)}renderBundle;constructor(e){this.renderBundle=e}},l})();exports.RenderBundleCreator=o,exports.default=o;
@@ -1 +1 @@
1
- import{BRAND,LABEL,RAW}from"../../../helpers/types/decoratorHelpers";import RenderEncoderBase from"./commandEncoder/renderEncoderBase";export interface RenderBundleEncoderCreator extends RAW<GPURenderBundleEncoder>,BRAND<"RenderBundleEncoderCreator">,LABEL{}export declare class RenderBundleEncoderCreator extends RenderEncoderBase<GPURenderBundleEncoder>{constructor(device:GPUDevice,renBun:GPURenderBundleEncoder);finish({label}?:{label?:string}):void}export default RenderBundleEncoderCreator;
1
+ import{BRAND,LABEL,RAW}from"@agpu/helpers/decorators";import RenderEncoderBase from"./commandEncoder/renderEncoderBase";export interface RenderBundleEncoderCreator extends RAW<GPURenderBundleEncoder>,BRAND<"RenderBundleEncoderCreator">,LABEL{}export declare class RenderBundleEncoderCreator extends RenderEncoderBase<GPURenderBundleEncoder>{constructor(device:GPUDevice,renBun:GPURenderBundleEncoder);finish({label}?:{label?:string}):void}export default RenderBundleEncoderCreator;
@@ -1 +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;
1
+ "use strict";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 s,l=n.kind,c="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 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(i(e||null))};var m=(0,r[p])("accessor"===l?{get:u.get,set:u.set}:u[c],h);if("accessor"===l){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))&&a.unshift(s)}else(s=i(m))&&("field"===l?a.unshift(s):u[c]=s)}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},r=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.RenderBundleEncoderCreator=void 0;const n=require("@agpu/helpers/decorators"),a=r(require("./commandEncoder/renderEncoderBase")),o=r(require("./renderBundleEncoder/renderBundle"));let i=(()=>{let r,i,s=[(0,n.brand)("RenderBundleEncoderCreator")],l=[],c=a.default;return class extends c{static{i=this}static{const n="function"==typeof Symbol&&Symbol.metadata?Object.create(c[Symbol.metadata]??null):void 0;e(null,r={value:i},s,{kind:"class",name:i.name,metadata:n},null,l),i=r.value,n&&Object.defineProperty(i,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n}),t(i,l)}constructor(e,t){super(e,t)}finish({label:e}={}){new o.default(this.encoder.finish({label:e}))}},i})();exports.RenderBundleEncoderCreator=i,exports.default=i;
@@ -1 +1 @@
1
- import{BRAND,RAW}from"../../../helpers/types/decoratorHelpers";import UNSURE from"../../../helpers/types/unsure";import DeviceControls from"../../main/device";import BindGroupLayoutCreator from"../data/bindGroupLayout";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>;constructor(device:GPUDevice,optionsOrPipeline:RENDER_PIPELINE_OPTIONS|GPURenderPipeline);init():Promise<unknown>;bindGroupLayout:(index:number)=>Promise<{"__#private@#device"?:GPUDevice;"__#private@#descriptor"?:GPUBindGroupLayoutDescriptor;readonly bindGroupLayout:GPUBindGroupLayout;clone():BindGroupLayoutCreator;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}>;clone():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>}export default RenderPipelineCreator;
1
+ import{BRAND,RAW}from"@agpu/helpers/decorators";import UNSURE from"@agpu/helpers/unsure";import DeviceControls from"../../main/device";import BindGroupLayoutCreator from"../data/bindGroupLayout";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>;constructor(device:GPUDevice,optionsOrPipeline:RENDER_PIPELINE_OPTIONS|GPURenderPipeline);init():Promise<unknown>;bindGroupLayout:(index:number)=>Promise<{"__#1@#device"?:GPUDevice;"__#1@#descriptor"?:GPUBindGroupLayoutDescriptor;readonly bindGroupLayout:GPUBindGroupLayout;clone():BindGroupLayoutCreator;raw():GPUBindGroupLayout;readonly __brand:"BindGroupLayoutCreator";[Symbol.hasInstance](instance:any):boolean;label():string;label<T extends string>(val:T):T}>;clone():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>}export default RenderPipelineCreator;
@@ -1 +1 @@
1
- function e(e){return{...e,vertex:{...e.vertex,buffers:e.vertex.buffers?Array.from(e.vertex.buffers):void 0},primitive:e.primitive?{...e.primitive}:void 0,depthStencil:t(e.depthStencil),multisample:e.multisample?{...e.multisample}:void 0,fragment:e.fragment?{...e.fragment,targets:Array.from(e.fragment.targets)}:void 0}}function t(e){if(e)return{...e,depth:e.depth?{...e.depth}:void 0,stencil:e.stencil?{front:e.stencil.front?{...e.stencil.front}:void 0,back:e.stencil.back?{...e.stencil.back}:void 0,mask:e.stencil.mask?{...e.stencil.mask}:void 0}:void 0,depthBias:e.depthBias?{...e.depthBias}:void 0}}var i=this&&this.__esDecorate||((e,t,i,r,n,a)=>{function l(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,o=r.kind,p="getter"===o?"get":"setter"===o?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),h=!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(h)throw new TypeError("Cannot add initializers after decoration has completed");a.push(l(e||null))};var v=(0,i[u])("accessor"===o?{get:d.get,set:d.set}:d[p],m);if("accessor"===o){if(void 0===v)continue;if(null===v||"object"!=typeof v)throw new TypeError("Object expected");(s=l(v.get))&&(d.get=s),(s=l(v.set))&&(d.set=s),(s=l(v.init))&&n.unshift(s)}else(s=l(v))&&("field"===o?n.unshift(s):d[p]=s)}c&&Object.defineProperty(c,r.name,d),h=!0}),r=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 n from"../../../helpers/decorators/brand";import a from"../../../helpers/errors";import l from"../../../helpers/decorators/labelling";import s from"../../../helpers/decorators/raw";import o from"../data/bindGroupLayout";const p={topology:"triangle-list",frontFace:"ccw",cullMode:"back"},c={format:"depth24plus",depth:{write:!0,compare:"less"}},d={count:4,alphaToCoverageEnabled:!1};let h=(()=>{let t,h,u=[n("RenderPipelineCreator"),s("pipeline"),l({get:async e=>(await e.pipeline).label,set:async(e,t)=>(await e.pipeline).label=t})],m=[];var f=class{static{h=this}static{const e="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;i(null,t={value:h},u,{kind:"class",name:h.name,metadata:e},null,m),f=h=t.value,e&&Object.defineProperty(h,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:e}),r(h,m)}#e;#t;#i={};#r=[];#n=!1;#a=!1;pipeline;constructor(t,i){let r={multisample:d,depthStencil:c,primitive:p};i instanceof GPURenderPipeline?(this.#n=!0,this.pipeline=Promise.resolve(i)):i?.async?(this.#e=t,this.#t=e(i),this.pipeline=t.createRenderPipelineAsync(this.#l({...r,...i})).then(e=>(this.#n=!0,this.#a=!1,this.#s(!0),e)).catch(e=>{throw this.#n=!1,this.#a=!0,this.#s(!1),e})):(this.#e=t,this.#t=e(i),this.#n=!0,this.#a=!1,this.pipeline=Promise.resolve(t.createRenderPipeline(this.#l({...r,...i})))),this.bindGroupLayout=async function(e){return this.#i[e]?this.#i[e]:this.#i[e]=new o(t,(await this.pipeline).getBindGroupLayout(e))}}#s(e){this.#r.splice(0).forEach(t=>t(e))}#o(e){let t=e.vertex.module,i={module:t.raw()},r=t.entryPoint();r&&(i.entryPoint=r);let n=t.constants();n&&(i.constants=n);let a=e.vertex.buffers;return a&&(i.buffers=a),i}#p(e){let t=e.fragment.module,i={module:t.raw(),targets:e.fragment.targets},r=t.entryPoint();r&&(i.entryPoint=r);let n=t.constants();return n&&(i.constants=n),i}#c(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(e){if(!e?.vertex?.module)throw a(40,"RenderPipeline requires a vertex shader module.","Pass vertex.module when constructing RenderPipelineCreator.");if(!e?.layout)throw a(41,"RenderPipeline requires a pipeline layout or auto layout mode.","Pass a PipelineLayout wrapper or a valid GPUAutoLayoutMode.");let t={layout:e.layout.raw()??e?.layout,vertex:this.#o(e.vertex)};return e.fragment?.module&&(t.fragment=this.#p(e.fragment)),e.depthStencil&&(t.depthStencil=this.#c(e?.depthStencil)),e.multisample&&(t.multisample=e.multisample),e.primitive&&(t.primitive=e.primitive),e.label&&(t.label=e.label),t}init(){return this.#n?Promise.resolve(!0):this.#a?Promise.reject(a(42,"RenderPipeline initialization failed.","Inspect the pipeline descriptor, shader entry points, and GPU validation messages for the original failure.")):new Promise((e,t)=>{this.#r.push(i=>{i?e(i):t(i)})})}bindGroupLayout;clone(){if(!this.#e||!this.#t)throw new TypeError("Cannot clone a RenderPipelineCreator created from a raw GPURenderPipeline.");return new f(this.#e,e(this.#t))}};return f=h})();export{h as RenderPipelineCreator};export default h;
1
+ "use strict";function e(e){return{...e,vertex:{...e.vertex,buffers:e.vertex.buffers?Array.from(e.vertex.buffers):void 0},primitive:e.primitive?{...e.primitive}:void 0,depthStencil:t(e.depthStencil),multisample:e.multisample?{...e.multisample}:void 0,fragment:e.fragment?{...e.fragment,targets:Array.from(e.fragment.targets)}:void 0}}function t(e){if(e)return{...e,depth:e.depth?{...e.depth}:void 0,stencil:e.stencil?{front:e.stencil.front?{...e.stencil.front}:void 0,back:e.stencil.back?{...e.stencil.back}:void 0,mask:e.stencil.mask?{...e.stencil.mask}:void 0}:void 0,depthBias:e.depthBias?{...e.depthBias}:void 0}}var i=this&&this.__esDecorate||((e,t,i,r,a,n)=>{function l(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,o=r.kind,p="getter"===o?"get":"setter"===o?"set":"value",d=!t&&e?r.static?e:e.prototype:null,c=t||(d?Object.getOwnPropertyDescriptor(d,r.name):{}),u=!1,h=i.length-1;h>=0;h--){var f={};for(var m in r)f[m]="access"===m?{}:r[m];for(var m in r.access)f.access[m]=r.access[m];f.addInitializer=e=>{if(u)throw new TypeError("Cannot add initializers after decoration has completed");n.push(l(e||null))};var v=(0,i[h])("accessor"===o?{get:c.get,set:c.set}:c[p],f);if("accessor"===o){if(void 0===v)continue;if(null===v||"object"!=typeof v)throw new TypeError("Object expected");(s=l(v.get))&&(c.get=s),(s=l(v.set))&&(c.set=s),(s=l(v.init))&&a.unshift(s)}else(s=l(v))&&("field"===o?a.unshift(s):c[p]=s)}d&&Object.defineProperty(d,r.name,c),u=!0}),r=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},a=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.RenderPipelineCreator=void 0;const n=require("@agpu/helpers/decorators"),l=a(require("../../../helpers/errors")),s=require("@agpu/helpers/decorators"),o=require("@agpu/helpers/decorators"),p=a(require("../data/bindGroupLayout")),d={topology:"triangle-list",frontFace:"ccw",cullMode:"back"},c={format:"depth24plus",depth:{write:!0,compare:"less"}},u={count:4,alphaToCoverageEnabled:!1};let h=(()=>{let t,a,h=[(0,n.brand)("RenderPipelineCreator"),(0,o.raw)("pipeline"),(0,s.labeling)({get:async e=>(await e.pipeline).label,set:async(e,t)=>(await e.pipeline).label=t})],f=[];var m=class{static{a=this}static{const e="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;i(null,t={value:a},h,{kind:"class",name:a.name,metadata:e},null,f),m=a=t.value,e&&Object.defineProperty(a,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:e}),r(a,f)}#e;#t;#i={};#r=[];#a=!1;#n=!1;pipeline;constructor(t,i){let r={multisample:u,depthStencil:c,primitive:d};i instanceof GPURenderPipeline?(this.#a=!0,this.pipeline=Promise.resolve(i)):i?.async?(this.#e=t,this.#t=e(i),this.pipeline=t.createRenderPipelineAsync(this.#l({...r,...i})).then(e=>(this.#a=!0,this.#n=!1,this.#s(!0),e)).catch(e=>{throw this.#a=!1,this.#n=!0,this.#s(!1),e})):(this.#e=t,this.#t=e(i),this.#a=!0,this.#n=!1,this.pipeline=Promise.resolve(t.createRenderPipeline(this.#l({...r,...i})))),this.bindGroupLayout=async function(e){return this.#i[e]?this.#i[e]:this.#i[e]=new p.default(t,(await this.pipeline).getBindGroupLayout(e))}}#s(e){this.#r.splice(0).forEach(t=>t(e))}#o(e){let t=e.vertex.module,i={module:t.raw()},r=t.entryPoint();r&&(i.entryPoint=r);let a=t.constants();a&&(i.constants=a);let n=e.vertex.buffers;return n&&(i.buffers=n),i}#p(e){let t=e.fragment.module,i={module:t.raw(),targets:e.fragment.targets},r=t.entryPoint();r&&(i.entryPoint=r);let a=t.constants();return a&&(i.constants=a),i}#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"}}#l(e){if(!e?.vertex?.module)throw(0,l.default)(40,"RenderPipeline requires a vertex shader module.","Pass vertex.module when constructing RenderPipelineCreator.");if(!e?.layout)throw(0,l.default)(41,"RenderPipeline requires a pipeline layout or auto layout mode.","Pass a PipelineLayout wrapper or a valid GPUAutoLayoutMode.");let t={layout:e.layout.raw()??e?.layout,vertex:this.#o(e.vertex)};return e.fragment?.module&&(t.fragment=this.#p(e.fragment)),e.depthStencil&&(t.depthStencil=this.#d(e?.depthStencil)),e.multisample&&(t.multisample=e.multisample),e.primitive&&(t.primitive=e.primitive),e.label&&(t.label=e.label),t}init(){return this.#a?Promise.resolve(!0):this.#n?Promise.reject((0,l.default)(42,"RenderPipeline initialization failed.","Inspect the pipeline descriptor, shader entry points, and GPU validation messages for the original failure.")):new Promise((e,t)=>{this.#r.push(i=>{i?e(i):t(i)})})}bindGroupLayout;clone(){if(!this.#e||!this.#t)throw new TypeError("Cannot clone a RenderPipelineCreator created from a raw GPURenderPipeline.");return new m(this.#e,e(this.#t))}};return m=a})();exports.RenderPipelineCreator=h,exports.default=h;
@@ -1 +1 @@
1
- import{BRAND,LABEL,RAW}from"../../../helpers/types/decoratorHelpers";export interface SamplerCreator extends RAW<GPUSampler>,BRAND<"SamplerCreator">,LABEL{}export declare class SamplerCreator{#private;sampler:GPUSampler;constructor(device:GPUDevice,optionsOrSampler:GPUSamplerDescriptor|GPUSampler);clone():SamplerCreator}export default SamplerCreator;
1
+ import{BRAND,LABEL,RAW}from"@agpu/helpers/decorators";export interface SamplerCreator extends RAW<GPUSampler>,BRAND<"SamplerCreator">,LABEL{}export declare class SamplerCreator{#private;sampler:GPUSampler;constructor(device:GPUDevice,optionsOrSampler:GPUSamplerDescriptor|GPUSampler);clone():SamplerCreator}export default SamplerCreator;
@@ -1 +1 @@
1
- var e=this&&this.__esDecorate||((e,t,r,a,l,i)=>{function s(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,d=t||(p?Object.getOwnPropertyDescriptor(p,a.name):{}),m=!1,f=r.length-1;f>=0;f--){var h={};for(var u in a)h[u]="access"===u?{}:a[u];for(var u in a.access)h.access[u]=a.access[u];h.addInitializer=e=>{if(m)throw new TypeError("Cannot add initializers after decoration has completed");i.push(s(e||null))};var b=(0,r[f])("accessor"===n?{get:d.get,set:d.set}:d[c],h);if("accessor"===n){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(o=s(b.get))&&(d.get=o),(o=s(b.set))&&(d.set=o),(o=s(b.init))&&l.unshift(o)}else(o=s(b))&&("field"===n?l.unshift(o):d[c]=o)}p&&Object.defineProperty(p,a.name,d),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 i=(()=>{let i,s,o=[r("SamplerCreator"),l("sampler"),a({get:e=>e.sampler.label,set:(e,t)=>e.sampler.label=t})],n=[];var c=class{static{s=this}static{const r="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,i={value:s},o,{kind:"class",name:s.name,metadata:r},null,n),c=s=i.value,r&&Object.defineProperty(s,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r}),t(s,n)}#e;#t;sampler;constructor(e,t){t instanceof GPUSampler?this.sampler=t:(this.#e=e,this.#t={...t},this.sampler=e.createSampler(t)),t?.label&&(this.sampler.label=t.label)}clone(){if(!this.#e||!this.#t)throw new TypeError("Cannot clone a SamplerCreator created from a raw GPUSampler.");return new c(this.#e,{...this.#t,label:this.sampler.label||this.#t.label})}};return c=s})();export{i as SamplerCreator};export default i;
1
+ "use strict";var e=this&&this.__esDecorate||((e,r,t,a,s,l)=>{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=!r&&e?a.static?e:e.prototype:null,d=r||(p?Object.getOwnPropertyDescriptor(p,a.name):{}),u=!1,h=t.length-1;h>=0;h--){var f={};for(var m in a)f[m]="access"===m?{}:a[m];for(var m in a.access)f.access[m]=a.access[m];f.addInitializer=e=>{if(u)throw new TypeError("Cannot add initializers after decoration has completed");l.push(i(e||null))};var b=(0,t[h])("accessor"===n?{get:d.get,set:d.set}:d[c],f);if("accessor"===n){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(o=i(b.get))&&(d.get=o),(o=i(b.set))&&(d.set=o),(o=i(b.init))&&s.unshift(o)}else(o=i(b))&&("field"===n?s.unshift(o):d[c]=o)}p&&Object.defineProperty(p,a.name,d),u=!0}),r=this&&this.__runInitializers||function(e,r,t){for(var a=arguments.length>2,s=0;r.length>s;s++)t=a?r[s].call(e,t):r[s].call(e);return a?t:void 0};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SamplerCreator=void 0;const t=require("@agpu/helpers/decorators"),a=require("@agpu/helpers/decorators"),s=require("@agpu/helpers/decorators");let l=(()=>{let l,i,o=[(0,t.brand)("SamplerCreator"),(0,s.raw)("sampler"),(0,a.labeling)({get:e=>e.sampler.label,set:(e,r)=>e.sampler.label=r})],n=[];var c=class{static{i=this}static{const t="function"==typeof Symbol&&Symbol.metadata?Object.create(null):void 0;e(null,l={value:i},o,{kind:"class",name:i.name,metadata:t},null,n),c=i=l.value,t&&Object.defineProperty(i,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t}),r(i,n)}#e;#r;sampler;constructor(e,r){r instanceof GPUSampler?this.sampler=r:(this.#e=e,this.#r={...r},this.sampler=e.createSampler(r)),r?.label&&(this.sampler.label=r.label)}clone(){if(!this.#e||!this.#r)throw new TypeError("Cannot clone a SamplerCreator created from a raw GPUSampler.");return new c(this.#e,{...this.#r,label:this.sampler.label||this.#r.label})}};return c=i})();exports.SamplerCreator=l,exports.default=l;
@@ -1 +1 @@
1
- const e=GPUBufferUsage;export default e;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=GPUBufferUsage;exports.default=e;
@@ -1 +1 @@
1
- const e=GPUTextureUsage;export default e;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=GPUTextureUsage;exports.default=e;
@@ -1 +1 @@
1
- export const align=(t,a)=>Math.ceil(t/a)*a;export default align;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.align=void 0,exports.align=(e,t)=>Math.ceil(e/t)*t,exports.default=exports.align;
@@ -1 +1 @@
1
- const e={bufferUsage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,textureUsage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST};export default e;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e={bufferUsage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,textureUsage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST};exports.default=e;
@@ -1 +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;
1
+ import{AndromedaError}from"@agpu/helpers/errors";export default function error(code:number,message:string,hint?:string):AndromedaError;
@@ -1 +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)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=(r,s,t)=>(0,e.error)("@agpu/bindings",r,s,t);const e=require("@agpu/helpers/errors");
@@ -1 +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)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=t=>{const r=[...t.matchAll(e)].map(e=>+e[1]);return new Set(r)};const e=/@group\(([\d]+)\)/g;
@@ -1 +1 @@
1
- export{};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
package/dist/index.js CHANGED
@@ -1 +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};
1
+ "use strict";var e=this&&this.__importDefault||(e=>e&&e.__esModule?e:{default:e});Object.defineProperty(exports,"__esModule",{value:!0}),exports.TextureUsage=exports.BufferUsage=exports.WebGPUControls=void 0;const t=e(require("./constants/bufferusage"));exports.BufferUsage=t.default;const s=e(require("./constants/textureusage"));exports.TextureUsage=s.default;const r=e(require("./classes/main/webgpucontrols"));exports.WebGPUControls=r.default;
@@ -1 +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;
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")),a=require("./buffers/bufferUsageOptions"),n=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;#a=!1;#n;#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,a.getOptionsFromUsage)(r.usage):{},this.#n=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.#n),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.#n),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.#a=!0,this.#i=!0,"number"==typeof e?(this.#s=e,this.#h=(0,a.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.#n??this.#e.label:(e!==this.#n&&(this.#n=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.#a;if((r>t||s)&&(this.#e.destroy(),this.#e=e(this.#t,this.#r,this.#s,this.#n)),!this.can.copy.write)throw exports.couldNotAssignValue;this.#t.queue.writeBuffer(this.#e,0,this.#r,0,r),this.#a=!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,a.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,n.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},a=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:a,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;
@@ -1 +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;
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("./bindGroupLayout")),i={topology:"triangle-list",frontFace:"ccw",cullMode:"back"},s={format:"depth24plus",depth:{write:!0,compare:"less"}},a={count:4,alphaToCoverageEnabled:!1};class r{#t;#e;#i;#s;#a={};#r=[];#n=!1;constructor(t,e){this.#t=t;let r={multisample:a,depthStencil:s,primitive:i};e instanceof GPURenderPipeline||(this.#e=r={...r,...e}),this.#s=e.label,this.#i=e instanceof GPURenderPipeline?new Promise(t=>{this.#n=!0,this.#r.forEach(t=>t(!0)),t(e)}):new Promise(e?.async?(e,i)=>{t.createRenderPipelineAsync(this.#l()).catch(t=>i(t)).then(t=>{if(null==t)return i(),this.#n=!1,void this.#r.forEach(t=>t(!1));this.#n=!0,this.#r.forEach(t=>t(!0)),e(t)})}:e=>{this.#r.forEach(t=>t(!0)),e(t.createRenderPipeline(this.#l()))})}#h(){let t=this.#e.vertex.module,e={module:t.raw()},i=t.entryPoint();i&&(e.entryPoint=i);let s=t.constants();s&&(e.constants=s);let a=this.#e.vertex.buffers;return a&&(e.buffers=a),e}#o(){let t=this.#e.fragment.module,e={module:t.raw(),targets:this.#e.fragment.targets},i=t.entryPoint();i&&(e.entryPoint=i);let s=t.constants();return s&&(e.constants=s),e}#p(t){return t?{format:t.format,depthWriteEnabled:t.depth?.write,depthCompare:t.depth?.compare,stencilBack:t.stencil?.back,stencilFront:t.stencil?.front,stencilReadMask:t.stencil?.mask?.read,stencilWriteMask:t.stencil?.mask?.write,depthBias:t.depthBias?.value,depthBiasClamp:t.depthBias?.clamp,depthBiasSlopeScale:t.depthBias?.slopeScale}:{format:"depth24plus"}}#l(){let t={layout:this.#e.layout.raw()??this.#e?.layout,vertex:this.#h()};return this.#e.fragment?.module&&(t.fragment=this.#o()),this.#e.depthStencil&&(t.depthStencil=this.#p(this.#e?.depthStencil)),this.#e.multisample&&(t.multisample=this.#e.multisample),this.#e.primitive&&(t.primitive=this.#e.primitive),this.#e.label&&(t.label=this.#e.label),t}init(){return this.#n?new Promise(t=>t(!0)):new Promise((t,e)=>{this.#r.push(i=>{i?t(i):e(i)})})}async label(t){return void 0===t?this.#s:(await this.#i).label=this.#s=t}async bindGroupLayout(t){return this.#a[t]?this.#a[t]:this.#a[t]=new e.default(this.#t,(await this.#i).getBindGroupLayout(t))}async raw(){return await this.#i}[Symbol.hasInstance](t){return"RenderPipelineCreator"===t.__brand}__brand="RenderPipelineCreator"}exports.default=r;
@@ -1 +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;
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 s{#t;#e;#s;#i;#r;#h;#o;constructor(t,e,s){if(this.#s=t,"string"==typeof e){this.#e=e,this.#h=s?.entryPoint,this.#o=s?.constants,this.#i=s?.label??"";let i={code:e,label:s?.label??""};s?.hints&&(i.compilationHints=s.hints),this.#t=t.createShaderModule(i),this.#r=s?.hints}else this.#t=e,this.#e=void 0,this.#i=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.#i:this.#t.label=this.#i=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=s;
@@ -1 +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;
1
+ "use strict";function t(t,e,r){if(r)return(t=>{if("number"==typeof t)return{width:t,height:1,depthOrArrayLayers:1};if(Symbol.iterator in Object(t)){const e=Array.from(t);return{width:e[0]??1,height:e[1]??1,depthOrArrayLayers:e[2]??1}}return{width:t.width,height:t.height??1,depthOrArrayLayers:t.depthOrArrayLayers??1}})(r);const i=e??0;return{width:Math.max(1,t.width>>i),height:Math.max(1,t.height>>i),depthOrArrayLayers:t.depthOrArrayLayers}}function e(t){return"function"==typeof t.raw}function r(t){return"function"==typeof t.raw}var i=this&&this.__importDefault||(t=>t&&t.__esModule?t:{default:t});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{#t;#e;#r;#i;#s;#h=!1;#o;#a;#u=!1;constructor(t,e){if(this.#t=t,"value"in e){const{value:r,usage:i,...s}=e,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={...e,usage:o},this.#e=t.createTexture({...s,usage:o});let n=this.#i;this.#e=t.createTexture(n),this.#r=new u.default(this.#e.createView()),r&&(this.value(r),this.#s=r)}else{const t=e;this.#o=(0,a.getOptionsFromTextureUsage)(t.usage),this.#e=t,this.#r=new u.default(t.createView()),this.#i=void 0,this.#s=void 0,this.#a=t.usage}const r=this;this.View=class extends u.default{constructor(){super(r.#e.createView())}}}View;#n=!1;value(t){if(this.#h)throw c;if(void 0===t)return this.#s;if(!this.can.copy.write)throw f;return t!==this.#s&&(this.#s=t,this.#n=!0),t}get can(){const t=this.#o,e=t.copy,r=t.binding;return{copy:{read:!1!==e&&(!0===e||!!e?.read),write:!1!==e&&(!0===e||!!e?.write)},binding:{texture:!!r?.texture,storage:!!r?.storage},renderAttachment:!!t.renderAttachment}}#c(t){const e=this.#e.format,r=this.#e.width*(n[e]??4),i=(0,s.default)(r,256);this.#t.queue.writeTexture({texture:this.#e},t,{bytesPerRow:i,rowsPerImage:this.#e.height},{width:this.#e.width,height:this.#e.height,depthOrArrayLayers:this.#e.depthOrArrayLayers})}#f(){if(!this.#i)throw Error("Cannot recreate a raw GPUTexture (no original descriptor)");this.#e.destroy(),this.#i={...this.#i,usage:this.#a},this.#e=this.#t.createTexture(this.#i),this.#r=new u.default(this.#e.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.#e}view(){return this.#r}copyToBuffer(r,i={}){if(this.#h)throw c;if(!this.can.copy.read)throw d;if(this.#n&&this.sync(),e(r)){if(!r.can.copy.write)throw g}else if(!(r.usage&GPUBufferUsage.COPY_DST))throw g;const h=t(this.#e,i.mipLevel,i.size),o=i.bytesPerRow??(0,s.default)(h.width*(a=this.#e.format,n[a]??4),256);var a;const u=i.rowsPerImage??h.height,f=e(r)?r.raw():r,w=this.#t.createCommandEncoder();w.copyTextureToBuffer({texture:this.#e,origin:i.origin,aspect:i.aspect,mipLevel:i.mipLevel},{buffer:f,offset:i.offset,bytesPerRow:o,rowsPerImage:u},h),this.#t.queue.submit([w.finish()])}copyToTexture(e,i={}){if(this.#h)throw c;if(!this.can.copy.read)throw d;if(this.#n&&this.sync(),r(e)){if(!e.can.copy.write)throw w}else{const t=(0,a.getOptionsFromTextureUsage)(e.usage);if(!1===t.copy||!0!==t.copy&&!t.copy?.write)throw w}const s=r(e)?e.raw():e,h=t(this.#e,i.sourceMipLevel,i.size),o=this.#t.createCommandEncoder();o.copyTextureToTexture({texture:this.#e,mipLevel:i.sourceMipLevel,origin:i.sourceOrigin},{texture:s,mipLevel:i.destinationMipLevel,origin:i.destinationOrigin},h),this.#t.queue.submit([o.finish()])}aspect(){if(this.#h)throw c;return this.#e.width/this.#e.height}resize(t,e,r=this.#e.depthOrArrayLayers){if(this.#h)throw c;if(!this.#i)throw Error("Cannot resize a raw GPUTexture (no original descriptor)");const i=this.#e.width,s=this.#e.height,h=this.#e.depthOrArrayLayers;t===i&&e===s&&r===h||(this.#e.destroy(),this.#e=this.#t.createTexture({...this.#i,size:[t,e,r]}),this.#r=new u.default(this.#e.createView()),this.#s&&(this.#n=!0,this.sync()))}destroy(t){if(void 0===t)return this.#h;if(!0===t&&!this.#h)return this.#e.destroy(),this.#h=!0,!0;if(!1===t&&this.#h){if(!this.#i)throw Error("Cannot resurrect a raw GPUTexture");return this.#e=this.#t.createTexture(this.#i),this.#r=new u.default(this.#e.createView()),this.#h=!1,this.#s&&this.#c(this.#s),!1}return this.#h}label(t){if(this.#h)throw c;return void 0===t?this.#i?.label:this.#e.label=t}textureUsage(t){if(this.#h)throw c;return void 0===t?{number:this.#a,...this.#o}:(("number"==typeof t?t:(0,a.getTextureUsage)(t))!==this.#a&&(this.#u=!0,this.#n=!0,"number"==typeof t?(this.#a=t,this.#o=(0,a.getOptionsFromTextureUsage)(t)):(this.#a=(0,a.getTextureUsage)(t),this.#o=t)),"number"==typeof t?t:(0,a.getTextureUsage)(t))}[Symbol.hasInstance](t){return"TextureCreator"===t.__brand}__brand="TextureCreator"}exports.TextureCreator=l,exports.default=l;
package/package.json CHANGED
@@ -1,21 +1,22 @@
1
1
  {
2
2
  "devDependencies": {
3
3
  "@eslint/js": "^10.0.1",
4
- "@typescript-eslint/eslint-plugin": "^8.57.1",
5
- "@typescript-eslint/parser": "^8.57.1",
4
+ "@typescript-eslint/eslint-plugin": "^8.58.0",
5
+ "@typescript-eslint/parser": "^8.58.0",
6
6
  "dts-bundle-generator": "^9.5.1",
7
7
  "dts-minify": "^0.3.3",
8
- "eslint": "^10.0.3",
9
- "node": "^25.8.2",
8
+ "eslint": "^10.1.0",
9
+ "node": "^25.9.0",
10
10
  "shx": "^0.4.0",
11
11
  "terser": "^5.46.1",
12
12
  "typescript": "^5.9.3"
13
13
  },
14
14
  "dependencies": {
15
+ "@agpu/helpers": "^0.2.2",
15
16
  "@webgpu/types": "^0.1.69"
16
17
  },
17
18
  "name": "@agpu/bindings",
18
- "version": "0.2.1",
19
+ "version": "0.2.3",
19
20
  "author": {
20
21
  "name": "Kryft Studios",
21
22
  "email": "AfriaStudios@outlook.in",