mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
Use references for descriptors
This commit is contained in:
parent
230cf01ae2
commit
4126241fff
@ -284,7 +284,8 @@ typedef struct {
|
|||||||
|
|
||||||
#define WGPUWHITE (Color){ .r = 1, .g = 1, .b = 1, .a = 1 }
|
#define WGPUWHITE (Color){ .r = 1, .g = 1, .b = 1, .a = 1 }
|
||||||
|
|
||||||
WGPUDeviceId wgpu_adapter_create_device(WGPUAdapterId adapter_id, WGPUDeviceDescriptor _desc);
|
WGPUDeviceId wgpu_adapter_create_device(WGPUAdapterId adapter_id,
|
||||||
|
const WGPUDeviceDescriptor *_desc);
|
||||||
|
|
||||||
WGPUComputePassId wgpu_command_buffer_begin_compute_pass(WGPUCommandBufferId command_buffer_id);
|
WGPUComputePassId wgpu_command_buffer_begin_compute_pass(WGPUCommandBufferId command_buffer_id);
|
||||||
|
|
||||||
@ -296,34 +297,35 @@ WGPUCommandBufferId wgpu_compute_pass_end_pass(WGPUComputePassId pass_id);
|
|||||||
WGPUInstanceId wgpu_create_instance(void);
|
WGPUInstanceId wgpu_create_instance(void);
|
||||||
|
|
||||||
WGPUAttachmentStateId wgpu_device_create_attachment_state(WGPUDeviceId device_id,
|
WGPUAttachmentStateId wgpu_device_create_attachment_state(WGPUDeviceId device_id,
|
||||||
WGPUAttachmentStateDescriptor desc);
|
const WGPUAttachmentStateDescriptor *desc);
|
||||||
|
|
||||||
WGPUBindGroupLayoutId wgpu_device_create_bind_group_layout(WGPUDeviceId device_id,
|
WGPUBindGroupLayoutId wgpu_device_create_bind_group_layout(WGPUDeviceId device_id,
|
||||||
WGPUBindGroupLayoutDescriptor desc);
|
const WGPUBindGroupLayoutDescriptor *desc);
|
||||||
|
|
||||||
WGPUBlendStateId wgpu_device_create_blend_state(WGPUDeviceId _device_id,
|
WGPUBlendStateId wgpu_device_create_blend_state(WGPUDeviceId _device_id,
|
||||||
WGPUBlendStateDescriptor desc);
|
const WGPUBlendStateDescriptor *desc);
|
||||||
|
|
||||||
WGPUCommandBufferId wgpu_device_create_command_buffer(WGPUDeviceId device_id,
|
WGPUCommandBufferId wgpu_device_create_command_buffer(WGPUDeviceId device_id,
|
||||||
WGPUCommandBufferDescriptor _desc);
|
const WGPUCommandBufferDescriptor *_desc);
|
||||||
|
|
||||||
WGPUDepthStencilStateId wgpu_device_create_depth_stencil_state(WGPUDeviceId _device_id,
|
WGPUDepthStencilStateId wgpu_device_create_depth_stencil_state(WGPUDeviceId _device_id,
|
||||||
WGPUDepthStencilStateDescriptor desc);
|
const WGPUDepthStencilStateDescriptor *desc);
|
||||||
|
|
||||||
WGPUPipelineLayoutId wgpu_device_create_pipeline_layout(WGPUDeviceId device_id,
|
WGPUPipelineLayoutId wgpu_device_create_pipeline_layout(WGPUDeviceId device_id,
|
||||||
WGPUPipelineLayoutDescriptor desc);
|
const WGPUPipelineLayoutDescriptor *desc);
|
||||||
|
|
||||||
WGPURenderPipelineId wgpu_device_create_render_pipeline(WGPUDeviceId device_id,
|
WGPURenderPipelineId wgpu_device_create_render_pipeline(WGPUDeviceId device_id,
|
||||||
WGPURenderPipelineDescriptor desc);
|
const WGPURenderPipelineDescriptor *desc);
|
||||||
|
|
||||||
WGPUShaderModuleId wgpu_device_create_shader_module(WGPUDeviceId device_id,
|
WGPUShaderModuleId wgpu_device_create_shader_module(WGPUDeviceId device_id,
|
||||||
WGPUShaderModuleDescriptor desc);
|
const WGPUShaderModuleDescriptor *desc);
|
||||||
|
|
||||||
WGPUTextureId wgpu_device_create_texture(WGPUDeviceId device_id, WGPUTextureDescriptor desc);
|
WGPUTextureId wgpu_device_create_texture(WGPUDeviceId device_id, const WGPUTextureDescriptor *desc);
|
||||||
|
|
||||||
WGPUQueueId wgpu_device_get_queue(WGPUDeviceId device_id);
|
WGPUQueueId wgpu_device_get_queue(WGPUDeviceId device_id);
|
||||||
|
|
||||||
WGPUAdapterId wgpu_instance_get_adapter(WGPUInstanceId instance_id, WGPUAdapterDescriptor desc);
|
WGPUAdapterId wgpu_instance_get_adapter(WGPUInstanceId instance_id,
|
||||||
|
const WGPUAdapterDescriptor *desc);
|
||||||
|
|
||||||
void wgpu_queue_submit(WGPUQueueId queue_id,
|
void wgpu_queue_submit(WGPUQueueId queue_id,
|
||||||
const WGPUCommandBufferId *command_buffer_ptr,
|
const WGPUCommandBufferId *command_buffer_ptr,
|
||||||
|
|||||||
@ -88,13 +88,13 @@ pub(crate) fn map_primitive_topology(
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn map_blend_state_descriptor(
|
pub(crate) fn map_blend_state_descriptor(
|
||||||
desc: pipeline::BlendStateDescriptor,
|
desc: &pipeline::BlendStateDescriptor,
|
||||||
) -> hal::pso::ColorBlendDesc {
|
) -> hal::pso::ColorBlendDesc {
|
||||||
let color_mask = desc.write_mask;
|
let color_mask = desc.write_mask;
|
||||||
let blend_state = match desc.blend_enabled {
|
let blend_state = match desc.blend_enabled {
|
||||||
true => hal::pso::BlendState::On {
|
true => hal::pso::BlendState::On {
|
||||||
color: map_blend_descriptor(desc.color),
|
color: map_blend_descriptor(&desc.color),
|
||||||
alpha: map_blend_descriptor(desc.alpha),
|
alpha: map_blend_descriptor(&desc.alpha),
|
||||||
},
|
},
|
||||||
false => hal::pso::BlendState::Off,
|
false => hal::pso::BlendState::Off,
|
||||||
};
|
};
|
||||||
@ -122,7 +122,7 @@ fn map_color_write_flags(flags: u32) -> hal::pso::ColorMask {
|
|||||||
value
|
value
|
||||||
}
|
}
|
||||||
|
|
||||||
fn map_blend_descriptor(blend_desc: pipeline::BlendDescriptor) -> hal::pso::BlendOp {
|
fn map_blend_descriptor(blend_desc: &pipeline::BlendDescriptor) -> hal::pso::BlendOp {
|
||||||
use hal::pso::BlendOp as H;
|
use hal::pso::BlendOp as H;
|
||||||
use pipeline::BlendOperation::*;
|
use pipeline::BlendOperation::*;
|
||||||
match blend_desc.operation {
|
match blend_desc.operation {
|
||||||
@ -164,7 +164,7 @@ fn map_blend_factor(blend_factor: pipeline::BlendFactor) -> hal::pso::Factor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn map_depth_stencil_state(
|
pub(crate) fn map_depth_stencil_state(
|
||||||
desc: pipeline::DepthStencilStateDescriptor,
|
desc: &pipeline::DepthStencilStateDescriptor,
|
||||||
) -> hal::pso::DepthStencilDesc {
|
) -> hal::pso::DepthStencilDesc {
|
||||||
hal::pso::DepthStencilDesc {
|
hal::pso::DepthStencilDesc {
|
||||||
// TODO DepthTest::Off?
|
// TODO DepthTest::Off?
|
||||||
@ -175,14 +175,14 @@ pub(crate) fn map_depth_stencil_state(
|
|||||||
depth_bounds: false, // TODO
|
depth_bounds: false, // TODO
|
||||||
// TODO StencilTest::Off?
|
// TODO StencilTest::Off?
|
||||||
stencil: hal::pso::StencilTest::On {
|
stencil: hal::pso::StencilTest::On {
|
||||||
front: map_stencil_face(desc.front, desc.stencil_read_mask, desc.stencil_write_mask),
|
front: map_stencil_face(&desc.front, desc.stencil_read_mask, desc.stencil_write_mask),
|
||||||
back: map_stencil_face(desc.back, desc.stencil_read_mask, desc.stencil_write_mask),
|
back: map_stencil_face(&desc.back, desc.stencil_read_mask, desc.stencil_write_mask),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn map_stencil_face(
|
fn map_stencil_face(
|
||||||
stencil_state_face_desc: pipeline::StencilStateFaceDescriptor,
|
stencil_state_face_desc: &pipeline::StencilStateFaceDescriptor,
|
||||||
stencil_read_mask: u32,
|
stencil_read_mask: u32,
|
||||||
stencil_write_mask: u32,
|
stencil_write_mask: u32,
|
||||||
) -> hal::pso::StencilFace {
|
) -> hal::pso::StencilFace {
|
||||||
|
|||||||
@ -65,7 +65,7 @@ pub(crate) struct ShaderModule<B: hal::Backend> {
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_device_create_texture(
|
pub extern "C" fn wgpu_device_create_texture(
|
||||||
device_id: DeviceId,
|
device_id: DeviceId,
|
||||||
desc: resource::TextureDescriptor,
|
desc: &resource::TextureDescriptor,
|
||||||
) -> TextureId {
|
) -> TextureId {
|
||||||
let kind = conv::map_texture_dimension_size(desc.dimension, desc.size);
|
let kind = conv::map_texture_dimension_size(desc.dimension, desc.size);
|
||||||
let format = conv::map_texture_format(desc.format);
|
let format = conv::map_texture_format(desc.format);
|
||||||
@ -111,7 +111,7 @@ pub extern "C" fn wgpu_device_create_texture(
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_device_create_bind_group_layout(
|
pub extern "C" fn wgpu_device_create_bind_group_layout(
|
||||||
device_id: DeviceId,
|
device_id: DeviceId,
|
||||||
desc: binding_model::BindGroupLayoutDescriptor,
|
desc: &binding_model::BindGroupLayoutDescriptor,
|
||||||
) -> BindGroupLayoutId {
|
) -> BindGroupLayoutId {
|
||||||
let bindings = unsafe { slice::from_raw_parts(desc.bindings, desc.bindings_length) };
|
let bindings = unsafe { slice::from_raw_parts(desc.bindings, desc.bindings_length) };
|
||||||
|
|
||||||
@ -142,7 +142,7 @@ pub extern "C" fn wgpu_device_create_bind_group_layout(
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_device_create_pipeline_layout(
|
pub extern "C" fn wgpu_device_create_pipeline_layout(
|
||||||
device_id: DeviceId,
|
device_id: DeviceId,
|
||||||
desc: binding_model::PipelineLayoutDescriptor,
|
desc: &binding_model::PipelineLayoutDescriptor,
|
||||||
) -> PipelineLayoutId {
|
) -> PipelineLayoutId {
|
||||||
let bind_group_layouts = unsafe {
|
let bind_group_layouts = unsafe {
|
||||||
slice::from_raw_parts(desc.bind_group_layouts, desc.bind_group_layouts_length)
|
slice::from_raw_parts(desc.bind_group_layouts, desc.bind_group_layouts_length)
|
||||||
@ -169,7 +169,7 @@ pub extern "C" fn wgpu_device_create_pipeline_layout(
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_device_create_blend_state(
|
pub extern "C" fn wgpu_device_create_blend_state(
|
||||||
_device_id: DeviceId,
|
_device_id: DeviceId,
|
||||||
desc: pipeline::BlendStateDescriptor,
|
desc: &pipeline::BlendStateDescriptor,
|
||||||
) -> BlendStateId {
|
) -> BlendStateId {
|
||||||
HUB.blend_states
|
HUB.blend_states
|
||||||
.lock()
|
.lock()
|
||||||
@ -181,7 +181,7 @@ pub extern "C" fn wgpu_device_create_blend_state(
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_device_create_depth_stencil_state(
|
pub extern "C" fn wgpu_device_create_depth_stencil_state(
|
||||||
_device_id: DeviceId,
|
_device_id: DeviceId,
|
||||||
desc: pipeline::DepthStencilStateDescriptor,
|
desc: &pipeline::DepthStencilStateDescriptor,
|
||||||
) -> DepthStencilStateId {
|
) -> DepthStencilStateId {
|
||||||
HUB.depth_stencil_states
|
HUB.depth_stencil_states
|
||||||
.lock()
|
.lock()
|
||||||
@ -193,7 +193,7 @@ pub extern "C" fn wgpu_device_create_depth_stencil_state(
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_device_create_shader_module(
|
pub extern "C" fn wgpu_device_create_shader_module(
|
||||||
device_id: DeviceId,
|
device_id: DeviceId,
|
||||||
desc: pipeline::ShaderModuleDescriptor,
|
desc: &pipeline::ShaderModuleDescriptor,
|
||||||
) -> ShaderModuleId {
|
) -> ShaderModuleId {
|
||||||
let spv = unsafe {
|
let spv = unsafe {
|
||||||
slice::from_raw_parts(desc.code.bytes, desc.code.length)
|
slice::from_raw_parts(desc.code.bytes, desc.code.length)
|
||||||
@ -213,7 +213,7 @@ pub extern "C" fn wgpu_device_create_shader_module(
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_device_create_command_buffer(
|
pub extern "C" fn wgpu_device_create_command_buffer(
|
||||||
device_id: DeviceId,
|
device_id: DeviceId,
|
||||||
_desc: command::CommandBufferDescriptor,
|
_desc: &command::CommandBufferDescriptor,
|
||||||
) -> CommandBufferId {
|
) -> CommandBufferId {
|
||||||
let mut device_guard = HUB.devices.lock();
|
let mut device_guard = HUB.devices.lock();
|
||||||
let device = device_guard.get_mut(device_id);
|
let device = device_guard.get_mut(device_id);
|
||||||
@ -286,7 +286,7 @@ pub extern "C" fn wgpu_queue_submit(
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_device_create_attachment_state(
|
pub extern "C" fn wgpu_device_create_attachment_state(
|
||||||
device_id: DeviceId,
|
device_id: DeviceId,
|
||||||
desc: pipeline::AttachmentStateDescriptor,
|
desc: &pipeline::AttachmentStateDescriptor,
|
||||||
) -> AttachmentStateId {
|
) -> AttachmentStateId {
|
||||||
let device_guard = HUB.devices.lock();
|
let device_guard = HUB.devices.lock();
|
||||||
let device = &device_guard.get(device_id).raw;
|
let device = &device_guard.get(device_id).raw;
|
||||||
@ -339,7 +339,7 @@ pub extern "C" fn wgpu_device_create_attachment_state(
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_device_create_render_pipeline(
|
pub extern "C" fn wgpu_device_create_render_pipeline(
|
||||||
device_id: DeviceId,
|
device_id: DeviceId,
|
||||||
desc: pipeline::RenderPipelineDescriptor,
|
desc: &pipeline::RenderPipelineDescriptor,
|
||||||
) -> RenderPipelineId {
|
) -> RenderPipelineId {
|
||||||
// TODO
|
// TODO
|
||||||
let extent = hal::window::Extent2D {
|
let extent = hal::window::Extent2D {
|
||||||
|
|||||||
@ -50,7 +50,7 @@ pub extern "C" fn wgpu_create_instance() -> InstanceId {
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_instance_get_adapter(
|
pub extern "C" fn wgpu_instance_get_adapter(
|
||||||
instance_id: InstanceId,
|
instance_id: InstanceId,
|
||||||
desc: AdapterDescriptor,
|
desc: &AdapterDescriptor,
|
||||||
) -> AdapterId {
|
) -> AdapterId {
|
||||||
let instance_guard = HUB.instances.lock();
|
let instance_guard = HUB.instances.lock();
|
||||||
let instance = instance_guard.get(instance_id);
|
let instance = instance_guard.get(instance_id);
|
||||||
@ -75,7 +75,7 @@ pub extern "C" fn wgpu_instance_get_adapter(
|
|||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn wgpu_adapter_create_device(
|
pub extern "C" fn wgpu_adapter_create_device(
|
||||||
adapter_id: AdapterId,
|
adapter_id: AdapterId,
|
||||||
_desc: DeviceDescriptor,
|
_desc: &DeviceDescriptor,
|
||||||
) -> DeviceId {
|
) -> DeviceId {
|
||||||
let mut adapter_guard = HUB.adapters.lock();
|
let mut adapter_guard = HUB.adapters.lock();
|
||||||
let adapter = adapter_guard.get_mut(adapter_id);
|
let adapter = adapter_guard.get_mut(adapter_id);
|
||||||
|
|||||||
@ -120,7 +120,7 @@ impl Instance {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_adapter(&self, desc: AdapterDescriptor) -> Adapter {
|
pub fn get_adapter(&self, desc: &AdapterDescriptor) -> Adapter {
|
||||||
Adapter {
|
Adapter {
|
||||||
id: wgn::wgpu_instance_get_adapter(self.id, desc),
|
id: wgn::wgpu_instance_get_adapter(self.id, desc),
|
||||||
}
|
}
|
||||||
@ -128,7 +128,7 @@ impl Instance {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Adapter {
|
impl Adapter {
|
||||||
pub fn create_device(&self, desc: DeviceDescriptor) -> Device {
|
pub fn create_device(&self, desc: &DeviceDescriptor) -> Device {
|
||||||
Device {
|
Device {
|
||||||
id: wgn::wgpu_adapter_create_device(self.id, desc),
|
id: wgn::wgpu_adapter_create_device(self.id, desc),
|
||||||
}
|
}
|
||||||
@ -154,13 +154,13 @@ impl Device {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_command_buffer(&self, desc: CommandBufferDescriptor) -> CommandBuffer {
|
pub fn create_command_buffer(&self, desc: &CommandBufferDescriptor) -> CommandBuffer {
|
||||||
CommandBuffer {
|
CommandBuffer {
|
||||||
id: wgn::wgpu_device_create_command_buffer(self.id, desc),
|
id: wgn::wgpu_device_create_command_buffer(self.id, desc),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_bind_group_layout(&self, desc: BindGroupLayoutDescriptor) -> BindGroupLayout {
|
pub fn create_bind_group_layout(&self, desc: &BindGroupLayoutDescriptor) -> BindGroupLayout {
|
||||||
BindGroupLayout {
|
BindGroupLayout {
|
||||||
id: wgn::wgpu_device_create_bind_group_layout(self.id, wgn::BindGroupLayoutDescriptor {
|
id: wgn::wgpu_device_create_bind_group_layout(self.id, wgn::BindGroupLayoutDescriptor {
|
||||||
bindings: desc.bindings.as_ptr(),
|
bindings: desc.bindings.as_ptr(),
|
||||||
@ -169,7 +169,7 @@ impl Device {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_pipeline_layout(&self, desc: PipelineLayoutDescriptor) -> PipelineLayout {
|
pub fn create_pipeline_layout(&self, desc: &PipelineLayoutDescriptor) -> PipelineLayout {
|
||||||
PipelineLayout {
|
PipelineLayout {
|
||||||
id: wgn::wgpu_device_create_pipeline_layout(self.id, wgn::PipelineLayoutDescriptor {
|
id: wgn::wgpu_device_create_pipeline_layout(self.id, wgn::PipelineLayoutDescriptor {
|
||||||
bind_group_layouts: desc.bind_group_layouts.as_ptr() as *const _,
|
bind_group_layouts: desc.bind_group_layouts.as_ptr() as *const _,
|
||||||
@ -178,19 +178,19 @@ impl Device {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_blend_state(&self, desc: BlendStateDescriptor) -> BlendState {
|
pub fn create_blend_state(&self, desc: &BlendStateDescriptor) -> BlendState {
|
||||||
BlendState {
|
BlendState {
|
||||||
id: wgn::wgpu_device_create_blend_state(self.id, desc),
|
id: wgn::wgpu_device_create_blend_state(self.id, desc),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_depth_stencil_state(&self, desc: DepthStencilStateDescriptor) -> DepthStencilState {
|
pub fn create_depth_stencil_state(&self, desc: &DepthStencilStateDescriptor) -> DepthStencilState {
|
||||||
DepthStencilState {
|
DepthStencilState {
|
||||||
id: wgn::wgpu_device_create_depth_stencil_state(self.id, desc),
|
id: wgn::wgpu_device_create_depth_stencil_state(self.id, desc),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_attachment_state(&self, desc: AttachmentStateDescriptor) -> AttachmentState {
|
pub fn create_attachment_state(&self, desc: &AttachmentStateDescriptor) -> AttachmentState {
|
||||||
AttachmentState {
|
AttachmentState {
|
||||||
id: wgn::wgpu_device_create_attachment_state(self.id, wgn::AttachmentStateDescriptor {
|
id: wgn::wgpu_device_create_attachment_state(self.id, wgn::AttachmentStateDescriptor {
|
||||||
formats: desc.formats.as_ptr(),
|
formats: desc.formats.as_ptr(),
|
||||||
@ -199,7 +199,7 @@ impl Device {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_render_pipeline(&self, desc: RenderPipelineDescriptor) -> RenderPipeline {
|
pub fn create_render_pipeline(&self, desc: &RenderPipelineDescriptor) -> RenderPipeline {
|
||||||
let entry_points = desc.stages
|
let entry_points = desc.stages
|
||||||
.iter()
|
.iter()
|
||||||
.map(|ps| CString::new(ps.entry_point).unwrap())
|
.map(|ps| CString::new(ps.entry_point).unwrap())
|
||||||
@ -230,7 +230,7 @@ impl Device {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl CommandBuffer {
|
impl CommandBuffer {
|
||||||
pub fn begin_render_pass(&mut self, desc: RenderPassDescriptor<&TextureView>) -> RenderPass {
|
pub fn begin_render_pass(&mut self, desc: &RenderPassDescriptor<&TextureView>) -> RenderPass {
|
||||||
let colors = desc.color_attachments
|
let colors = desc.color_attachments
|
||||||
.iter()
|
.iter()
|
||||||
.map(|ca| RenderPassColorAttachmentDescriptor {
|
.map(|ca| RenderPassColorAttachmentDescriptor {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user