@@ -6,104 +6,111 @@ package wgpu
66// https://gpuweb.github.io/gpuweb/#dom-gpudevice-queue
77func (g * Device ) GetQueue () * Queue {
88 jsQueue := g .jsValue .Get ("queue" )
9- return & Queue {
10- jsValue : jsQueue ,
11- }
9+ return & Queue {jsValue : jsQueue }
1210}
1311
14- func (g * Device ) TryCreateQuerySet (descriptor * QuerySetDescriptor ) (* QuerySet , error ) {
12+ func (g * Device ) TryCreateQuerySet (descriptor * QuerySetDescriptor ) (_ * QuerySet , err error ) {
13+ defer handleJsException (& err )
14+
1515 jsQuerySet := g .jsValue .Call ("createQuerySet" , pointerToJS (descriptor ))
1616 return & QuerySet {jsQuerySet }, nil
1717}
1818
1919// TryCreateCommandEncoder as described:
2020// https://gpuweb.github.io/gpuweb/#dom-gpudevice-createcommandencoder
21- func (g * Device ) TryCreateCommandEncoder (descriptor * CommandEncoderDescriptor ) (* CommandEncoder , error ) {
21+ func (g * Device ) TryCreateCommandEncoder (descriptor * CommandEncoderDescriptor ) (_ * CommandEncoder , err error ) {
22+ defer handleJsException (& err )
23+
2224 jsEncoder := g .jsValue .Call ("createCommandEncoder" , pointerToJS (descriptor ))
23- return & CommandEncoder {
24- jsValue : jsEncoder ,
25- }, nil
25+ return & CommandEncoder {jsValue : jsEncoder }, nil
2626}
2727
2828// TryCreateBuffer as described:
2929// https://gpuweb.github.io/gpuweb/#dom-gpudevice-createbuffer
30- func (g * Device ) TryCreateBuffer (descriptor * BufferDescriptor ) (* Buffer , error ) {
30+ func (g * Device ) TryCreateBuffer (descriptor * BufferDescriptor ) (_ * Buffer , err error ) {
31+ defer handleJsException (& err )
32+
3133 jsBuffer := g .jsValue .Call ("createBuffer" , pointerToJS (descriptor ))
32- return & Buffer {
33- jsValue : jsBuffer ,
34- }, nil
34+ return & Buffer {jsValue : jsBuffer }, nil
3535}
3636
3737// TryCreateShaderModule as described:
3838// https://gpuweb.github.io/gpuweb/#dom-gpudevice-createshadermodule
39- func (g * Device ) TryCreateShaderModule (desc * ShaderModuleDescriptor ) (* ShaderModule , error ) {
39+ func (g * Device ) TryCreateShaderModule (desc * ShaderModuleDescriptor ) (_ * ShaderModule , err error ) {
40+ defer handleJsException (& err )
41+
4042 jsShader := g .jsValue .Call ("createShaderModule" , pointerToJS (desc ))
41- return & ShaderModule {
42- jsValue : jsShader ,
43- }, nil
43+ return & ShaderModule {jsValue : jsShader }, nil
4444}
4545
4646// TryCreateRenderPipeline as described:
4747// https://gpuweb.github.io/gpuweb/#dom-gpudevice-createrenderpipeline
48- func (g * Device ) TryCreateRenderPipeline (descriptor * RenderPipelineDescriptor ) (* RenderPipeline , error ) {
48+ func (g * Device ) TryCreateRenderPipeline (descriptor * RenderPipelineDescriptor ) (_ * RenderPipeline , err error ) {
49+ defer handleJsException (& err )
50+
4951 jsPipeline := g .jsValue .Call ("createRenderPipeline" , pointerToJS (descriptor ))
50- return & RenderPipeline {
51- jsValue : jsPipeline ,
52- }, nil
52+ return & RenderPipeline {jsValue : jsPipeline }, nil
5353}
5454
5555// TryCreateBindGroup as described:
5656// https://gpuweb.github.io/gpuweb/#dom-gpudevice-createbindgroup
57- func (g * Device ) TryCreateBindGroup (descriptor * BindGroupDescriptor ) (* BindGroup , error ) {
57+ func (g * Device ) TryCreateBindGroup (descriptor * BindGroupDescriptor ) (_ * BindGroup , err error ) {
58+ defer handleJsException (& err )
59+
5860 jsBindGroup := g .jsValue .Call ("createBindGroup" , pointerToJS (descriptor ))
59- return & BindGroup {
60- jsValue : jsBindGroup ,
61- }, nil
61+ return & BindGroup {jsValue : jsBindGroup }, nil
6262}
6363
6464// TryCreateBindGroupLayout as described:
6565// https://gpuweb.github.io/gpuweb/#dom-gpudevice-createbindgrouplayout
66- func (g * Device ) TryCreateBindGroupLayout (descriptor * BindGroupLayoutDescriptor ) (* BindGroupLayout , error ) {
66+ func (g * Device ) TryCreateBindGroupLayout (descriptor * BindGroupLayoutDescriptor ) (_ * BindGroupLayout , err error ) {
67+ defer handleJsException (& err )
68+
6769 jsLayout := g .jsValue .Call ("createBindGroupLayout" , pointerToJS (descriptor ))
68- return & BindGroupLayout {
69- jsValue : jsLayout ,
70- }, nil
70+ return & BindGroupLayout {jsValue : jsLayout }, nil
7171}
7272
7373// TryCreatePipelineLayout as described:
7474// https://gpuweb.github.io/gpuweb/#dom-gpudevice-createpipelinelayout
75- func (g * Device ) TryCreatePipelineLayout (descriptor * PipelineLayoutDescriptor ) (* PipelineLayout , error ) {
75+ func (g * Device ) TryCreatePipelineLayout (descriptor * PipelineLayoutDescriptor ) (_ * PipelineLayout , err error ) {
76+ defer handleJsException (& err )
77+
7678 jsLayout := g .jsValue .Call ("createPipelineLayout" , pointerToJS (descriptor ))
77- return & PipelineLayout {
78- jsValue : jsLayout ,
79- }, nil
79+ return & PipelineLayout {jsValue : jsLayout }, nil
8080}
8181
8282// TryCreateComputePipeline as described:
8383// https://gpuweb.github.io/gpuweb/#dom-gpudevice-createcomputepipeline
84- func (g * Device ) TryCreateComputePipeline (descriptor * ComputePipelineDescriptor ) (* ComputePipeline , error ) {
84+ func (g * Device ) TryCreateComputePipeline (descriptor * ComputePipelineDescriptor ) (_ * ComputePipeline , err error ) {
85+ defer handleJsException (& err )
86+
8587 jsPipeline := g .jsValue .Call ("createComputePipeline" , pointerToJS (descriptor ))
86- return & ComputePipeline {
87- jsValue : jsPipeline ,
88- }, nil
88+ return & ComputePipeline {jsValue : jsPipeline }, nil
8989}
9090
9191// TryCreateTexture as described:
9292// https://gpuweb.github.io/gpuweb/#dom-gpudevice-createtexture
93- func (g * Device ) TryCreateTexture (descriptor * TextureDescriptor ) (* Texture , error ) {
93+ func (g * Device ) TryCreateTexture (descriptor * TextureDescriptor ) (_ * Texture , err error ) {
94+ defer handleJsException (& err )
95+
9496 jsTexture := g .jsValue .Call ("createTexture" , pointerToJS (descriptor ))
95- return & Texture {
96- jsValue : jsTexture ,
97- }, nil
97+ return & Texture {jsValue : jsTexture }, nil
9898}
9999
100100// TryCreateSampler as described:
101101// https://gpuweb.github.io/gpuweb/#dom-gpudevice-createsampler
102- func (g * Device ) TryCreateSampler (descriptor * SamplerDescriptor ) (* Sampler , error ) {
102+ func (g * Device ) TryCreateSampler (descriptor * SamplerDescriptor ) (_ * Sampler , err error ) {
103+ defer handleJsException (& err )
104+
103105 jsSampler := g .jsValue .Call ("createSampler" , pointerToJS (descriptor ))
104- return & Sampler {
105- jsValue : jsSampler ,
106- }, nil
106+ return & Sampler {jsValue : jsSampler }, nil
107+ }
108+
109+ func (g * Device ) TryCreateRenderBundleEncoder (descriptor * RenderBundleEncoderDescriptor ) (_ * RenderBundleEncoder , err error ) {
110+ defer handleJsException (& err )
111+
112+ jsValue := g .jsValue .Call ("createRenderBundleEncoder" , descriptor .toJS ())
113+ return & RenderBundleEncoder {jsValue : jsValue }, nil
107114}
108115
109116func (g * Device ) GetLimits () Limits {
@@ -113,8 +120,3 @@ func (g *Device) GetLimits() Limits {
113120func (g * Device ) Poll (wait bool , wrappedSubmissionIndex * uint64 ) (queueEmpty bool ) {
114121 return false // no-op
115122}
116-
117- func (g * Device ) TryCreateRenderBundleEncoder (descriptor * RenderBundleEncoderDescriptor ) (* RenderBundleEncoder , error ) {
118- // TODO implement this
119- panic ("unimplemented" )
120- }
0 commit comments