Crate quickgpu27

Crate quickgpu27 

Source
Expand description

quickgpu27 wraps the wgpu API allowing users to write shorter, clearer code. It consists of builders for wgpu structs. As a wrapper library, quickgpu doesn’t manage or own any state after a builder is done building. There’s no need to convert all of your code to quickgpu, you can just use it where it’s helpful.

quickgpu’s goal is that for any wgpu struct SomeStruct, as long at doesn’t contain private fields, you can call the function quickgpu::some_struct, and it will return a builder. When you’re done setting fields, call build(), and a wgpu struct will be returned.

Even structs with zero or one fields have builders. These are not particularly useful, but are included so that developers don’t have to memorize which structs have builders.

§WGPU Versions

There are different quickgpu crates for different wgpu major versions:

  • quickgpu supports wgpu version 28
  • quickgpu27 supports wgpu version 27

If you use quickgpu27, and don’t want to type the “27” in your code, you can rename the dependency to quickgpu: in your Cargo.toml:

quickgpu = { package = "quickgpu27", version = "..." }

§Using builders

To create a builder for wgpu::FragmentState, you can call the fragment_state() helper function, which returns a FragmentStateBuilder. Alternatively, you can create a FragmentStateBuilder directly.

Many wgpu structs take an optional wgpu::Label to identify the struct. In quickgpu, the label field will always be the only parameter to the helper function (see the render_pipeline_descriptor call in the example below).

If a builder field setter accepts a single value of a type which also has a builder, you can nest builders, and skip calling build() on the inner builder. In order to skip calling build() on the elements of a slice, use the builders helper function.

// Label "Render Pipeline" is passed to builder initializer
let render_pipeline = render_pipeline_descriptor(Some("Render Pipeline"))
   .vertex(
       vertex_state()
           .module(&shader)
           .entry_point("vs_main")
           // Use builders() to convert builders to values before passing as a slice
           .buffers(&builders([vertex_buffer_layout()
               .array_stride(size_of::<VertexInput>() as wgpu::BufferAddress)
               .attributes(&builders([
                   vertex_attribute()
                       .format(VertexFormat::Float32x4)
                       .offset(0u64)
                       .shader_location(0u32)
               ]))])),
   )
   .fragment(
       fragment_state()
           .module(&shader)
           .entry_point("fs_main")
           .targets(&[Some(format.into())])
   )
   .build(); // Return the wgpu struct

Re-exports§

pub use custom::*;

Modules§

builders
custom

Functions§

backend_options
Returns BackendOptionsBuilder for building wgpu::BackendOptions
bind_group_descriptor
Returns BindGroupDescriptorBuilder for building wgpu::BindGroupDescriptor
bind_group_entry
Returns BindGroupEntryBuilder for building wgpu::BindGroupEntry
bind_group_layout_descriptor
Returns BindGroupLayoutDescriptorBuilder for building wgpu::BindGroupLayoutDescriptor
bind_group_layout_entry
Returns BindGroupLayoutEntryBuilder for building wgpu::BindGroupLayoutEntry
blas_build_entry
Returns BlasBuildEntryBuilder for building wgpu::BlasBuildEntry
blas_triangle_geometry
Returns BlasTriangleGeometryBuilder for building wgpu::BlasTriangleGeometry
blend_component
Returns BlendComponentBuilder for building wgpu::BlendComponent
blend_state
Returns BlendStateBuilder for building wgpu::BlendState
buffer_binding
Returns BufferBindingBuilder for building wgpu::BufferBinding
buffer_descriptor
Returns BufferDescriptorBuilder for building wgpu::BufferDescriptor
buffer_init_descriptor
Returns BufferInitDescriptorBuilder for building wgpu::util::BufferInitDescriptor
buffer_transition
Returns BufferTransitionBuilder for building wgpu::BufferTransition
color
Returns ColorBuilder for building wgpu::Color
color_target_state
Returns ColorTargetStateBuilder for building wgpu::ColorTargetState
command_buffer_descriptor
Returns CommandBufferDescriptorBuilder for building wgpu::CommandBufferDescriptor
command_encoder_descriptor
Returns CommandEncoderDescriptorBuilder for building wgpu::CommandEncoderDescriptor
compilation_info
Returns CompilationInfoBuilder for building wgpu::CompilationInfo
compute_pass_descriptor
Returns ComputePassDescriptorBuilder for building wgpu::ComputePassDescriptor
compute_pass_timestamp_writes
Returns ComputePassTimestampWritesBuilder for building wgpu::ComputePassTimestampWrites
compute_pipeline_descriptor
Returns ComputePipelineDescriptorBuilder for building wgpu::ComputePipelineDescriptor
copy_external_image_dest_info
Returns CopyExternalImageDestInfoBuilder for building wgpu::CopyExternalImageDestInfo
create_blas_descriptor
Returns CreateBlasDescriptorBuilder for building wgpu::CreateBlasDescriptor
create_tlas_descriptor
Returns CreateTlasDescriptorBuilder for building wgpu::CreateTlasDescriptor
depth_bias_state
Returns DepthBiasStateBuilder for building wgpu::DepthBiasState
depth_stencil_state
Returns DepthStencilStateBuilder for building wgpu::DepthStencilState
device_descriptor
Returns DeviceDescriptorBuilder for building wgpu::DeviceDescriptor
dispatch_indirect_args
Returns DispatchIndirectArgsBuilder for building wgpu::util::DispatchIndirectArgs
downlevel_limits
Returns DownlevelLimitsBuilder for building wgpu::DownlevelLimits
draw_indexed_indirect_args
Returns DrawIndexedIndirectArgsBuilder for building wgpu::util::DrawIndexedIndirectArgs
draw_indirect_args
Returns DrawIndirectArgsBuilder for building wgpu::util::DrawIndirectArgs
dx_12_backend_options
Returns Dx12BackendOptionsBuilder for building wgpu::Dx12BackendOptions
extent_3_d
Returns Extent3dBuilder for building wgpu::Extent3d
external_texture_descriptor
Returns ExternalTextureDescriptorBuilder for building wgpu::ExternalTextureDescriptor
external_texture_transfer_function
Returns ExternalTextureTransferFunctionBuilder for building wgpu::ExternalTextureTransferFunction
fragment_state
Returns FragmentStateBuilder for building wgpu::FragmentState
gl_backend_options
Returns GlBackendOptionsBuilder for building wgpu::GlBackendOptions
image_subresource_range
Returns ImageSubresourceRangeBuilder for building wgpu::ImageSubresourceRange
instance_descriptor
Returns InstanceDescriptorBuilder for building wgpu::InstanceDescriptor
memory_budget_thresholds
Returns MemoryBudgetThresholdsBuilder for building wgpu::MemoryBudgetThresholds
mesh_pipeline_descriptor
Returns MeshPipelineDescriptorBuilder for building wgpu::MeshPipelineDescriptor
mesh_state
Returns MeshStateBuilder for building wgpu::MeshState
multisample_state
Returns MultisampleStateBuilder for building wgpu::MultisampleState
noop_backend_options
Returns NoopBackendOptionsBuilder for building wgpu::NoopBackendOptions
operations
Returns OperationsBuilder for building wgpu::Operations
origin_2_d
Returns Origin2dBuilder for building wgpu::Origin2d
origin_3_d
Returns Origin3dBuilder for building wgpu::Origin3d
pipeline_cache_descriptor
Returns PipelineCacheDescriptorBuilder for building wgpu::PipelineCacheDescriptor
pipeline_compilation_options
Returns PipelineCompilationOptionsBuilder for building wgpu::PipelineCompilationOptions
pipeline_layout_descriptor
Returns PipelineLayoutDescriptorBuilder for building wgpu::PipelineLayoutDescriptor
primitive_state
Returns PrimitiveStateBuilder for building wgpu::PrimitiveState
push_constant_range
Returns PushConstantRangeBuilder for building wgpu::PushConstantRange
query_set_descriptor
Returns QuerySetDescriptorBuilder for building wgpu::QuerySetDescriptor
render_bundle_depth_stencil
Returns RenderBundleDepthStencilBuilder for building wgpu::RenderBundleDepthStencil
render_bundle_descriptor
Returns RenderBundleDescriptorBuilder for building wgpu::RenderBundleDescriptor
render_bundle_encoder_descriptor
Returns RenderBundleEncoderDescriptorBuilder for building wgpu::RenderBundleEncoderDescriptor
render_pass_color_attachment
Returns RenderPassColorAttachmentBuilder for building wgpu::RenderPassColorAttachment
render_pass_depth_stencil_attachment
Returns RenderPassDepthStencilAttachmentBuilder for building wgpu::RenderPassDepthStencilAttachment
render_pass_descriptor
Returns RenderPassDescriptorBuilder for building wgpu::RenderPassDescriptor
render_pass_timestamp_writes
Returns RenderPassTimestampWritesBuilder for building wgpu::RenderPassTimestampWrites
render_pipeline_descriptor
Returns RenderPipelineDescriptorBuilder for building wgpu::RenderPipelineDescriptor
request_adapter_options
Returns RequestAdapterOptionsBuilder for building wgpu::RequestAdapterOptions
request_adapter_options_base
Returns RequestAdapterOptionsBaseBuilder for building wgpu::RequestAdapterOptionsBase
sampler_descriptor
Returns SamplerDescriptorBuilder for building wgpu::SamplerDescriptor
shader_module_descriptor
Returns ShaderModuleDescriptorBuilder for building wgpu::ShaderModuleDescriptor
shader_module_descriptor_passthrough
Returns ShaderModuleDescriptorPassthroughBuilder for building wgpu::ShaderModuleDescriptorPassthrough
shader_runtime_checks
Returns ShaderRuntimeChecksBuilder for building wgpu::ShaderRuntimeChecks
stencil_face_state
Returns StencilFaceStateBuilder for building wgpu::StencilFaceState
stencil_state
Returns StencilStateBuilder for building wgpu::StencilState
surface_configuration
Returns SurfaceConfigurationBuilder for building wgpu::SurfaceConfiguration
task_state
Returns TaskStateBuilder for building wgpu::TaskState
texel_copy_buffer_info
Returns TexelCopyBufferInfoBuilder for building wgpu::TexelCopyBufferInfo
texel_copy_buffer_info_base
Returns TexelCopyBufferInfoBaseBuilder for building wgpu::TexelCopyBufferInfoBase
texel_copy_buffer_layout
Returns TexelCopyBufferLayoutBuilder for building wgpu::TexelCopyBufferLayout
texel_copy_texture_info
Returns TexelCopyTextureInfoBuilder for building wgpu::TexelCopyTextureInfo
texel_copy_texture_info_base
Returns TexelCopyTextureInfoBaseBuilder for building wgpu::TexelCopyTextureInfoBase
texture_descriptor
Returns TextureDescriptorBuilder for building wgpu::TextureDescriptor
texture_transition
Returns TextureTransitionBuilder for building wgpu::TextureTransition
texture_view_descriptor
Returns TextureViewDescriptorBuilder for building wgpu::TextureViewDescriptor
vertex_attribute
Returns VertexAttributeBuilder for building wgpu::VertexAttribute
vertex_buffer_layout
Returns VertexBufferLayoutBuilder for building wgpu::VertexBufferLayout
vertex_state
Returns VertexStateBuilder for building wgpu::VertexState