1#![allow(dead_code, unused_imports)]
2use crate::ffi;
3use super::*;
4use std::any::Any;
5pub(crate) struct ChainedStructStorage {
6 entries: Vec<Box<ffi::WGPUChainedStruct>>,
7 buffers: Vec<Box<dyn Any>>,
8 nested: Vec<ChainedStructStorage>,
9}
10impl ChainedStructStorage {
11 pub(crate) fn new() -> Self {
12 Self {
13 entries: Vec::new(),
14 buffers: Vec::new(),
15 nested: Vec::new(),
16 }
17 }
18 pub(crate) fn push(
19 &mut self,
20 s_type: ffi::WGPUSType,
21 next: *mut ffi::WGPUChainedStruct,
22 ) -> *mut ffi::WGPUChainedStruct {
23 let mut node = Box::new(ffi::WGPUChainedStruct {
24 next,
25 sType: s_type,
26 });
27 let ptr = std::ptr::from_mut(node.as_mut());
28 self.entries.push(node);
29 ptr
30 }
31 pub(crate) fn push_value<T: 'static>(&mut self, value: T) -> *const T {
32 let boxed = Box::new(value);
33 let ptr = std::ptr::from_ref(boxed.as_ref());
34 self.buffers.push(boxed);
35 ptr
36 }
37 pub(crate) fn push_value_mut<T: 'static>(&mut self, value: T) -> *mut T {
38 let mut boxed = Box::new(value);
39 let ptr = std::ptr::from_mut(boxed.as_mut());
40 self.buffers.push(boxed);
41 ptr
42 }
43 pub(crate) fn push_vec<T: 'static>(&mut self, value: Vec<T>) -> *const T {
44 let ptr = value.as_ptr();
45 self.buffers.push(Box::new(value));
46 ptr
47 }
48 pub(crate) fn push_vec_mut<T: 'static>(&mut self, value: Vec<T>) -> *mut T {
49 let mut value = value;
50 let ptr = value.as_mut_ptr();
51 self.buffers.push(Box::new(value));
52 ptr
53 }
54 pub(crate) fn push_any<T: 'static>(&mut self, value: T) {
55 self.buffers.push(Box::new(value));
56 }
57 pub(crate) fn push_storage(&mut self, storage: ChainedStructStorage) {
58 self.nested.push(storage);
59 }
60}
61#[allow(dead_code)]
62pub enum AdapterInfoExtension {
63 AdapterPropertiesD3D(AdapterPropertiesD3D),
64 AdapterPropertiesWGPU(AdapterPropertiesWGPU),
65 AdapterPropertiesExplicitComputeSubgroupSizeConfigs(
66 AdapterPropertiesExplicitComputeSubgroupSizeConfigs,
67 ),
68 AdapterPropertiesMemoryHeaps(AdapterPropertiesMemoryHeaps),
69 AdapterPropertiesSubgroupMatrixConfigs(AdapterPropertiesSubgroupMatrixConfigs),
70 AdapterPropertiesVk(AdapterPropertiesVk),
71 DawnAdapterPropertiesPowerPreference(DawnAdapterPropertiesPowerPreference),
72}
73impl std::convert::From<AdapterPropertiesD3D> for AdapterInfoExtension {
74 fn from(ext: AdapterPropertiesD3D) -> Self {
75 AdapterInfoExtension::AdapterPropertiesD3D(ext)
76 }
77}
78impl std::convert::From<AdapterPropertiesWGPU> for AdapterInfoExtension {
79 fn from(ext: AdapterPropertiesWGPU) -> Self {
80 AdapterInfoExtension::AdapterPropertiesWGPU(ext)
81 }
82}
83impl std::convert::From<AdapterPropertiesExplicitComputeSubgroupSizeConfigs>
84for AdapterInfoExtension {
85 fn from(ext: AdapterPropertiesExplicitComputeSubgroupSizeConfigs) -> Self {
86 AdapterInfoExtension::AdapterPropertiesExplicitComputeSubgroupSizeConfigs(ext)
87 }
88}
89impl std::convert::From<AdapterPropertiesMemoryHeaps> for AdapterInfoExtension {
90 fn from(ext: AdapterPropertiesMemoryHeaps) -> Self {
91 AdapterInfoExtension::AdapterPropertiesMemoryHeaps(ext)
92 }
93}
94impl std::convert::From<AdapterPropertiesSubgroupMatrixConfigs>
95for AdapterInfoExtension {
96 fn from(ext: AdapterPropertiesSubgroupMatrixConfigs) -> Self {
97 AdapterInfoExtension::AdapterPropertiesSubgroupMatrixConfigs(ext)
98 }
99}
100impl std::convert::From<AdapterPropertiesVk> for AdapterInfoExtension {
101 fn from(ext: AdapterPropertiesVk) -> Self {
102 AdapterInfoExtension::AdapterPropertiesVk(ext)
103 }
104}
105impl std::convert::From<DawnAdapterPropertiesPowerPreference> for AdapterInfoExtension {
106 fn from(ext: DawnAdapterPropertiesPowerPreference) -> Self {
107 AdapterInfoExtension::DawnAdapterPropertiesPowerPreference(ext)
108 }
109}
110impl AdapterInfoExtension {
111 pub(crate) fn push_chain(
112 &self,
113 storage: &mut ChainedStructStorage,
114 next: *mut ffi::WGPUChainedStruct,
115 ) -> *mut ffi::WGPUChainedStruct {
116 match self {
117 AdapterInfoExtension::AdapterPropertiesD3D(value) => {
118 let (mut raw, storage_value) = value.to_ffi();
119 raw.chain.sType = SType::AdapterPropertiesD3D as ffi::WGPUSType;
120 raw.chain.next = next;
121 storage.push_storage(storage_value);
122 let raw_ptr = storage.push_value_mut(raw);
123 raw_ptr.cast::<ffi::WGPUChainedStruct>()
124 }
125 AdapterInfoExtension::AdapterPropertiesWGPU(value) => {
126 let (mut raw, storage_value) = value.to_ffi();
127 raw.chain.sType = SType::AdapterPropertiesWGPU as ffi::WGPUSType;
128 raw.chain.next = next;
129 storage.push_storage(storage_value);
130 let raw_ptr = storage.push_value_mut(raw);
131 raw_ptr.cast::<ffi::WGPUChainedStruct>()
132 }
133 AdapterInfoExtension::AdapterPropertiesExplicitComputeSubgroupSizeConfigs(
134 value,
135 ) => {
136 let (mut raw, storage_value) = value.to_ffi();
137 raw.chain.sType = SType::AdapterPropertiesExplicitComputeSubgroupSizeConfigs
138 as ffi::WGPUSType;
139 raw.chain.next = next;
140 storage.push_storage(storage_value);
141 let raw_ptr = storage.push_value_mut(raw);
142 raw_ptr.cast::<ffi::WGPUChainedStruct>()
143 }
144 AdapterInfoExtension::AdapterPropertiesMemoryHeaps(value) => {
145 let (mut raw, storage_value) = value.to_ffi();
146 raw.chain.sType = SType::AdapterPropertiesMemoryHeaps as ffi::WGPUSType;
147 raw.chain.next = next;
148 storage.push_storage(storage_value);
149 let raw_ptr = storage.push_value_mut(raw);
150 raw_ptr.cast::<ffi::WGPUChainedStruct>()
151 }
152 AdapterInfoExtension::AdapterPropertiesSubgroupMatrixConfigs(value) => {
153 let (mut raw, storage_value) = value.to_ffi();
154 raw.chain.sType = SType::AdapterPropertiesSubgroupMatrixConfigs
155 as ffi::WGPUSType;
156 raw.chain.next = next;
157 storage.push_storage(storage_value);
158 let raw_ptr = storage.push_value_mut(raw);
159 raw_ptr.cast::<ffi::WGPUChainedStruct>()
160 }
161 AdapterInfoExtension::AdapterPropertiesVk(value) => {
162 let (mut raw, storage_value) = value.to_ffi();
163 raw.chain.sType = SType::AdapterPropertiesVk as ffi::WGPUSType;
164 raw.chain.next = next;
165 storage.push_storage(storage_value);
166 let raw_ptr = storage.push_value_mut(raw);
167 raw_ptr.cast::<ffi::WGPUChainedStruct>()
168 }
169 AdapterInfoExtension::DawnAdapterPropertiesPowerPreference(value) => {
170 let (mut raw, storage_value) = value.to_ffi();
171 raw.chain.sType = SType::DawnAdapterPropertiesPowerPreference
172 as ffi::WGPUSType;
173 raw.chain.next = next;
174 storage.push_storage(storage_value);
175 let raw_ptr = storage.push_value_mut(raw);
176 raw_ptr.cast::<ffi::WGPUChainedStruct>()
177 }
178 }
179 }
180}
181#[allow(dead_code)]
182pub enum BindGroupDescriptorExtension {}
183impl BindGroupDescriptorExtension {
184 pub(crate) fn push_chain(
185 &self,
186 storage: &mut ChainedStructStorage,
187 next: *mut ffi::WGPUChainedStruct,
188 ) -> *mut ffi::WGPUChainedStruct {
189 let _ = self;
190 let _ = storage;
191 next
192 }
193}
194#[allow(dead_code)]
195pub enum BindGroupEntryExtension {
196 ExternalTextureBindingEntry(ExternalTextureBindingEntry),
197 TexelBufferBindingEntry(TexelBufferBindingEntry),
198}
199impl std::convert::From<ExternalTextureBindingEntry> for BindGroupEntryExtension {
200 fn from(ext: ExternalTextureBindingEntry) -> Self {
201 BindGroupEntryExtension::ExternalTextureBindingEntry(ext)
202 }
203}
204impl std::convert::From<TexelBufferBindingEntry> for BindGroupEntryExtension {
205 fn from(ext: TexelBufferBindingEntry) -> Self {
206 BindGroupEntryExtension::TexelBufferBindingEntry(ext)
207 }
208}
209impl BindGroupEntryExtension {
210 pub(crate) fn push_chain(
211 &self,
212 storage: &mut ChainedStructStorage,
213 next: *mut ffi::WGPUChainedStruct,
214 ) -> *mut ffi::WGPUChainedStruct {
215 match self {
216 BindGroupEntryExtension::ExternalTextureBindingEntry(value) => {
217 let (mut raw, storage_value) = value.to_ffi();
218 raw.chain.sType = SType::ExternalTextureBindingEntry as ffi::WGPUSType;
219 raw.chain.next = next;
220 storage.push_storage(storage_value);
221 let raw_ptr = storage.push_value_mut(raw);
222 raw_ptr.cast::<ffi::WGPUChainedStruct>()
223 }
224 BindGroupEntryExtension::TexelBufferBindingEntry(value) => {
225 let (mut raw, storage_value) = value.to_ffi();
226 raw.chain.sType = SType::TexelBufferBindingEntry as ffi::WGPUSType;
227 raw.chain.next = next;
228 storage.push_storage(storage_value);
229 let raw_ptr = storage.push_value_mut(raw);
230 raw_ptr.cast::<ffi::WGPUChainedStruct>()
231 }
232 }
233 }
234}
235#[allow(dead_code)]
236pub enum BindGroupLayoutDescriptorExtension {}
237impl BindGroupLayoutDescriptorExtension {
238 pub(crate) fn push_chain(
239 &self,
240 storage: &mut ChainedStructStorage,
241 next: *mut ffi::WGPUChainedStruct,
242 ) -> *mut ffi::WGPUChainedStruct {
243 let _ = self;
244 let _ = storage;
245 next
246 }
247}
248#[allow(dead_code)]
249pub enum BindGroupLayoutEntryExtension {
250 ExternalTextureBindingLayout(ExternalTextureBindingLayout),
251 StaticSamplerBindingLayout(StaticSamplerBindingLayout),
252 TexelBufferBindingLayout(TexelBufferBindingLayout),
253}
254impl std::convert::From<ExternalTextureBindingLayout> for BindGroupLayoutEntryExtension {
255 fn from(ext: ExternalTextureBindingLayout) -> Self {
256 BindGroupLayoutEntryExtension::ExternalTextureBindingLayout(ext)
257 }
258}
259impl std::convert::From<StaticSamplerBindingLayout> for BindGroupLayoutEntryExtension {
260 fn from(ext: StaticSamplerBindingLayout) -> Self {
261 BindGroupLayoutEntryExtension::StaticSamplerBindingLayout(ext)
262 }
263}
264impl std::convert::From<TexelBufferBindingLayout> for BindGroupLayoutEntryExtension {
265 fn from(ext: TexelBufferBindingLayout) -> Self {
266 BindGroupLayoutEntryExtension::TexelBufferBindingLayout(ext)
267 }
268}
269impl BindGroupLayoutEntryExtension {
270 pub(crate) fn push_chain(
271 &self,
272 storage: &mut ChainedStructStorage,
273 next: *mut ffi::WGPUChainedStruct,
274 ) -> *mut ffi::WGPUChainedStruct {
275 match self {
276 BindGroupLayoutEntryExtension::ExternalTextureBindingLayout(value) => {
277 let (mut raw, storage_value) = value.to_ffi();
278 raw.chain.sType = SType::ExternalTextureBindingLayout as ffi::WGPUSType;
279 raw.chain.next = next;
280 storage.push_storage(storage_value);
281 let raw_ptr = storage.push_value_mut(raw);
282 raw_ptr.cast::<ffi::WGPUChainedStruct>()
283 }
284 BindGroupLayoutEntryExtension::StaticSamplerBindingLayout(value) => {
285 let (mut raw, storage_value) = value.to_ffi();
286 raw.chain.sType = SType::StaticSamplerBindingLayout as ffi::WGPUSType;
287 raw.chain.next = next;
288 storage.push_storage(storage_value);
289 let raw_ptr = storage.push_value_mut(raw);
290 raw_ptr.cast::<ffi::WGPUChainedStruct>()
291 }
292 BindGroupLayoutEntryExtension::TexelBufferBindingLayout(value) => {
293 let (mut raw, storage_value) = value.to_ffi();
294 raw.chain.sType = SType::TexelBufferBindingLayout as ffi::WGPUSType;
295 raw.chain.next = next;
296 storage.push_storage(storage_value);
297 let raw_ptr = storage.push_value_mut(raw);
298 raw_ptr.cast::<ffi::WGPUChainedStruct>()
299 }
300 }
301 }
302}
303#[allow(dead_code)]
304pub enum BindingResourceExtension {}
305impl BindingResourceExtension {
306 pub(crate) fn push_chain(
307 &self,
308 storage: &mut ChainedStructStorage,
309 next: *mut ffi::WGPUChainedStruct,
310 ) -> *mut ffi::WGPUChainedStruct {
311 let _ = self;
312 let _ = storage;
313 next
314 }
315}
316#[allow(dead_code)]
317pub enum BufferBindingLayoutExtension {}
318impl BufferBindingLayoutExtension {
319 pub(crate) fn push_chain(
320 &self,
321 storage: &mut ChainedStructStorage,
322 next: *mut ffi::WGPUChainedStruct,
323 ) -> *mut ffi::WGPUChainedStruct {
324 let _ = self;
325 let _ = storage;
326 next
327 }
328}
329#[allow(dead_code)]
330pub enum BufferDescriptorExtension {
331 BufferHostMappedPointer(BufferHostMappedPointer),
332 DawnBufferDescriptorErrorInfoFromWireClient(
333 DawnBufferDescriptorErrorInfoFromWireClient,
334 ),
335 DawnFakeBufferOOMForTesting(DawnFakeBufferOOMForTesting),
336}
337impl std::convert::From<BufferHostMappedPointer> for BufferDescriptorExtension {
338 fn from(ext: BufferHostMappedPointer) -> Self {
339 BufferDescriptorExtension::BufferHostMappedPointer(ext)
340 }
341}
342impl std::convert::From<DawnBufferDescriptorErrorInfoFromWireClient>
343for BufferDescriptorExtension {
344 fn from(ext: DawnBufferDescriptorErrorInfoFromWireClient) -> Self {
345 BufferDescriptorExtension::DawnBufferDescriptorErrorInfoFromWireClient(ext)
346 }
347}
348impl std::convert::From<DawnFakeBufferOOMForTesting> for BufferDescriptorExtension {
349 fn from(ext: DawnFakeBufferOOMForTesting) -> Self {
350 BufferDescriptorExtension::DawnFakeBufferOOMForTesting(ext)
351 }
352}
353impl BufferDescriptorExtension {
354 pub(crate) fn push_chain(
355 &self,
356 storage: &mut ChainedStructStorage,
357 next: *mut ffi::WGPUChainedStruct,
358 ) -> *mut ffi::WGPUChainedStruct {
359 match self {
360 BufferDescriptorExtension::BufferHostMappedPointer(value) => {
361 let (mut raw, storage_value) = value.to_ffi();
362 raw.chain.sType = SType::BufferHostMappedPointer as ffi::WGPUSType;
363 raw.chain.next = next;
364 storage.push_storage(storage_value);
365 let raw_ptr = storage.push_value_mut(raw);
366 raw_ptr.cast::<ffi::WGPUChainedStruct>()
367 }
368 BufferDescriptorExtension::DawnBufferDescriptorErrorInfoFromWireClient(
369 value,
370 ) => {
371 let (mut raw, storage_value) = value.to_ffi();
372 raw.chain.sType = SType::DawnBufferDescriptorErrorInfoFromWireClient
373 as ffi::WGPUSType;
374 raw.chain.next = next;
375 storage.push_storage(storage_value);
376 let raw_ptr = storage.push_value_mut(raw);
377 raw_ptr.cast::<ffi::WGPUChainedStruct>()
378 }
379 BufferDescriptorExtension::DawnFakeBufferOOMForTesting(value) => {
380 let (mut raw, storage_value) = value.to_ffi();
381 raw.chain.sType = SType::DawnFakeBufferOOMForTesting as ffi::WGPUSType;
382 raw.chain.next = next;
383 storage.push_storage(storage_value);
384 let raw_ptr = storage.push_value_mut(raw);
385 raw_ptr.cast::<ffi::WGPUChainedStruct>()
386 }
387 }
388 }
389}
390#[allow(dead_code)]
391pub enum ColorTargetStateExtension {
392 ColorTargetStateExpandResolveTextureDawn(ColorTargetStateExpandResolveTextureDawn),
393}
394impl std::convert::From<ColorTargetStateExpandResolveTextureDawn>
395for ColorTargetStateExtension {
396 fn from(ext: ColorTargetStateExpandResolveTextureDawn) -> Self {
397 ColorTargetStateExtension::ColorTargetStateExpandResolveTextureDawn(ext)
398 }
399}
400impl ColorTargetStateExtension {
401 pub(crate) fn push_chain(
402 &self,
403 storage: &mut ChainedStructStorage,
404 next: *mut ffi::WGPUChainedStruct,
405 ) -> *mut ffi::WGPUChainedStruct {
406 match self {
407 ColorTargetStateExtension::ColorTargetStateExpandResolveTextureDawn(
408 value,
409 ) => {
410 let (mut raw, storage_value) = value.to_ffi();
411 raw.chain.sType = SType::ColorTargetStateExpandResolveTextureDawn
412 as ffi::WGPUSType;
413 raw.chain.next = next;
414 storage.push_storage(storage_value);
415 let raw_ptr = storage.push_value_mut(raw);
416 raw_ptr.cast::<ffi::WGPUChainedStruct>()
417 }
418 }
419 }
420}
421#[allow(dead_code)]
422pub enum CommandBufferDescriptorExtension {}
423impl CommandBufferDescriptorExtension {
424 pub(crate) fn push_chain(
425 &self,
426 storage: &mut ChainedStructStorage,
427 next: *mut ffi::WGPUChainedStruct,
428 ) -> *mut ffi::WGPUChainedStruct {
429 let _ = self;
430 let _ = storage;
431 next
432 }
433}
434#[allow(dead_code)]
435pub enum CommandEncoderDescriptorExtension {
436 DawnEncoderInternalUsageDescriptor(DawnEncoderInternalUsageDescriptor),
437}
438impl std::convert::From<DawnEncoderInternalUsageDescriptor>
439for CommandEncoderDescriptorExtension {
440 fn from(ext: DawnEncoderInternalUsageDescriptor) -> Self {
441 CommandEncoderDescriptorExtension::DawnEncoderInternalUsageDescriptor(ext)
442 }
443}
444impl CommandEncoderDescriptorExtension {
445 pub(crate) fn push_chain(
446 &self,
447 storage: &mut ChainedStructStorage,
448 next: *mut ffi::WGPUChainedStruct,
449 ) -> *mut ffi::WGPUChainedStruct {
450 match self {
451 CommandEncoderDescriptorExtension::DawnEncoderInternalUsageDescriptor(
452 value,
453 ) => {
454 let (mut raw, storage_value) = value.to_ffi();
455 raw.chain.sType = SType::DawnEncoderInternalUsageDescriptor
456 as ffi::WGPUSType;
457 raw.chain.next = next;
458 storage.push_storage(storage_value);
459 let raw_ptr = storage.push_value_mut(raw);
460 raw_ptr.cast::<ffi::WGPUChainedStruct>()
461 }
462 }
463 }
464}
465#[allow(dead_code)]
466pub enum CompilationInfoExtension {}
467impl CompilationInfoExtension {
468 pub(crate) fn push_chain(
469 &self,
470 storage: &mut ChainedStructStorage,
471 next: *mut ffi::WGPUChainedStruct,
472 ) -> *mut ffi::WGPUChainedStruct {
473 let _ = self;
474 let _ = storage;
475 next
476 }
477}
478#[allow(dead_code)]
479pub enum CompilationMessageExtension {
480 DawnCompilationMessageUtf16(DawnCompilationMessageUtf16),
481}
482impl std::convert::From<DawnCompilationMessageUtf16> for CompilationMessageExtension {
483 fn from(ext: DawnCompilationMessageUtf16) -> Self {
484 CompilationMessageExtension::DawnCompilationMessageUtf16(ext)
485 }
486}
487impl CompilationMessageExtension {
488 pub(crate) fn push_chain(
489 &self,
490 storage: &mut ChainedStructStorage,
491 next: *mut ffi::WGPUChainedStruct,
492 ) -> *mut ffi::WGPUChainedStruct {
493 match self {
494 CompilationMessageExtension::DawnCompilationMessageUtf16(value) => {
495 let (mut raw, storage_value) = value.to_ffi();
496 raw.chain.sType = SType::DawnCompilationMessageUtf16 as ffi::WGPUSType;
497 raw.chain.next = next;
498 storage.push_storage(storage_value);
499 let raw_ptr = storage.push_value_mut(raw);
500 raw_ptr.cast::<ffi::WGPUChainedStruct>()
501 }
502 }
503 }
504}
505#[allow(dead_code)]
506pub enum ComputePassDescriptorExtension {}
507impl ComputePassDescriptorExtension {
508 pub(crate) fn push_chain(
509 &self,
510 storage: &mut ChainedStructStorage,
511 next: *mut ffi::WGPUChainedStruct,
512 ) -> *mut ffi::WGPUChainedStruct {
513 let _ = self;
514 let _ = storage;
515 next
516 }
517}
518#[allow(dead_code)]
519pub enum ComputePipelineDescriptorExtension {}
520impl ComputePipelineDescriptorExtension {
521 pub(crate) fn push_chain(
522 &self,
523 storage: &mut ChainedStructStorage,
524 next: *mut ffi::WGPUChainedStruct,
525 ) -> *mut ffi::WGPUChainedStruct {
526 let _ = self;
527 let _ = storage;
528 next
529 }
530}
531#[allow(dead_code)]
532pub enum ComputeStateExtension {}
533impl ComputeStateExtension {
534 pub(crate) fn push_chain(
535 &self,
536 storage: &mut ChainedStructStorage,
537 next: *mut ffi::WGPUChainedStruct,
538 ) -> *mut ffi::WGPUChainedStruct {
539 let _ = self;
540 let _ = storage;
541 next
542 }
543}
544#[allow(dead_code)]
545pub enum ConstantEntryExtension {}
546impl ConstantEntryExtension {
547 pub(crate) fn push_chain(
548 &self,
549 storage: &mut ChainedStructStorage,
550 next: *mut ffi::WGPUChainedStruct,
551 ) -> *mut ffi::WGPUChainedStruct {
552 let _ = self;
553 let _ = storage;
554 next
555 }
556}
557#[allow(dead_code)]
558pub enum CopyTextureForBrowserOptionsExtension {}
559impl CopyTextureForBrowserOptionsExtension {
560 pub(crate) fn push_chain(
561 &self,
562 storage: &mut ChainedStructStorage,
563 next: *mut ffi::WGPUChainedStruct,
564 ) -> *mut ffi::WGPUChainedStruct {
565 let _ = self;
566 let _ = storage;
567 next
568 }
569}
570#[allow(dead_code)]
571pub enum DawnFormatCapabilitiesExtension {
572 DawnDrmFormatCapabilities(DawnDrmFormatCapabilities),
573}
574impl std::convert::From<DawnDrmFormatCapabilities> for DawnFormatCapabilitiesExtension {
575 fn from(ext: DawnDrmFormatCapabilities) -> Self {
576 DawnFormatCapabilitiesExtension::DawnDrmFormatCapabilities(ext)
577 }
578}
579impl DawnFormatCapabilitiesExtension {
580 pub(crate) fn push_chain(
581 &self,
582 storage: &mut ChainedStructStorage,
583 next: *mut ffi::WGPUChainedStruct,
584 ) -> *mut ffi::WGPUChainedStruct {
585 match self {
586 DawnFormatCapabilitiesExtension::DawnDrmFormatCapabilities(value) => {
587 let (mut raw, storage_value) = value.to_ffi();
588 raw.chain.sType = SType::DawnDrmFormatCapabilities as ffi::WGPUSType;
589 raw.chain.next = next;
590 storage.push_storage(storage_value);
591 let raw_ptr = storage.push_value_mut(raw);
592 raw_ptr.cast::<ffi::WGPUChainedStruct>()
593 }
594 }
595 }
596}
597#[allow(dead_code)]
598pub enum DepthStencilStateExtension {}
599impl DepthStencilStateExtension {
600 pub(crate) fn push_chain(
601 &self,
602 storage: &mut ChainedStructStorage,
603 next: *mut ffi::WGPUChainedStruct,
604 ) -> *mut ffi::WGPUChainedStruct {
605 let _ = self;
606 let _ = storage;
607 next
608 }
609}
610#[allow(dead_code)]
611pub enum DeviceDescriptorExtension {
612 DawnCacheDeviceDescriptor(DawnCacheDeviceDescriptor),
613 DawnConsumeAdapterDescriptor(DawnConsumeAdapterDescriptor),
614 DawnDeviceAllocatorControl(DawnDeviceAllocatorControl),
615 DawnFakeDeviceInitializeErrorForTesting(DawnFakeDeviceInitializeErrorForTesting),
616 DawnTogglesDescriptor(DawnTogglesDescriptor),
617}
618impl std::convert::From<DawnCacheDeviceDescriptor> for DeviceDescriptorExtension {
619 fn from(ext: DawnCacheDeviceDescriptor) -> Self {
620 DeviceDescriptorExtension::DawnCacheDeviceDescriptor(ext)
621 }
622}
623impl std::convert::From<DawnConsumeAdapterDescriptor> for DeviceDescriptorExtension {
624 fn from(ext: DawnConsumeAdapterDescriptor) -> Self {
625 DeviceDescriptorExtension::DawnConsumeAdapterDescriptor(ext)
626 }
627}
628impl std::convert::From<DawnDeviceAllocatorControl> for DeviceDescriptorExtension {
629 fn from(ext: DawnDeviceAllocatorControl) -> Self {
630 DeviceDescriptorExtension::DawnDeviceAllocatorControl(ext)
631 }
632}
633impl std::convert::From<DawnFakeDeviceInitializeErrorForTesting>
634for DeviceDescriptorExtension {
635 fn from(ext: DawnFakeDeviceInitializeErrorForTesting) -> Self {
636 DeviceDescriptorExtension::DawnFakeDeviceInitializeErrorForTesting(ext)
637 }
638}
639impl std::convert::From<DawnTogglesDescriptor> for DeviceDescriptorExtension {
640 fn from(ext: DawnTogglesDescriptor) -> Self {
641 DeviceDescriptorExtension::DawnTogglesDescriptor(ext)
642 }
643}
644impl DeviceDescriptorExtension {
645 pub(crate) fn push_chain(
646 &self,
647 storage: &mut ChainedStructStorage,
648 next: *mut ffi::WGPUChainedStruct,
649 ) -> *mut ffi::WGPUChainedStruct {
650 match self {
651 DeviceDescriptorExtension::DawnCacheDeviceDescriptor(value) => {
652 let (mut raw, storage_value) = value.to_ffi();
653 raw.chain.sType = SType::DawnCacheDeviceDescriptor as ffi::WGPUSType;
654 raw.chain.next = next;
655 storage.push_storage(storage_value);
656 let raw_ptr = storage.push_value_mut(raw);
657 raw_ptr.cast::<ffi::WGPUChainedStruct>()
658 }
659 DeviceDescriptorExtension::DawnConsumeAdapterDescriptor(value) => {
660 let (mut raw, storage_value) = value.to_ffi();
661 raw.chain.sType = SType::DawnConsumeAdapterDescriptor as ffi::WGPUSType;
662 raw.chain.next = next;
663 storage.push_storage(storage_value);
664 let raw_ptr = storage.push_value_mut(raw);
665 raw_ptr.cast::<ffi::WGPUChainedStruct>()
666 }
667 DeviceDescriptorExtension::DawnDeviceAllocatorControl(value) => {
668 let (mut raw, storage_value) = value.to_ffi();
669 raw.chain.sType = SType::DawnDeviceAllocatorControl as ffi::WGPUSType;
670 raw.chain.next = next;
671 storage.push_storage(storage_value);
672 let raw_ptr = storage.push_value_mut(raw);
673 raw_ptr.cast::<ffi::WGPUChainedStruct>()
674 }
675 DeviceDescriptorExtension::DawnFakeDeviceInitializeErrorForTesting(
676 value,
677 ) => {
678 let (mut raw, storage_value) = value.to_ffi();
679 raw.chain.sType = SType::DawnFakeDeviceInitializeErrorForTesting
680 as ffi::WGPUSType;
681 raw.chain.next = next;
682 storage.push_storage(storage_value);
683 let raw_ptr = storage.push_value_mut(raw);
684 raw_ptr.cast::<ffi::WGPUChainedStruct>()
685 }
686 DeviceDescriptorExtension::DawnTogglesDescriptor(value) => {
687 let (mut raw, storage_value) = value.to_ffi();
688 raw.chain.sType = SType::DawnTogglesDescriptor as ffi::WGPUSType;
689 raw.chain.next = next;
690 storage.push_storage(storage_value);
691 let raw_ptr = storage.push_value_mut(raw);
692 raw_ptr.cast::<ffi::WGPUChainedStruct>()
693 }
694 }
695 }
696}
697#[allow(dead_code)]
698pub enum ExternalTextureDescriptorExtension {}
699impl ExternalTextureDescriptorExtension {
700 pub(crate) fn push_chain(
701 &self,
702 storage: &mut ChainedStructStorage,
703 next: *mut ffi::WGPUChainedStruct,
704 ) -> *mut ffi::WGPUChainedStruct {
705 let _ = self;
706 let _ = storage;
707 next
708 }
709}
710#[allow(dead_code)]
711pub enum FragmentStateExtension {}
712impl FragmentStateExtension {
713 pub(crate) fn push_chain(
714 &self,
715 storage: &mut ChainedStructStorage,
716 next: *mut ffi::WGPUChainedStruct,
717 ) -> *mut ffi::WGPUChainedStruct {
718 let _ = self;
719 let _ = storage;
720 next
721 }
722}
723#[allow(dead_code)]
724pub enum ImageCopyExternalTextureExtension {}
725impl ImageCopyExternalTextureExtension {
726 pub(crate) fn push_chain(
727 &self,
728 storage: &mut ChainedStructStorage,
729 next: *mut ffi::WGPUChainedStruct,
730 ) -> *mut ffi::WGPUChainedStruct {
731 let _ = self;
732 let _ = storage;
733 next
734 }
735}
736#[allow(dead_code)]
737pub enum InstanceDescriptorExtension {
738 DawnWGSLBlocklist(DawnWGSLBlocklist),
739 DawnTogglesDescriptor(DawnTogglesDescriptor),
740 DawnWireWGSLControl(DawnWireWGSLControl),
741}
742impl std::convert::From<DawnWGSLBlocklist> for InstanceDescriptorExtension {
743 fn from(ext: DawnWGSLBlocklist) -> Self {
744 InstanceDescriptorExtension::DawnWGSLBlocklist(ext)
745 }
746}
747impl std::convert::From<DawnTogglesDescriptor> for InstanceDescriptorExtension {
748 fn from(ext: DawnTogglesDescriptor) -> Self {
749 InstanceDescriptorExtension::DawnTogglesDescriptor(ext)
750 }
751}
752impl std::convert::From<DawnWireWGSLControl> for InstanceDescriptorExtension {
753 fn from(ext: DawnWireWGSLControl) -> Self {
754 InstanceDescriptorExtension::DawnWireWGSLControl(ext)
755 }
756}
757impl InstanceDescriptorExtension {
758 pub(crate) fn push_chain(
759 &self,
760 storage: &mut ChainedStructStorage,
761 next: *mut ffi::WGPUChainedStruct,
762 ) -> *mut ffi::WGPUChainedStruct {
763 match self {
764 InstanceDescriptorExtension::DawnWGSLBlocklist(value) => {
765 let (mut raw, storage_value) = value.to_ffi();
766 raw.chain.sType = SType::DawnWGSLBlocklist as ffi::WGPUSType;
767 raw.chain.next = next;
768 storage.push_storage(storage_value);
769 let raw_ptr = storage.push_value_mut(raw);
770 raw_ptr.cast::<ffi::WGPUChainedStruct>()
771 }
772 InstanceDescriptorExtension::DawnTogglesDescriptor(value) => {
773 let (mut raw, storage_value) = value.to_ffi();
774 raw.chain.sType = SType::DawnTogglesDescriptor as ffi::WGPUSType;
775 raw.chain.next = next;
776 storage.push_storage(storage_value);
777 let raw_ptr = storage.push_value_mut(raw);
778 raw_ptr.cast::<ffi::WGPUChainedStruct>()
779 }
780 InstanceDescriptorExtension::DawnWireWGSLControl(value) => {
781 let (mut raw, storage_value) = value.to_ffi();
782 raw.chain.sType = SType::DawnWireWGSLControl as ffi::WGPUSType;
783 raw.chain.next = next;
784 storage.push_storage(storage_value);
785 let raw_ptr = storage.push_value_mut(raw);
786 raw_ptr.cast::<ffi::WGPUChainedStruct>()
787 }
788 }
789 }
790}
791#[allow(dead_code)]
792pub enum InstanceLimitsExtension {}
793impl InstanceLimitsExtension {
794 pub(crate) fn push_chain(
795 &self,
796 storage: &mut ChainedStructStorage,
797 next: *mut ffi::WGPUChainedStruct,
798 ) -> *mut ffi::WGPUChainedStruct {
799 let _ = self;
800 let _ = storage;
801 next
802 }
803}
804#[allow(dead_code)]
805pub enum LimitsExtension {
806 CompatibilityModeLimits(CompatibilityModeLimits),
807 DawnHostMappedPointerLimits(DawnHostMappedPointerLimits),
808 DawnTexelCopyBufferRowAlignmentLimits(DawnTexelCopyBufferRowAlignmentLimits),
809 ResourceTableLimits(ResourceTableLimits),
810}
811impl std::convert::From<CompatibilityModeLimits> for LimitsExtension {
812 fn from(ext: CompatibilityModeLimits) -> Self {
813 LimitsExtension::CompatibilityModeLimits(ext)
814 }
815}
816impl std::convert::From<DawnHostMappedPointerLimits> for LimitsExtension {
817 fn from(ext: DawnHostMappedPointerLimits) -> Self {
818 LimitsExtension::DawnHostMappedPointerLimits(ext)
819 }
820}
821impl std::convert::From<DawnTexelCopyBufferRowAlignmentLimits> for LimitsExtension {
822 fn from(ext: DawnTexelCopyBufferRowAlignmentLimits) -> Self {
823 LimitsExtension::DawnTexelCopyBufferRowAlignmentLimits(ext)
824 }
825}
826impl std::convert::From<ResourceTableLimits> for LimitsExtension {
827 fn from(ext: ResourceTableLimits) -> Self {
828 LimitsExtension::ResourceTableLimits(ext)
829 }
830}
831impl LimitsExtension {
832 pub(crate) fn push_chain(
833 &self,
834 storage: &mut ChainedStructStorage,
835 next: *mut ffi::WGPUChainedStruct,
836 ) -> *mut ffi::WGPUChainedStruct {
837 match self {
838 LimitsExtension::CompatibilityModeLimits(value) => {
839 let (mut raw, storage_value) = value.to_ffi();
840 raw.chain.sType = SType::CompatibilityModeLimits as ffi::WGPUSType;
841 raw.chain.next = next;
842 storage.push_storage(storage_value);
843 let raw_ptr = storage.push_value_mut(raw);
844 raw_ptr.cast::<ffi::WGPUChainedStruct>()
845 }
846 LimitsExtension::DawnHostMappedPointerLimits(value) => {
847 let (mut raw, storage_value) = value.to_ffi();
848 raw.chain.sType = SType::DawnHostMappedPointerLimits as ffi::WGPUSType;
849 raw.chain.next = next;
850 storage.push_storage(storage_value);
851 let raw_ptr = storage.push_value_mut(raw);
852 raw_ptr.cast::<ffi::WGPUChainedStruct>()
853 }
854 LimitsExtension::DawnTexelCopyBufferRowAlignmentLimits(value) => {
855 let (mut raw, storage_value) = value.to_ffi();
856 raw.chain.sType = SType::DawnTexelCopyBufferRowAlignmentLimits
857 as ffi::WGPUSType;
858 raw.chain.next = next;
859 storage.push_storage(storage_value);
860 let raw_ptr = storage.push_value_mut(raw);
861 raw_ptr.cast::<ffi::WGPUChainedStruct>()
862 }
863 LimitsExtension::ResourceTableLimits(value) => {
864 let (mut raw, storage_value) = value.to_ffi();
865 raw.chain.sType = SType::ResourceTableLimits as ffi::WGPUSType;
866 raw.chain.next = next;
867 storage.push_storage(storage_value);
868 let raw_ptr = storage.push_value_mut(raw);
869 raw_ptr.cast::<ffi::WGPUChainedStruct>()
870 }
871 }
872 }
873}
874#[allow(dead_code)]
875pub enum MultisampleStateExtension {}
876impl MultisampleStateExtension {
877 pub(crate) fn push_chain(
878 &self,
879 storage: &mut ChainedStructStorage,
880 next: *mut ffi::WGPUChainedStruct,
881 ) -> *mut ffi::WGPUChainedStruct {
882 let _ = self;
883 let _ = storage;
884 next
885 }
886}
887#[allow(dead_code)]
888pub enum PassTimestampWritesExtension {}
889impl PassTimestampWritesExtension {
890 pub(crate) fn push_chain(
891 &self,
892 storage: &mut ChainedStructStorage,
893 next: *mut ffi::WGPUChainedStruct,
894 ) -> *mut ffi::WGPUChainedStruct {
895 let _ = self;
896 let _ = storage;
897 next
898 }
899}
900#[allow(dead_code)]
901pub enum PipelineLayoutDescriptorExtension {
902 PipelineLayoutPixelLocalStorage(PipelineLayoutPixelLocalStorage),
903 PipelineLayoutResourceTable(PipelineLayoutResourceTable),
904}
905impl std::convert::From<PipelineLayoutPixelLocalStorage>
906for PipelineLayoutDescriptorExtension {
907 fn from(ext: PipelineLayoutPixelLocalStorage) -> Self {
908 PipelineLayoutDescriptorExtension::PipelineLayoutPixelLocalStorage(ext)
909 }
910}
911impl std::convert::From<PipelineLayoutResourceTable>
912for PipelineLayoutDescriptorExtension {
913 fn from(ext: PipelineLayoutResourceTable) -> Self {
914 PipelineLayoutDescriptorExtension::PipelineLayoutResourceTable(ext)
915 }
916}
917impl PipelineLayoutDescriptorExtension {
918 pub(crate) fn push_chain(
919 &self,
920 storage: &mut ChainedStructStorage,
921 next: *mut ffi::WGPUChainedStruct,
922 ) -> *mut ffi::WGPUChainedStruct {
923 match self {
924 PipelineLayoutDescriptorExtension::PipelineLayoutPixelLocalStorage(
925 value,
926 ) => {
927 let (mut raw, storage_value) = value.to_ffi();
928 raw.chain.sType = SType::PipelineLayoutPixelLocalStorage
929 as ffi::WGPUSType;
930 raw.chain.next = next;
931 storage.push_storage(storage_value);
932 let raw_ptr = storage.push_value_mut(raw);
933 raw_ptr.cast::<ffi::WGPUChainedStruct>()
934 }
935 PipelineLayoutDescriptorExtension::PipelineLayoutResourceTable(value) => {
936 let (mut raw, storage_value) = value.to_ffi();
937 raw.chain.sType = SType::PipelineLayoutResourceTable as ffi::WGPUSType;
938 raw.chain.next = next;
939 storage.push_storage(storage_value);
940 let raw_ptr = storage.push_value_mut(raw);
941 raw_ptr.cast::<ffi::WGPUChainedStruct>()
942 }
943 }
944 }
945}
946#[allow(dead_code)]
947pub enum PipelineLayoutStorageAttachmentExtension {}
948impl PipelineLayoutStorageAttachmentExtension {
949 pub(crate) fn push_chain(
950 &self,
951 storage: &mut ChainedStructStorage,
952 next: *mut ffi::WGPUChainedStruct,
953 ) -> *mut ffi::WGPUChainedStruct {
954 let _ = self;
955 let _ = storage;
956 next
957 }
958}
959#[allow(dead_code)]
960pub enum PrimitiveStateExtension {}
961impl PrimitiveStateExtension {
962 pub(crate) fn push_chain(
963 &self,
964 storage: &mut ChainedStructStorage,
965 next: *mut ffi::WGPUChainedStruct,
966 ) -> *mut ffi::WGPUChainedStruct {
967 let _ = self;
968 let _ = storage;
969 next
970 }
971}
972#[allow(dead_code)]
973pub enum QuerySetDescriptorExtension {}
974impl QuerySetDescriptorExtension {
975 pub(crate) fn push_chain(
976 &self,
977 storage: &mut ChainedStructStorage,
978 next: *mut ffi::WGPUChainedStruct,
979 ) -> *mut ffi::WGPUChainedStruct {
980 let _ = self;
981 let _ = storage;
982 next
983 }
984}
985#[allow(dead_code)]
986pub enum QueueDescriptorExtension {}
987impl QueueDescriptorExtension {
988 pub(crate) fn push_chain(
989 &self,
990 storage: &mut ChainedStructStorage,
991 next: *mut ffi::WGPUChainedStruct,
992 ) -> *mut ffi::WGPUChainedStruct {
993 let _ = self;
994 let _ = storage;
995 next
996 }
997}
998#[allow(dead_code)]
999pub enum RenderBundleDescriptorExtension {}
1000impl RenderBundleDescriptorExtension {
1001 pub(crate) fn push_chain(
1002 &self,
1003 storage: &mut ChainedStructStorage,
1004 next: *mut ffi::WGPUChainedStruct,
1005 ) -> *mut ffi::WGPUChainedStruct {
1006 let _ = self;
1007 let _ = storage;
1008 next
1009 }
1010}
1011#[allow(dead_code)]
1012pub enum RenderBundleEncoderDescriptorExtension {}
1013impl RenderBundleEncoderDescriptorExtension {
1014 pub(crate) fn push_chain(
1015 &self,
1016 storage: &mut ChainedStructStorage,
1017 next: *mut ffi::WGPUChainedStruct,
1018 ) -> *mut ffi::WGPUChainedStruct {
1019 let _ = self;
1020 let _ = storage;
1021 next
1022 }
1023}
1024#[allow(dead_code)]
1025pub enum RenderPassColorAttachmentExtension {
1026 DawnRenderPassColorAttachmentRenderToSingleSampled(
1027 DawnRenderPassColorAttachmentRenderToSingleSampled,
1028 ),
1029}
1030impl std::convert::From<DawnRenderPassColorAttachmentRenderToSingleSampled>
1031for RenderPassColorAttachmentExtension {
1032 fn from(ext: DawnRenderPassColorAttachmentRenderToSingleSampled) -> Self {
1033 RenderPassColorAttachmentExtension::DawnRenderPassColorAttachmentRenderToSingleSampled(
1034 ext,
1035 )
1036 }
1037}
1038impl RenderPassColorAttachmentExtension {
1039 pub(crate) fn push_chain(
1040 &self,
1041 storage: &mut ChainedStructStorage,
1042 next: *mut ffi::WGPUChainedStruct,
1043 ) -> *mut ffi::WGPUChainedStruct {
1044 match self {
1045 RenderPassColorAttachmentExtension::DawnRenderPassColorAttachmentRenderToSingleSampled(
1046 value,
1047 ) => {
1048 let (mut raw, storage_value) = value.to_ffi();
1049 raw.chain.sType = SType::DawnRenderPassColorAttachmentRenderToSingleSampled
1050 as ffi::WGPUSType;
1051 raw.chain.next = next;
1052 storage.push_storage(storage_value);
1053 let raw_ptr = storage.push_value_mut(raw);
1054 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1055 }
1056 }
1057 }
1058}
1059#[allow(dead_code)]
1060pub enum RenderPassDepthStencilAttachmentExtension {}
1061impl RenderPassDepthStencilAttachmentExtension {
1062 pub(crate) fn push_chain(
1063 &self,
1064 storage: &mut ChainedStructStorage,
1065 next: *mut ffi::WGPUChainedStruct,
1066 ) -> *mut ffi::WGPUChainedStruct {
1067 let _ = self;
1068 let _ = storage;
1069 next
1070 }
1071}
1072#[allow(dead_code)]
1073pub enum RenderPassDescriptorExtension {
1074 DawnRenderPassSampleCount(DawnRenderPassSampleCount),
1075 RenderPassDescriptorExpandResolveRect(RenderPassDescriptorExpandResolveRect),
1076 RenderPassDescriptorResolveRect(RenderPassDescriptorResolveRect),
1077 RenderPassMaxDrawCount(RenderPassMaxDrawCount),
1078 RenderPassPixelLocalStorage(RenderPassPixelLocalStorage),
1079}
1080impl std::convert::From<DawnRenderPassSampleCount> for RenderPassDescriptorExtension {
1081 fn from(ext: DawnRenderPassSampleCount) -> Self {
1082 RenderPassDescriptorExtension::DawnRenderPassSampleCount(ext)
1083 }
1084}
1085impl std::convert::From<RenderPassDescriptorExpandResolveRect>
1086for RenderPassDescriptorExtension {
1087 fn from(ext: RenderPassDescriptorExpandResolveRect) -> Self {
1088 RenderPassDescriptorExtension::RenderPassDescriptorExpandResolveRect(ext)
1089 }
1090}
1091impl std::convert::From<RenderPassDescriptorResolveRect>
1092for RenderPassDescriptorExtension {
1093 fn from(ext: RenderPassDescriptorResolveRect) -> Self {
1094 RenderPassDescriptorExtension::RenderPassDescriptorResolveRect(ext)
1095 }
1096}
1097impl std::convert::From<RenderPassMaxDrawCount> for RenderPassDescriptorExtension {
1098 fn from(ext: RenderPassMaxDrawCount) -> Self {
1099 RenderPassDescriptorExtension::RenderPassMaxDrawCount(ext)
1100 }
1101}
1102impl std::convert::From<RenderPassPixelLocalStorage> for RenderPassDescriptorExtension {
1103 fn from(ext: RenderPassPixelLocalStorage) -> Self {
1104 RenderPassDescriptorExtension::RenderPassPixelLocalStorage(ext)
1105 }
1106}
1107impl RenderPassDescriptorExtension {
1108 pub(crate) fn push_chain(
1109 &self,
1110 storage: &mut ChainedStructStorage,
1111 next: *mut ffi::WGPUChainedStruct,
1112 ) -> *mut ffi::WGPUChainedStruct {
1113 match self {
1114 RenderPassDescriptorExtension::DawnRenderPassSampleCount(value) => {
1115 let (mut raw, storage_value) = value.to_ffi();
1116 raw.chain.sType = SType::DawnRenderPassSampleCount as ffi::WGPUSType;
1117 raw.chain.next = next;
1118 storage.push_storage(storage_value);
1119 let raw_ptr = storage.push_value_mut(raw);
1120 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1121 }
1122 RenderPassDescriptorExtension::RenderPassDescriptorExpandResolveRect(
1123 value,
1124 ) => {
1125 let (mut raw, storage_value) = value.to_ffi();
1126 raw.chain.sType = SType::RenderPassDescriptorExpandResolveRect
1127 as ffi::WGPUSType;
1128 raw.chain.next = next;
1129 storage.push_storage(storage_value);
1130 let raw_ptr = storage.push_value_mut(raw);
1131 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1132 }
1133 RenderPassDescriptorExtension::RenderPassDescriptorResolveRect(value) => {
1134 let (mut raw, storage_value) = value.to_ffi();
1135 raw.chain.sType = SType::RenderPassDescriptorResolveRect
1136 as ffi::WGPUSType;
1137 raw.chain.next = next;
1138 storage.push_storage(storage_value);
1139 let raw_ptr = storage.push_value_mut(raw);
1140 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1141 }
1142 RenderPassDescriptorExtension::RenderPassMaxDrawCount(value) => {
1143 let (mut raw, storage_value) = value.to_ffi();
1144 raw.chain.sType = SType::RenderPassMaxDrawCount as ffi::WGPUSType;
1145 raw.chain.next = next;
1146 storage.push_storage(storage_value);
1147 let raw_ptr = storage.push_value_mut(raw);
1148 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1149 }
1150 RenderPassDescriptorExtension::RenderPassPixelLocalStorage(value) => {
1151 let (mut raw, storage_value) = value.to_ffi();
1152 raw.chain.sType = SType::RenderPassPixelLocalStorage as ffi::WGPUSType;
1153 raw.chain.next = next;
1154 storage.push_storage(storage_value);
1155 let raw_ptr = storage.push_value_mut(raw);
1156 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1157 }
1158 }
1159 }
1160}
1161#[allow(dead_code)]
1162pub enum RenderPassStorageAttachmentExtension {}
1163impl RenderPassStorageAttachmentExtension {
1164 pub(crate) fn push_chain(
1165 &self,
1166 storage: &mut ChainedStructStorage,
1167 next: *mut ffi::WGPUChainedStruct,
1168 ) -> *mut ffi::WGPUChainedStruct {
1169 let _ = self;
1170 let _ = storage;
1171 next
1172 }
1173}
1174#[allow(dead_code)]
1175pub enum RenderPipelineDescriptorExtension {}
1176impl RenderPipelineDescriptorExtension {
1177 pub(crate) fn push_chain(
1178 &self,
1179 storage: &mut ChainedStructStorage,
1180 next: *mut ffi::WGPUChainedStruct,
1181 ) -> *mut ffi::WGPUChainedStruct {
1182 let _ = self;
1183 let _ = storage;
1184 next
1185 }
1186}
1187#[allow(dead_code)]
1188pub enum RequestAdapterOptionsExtension {
1189 DawnTogglesDescriptor(DawnTogglesDescriptor),
1190 RequestAdapterWebGPUBackendOptions(RequestAdapterWebGPUBackendOptions),
1191 RequestAdapterWebXROptions(RequestAdapterWebXROptions),
1192}
1193impl std::convert::From<DawnTogglesDescriptor> for RequestAdapterOptionsExtension {
1194 fn from(ext: DawnTogglesDescriptor) -> Self {
1195 RequestAdapterOptionsExtension::DawnTogglesDescriptor(ext)
1196 }
1197}
1198impl std::convert::From<RequestAdapterWebGPUBackendOptions>
1199for RequestAdapterOptionsExtension {
1200 fn from(ext: RequestAdapterWebGPUBackendOptions) -> Self {
1201 RequestAdapterOptionsExtension::RequestAdapterWebGPUBackendOptions(ext)
1202 }
1203}
1204impl std::convert::From<RequestAdapterWebXROptions> for RequestAdapterOptionsExtension {
1205 fn from(ext: RequestAdapterWebXROptions) -> Self {
1206 RequestAdapterOptionsExtension::RequestAdapterWebXROptions(ext)
1207 }
1208}
1209impl RequestAdapterOptionsExtension {
1210 pub(crate) fn push_chain(
1211 &self,
1212 storage: &mut ChainedStructStorage,
1213 next: *mut ffi::WGPUChainedStruct,
1214 ) -> *mut ffi::WGPUChainedStruct {
1215 match self {
1216 RequestAdapterOptionsExtension::DawnTogglesDescriptor(value) => {
1217 let (mut raw, storage_value) = value.to_ffi();
1218 raw.chain.sType = SType::DawnTogglesDescriptor as ffi::WGPUSType;
1219 raw.chain.next = next;
1220 storage.push_storage(storage_value);
1221 let raw_ptr = storage.push_value_mut(raw);
1222 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1223 }
1224 RequestAdapterOptionsExtension::RequestAdapterWebGPUBackendOptions(
1225 value,
1226 ) => {
1227 let (mut raw, storage_value) = value.to_ffi();
1228 raw.chain.sType = SType::RequestAdapterWebGPUBackendOptions
1229 as ffi::WGPUSType;
1230 raw.chain.next = next;
1231 storage.push_storage(storage_value);
1232 let raw_ptr = storage.push_value_mut(raw);
1233 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1234 }
1235 RequestAdapterOptionsExtension::RequestAdapterWebXROptions(value) => {
1236 let (mut raw, storage_value) = value.to_ffi();
1237 raw.chain.sType = SType::RequestAdapterWebXROptions as ffi::WGPUSType;
1238 raw.chain.next = next;
1239 storage.push_storage(storage_value);
1240 let raw_ptr = storage.push_value_mut(raw);
1241 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1242 }
1243 }
1244 }
1245}
1246#[allow(dead_code)]
1247pub enum ResourceTableDescriptorExtension {}
1248impl ResourceTableDescriptorExtension {
1249 pub(crate) fn push_chain(
1250 &self,
1251 storage: &mut ChainedStructStorage,
1252 next: *mut ffi::WGPUChainedStruct,
1253 ) -> *mut ffi::WGPUChainedStruct {
1254 let _ = self;
1255 let _ = storage;
1256 next
1257 }
1258}
1259#[allow(dead_code)]
1260pub enum SamplerBindingLayoutExtension {}
1261impl SamplerBindingLayoutExtension {
1262 pub(crate) fn push_chain(
1263 &self,
1264 storage: &mut ChainedStructStorage,
1265 next: *mut ffi::WGPUChainedStruct,
1266 ) -> *mut ffi::WGPUChainedStruct {
1267 let _ = self;
1268 let _ = storage;
1269 next
1270 }
1271}
1272#[allow(dead_code)]
1273pub enum SamplerDescriptorExtension {
1274 YCbCrVkDescriptor(YCbCrVkDescriptor),
1275}
1276impl std::convert::From<YCbCrVkDescriptor> for SamplerDescriptorExtension {
1277 fn from(ext: YCbCrVkDescriptor) -> Self {
1278 SamplerDescriptorExtension::YCbCrVkDescriptor(ext)
1279 }
1280}
1281impl SamplerDescriptorExtension {
1282 pub(crate) fn push_chain(
1283 &self,
1284 storage: &mut ChainedStructStorage,
1285 next: *mut ffi::WGPUChainedStruct,
1286 ) -> *mut ffi::WGPUChainedStruct {
1287 match self {
1288 SamplerDescriptorExtension::YCbCrVkDescriptor(value) => {
1289 let (mut raw, storage_value) = value.to_ffi();
1290 raw.chain.sType = SType::YCbCrVkDescriptor as ffi::WGPUSType;
1291 raw.chain.next = next;
1292 storage.push_storage(storage_value);
1293 let raw_ptr = storage.push_value_mut(raw);
1294 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1295 }
1296 }
1297 }
1298}
1299#[allow(dead_code)]
1300pub enum ShaderModuleDescriptorExtension {
1301 DawnShaderModuleSPIRVOptionsDescriptor(DawnShaderModuleSPIRVOptionsDescriptor),
1302 ShaderModuleCompilationOptions(ShaderModuleCompilationOptions),
1303 ShaderSourceSPIRV(ShaderSourceSPIRV),
1304 ShaderSourceWGSL(ShaderSourceWGSL),
1305}
1306impl std::convert::From<DawnShaderModuleSPIRVOptionsDescriptor>
1307for ShaderModuleDescriptorExtension {
1308 fn from(ext: DawnShaderModuleSPIRVOptionsDescriptor) -> Self {
1309 ShaderModuleDescriptorExtension::DawnShaderModuleSPIRVOptionsDescriptor(ext)
1310 }
1311}
1312impl std::convert::From<ShaderModuleCompilationOptions>
1313for ShaderModuleDescriptorExtension {
1314 fn from(ext: ShaderModuleCompilationOptions) -> Self {
1315 ShaderModuleDescriptorExtension::ShaderModuleCompilationOptions(ext)
1316 }
1317}
1318impl std::convert::From<ShaderSourceSPIRV> for ShaderModuleDescriptorExtension {
1319 fn from(ext: ShaderSourceSPIRV) -> Self {
1320 ShaderModuleDescriptorExtension::ShaderSourceSPIRV(ext)
1321 }
1322}
1323impl std::convert::From<ShaderSourceWGSL> for ShaderModuleDescriptorExtension {
1324 fn from(ext: ShaderSourceWGSL) -> Self {
1325 ShaderModuleDescriptorExtension::ShaderSourceWGSL(ext)
1326 }
1327}
1328impl ShaderModuleDescriptorExtension {
1329 pub(crate) fn push_chain(
1330 &self,
1331 storage: &mut ChainedStructStorage,
1332 next: *mut ffi::WGPUChainedStruct,
1333 ) -> *mut ffi::WGPUChainedStruct {
1334 match self {
1335 ShaderModuleDescriptorExtension::DawnShaderModuleSPIRVOptionsDescriptor(
1336 value,
1337 ) => {
1338 let (mut raw, storage_value) = value.to_ffi();
1339 raw.chain.sType = SType::DawnShaderModuleSPIRVOptionsDescriptor
1340 as ffi::WGPUSType;
1341 raw.chain.next = next;
1342 storage.push_storage(storage_value);
1343 let raw_ptr = storage.push_value_mut(raw);
1344 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1345 }
1346 ShaderModuleDescriptorExtension::ShaderModuleCompilationOptions(value) => {
1347 let (mut raw, storage_value) = value.to_ffi();
1348 raw.chain.sType = SType::ShaderModuleCompilationOptions
1349 as ffi::WGPUSType;
1350 raw.chain.next = next;
1351 storage.push_storage(storage_value);
1352 let raw_ptr = storage.push_value_mut(raw);
1353 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1354 }
1355 ShaderModuleDescriptorExtension::ShaderSourceSPIRV(value) => {
1356 let (mut raw, storage_value) = value.to_ffi();
1357 raw.chain.sType = SType::ShaderSourceSPIRV as ffi::WGPUSType;
1358 raw.chain.next = next;
1359 storage.push_storage(storage_value);
1360 let raw_ptr = storage.push_value_mut(raw);
1361 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1362 }
1363 ShaderModuleDescriptorExtension::ShaderSourceWGSL(value) => {
1364 let (mut raw, storage_value) = value.to_ffi();
1365 raw.chain.sType = SType::ShaderSourceWGSL as ffi::WGPUSType;
1366 raw.chain.next = next;
1367 storage.push_storage(storage_value);
1368 let raw_ptr = storage.push_value_mut(raw);
1369 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1370 }
1371 }
1372 }
1373}
1374#[allow(dead_code)]
1375pub enum SharedBufferMemoryBeginAccessDescriptorExtension {}
1376impl SharedBufferMemoryBeginAccessDescriptorExtension {
1377 pub(crate) fn push_chain(
1378 &self,
1379 storage: &mut ChainedStructStorage,
1380 next: *mut ffi::WGPUChainedStruct,
1381 ) -> *mut ffi::WGPUChainedStruct {
1382 let _ = self;
1383 let _ = storage;
1384 next
1385 }
1386}
1387#[allow(dead_code)]
1388pub enum SharedBufferMemoryDescriptorExtension {}
1389impl SharedBufferMemoryDescriptorExtension {
1390 pub(crate) fn push_chain(
1391 &self,
1392 storage: &mut ChainedStructStorage,
1393 next: *mut ffi::WGPUChainedStruct,
1394 ) -> *mut ffi::WGPUChainedStruct {
1395 let _ = self;
1396 let _ = storage;
1397 next
1398 }
1399}
1400#[allow(dead_code)]
1401pub enum SharedBufferMemoryEndAccessStateExtension {}
1402impl SharedBufferMemoryEndAccessStateExtension {
1403 pub(crate) fn push_chain(
1404 &self,
1405 storage: &mut ChainedStructStorage,
1406 next: *mut ffi::WGPUChainedStruct,
1407 ) -> *mut ffi::WGPUChainedStruct {
1408 let _ = self;
1409 let _ = storage;
1410 next
1411 }
1412}
1413#[allow(dead_code)]
1414pub enum SharedBufferMemoryPropertiesExtension {}
1415impl SharedBufferMemoryPropertiesExtension {
1416 pub(crate) fn push_chain(
1417 &self,
1418 storage: &mut ChainedStructStorage,
1419 next: *mut ffi::WGPUChainedStruct,
1420 ) -> *mut ffi::WGPUChainedStruct {
1421 let _ = self;
1422 let _ = storage;
1423 next
1424 }
1425}
1426#[allow(dead_code)]
1427pub enum SharedFenceDescriptorExtension {
1428 SharedFenceDXGISharedHandleDescriptor(SharedFenceDXGISharedHandleDescriptor),
1429 SharedFenceEGLSyncDescriptor(SharedFenceEGLSyncDescriptor),
1430 SharedFenceMTLSharedEventDescriptor(SharedFenceMTLSharedEventDescriptor),
1431 SharedFenceSyncFDDescriptor(SharedFenceSyncFDDescriptor),
1432 SharedFenceVkSemaphoreOpaqueFDDescriptor(SharedFenceVkSemaphoreOpaqueFDDescriptor),
1433 SharedFenceVkSemaphoreZirconHandleDescriptor(
1434 SharedFenceVkSemaphoreZirconHandleDescriptor,
1435 ),
1436}
1437impl std::convert::From<SharedFenceDXGISharedHandleDescriptor>
1438for SharedFenceDescriptorExtension {
1439 fn from(ext: SharedFenceDXGISharedHandleDescriptor) -> Self {
1440 SharedFenceDescriptorExtension::SharedFenceDXGISharedHandleDescriptor(ext)
1441 }
1442}
1443impl std::convert::From<SharedFenceEGLSyncDescriptor>
1444for SharedFenceDescriptorExtension {
1445 fn from(ext: SharedFenceEGLSyncDescriptor) -> Self {
1446 SharedFenceDescriptorExtension::SharedFenceEGLSyncDescriptor(ext)
1447 }
1448}
1449impl std::convert::From<SharedFenceMTLSharedEventDescriptor>
1450for SharedFenceDescriptorExtension {
1451 fn from(ext: SharedFenceMTLSharedEventDescriptor) -> Self {
1452 SharedFenceDescriptorExtension::SharedFenceMTLSharedEventDescriptor(ext)
1453 }
1454}
1455impl std::convert::From<SharedFenceSyncFDDescriptor> for SharedFenceDescriptorExtension {
1456 fn from(ext: SharedFenceSyncFDDescriptor) -> Self {
1457 SharedFenceDescriptorExtension::SharedFenceSyncFDDescriptor(ext)
1458 }
1459}
1460impl std::convert::From<SharedFenceVkSemaphoreOpaqueFDDescriptor>
1461for SharedFenceDescriptorExtension {
1462 fn from(ext: SharedFenceVkSemaphoreOpaqueFDDescriptor) -> Self {
1463 SharedFenceDescriptorExtension::SharedFenceVkSemaphoreOpaqueFDDescriptor(ext)
1464 }
1465}
1466impl std::convert::From<SharedFenceVkSemaphoreZirconHandleDescriptor>
1467for SharedFenceDescriptorExtension {
1468 fn from(ext: SharedFenceVkSemaphoreZirconHandleDescriptor) -> Self {
1469 SharedFenceDescriptorExtension::SharedFenceVkSemaphoreZirconHandleDescriptor(ext)
1470 }
1471}
1472impl SharedFenceDescriptorExtension {
1473 pub(crate) fn push_chain(
1474 &self,
1475 storage: &mut ChainedStructStorage,
1476 next: *mut ffi::WGPUChainedStruct,
1477 ) -> *mut ffi::WGPUChainedStruct {
1478 match self {
1479 SharedFenceDescriptorExtension::SharedFenceDXGISharedHandleDescriptor(
1480 value,
1481 ) => {
1482 let (mut raw, storage_value) = value.to_ffi();
1483 raw.chain.sType = SType::SharedFenceDXGISharedHandleDescriptor
1484 as ffi::WGPUSType;
1485 raw.chain.next = next;
1486 storage.push_storage(storage_value);
1487 let raw_ptr = storage.push_value_mut(raw);
1488 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1489 }
1490 SharedFenceDescriptorExtension::SharedFenceEGLSyncDescriptor(value) => {
1491 let (mut raw, storage_value) = value.to_ffi();
1492 raw.chain.sType = SType::SharedFenceEGLSyncDescriptor as ffi::WGPUSType;
1493 raw.chain.next = next;
1494 storage.push_storage(storage_value);
1495 let raw_ptr = storage.push_value_mut(raw);
1496 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1497 }
1498 SharedFenceDescriptorExtension::SharedFenceMTLSharedEventDescriptor(
1499 value,
1500 ) => {
1501 let (mut raw, storage_value) = value.to_ffi();
1502 raw.chain.sType = SType::SharedFenceMTLSharedEventDescriptor
1503 as ffi::WGPUSType;
1504 raw.chain.next = next;
1505 storage.push_storage(storage_value);
1506 let raw_ptr = storage.push_value_mut(raw);
1507 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1508 }
1509 SharedFenceDescriptorExtension::SharedFenceSyncFDDescriptor(value) => {
1510 let (mut raw, storage_value) = value.to_ffi();
1511 raw.chain.sType = SType::SharedFenceSyncFDDescriptor as ffi::WGPUSType;
1512 raw.chain.next = next;
1513 storage.push_storage(storage_value);
1514 let raw_ptr = storage.push_value_mut(raw);
1515 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1516 }
1517 SharedFenceDescriptorExtension::SharedFenceVkSemaphoreOpaqueFDDescriptor(
1518 value,
1519 ) => {
1520 let (mut raw, storage_value) = value.to_ffi();
1521 raw.chain.sType = SType::SharedFenceVkSemaphoreOpaqueFDDescriptor
1522 as ffi::WGPUSType;
1523 raw.chain.next = next;
1524 storage.push_storage(storage_value);
1525 let raw_ptr = storage.push_value_mut(raw);
1526 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1527 }
1528 SharedFenceDescriptorExtension::SharedFenceVkSemaphoreZirconHandleDescriptor(
1529 value,
1530 ) => {
1531 let (mut raw, storage_value) = value.to_ffi();
1532 raw.chain.sType = SType::SharedFenceVkSemaphoreZirconHandleDescriptor
1533 as ffi::WGPUSType;
1534 raw.chain.next = next;
1535 storage.push_storage(storage_value);
1536 let raw_ptr = storage.push_value_mut(raw);
1537 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1538 }
1539 }
1540 }
1541}
1542#[allow(dead_code)]
1543pub enum SharedFenceExportInfoExtension {
1544 SharedFenceDXGISharedHandleExportInfo(SharedFenceDXGISharedHandleExportInfo),
1545 SharedFenceEGLSyncExportInfo(SharedFenceEGLSyncExportInfo),
1546 SharedFenceMTLSharedEventExportInfo(SharedFenceMTLSharedEventExportInfo),
1547 SharedFenceSyncFDExportInfo(SharedFenceSyncFDExportInfo),
1548 SharedFenceVkSemaphoreOpaqueFDExportInfo(SharedFenceVkSemaphoreOpaqueFDExportInfo),
1549 SharedFenceVkSemaphoreZirconHandleExportInfo(
1550 SharedFenceVkSemaphoreZirconHandleExportInfo,
1551 ),
1552}
1553impl std::convert::From<SharedFenceDXGISharedHandleExportInfo>
1554for SharedFenceExportInfoExtension {
1555 fn from(ext: SharedFenceDXGISharedHandleExportInfo) -> Self {
1556 SharedFenceExportInfoExtension::SharedFenceDXGISharedHandleExportInfo(ext)
1557 }
1558}
1559impl std::convert::From<SharedFenceEGLSyncExportInfo>
1560for SharedFenceExportInfoExtension {
1561 fn from(ext: SharedFenceEGLSyncExportInfo) -> Self {
1562 SharedFenceExportInfoExtension::SharedFenceEGLSyncExportInfo(ext)
1563 }
1564}
1565impl std::convert::From<SharedFenceMTLSharedEventExportInfo>
1566for SharedFenceExportInfoExtension {
1567 fn from(ext: SharedFenceMTLSharedEventExportInfo) -> Self {
1568 SharedFenceExportInfoExtension::SharedFenceMTLSharedEventExportInfo(ext)
1569 }
1570}
1571impl std::convert::From<SharedFenceSyncFDExportInfo> for SharedFenceExportInfoExtension {
1572 fn from(ext: SharedFenceSyncFDExportInfo) -> Self {
1573 SharedFenceExportInfoExtension::SharedFenceSyncFDExportInfo(ext)
1574 }
1575}
1576impl std::convert::From<SharedFenceVkSemaphoreOpaqueFDExportInfo>
1577for SharedFenceExportInfoExtension {
1578 fn from(ext: SharedFenceVkSemaphoreOpaqueFDExportInfo) -> Self {
1579 SharedFenceExportInfoExtension::SharedFenceVkSemaphoreOpaqueFDExportInfo(ext)
1580 }
1581}
1582impl std::convert::From<SharedFenceVkSemaphoreZirconHandleExportInfo>
1583for SharedFenceExportInfoExtension {
1584 fn from(ext: SharedFenceVkSemaphoreZirconHandleExportInfo) -> Self {
1585 SharedFenceExportInfoExtension::SharedFenceVkSemaphoreZirconHandleExportInfo(ext)
1586 }
1587}
1588impl SharedFenceExportInfoExtension {
1589 pub(crate) fn push_chain(
1590 &self,
1591 storage: &mut ChainedStructStorage,
1592 next: *mut ffi::WGPUChainedStruct,
1593 ) -> *mut ffi::WGPUChainedStruct {
1594 match self {
1595 SharedFenceExportInfoExtension::SharedFenceDXGISharedHandleExportInfo(
1596 value,
1597 ) => {
1598 let (mut raw, storage_value) = value.to_ffi();
1599 raw.chain.sType = SType::SharedFenceDXGISharedHandleExportInfo
1600 as ffi::WGPUSType;
1601 raw.chain.next = next;
1602 storage.push_storage(storage_value);
1603 let raw_ptr = storage.push_value_mut(raw);
1604 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1605 }
1606 SharedFenceExportInfoExtension::SharedFenceEGLSyncExportInfo(value) => {
1607 let (mut raw, storage_value) = value.to_ffi();
1608 raw.chain.sType = SType::SharedFenceEGLSyncExportInfo as ffi::WGPUSType;
1609 raw.chain.next = next;
1610 storage.push_storage(storage_value);
1611 let raw_ptr = storage.push_value_mut(raw);
1612 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1613 }
1614 SharedFenceExportInfoExtension::SharedFenceMTLSharedEventExportInfo(
1615 value,
1616 ) => {
1617 let (mut raw, storage_value) = value.to_ffi();
1618 raw.chain.sType = SType::SharedFenceMTLSharedEventExportInfo
1619 as ffi::WGPUSType;
1620 raw.chain.next = next;
1621 storage.push_storage(storage_value);
1622 let raw_ptr = storage.push_value_mut(raw);
1623 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1624 }
1625 SharedFenceExportInfoExtension::SharedFenceSyncFDExportInfo(value) => {
1626 let (mut raw, storage_value) = value.to_ffi();
1627 raw.chain.sType = SType::SharedFenceSyncFDExportInfo as ffi::WGPUSType;
1628 raw.chain.next = next;
1629 storage.push_storage(storage_value);
1630 let raw_ptr = storage.push_value_mut(raw);
1631 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1632 }
1633 SharedFenceExportInfoExtension::SharedFenceVkSemaphoreOpaqueFDExportInfo(
1634 value,
1635 ) => {
1636 let (mut raw, storage_value) = value.to_ffi();
1637 raw.chain.sType = SType::SharedFenceVkSemaphoreOpaqueFDExportInfo
1638 as ffi::WGPUSType;
1639 raw.chain.next = next;
1640 storage.push_storage(storage_value);
1641 let raw_ptr = storage.push_value_mut(raw);
1642 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1643 }
1644 SharedFenceExportInfoExtension::SharedFenceVkSemaphoreZirconHandleExportInfo(
1645 value,
1646 ) => {
1647 let (mut raw, storage_value) = value.to_ffi();
1648 raw.chain.sType = SType::SharedFenceVkSemaphoreZirconHandleExportInfo
1649 as ffi::WGPUSType;
1650 raw.chain.next = next;
1651 storage.push_storage(storage_value);
1652 let raw_ptr = storage.push_value_mut(raw);
1653 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1654 }
1655 }
1656 }
1657}
1658#[allow(dead_code)]
1659pub enum SharedTextureMemoryBeginAccessDescriptorExtension {
1660 SharedTextureMemoryD3DSwapchainBeginState(SharedTextureMemoryD3DSwapchainBeginState),
1661 SharedTextureMemoryD3D11BeginState(SharedTextureMemoryD3D11BeginState),
1662 SharedTextureMemoryVkImageLayoutBeginState(
1663 SharedTextureMemoryVkImageLayoutBeginState,
1664 ),
1665}
1666impl std::convert::From<SharedTextureMemoryD3DSwapchainBeginState>
1667for SharedTextureMemoryBeginAccessDescriptorExtension {
1668 fn from(ext: SharedTextureMemoryD3DSwapchainBeginState) -> Self {
1669 SharedTextureMemoryBeginAccessDescriptorExtension::SharedTextureMemoryD3DSwapchainBeginState(
1670 ext,
1671 )
1672 }
1673}
1674impl std::convert::From<SharedTextureMemoryD3D11BeginState>
1675for SharedTextureMemoryBeginAccessDescriptorExtension {
1676 fn from(ext: SharedTextureMemoryD3D11BeginState) -> Self {
1677 SharedTextureMemoryBeginAccessDescriptorExtension::SharedTextureMemoryD3D11BeginState(
1678 ext,
1679 )
1680 }
1681}
1682impl std::convert::From<SharedTextureMemoryVkImageLayoutBeginState>
1683for SharedTextureMemoryBeginAccessDescriptorExtension {
1684 fn from(ext: SharedTextureMemoryVkImageLayoutBeginState) -> Self {
1685 SharedTextureMemoryBeginAccessDescriptorExtension::SharedTextureMemoryVkImageLayoutBeginState(
1686 ext,
1687 )
1688 }
1689}
1690impl SharedTextureMemoryBeginAccessDescriptorExtension {
1691 pub(crate) fn push_chain(
1692 &self,
1693 storage: &mut ChainedStructStorage,
1694 next: *mut ffi::WGPUChainedStruct,
1695 ) -> *mut ffi::WGPUChainedStruct {
1696 match self {
1697 SharedTextureMemoryBeginAccessDescriptorExtension::SharedTextureMemoryD3DSwapchainBeginState(
1698 value,
1699 ) => {
1700 let (mut raw, storage_value) = value.to_ffi();
1701 raw.chain.sType = SType::SharedTextureMemoryD3DSwapchainBeginState
1702 as ffi::WGPUSType;
1703 raw.chain.next = next;
1704 storage.push_storage(storage_value);
1705 let raw_ptr = storage.push_value_mut(raw);
1706 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1707 }
1708 SharedTextureMemoryBeginAccessDescriptorExtension::SharedTextureMemoryD3D11BeginState(
1709 value,
1710 ) => {
1711 let (mut raw, storage_value) = value.to_ffi();
1712 raw.chain.sType = SType::SharedTextureMemoryD3D11BeginState
1713 as ffi::WGPUSType;
1714 raw.chain.next = next;
1715 storage.push_storage(storage_value);
1716 let raw_ptr = storage.push_value_mut(raw);
1717 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1718 }
1719 SharedTextureMemoryBeginAccessDescriptorExtension::SharedTextureMemoryVkImageLayoutBeginState(
1720 value,
1721 ) => {
1722 let (mut raw, storage_value) = value.to_ffi();
1723 raw.chain.sType = SType::SharedTextureMemoryVkImageLayoutBeginState
1724 as ffi::WGPUSType;
1725 raw.chain.next = next;
1726 storage.push_storage(storage_value);
1727 let raw_ptr = storage.push_value_mut(raw);
1728 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1729 }
1730 }
1731 }
1732}
1733#[allow(dead_code)]
1734pub enum SharedTextureMemoryDescriptorExtension {
1735 SharedTextureMemoryDXGISharedHandleDescriptor(
1736 SharedTextureMemoryDXGISharedHandleDescriptor,
1737 ),
1738 SharedTextureMemoryEGLImageDescriptor(SharedTextureMemoryEGLImageDescriptor),
1739 SharedTextureMemoryIOSurfaceDescriptor(SharedTextureMemoryIOSurfaceDescriptor),
1740 SharedTextureMemoryAHardwareBufferDescriptor(
1741 SharedTextureMemoryAHardwareBufferDescriptor,
1742 ),
1743 SharedTextureMemoryDmaBufDescriptor(SharedTextureMemoryDmaBufDescriptor),
1744 SharedTextureMemoryOpaqueFDDescriptor(SharedTextureMemoryOpaqueFDDescriptor),
1745 SharedTextureMemoryVkDedicatedAllocationDescriptor(
1746 SharedTextureMemoryVkDedicatedAllocationDescriptor,
1747 ),
1748 SharedTextureMemoryZirconHandleDescriptor(SharedTextureMemoryZirconHandleDescriptor),
1749}
1750impl std::convert::From<SharedTextureMemoryDXGISharedHandleDescriptor>
1751for SharedTextureMemoryDescriptorExtension {
1752 fn from(ext: SharedTextureMemoryDXGISharedHandleDescriptor) -> Self {
1753 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryDXGISharedHandleDescriptor(
1754 ext,
1755 )
1756 }
1757}
1758impl std::convert::From<SharedTextureMemoryEGLImageDescriptor>
1759for SharedTextureMemoryDescriptorExtension {
1760 fn from(ext: SharedTextureMemoryEGLImageDescriptor) -> Self {
1761 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryEGLImageDescriptor(
1762 ext,
1763 )
1764 }
1765}
1766impl std::convert::From<SharedTextureMemoryIOSurfaceDescriptor>
1767for SharedTextureMemoryDescriptorExtension {
1768 fn from(ext: SharedTextureMemoryIOSurfaceDescriptor) -> Self {
1769 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryIOSurfaceDescriptor(
1770 ext,
1771 )
1772 }
1773}
1774impl std::convert::From<SharedTextureMemoryAHardwareBufferDescriptor>
1775for SharedTextureMemoryDescriptorExtension {
1776 fn from(ext: SharedTextureMemoryAHardwareBufferDescriptor) -> Self {
1777 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryAHardwareBufferDescriptor(
1778 ext,
1779 )
1780 }
1781}
1782impl std::convert::From<SharedTextureMemoryDmaBufDescriptor>
1783for SharedTextureMemoryDescriptorExtension {
1784 fn from(ext: SharedTextureMemoryDmaBufDescriptor) -> Self {
1785 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryDmaBufDescriptor(ext)
1786 }
1787}
1788impl std::convert::From<SharedTextureMemoryOpaqueFDDescriptor>
1789for SharedTextureMemoryDescriptorExtension {
1790 fn from(ext: SharedTextureMemoryOpaqueFDDescriptor) -> Self {
1791 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryOpaqueFDDescriptor(
1792 ext,
1793 )
1794 }
1795}
1796impl std::convert::From<SharedTextureMemoryVkDedicatedAllocationDescriptor>
1797for SharedTextureMemoryDescriptorExtension {
1798 fn from(ext: SharedTextureMemoryVkDedicatedAllocationDescriptor) -> Self {
1799 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryVkDedicatedAllocationDescriptor(
1800 ext,
1801 )
1802 }
1803}
1804impl std::convert::From<SharedTextureMemoryZirconHandleDescriptor>
1805for SharedTextureMemoryDescriptorExtension {
1806 fn from(ext: SharedTextureMemoryZirconHandleDescriptor) -> Self {
1807 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryZirconHandleDescriptor(
1808 ext,
1809 )
1810 }
1811}
1812impl SharedTextureMemoryDescriptorExtension {
1813 pub(crate) fn push_chain(
1814 &self,
1815 storage: &mut ChainedStructStorage,
1816 next: *mut ffi::WGPUChainedStruct,
1817 ) -> *mut ffi::WGPUChainedStruct {
1818 match self {
1819 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryDXGISharedHandleDescriptor(
1820 value,
1821 ) => {
1822 let (mut raw, storage_value) = value.to_ffi();
1823 raw.chain.sType = SType::SharedTextureMemoryDXGISharedHandleDescriptor
1824 as ffi::WGPUSType;
1825 raw.chain.next = next;
1826 storage.push_storage(storage_value);
1827 let raw_ptr = storage.push_value_mut(raw);
1828 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1829 }
1830 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryEGLImageDescriptor(
1831 value,
1832 ) => {
1833 let (mut raw, storage_value) = value.to_ffi();
1834 raw.chain.sType = SType::SharedTextureMemoryEGLImageDescriptor
1835 as ffi::WGPUSType;
1836 raw.chain.next = next;
1837 storage.push_storage(storage_value);
1838 let raw_ptr = storage.push_value_mut(raw);
1839 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1840 }
1841 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryIOSurfaceDescriptor(
1842 value,
1843 ) => {
1844 let (mut raw, storage_value) = value.to_ffi();
1845 raw.chain.sType = SType::SharedTextureMemoryIOSurfaceDescriptor
1846 as ffi::WGPUSType;
1847 raw.chain.next = next;
1848 storage.push_storage(storage_value);
1849 let raw_ptr = storage.push_value_mut(raw);
1850 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1851 }
1852 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryAHardwareBufferDescriptor(
1853 value,
1854 ) => {
1855 let (mut raw, storage_value) = value.to_ffi();
1856 raw.chain.sType = SType::SharedTextureMemoryAHardwareBufferDescriptor
1857 as ffi::WGPUSType;
1858 raw.chain.next = next;
1859 storage.push_storage(storage_value);
1860 let raw_ptr = storage.push_value_mut(raw);
1861 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1862 }
1863 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryDmaBufDescriptor(
1864 value,
1865 ) => {
1866 let (mut raw, storage_value) = value.to_ffi();
1867 raw.chain.sType = SType::SharedTextureMemoryDmaBufDescriptor
1868 as ffi::WGPUSType;
1869 raw.chain.next = next;
1870 storage.push_storage(storage_value);
1871 let raw_ptr = storage.push_value_mut(raw);
1872 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1873 }
1874 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryOpaqueFDDescriptor(
1875 value,
1876 ) => {
1877 let (mut raw, storage_value) = value.to_ffi();
1878 raw.chain.sType = SType::SharedTextureMemoryOpaqueFDDescriptor
1879 as ffi::WGPUSType;
1880 raw.chain.next = next;
1881 storage.push_storage(storage_value);
1882 let raw_ptr = storage.push_value_mut(raw);
1883 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1884 }
1885 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryVkDedicatedAllocationDescriptor(
1886 value,
1887 ) => {
1888 let (mut raw, storage_value) = value.to_ffi();
1889 raw.chain.sType = SType::SharedTextureMemoryVkDedicatedAllocationDescriptor
1890 as ffi::WGPUSType;
1891 raw.chain.next = next;
1892 storage.push_storage(storage_value);
1893 let raw_ptr = storage.push_value_mut(raw);
1894 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1895 }
1896 SharedTextureMemoryDescriptorExtension::SharedTextureMemoryZirconHandleDescriptor(
1897 value,
1898 ) => {
1899 let (mut raw, storage_value) = value.to_ffi();
1900 raw.chain.sType = SType::SharedTextureMemoryZirconHandleDescriptor
1901 as ffi::WGPUSType;
1902 raw.chain.next = next;
1903 storage.push_storage(storage_value);
1904 let raw_ptr = storage.push_value_mut(raw);
1905 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1906 }
1907 }
1908 }
1909}
1910#[allow(dead_code)]
1911pub enum SharedTextureMemoryEndAccessStateExtension {
1912 SharedTextureMemoryMetalEndAccessState(SharedTextureMemoryMetalEndAccessState),
1913 SharedTextureMemoryVkImageLayoutEndState(SharedTextureMemoryVkImageLayoutEndState),
1914}
1915impl std::convert::From<SharedTextureMemoryMetalEndAccessState>
1916for SharedTextureMemoryEndAccessStateExtension {
1917 fn from(ext: SharedTextureMemoryMetalEndAccessState) -> Self {
1918 SharedTextureMemoryEndAccessStateExtension::SharedTextureMemoryMetalEndAccessState(
1919 ext,
1920 )
1921 }
1922}
1923impl std::convert::From<SharedTextureMemoryVkImageLayoutEndState>
1924for SharedTextureMemoryEndAccessStateExtension {
1925 fn from(ext: SharedTextureMemoryVkImageLayoutEndState) -> Self {
1926 SharedTextureMemoryEndAccessStateExtension::SharedTextureMemoryVkImageLayoutEndState(
1927 ext,
1928 )
1929 }
1930}
1931impl SharedTextureMemoryEndAccessStateExtension {
1932 pub(crate) fn push_chain(
1933 &self,
1934 storage: &mut ChainedStructStorage,
1935 next: *mut ffi::WGPUChainedStruct,
1936 ) -> *mut ffi::WGPUChainedStruct {
1937 match self {
1938 SharedTextureMemoryEndAccessStateExtension::SharedTextureMemoryMetalEndAccessState(
1939 value,
1940 ) => {
1941 let (mut raw, storage_value) = value.to_ffi();
1942 raw.chain.sType = SType::SharedTextureMemoryMetalEndAccessState
1943 as ffi::WGPUSType;
1944 raw.chain.next = next;
1945 storage.push_storage(storage_value);
1946 let raw_ptr = storage.push_value_mut(raw);
1947 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1948 }
1949 SharedTextureMemoryEndAccessStateExtension::SharedTextureMemoryVkImageLayoutEndState(
1950 value,
1951 ) => {
1952 let (mut raw, storage_value) = value.to_ffi();
1953 raw.chain.sType = SType::SharedTextureMemoryVkImageLayoutEndState
1954 as ffi::WGPUSType;
1955 raw.chain.next = next;
1956 storage.push_storage(storage_value);
1957 let raw_ptr = storage.push_value_mut(raw);
1958 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1959 }
1960 }
1961 }
1962}
1963#[allow(dead_code)]
1964pub enum SharedTextureMemoryPropertiesExtension {
1965 SharedTextureMemoryAHardwareBufferProperties(
1966 SharedTextureMemoryAHardwareBufferProperties,
1967 ),
1968}
1969impl std::convert::From<SharedTextureMemoryAHardwareBufferProperties>
1970for SharedTextureMemoryPropertiesExtension {
1971 fn from(ext: SharedTextureMemoryAHardwareBufferProperties) -> Self {
1972 SharedTextureMemoryPropertiesExtension::SharedTextureMemoryAHardwareBufferProperties(
1973 ext,
1974 )
1975 }
1976}
1977impl SharedTextureMemoryPropertiesExtension {
1978 pub(crate) fn push_chain(
1979 &self,
1980 storage: &mut ChainedStructStorage,
1981 next: *mut ffi::WGPUChainedStruct,
1982 ) -> *mut ffi::WGPUChainedStruct {
1983 match self {
1984 SharedTextureMemoryPropertiesExtension::SharedTextureMemoryAHardwareBufferProperties(
1985 value,
1986 ) => {
1987 let (mut raw, storage_value) = value.to_ffi();
1988 raw.chain.sType = SType::SharedTextureMemoryAHardwareBufferProperties
1989 as ffi::WGPUSType;
1990 raw.chain.next = next;
1991 storage.push_storage(storage_value);
1992 let raw_ptr = storage.push_value_mut(raw);
1993 raw_ptr.cast::<ffi::WGPUChainedStruct>()
1994 }
1995 }
1996 }
1997}
1998#[allow(dead_code)]
1999pub enum StorageTextureBindingLayoutExtension {}
2000impl StorageTextureBindingLayoutExtension {
2001 pub(crate) fn push_chain(
2002 &self,
2003 storage: &mut ChainedStructStorage,
2004 next: *mut ffi::WGPUChainedStruct,
2005 ) -> *mut ffi::WGPUChainedStruct {
2006 let _ = self;
2007 let _ = storage;
2008 next
2009 }
2010}
2011#[allow(dead_code)]
2012pub enum SurfaceCapabilitiesExtension {}
2013impl SurfaceCapabilitiesExtension {
2014 pub(crate) fn push_chain(
2015 &self,
2016 storage: &mut ChainedStructStorage,
2017 next: *mut ffi::WGPUChainedStruct,
2018 ) -> *mut ffi::WGPUChainedStruct {
2019 let _ = self;
2020 let _ = storage;
2021 next
2022 }
2023}
2024#[allow(dead_code)]
2025pub enum SurfaceConfigurationExtension {}
2026impl SurfaceConfigurationExtension {
2027 pub(crate) fn push_chain(
2028 &self,
2029 storage: &mut ChainedStructStorage,
2030 next: *mut ffi::WGPUChainedStruct,
2031 ) -> *mut ffi::WGPUChainedStruct {
2032 let _ = self;
2033 let _ = storage;
2034 next
2035 }
2036}
2037#[allow(dead_code)]
2038pub enum SurfaceDescriptorExtension {
2039 EmscriptenSurfaceSourceCanvasHTMLSelector(EmscriptenSurfaceSourceCanvasHTMLSelector),
2040 SurfaceColorManagement(SurfaceColorManagement),
2041 SurfaceDescriptorFromWindowsUWPSwapChainPanel(
2042 SurfaceDescriptorFromWindowsUWPSwapChainPanel,
2043 ),
2044 SurfaceDescriptorFromWindowsWinUISwapChainPanel(
2045 SurfaceDescriptorFromWindowsWinUISwapChainPanel,
2046 ),
2047 SurfaceDescriptorFromWindowsCoreWindow(SurfaceDescriptorFromWindowsCoreWindow),
2048 SurfaceSourceXCBWindow(SurfaceSourceXCBWindow),
2049 SurfaceSourceAndroidNativeWindow(SurfaceSourceAndroidNativeWindow),
2050 SurfaceSourceMetalLayer(SurfaceSourceMetalLayer),
2051 SurfaceSourceWaylandSurface(SurfaceSourceWaylandSurface),
2052 SurfaceSourceWindowsHWND(SurfaceSourceWindowsHWND),
2053 SurfaceSourceXlibWindow(SurfaceSourceXlibWindow),
2054}
2055impl std::convert::From<EmscriptenSurfaceSourceCanvasHTMLSelector>
2056for SurfaceDescriptorExtension {
2057 fn from(ext: EmscriptenSurfaceSourceCanvasHTMLSelector) -> Self {
2058 SurfaceDescriptorExtension::EmscriptenSurfaceSourceCanvasHTMLSelector(ext)
2059 }
2060}
2061impl std::convert::From<SurfaceColorManagement> for SurfaceDescriptorExtension {
2062 fn from(ext: SurfaceColorManagement) -> Self {
2063 SurfaceDescriptorExtension::SurfaceColorManagement(ext)
2064 }
2065}
2066impl std::convert::From<SurfaceDescriptorFromWindowsUWPSwapChainPanel>
2067for SurfaceDescriptorExtension {
2068 fn from(ext: SurfaceDescriptorFromWindowsUWPSwapChainPanel) -> Self {
2069 SurfaceDescriptorExtension::SurfaceDescriptorFromWindowsUWPSwapChainPanel(ext)
2070 }
2071}
2072impl std::convert::From<SurfaceDescriptorFromWindowsWinUISwapChainPanel>
2073for SurfaceDescriptorExtension {
2074 fn from(ext: SurfaceDescriptorFromWindowsWinUISwapChainPanel) -> Self {
2075 SurfaceDescriptorExtension::SurfaceDescriptorFromWindowsWinUISwapChainPanel(ext)
2076 }
2077}
2078impl std::convert::From<SurfaceDescriptorFromWindowsCoreWindow>
2079for SurfaceDescriptorExtension {
2080 fn from(ext: SurfaceDescriptorFromWindowsCoreWindow) -> Self {
2081 SurfaceDescriptorExtension::SurfaceDescriptorFromWindowsCoreWindow(ext)
2082 }
2083}
2084impl std::convert::From<SurfaceSourceXCBWindow> for SurfaceDescriptorExtension {
2085 fn from(ext: SurfaceSourceXCBWindow) -> Self {
2086 SurfaceDescriptorExtension::SurfaceSourceXCBWindow(ext)
2087 }
2088}
2089impl std::convert::From<SurfaceSourceAndroidNativeWindow>
2090for SurfaceDescriptorExtension {
2091 fn from(ext: SurfaceSourceAndroidNativeWindow) -> Self {
2092 SurfaceDescriptorExtension::SurfaceSourceAndroidNativeWindow(ext)
2093 }
2094}
2095impl std::convert::From<SurfaceSourceMetalLayer> for SurfaceDescriptorExtension {
2096 fn from(ext: SurfaceSourceMetalLayer) -> Self {
2097 SurfaceDescriptorExtension::SurfaceSourceMetalLayer(ext)
2098 }
2099}
2100impl std::convert::From<SurfaceSourceWaylandSurface> for SurfaceDescriptorExtension {
2101 fn from(ext: SurfaceSourceWaylandSurface) -> Self {
2102 SurfaceDescriptorExtension::SurfaceSourceWaylandSurface(ext)
2103 }
2104}
2105impl std::convert::From<SurfaceSourceWindowsHWND> for SurfaceDescriptorExtension {
2106 fn from(ext: SurfaceSourceWindowsHWND) -> Self {
2107 SurfaceDescriptorExtension::SurfaceSourceWindowsHWND(ext)
2108 }
2109}
2110impl std::convert::From<SurfaceSourceXlibWindow> for SurfaceDescriptorExtension {
2111 fn from(ext: SurfaceSourceXlibWindow) -> Self {
2112 SurfaceDescriptorExtension::SurfaceSourceXlibWindow(ext)
2113 }
2114}
2115impl SurfaceDescriptorExtension {
2116 pub(crate) fn push_chain(
2117 &self,
2118 storage: &mut ChainedStructStorage,
2119 next: *mut ffi::WGPUChainedStruct,
2120 ) -> *mut ffi::WGPUChainedStruct {
2121 match self {
2122 SurfaceDescriptorExtension::EmscriptenSurfaceSourceCanvasHTMLSelector(
2123 value,
2124 ) => {
2125 let (mut raw, storage_value) = value.to_ffi();
2126 raw.chain.sType = SType::EmscriptenSurfaceSourceCanvasHTMLSelector
2127 as ffi::WGPUSType;
2128 raw.chain.next = next;
2129 storage.push_storage(storage_value);
2130 let raw_ptr = storage.push_value_mut(raw);
2131 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2132 }
2133 SurfaceDescriptorExtension::SurfaceColorManagement(value) => {
2134 let (mut raw, storage_value) = value.to_ffi();
2135 raw.chain.sType = SType::SurfaceColorManagement as ffi::WGPUSType;
2136 raw.chain.next = next;
2137 storage.push_storage(storage_value);
2138 let raw_ptr = storage.push_value_mut(raw);
2139 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2140 }
2141 SurfaceDescriptorExtension::SurfaceDescriptorFromWindowsUWPSwapChainPanel(
2142 value,
2143 ) => {
2144 let (mut raw, storage_value) = value.to_ffi();
2145 raw.chain.sType = SType::SurfaceDescriptorFromWindowsUWPSwapChainPanel
2146 as ffi::WGPUSType;
2147 raw.chain.next = next;
2148 storage.push_storage(storage_value);
2149 let raw_ptr = storage.push_value_mut(raw);
2150 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2151 }
2152 SurfaceDescriptorExtension::SurfaceDescriptorFromWindowsWinUISwapChainPanel(
2153 value,
2154 ) => {
2155 let (mut raw, storage_value) = value.to_ffi();
2156 raw.chain.sType = SType::SurfaceDescriptorFromWindowsWinUISwapChainPanel
2157 as ffi::WGPUSType;
2158 raw.chain.next = next;
2159 storage.push_storage(storage_value);
2160 let raw_ptr = storage.push_value_mut(raw);
2161 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2162 }
2163 SurfaceDescriptorExtension::SurfaceDescriptorFromWindowsCoreWindow(
2164 value,
2165 ) => {
2166 let (mut raw, storage_value) = value.to_ffi();
2167 raw.chain.sType = SType::SurfaceDescriptorFromWindowsCoreWindow
2168 as ffi::WGPUSType;
2169 raw.chain.next = next;
2170 storage.push_storage(storage_value);
2171 let raw_ptr = storage.push_value_mut(raw);
2172 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2173 }
2174 SurfaceDescriptorExtension::SurfaceSourceXCBWindow(value) => {
2175 let (mut raw, storage_value) = value.to_ffi();
2176 raw.chain.sType = SType::SurfaceSourceXCBWindow as ffi::WGPUSType;
2177 raw.chain.next = next;
2178 storage.push_storage(storage_value);
2179 let raw_ptr = storage.push_value_mut(raw);
2180 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2181 }
2182 SurfaceDescriptorExtension::SurfaceSourceAndroidNativeWindow(value) => {
2183 let (mut raw, storage_value) = value.to_ffi();
2184 raw.chain.sType = SType::SurfaceSourceAndroidNativeWindow
2185 as ffi::WGPUSType;
2186 raw.chain.next = next;
2187 storage.push_storage(storage_value);
2188 let raw_ptr = storage.push_value_mut(raw);
2189 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2190 }
2191 SurfaceDescriptorExtension::SurfaceSourceMetalLayer(value) => {
2192 let (mut raw, storage_value) = value.to_ffi();
2193 raw.chain.sType = SType::SurfaceSourceMetalLayer as ffi::WGPUSType;
2194 raw.chain.next = next;
2195 storage.push_storage(storage_value);
2196 let raw_ptr = storage.push_value_mut(raw);
2197 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2198 }
2199 SurfaceDescriptorExtension::SurfaceSourceWaylandSurface(value) => {
2200 let (mut raw, storage_value) = value.to_ffi();
2201 raw.chain.sType = SType::SurfaceSourceWaylandSurface as ffi::WGPUSType;
2202 raw.chain.next = next;
2203 storage.push_storage(storage_value);
2204 let raw_ptr = storage.push_value_mut(raw);
2205 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2206 }
2207 SurfaceDescriptorExtension::SurfaceSourceWindowsHWND(value) => {
2208 let (mut raw, storage_value) = value.to_ffi();
2209 raw.chain.sType = SType::SurfaceSourceWindowsHWND as ffi::WGPUSType;
2210 raw.chain.next = next;
2211 storage.push_storage(storage_value);
2212 let raw_ptr = storage.push_value_mut(raw);
2213 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2214 }
2215 SurfaceDescriptorExtension::SurfaceSourceXlibWindow(value) => {
2216 let (mut raw, storage_value) = value.to_ffi();
2217 raw.chain.sType = SType::SurfaceSourceXlibWindow as ffi::WGPUSType;
2218 raw.chain.next = next;
2219 storage.push_storage(storage_value);
2220 let raw_ptr = storage.push_value_mut(raw);
2221 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2222 }
2223 }
2224 }
2225}
2226#[allow(dead_code)]
2227pub enum SurfaceTextureExtension {}
2228impl SurfaceTextureExtension {
2229 pub(crate) fn push_chain(
2230 &self,
2231 storage: &mut ChainedStructStorage,
2232 next: *mut ffi::WGPUChainedStruct,
2233 ) -> *mut ffi::WGPUChainedStruct {
2234 let _ = self;
2235 let _ = storage;
2236 next
2237 }
2238}
2239#[allow(dead_code)]
2240pub enum TexelBufferViewDescriptorExtension {}
2241impl TexelBufferViewDescriptorExtension {
2242 pub(crate) fn push_chain(
2243 &self,
2244 storage: &mut ChainedStructStorage,
2245 next: *mut ffi::WGPUChainedStruct,
2246 ) -> *mut ffi::WGPUChainedStruct {
2247 let _ = self;
2248 let _ = storage;
2249 next
2250 }
2251}
2252#[allow(dead_code)]
2253pub enum TextureBindingLayoutExtension {}
2254impl TextureBindingLayoutExtension {
2255 pub(crate) fn push_chain(
2256 &self,
2257 storage: &mut ChainedStructStorage,
2258 next: *mut ffi::WGPUChainedStruct,
2259 ) -> *mut ffi::WGPUChainedStruct {
2260 let _ = self;
2261 let _ = storage;
2262 next
2263 }
2264}
2265#[allow(dead_code)]
2266pub enum TextureDescriptorExtension {
2267 DawnTextureInternalUsageDescriptor(DawnTextureInternalUsageDescriptor),
2268 TextureBindingViewDimensionDescriptor(TextureBindingViewDimensionDescriptor),
2269}
2270impl std::convert::From<DawnTextureInternalUsageDescriptor>
2271for TextureDescriptorExtension {
2272 fn from(ext: DawnTextureInternalUsageDescriptor) -> Self {
2273 TextureDescriptorExtension::DawnTextureInternalUsageDescriptor(ext)
2274 }
2275}
2276impl std::convert::From<TextureBindingViewDimensionDescriptor>
2277for TextureDescriptorExtension {
2278 fn from(ext: TextureBindingViewDimensionDescriptor) -> Self {
2279 TextureDescriptorExtension::TextureBindingViewDimensionDescriptor(ext)
2280 }
2281}
2282impl TextureDescriptorExtension {
2283 pub(crate) fn push_chain(
2284 &self,
2285 storage: &mut ChainedStructStorage,
2286 next: *mut ffi::WGPUChainedStruct,
2287 ) -> *mut ffi::WGPUChainedStruct {
2288 match self {
2289 TextureDescriptorExtension::DawnTextureInternalUsageDescriptor(value) => {
2290 let (mut raw, storage_value) = value.to_ffi();
2291 raw.chain.sType = SType::DawnTextureInternalUsageDescriptor
2292 as ffi::WGPUSType;
2293 raw.chain.next = next;
2294 storage.push_storage(storage_value);
2295 let raw_ptr = storage.push_value_mut(raw);
2296 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2297 }
2298 TextureDescriptorExtension::TextureBindingViewDimensionDescriptor(value) => {
2299 let (mut raw, storage_value) = value.to_ffi();
2300 raw.chain.sType = SType::TextureBindingViewDimensionDescriptor
2301 as ffi::WGPUSType;
2302 raw.chain.next = next;
2303 storage.push_storage(storage_value);
2304 let raw_ptr = storage.push_value_mut(raw);
2305 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2306 }
2307 }
2308 }
2309}
2310#[allow(dead_code)]
2311pub enum TextureViewDescriptorExtension {
2312 TextureComponentSwizzleDescriptor(TextureComponentSwizzleDescriptor),
2313 YCbCrVkDescriptor(YCbCrVkDescriptor),
2314}
2315impl std::convert::From<TextureComponentSwizzleDescriptor>
2316for TextureViewDescriptorExtension {
2317 fn from(ext: TextureComponentSwizzleDescriptor) -> Self {
2318 TextureViewDescriptorExtension::TextureComponentSwizzleDescriptor(ext)
2319 }
2320}
2321impl std::convert::From<YCbCrVkDescriptor> for TextureViewDescriptorExtension {
2322 fn from(ext: YCbCrVkDescriptor) -> Self {
2323 TextureViewDescriptorExtension::YCbCrVkDescriptor(ext)
2324 }
2325}
2326impl TextureViewDescriptorExtension {
2327 pub(crate) fn push_chain(
2328 &self,
2329 storage: &mut ChainedStructStorage,
2330 next: *mut ffi::WGPUChainedStruct,
2331 ) -> *mut ffi::WGPUChainedStruct {
2332 match self {
2333 TextureViewDescriptorExtension::TextureComponentSwizzleDescriptor(value) => {
2334 let (mut raw, storage_value) = value.to_ffi();
2335 raw.chain.sType = SType::TextureComponentSwizzleDescriptor
2336 as ffi::WGPUSType;
2337 raw.chain.next = next;
2338 storage.push_storage(storage_value);
2339 let raw_ptr = storage.push_value_mut(raw);
2340 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2341 }
2342 TextureViewDescriptorExtension::YCbCrVkDescriptor(value) => {
2343 let (mut raw, storage_value) = value.to_ffi();
2344 raw.chain.sType = SType::YCbCrVkDescriptor as ffi::WGPUSType;
2345 raw.chain.next = next;
2346 storage.push_storage(storage_value);
2347 let raw_ptr = storage.push_value_mut(raw);
2348 raw_ptr.cast::<ffi::WGPUChainedStruct>()
2349 }
2350 }
2351 }
2352}
2353#[allow(dead_code)]
2354pub enum VertexAttributeExtension {}
2355impl VertexAttributeExtension {
2356 pub(crate) fn push_chain(
2357 &self,
2358 storage: &mut ChainedStructStorage,
2359 next: *mut ffi::WGPUChainedStruct,
2360 ) -> *mut ffi::WGPUChainedStruct {
2361 let _ = self;
2362 let _ = storage;
2363 next
2364 }
2365}
2366#[allow(dead_code)]
2367pub enum VertexBufferLayoutExtension {}
2368impl VertexBufferLayoutExtension {
2369 pub(crate) fn push_chain(
2370 &self,
2371 storage: &mut ChainedStructStorage,
2372 next: *mut ffi::WGPUChainedStruct,
2373 ) -> *mut ffi::WGPUChainedStruct {
2374 let _ = self;
2375 let _ = storage;
2376 next
2377 }
2378}
2379#[allow(dead_code)]
2380pub enum VertexStateExtension {}
2381impl VertexStateExtension {
2382 pub(crate) fn push_chain(
2383 &self,
2384 storage: &mut ChainedStructStorage,
2385 next: *mut ffi::WGPUChainedStruct,
2386 ) -> *mut ffi::WGPUChainedStruct {
2387 let _ = self;
2388 let _ = storage;
2389 next
2390 }
2391}