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:
quickgpusupportswgpuversion 28quickgpu27supportswgpuversion 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 structRe-exports§
pub use custom::*;
Modules§
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