@@ -19,9 +19,7 @@ GPU_IMPL_CYCLE_COLLECTION(RenderBundleEncoder, mParent, mUsedBindGroups,
19
19
mUsedBuffers , mUsedPipelines , mUsedTextureViews )
20
20
GPU_IMPL_JS_WRAP (RenderBundleEncoder)
21
21
22
- ffi::WGPURenderBundleEncoder* ScopedFfiBundleTraits::empty () { return nullptr ; }
23
-
24
- void ScopedFfiBundleTraits::release (ffi::WGPURenderBundleEncoder* raw) {
22
+ void ffiWGPURenderBundleEncoderDeleter::operator ()(ffi::WGPURenderBundleEncoder* raw) {
25
23
if (raw) {
26
24
ffi::wgpu_render_bundle_encoder_destroy (raw);
27
25
}
@@ -89,7 +87,7 @@ void RenderBundleEncoder::SetBindGroup(
89
87
const dom::Sequence<uint32_t >& aDynamicOffsets) {
90
88
if (mValid ) {
91
89
mUsedBindGroups .AppendElement (&aBindGroup);
92
- ffi::wgpu_render_bundle_set_bind_group (mEncoder , aSlot, aBindGroup.mId ,
90
+ ffi::wgpu_render_bundle_set_bind_group (mEncoder . get () , aSlot, aBindGroup.mId ,
93
91
aDynamicOffsets.Elements (),
94
92
aDynamicOffsets.Length ());
95
93
}
@@ -98,7 +96,7 @@ void RenderBundleEncoder::SetBindGroup(
98
96
void RenderBundleEncoder::SetPipeline (const RenderPipeline& aPipeline) {
99
97
if (mValid ) {
100
98
mUsedPipelines .AppendElement (&aPipeline);
101
- ffi::wgpu_render_bundle_set_pipeline (mEncoder , aPipeline.mId );
99
+ ffi::wgpu_render_bundle_set_pipeline (mEncoder . get () , aPipeline.mId );
102
100
}
103
101
}
104
102
@@ -110,7 +108,7 @@ void RenderBundleEncoder::SetIndexBuffer(
110
108
const auto iformat = aIndexFormat == dom::GPUIndexFormat::Uint32
111
109
? ffi::WGPUIndexFormat_Uint32
112
110
: ffi::WGPUIndexFormat_Uint16;
113
- ffi::wgpu_render_bundle_set_index_buffer (mEncoder , aBuffer.mId , iformat,
111
+ ffi::wgpu_render_bundle_set_index_buffer (mEncoder . get () , aBuffer.mId , iformat,
114
112
aOffset, aSize);
115
113
}
116
114
}
@@ -119,15 +117,15 @@ void RenderBundleEncoder::SetVertexBuffer(uint32_t aSlot, const Buffer& aBuffer,
119
117
uint64_t aOffset, uint64_t aSize) {
120
118
if (mValid ) {
121
119
mUsedBuffers .AppendElement (&aBuffer);
122
- ffi::wgpu_render_bundle_set_vertex_buffer (mEncoder , aSlot, aBuffer.mId ,
120
+ ffi::wgpu_render_bundle_set_vertex_buffer (mEncoder . get () , aSlot, aBuffer.mId ,
123
121
aOffset, aSize);
124
122
}
125
123
}
126
124
127
125
void RenderBundleEncoder::Draw (uint32_t aVertexCount, uint32_t aInstanceCount,
128
126
uint32_t aFirstVertex, uint32_t aFirstInstance) {
129
127
if (mValid ) {
130
- ffi::wgpu_render_bundle_draw (mEncoder , aVertexCount, aInstanceCount,
128
+ ffi::wgpu_render_bundle_draw (mEncoder . get () , aVertexCount, aInstanceCount,
131
129
aFirstVertex, aFirstInstance);
132
130
}
133
131
}
@@ -137,7 +135,7 @@ void RenderBundleEncoder::DrawIndexed(uint32_t aIndexCount,
137
135
uint32_t aFirstIndex, int32_t aBaseVertex,
138
136
uint32_t aFirstInstance) {
139
137
if (mValid ) {
140
- ffi::wgpu_render_bundle_draw_indexed (mEncoder , aIndexCount, aInstanceCount,
138
+ ffi::wgpu_render_bundle_draw_indexed (mEncoder . get () , aIndexCount, aInstanceCount,
141
139
aFirstIndex, aBaseVertex,
142
140
aFirstInstance);
143
141
}
@@ -146,34 +144,34 @@ void RenderBundleEncoder::DrawIndexed(uint32_t aIndexCount,
146
144
void RenderBundleEncoder::DrawIndirect (const Buffer& aIndirectBuffer,
147
145
uint64_t aIndirectOffset) {
148
146
if (mValid ) {
149
- ffi::wgpu_render_bundle_draw_indirect (mEncoder , aIndirectBuffer.mId ,
147
+ ffi::wgpu_render_bundle_draw_indirect (mEncoder . get () , aIndirectBuffer.mId ,
150
148
aIndirectOffset);
151
149
}
152
150
}
153
151
154
152
void RenderBundleEncoder::DrawIndexedIndirect (const Buffer& aIndirectBuffer,
155
153
uint64_t aIndirectOffset) {
156
154
if (mValid ) {
157
- ffi::wgpu_render_bundle_draw_indexed_indirect (mEncoder , aIndirectBuffer.mId ,
155
+ ffi::wgpu_render_bundle_draw_indexed_indirect (mEncoder . get () , aIndirectBuffer.mId ,
158
156
aIndirectOffset);
159
157
}
160
158
}
161
159
162
160
void RenderBundleEncoder::PushDebugGroup (const nsAString& aString) {
163
161
if (mValid ) {
164
162
const NS_ConvertUTF16toUTF8 utf8 (aString);
165
- ffi::wgpu_render_bundle_push_debug_group (mEncoder , utf8.get ());
163
+ ffi::wgpu_render_bundle_push_debug_group (mEncoder . get () , utf8.get ());
166
164
}
167
165
}
168
166
void RenderBundleEncoder::PopDebugGroup () {
169
167
if (mValid ) {
170
- ffi::wgpu_render_bundle_pop_debug_group (mEncoder );
168
+ ffi::wgpu_render_bundle_pop_debug_group (mEncoder . get () );
171
169
}
172
170
}
173
171
void RenderBundleEncoder::InsertDebugMarker (const nsAString& aString) {
174
172
if (mValid ) {
175
173
const NS_ConvertUTF16toUTF8 utf8 (aString);
176
- ffi::wgpu_render_bundle_insert_debug_marker (mEncoder , utf8.get ());
174
+ ffi::wgpu_render_bundle_insert_debug_marker (mEncoder . get () , utf8.get ());
177
175
}
178
176
}
179
177
@@ -184,7 +182,7 @@ already_AddRefed<RenderBundle> RenderBundleEncoder::Finish(
184
182
mValid = false ;
185
183
auto bridge = mParent ->GetBridge ();
186
184
if (bridge && bridge->CanSend ()) {
187
- auto * encoder = mEncoder .forget ();
185
+ auto * encoder = mEncoder .release ();
188
186
MOZ_ASSERT (encoder);
189
187
id = bridge->RenderBundleEncoderFinish (*encoder, mParent ->mId , aDesc);
190
188
}
0 commit comments