1#![doc = crate::macros::doc_image!("render_coordinates.webp")]
40#![doc = crate::macros::doc_image!("texture_coordinates.webp")]
41#![no_std]
42#![recursion_limit = "256"]
44#![cfg_attr(docsrs, feature(doc_cfg))]
45#![doc(html_logo_url = "https://raw.githubusercontent.com/gfx-rs/wgpu/trunk/logo.png")]
46#![warn(
47 clippy::alloc_instead_of_core,
48 clippy::allow_attributes,
49 clippy::std_instead_of_alloc,
50 clippy::std_instead_of_core,
51 missing_docs,
52 rust_2018_idioms,
53 unsafe_op_in_unsafe_fn
54)]
55#![allow(
56 clippy::large_enum_variant,
58 clippy::bool_assert_comparison,
60 clippy::bool_comparison,
61)]
62#![cfg_attr(not(send_sync), allow(clippy::arc_with_non_send_sync))]
64#![cfg_attr(not(any(wgpu_core, webgpu)), allow(unused))]
65
66extern crate alloc;
67#[cfg(any(std, test))]
68extern crate std;
69#[cfg(wgpu_core)]
70pub extern crate wgpu_core as wgc;
71#[cfg(wgpu_core)]
72pub extern crate wgpu_hal as hal;
73pub extern crate wgpu_types as wgt;
74
75mod api;
82mod backend;
83mod cmp;
84mod dispatch;
85pub mod documentation;
86mod macros;
87pub mod util;
88
89#[cfg(custom)]
96pub use backend::custom;
97
98pub use api::*;
99pub use wgt::{
100 AdapterInfo, AddressMode, AllocatorReport, AstcBlock, AstcChannel, Backend, BackendOptions,
101 Backends, BindGroupLayoutEntry, BindingType, BlendComponent, BlendFactor, BlendOperation,
102 BlendState, BufferAddress, BufferBindingType, BufferSize, BufferTextureCopyInfo,
103 BufferTransition, BufferUsages, BufferUses, Color, ColorTargetState, ColorWrites,
104 CommandBufferDescriptor, CompareFunction, ComponentSwizzle, CompositeAlphaMode,
105 CooperativeMatrixProperties, CooperativeScalarType, CopyExternalImageDestInfo, CoreCounters,
106 DepthBiasState, DepthStencilState, DeviceLostReason, DeviceType, DisplayChromaticity,
107 DisplayCoarseRange, DisplayGamut, DisplayHdrInfo, DisplayHeadroom, DisplayLuminance,
108 DownlevelCapabilities, DownlevelFlags, DownlevelLimits, Dx12BackendOptions, Dx12Compiler,
109 Dx12SwapchainKind, Dx12UseFrameLatencyWaitableObject, DxcShaderModel, DynamicOffset,
110 ExperimentalFeatures, Extent3d, ExternalTextureFormat, ExternalTextureTransferFunction, Face,
111 Features, FeaturesWGPU, FeaturesWebGPU, FilterMode, ForceShaderModelToken, FrontFace,
112 GlBackendOptions, GlDebugFns, GlFenceBehavior, Gles3MinorVersion, HalCounters,
113 ImageSubresourceRange, IndexFormat, InstanceDescriptor, InstanceFlags, InternalCounters,
114 Limits, LoadOpDontCare, MemoryBudgetThresholds, MemoryHints, MipmapFilterMode,
115 MultisampleState, NoopBackendOptions, Origin2d, Origin3d, PassthroughShaderEntryPoint,
116 PipelineStatisticsTypes, PollError, PollStatus, PolygonMode, PowerPreference,
117 PredefinedColorSpace, PresentMode, PresentationTimestamp, PrimitiveState, PrimitiveTopology,
118 QueryType, RenderBundleDepthStencil, RequestAdapterError, SamplerBindingType,
119 SamplerBorderColor, ShaderLocation, ShaderModel, ShaderRuntimeChecks, ShaderStages,
120 StencilFaceState, StencilOperation, StencilState, StorageTextureAccess, SurfaceCapabilities,
121 SurfaceColorSpace, SurfaceColorSpaces, SurfaceFormatCapabilities, SurfaceStatus,
122 TexelCopyBufferLayout, TextureAspect, TextureChannel, TextureComponentSwizzle,
123 TextureDimension, TextureFormat, TextureFormatFeatureFlags, TextureFormatFeatures,
124 TextureSampleType, TextureTransition, TextureUsages, TextureUses, TextureViewDimension, Trace,
125 VertexAttribute, VertexFormat, VertexStepMode, WasmNotSend, WasmNotSendSync, WasmNotSync,
126 WriteOnly, WriteOnlyIter, COPY_BUFFER_ALIGNMENT, COPY_BYTES_PER_ROW_ALIGNMENT,
127 IMMEDIATE_DATA_ALIGNMENT, MAP_ALIGNMENT, MAXIMUM_SUBGROUP_MAX_SIZE, MINIMUM_SUBGROUP_MIN_SIZE,
128 QUERY_RESOLVE_BUFFER_ALIGNMENT, QUERY_SET_MAX_QUERIES, QUERY_SIZE, VERTEX_ALIGNMENT,
129};
130
131#[expect(deprecated)]
132pub use wgt::VERTEX_STRIDE_ALIGNMENT;
133
134#[cfg(web)]
137pub use wgt::{CopyExternalImageSourceInfo, ExternalImageSource};
138
139#[cfg(wgpu_core)]
142#[cfg_attr(docsrs, doc(cfg(any(wgpu_core, naga))))]
143pub use ::wgc::naga;
145#[cfg(all(not(wgpu_core), naga))]
148#[cfg_attr(docsrs, doc(cfg(any(wgpu_core, naga))))]
149pub use naga;
151
152pub use raw_window_handle as rwh;
155
156#[cfg(web)]
159pub use web_sys;
160
161#[cfg(webgpu)]
172pub mod webgpu {
173 pub use crate::backend::webgpu::webgpu_sys::{
174 GpuBuffer, GpuDevice, GpuExternalTexture, GpuQueue, GpuTexture, GpuTextureView,
175 };
176 pub use crate::backend::webgpu::{DropCallback, ExternalTextureSource};
177}
178
179#[doc(hidden)]
180pub use macros::helpers as __macro_helpers;