@@ -24,6 +24,8 @@ pub struct DeviceDescriptor<L> {
2424 /// Exactly the specified limits, and no better or worse,
2525 /// will be allowed in validation of API calls on the resulting device.
2626 pub required_limits : crate :: Limits ,
27+ /// A descriptor for the default queue created with this device.
28+ pub default_queue : QueueDescriptor < L > ,
2729 /// Specifies whether `self.required_features` is allowed to contain experimental features.
2830 #[ cfg_attr( feature = "serde" , serde( skip) ) ]
2931 pub experimental_features : crate :: ExperimentalFeatures ,
@@ -37,11 +39,13 @@ pub struct DeviceDescriptor<L> {
3739impl < L > DeviceDescriptor < L > {
3840 /// Takes a closure and maps the label of the device descriptor into another.
3941 #[ must_use]
40- pub fn map_label < K > ( & self , fun : impl FnOnce ( & L ) -> K ) -> DeviceDescriptor < K > {
42+ pub fn map_label < K > ( & self , fun : impl FnMut ( & L ) -> K ) -> DeviceDescriptor < K > {
43+ let mut fun = fun;
4144 DeviceDescriptor {
4245 label : fun ( & self . label ) ,
4346 required_features : self . required_features ,
4447 required_limits : self . required_limits . clone ( ) ,
48+ default_queue : self . default_queue . map_label ( fun) ,
4549 experimental_features : self . experimental_features ,
4650 memory_hints : self . memory_hints . clone ( ) ,
4751 trace : self . trace . clone ( ) ,
@@ -102,3 +106,24 @@ pub enum Trace {
102106 #[ cfg( feature = "trace" ) ]
103107 Memory ,
104108}
109+
110+ /// Describes a [`Queue`](../wgpu/struct.Queue.html).
111+ ///
112+ /// Corresponds to [WebGPU `GPUDeviceDescriptor`](
113+ /// https://gpuweb.github.io/gpuweb/#gpuqueuedescriptor).
114+ #[ derive( Clone , Debug , Default ) ]
115+ #[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
116+ pub struct QueueDescriptor < L > {
117+ /// Debug label for the queue.
118+ pub label : L ,
119+ }
120+
121+ impl < L > QueueDescriptor < L > {
122+ /// Takes a closure and maps the label of the device descriptor into another.
123+ #[ must_use]
124+ pub fn map_label < K > ( & self , fun : impl FnOnce ( & L ) -> K ) -> QueueDescriptor < K > {
125+ QueueDescriptor {
126+ label : fun ( & self . label ) ,
127+ }
128+ }
129+ }
0 commit comments