// Copyright 2025 International Digital Economy Academy
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
///|
/// WebGPU C API contract (generated from webgpu.h).
///
/// This is a declaration-only mirror of the upstream header.
/// It is meant for spec-first / test-first development:
/// - `moon check` must stay green
/// - `moon test` is allowed to be red until the real FFI is implemented
///
/// Generated by: scripts/gen_webgpu_capi_spec.py
///|
#declaration_only
pub type UIntPtr
///|
#declaration_only
pub type UnitPtr
///|
#declaration_only
pub type WGPUAdapter
///|
#declaration_only
pub type WGPUAdapterInfo
///|
#declaration_only
pub type WGPUAdapterInfoPtr
///|
#declaration_only
pub type WGPUAdapterPtr
///|
#declaration_only
pub type WGPUBindGroup
///|
#declaration_only
pub type WGPUBindGroupDescriptorPtr
///|
#declaration_only
pub type WGPUBindGroupLayout
///|
#declaration_only
pub type WGPUBindGroupLayoutDescriptorPtr
///|
#declaration_only
pub type WGPUBuffer
///|
#declaration_only
pub type WGPUBufferDescriptorPtr
///|
#declaration_only
pub type WGPUBufferMapCallbackInfo
///|
#declaration_only
pub type WGPUBufferMapState
///|
pub type WGPUBufferUsage = UInt64
///|
#declaration_only
pub type WGPUColorPtr
///|
#declaration_only
pub type WGPUCommandBuffer
///|
#declaration_only
pub type WGPUCommandBufferDescriptorPtr
///|
#declaration_only
pub type WGPUCommandBufferPtr
///|
#declaration_only
pub type WGPUCommandEncoder
///|
#declaration_only
pub type WGPUCommandEncoderDescriptorPtr
///|
#declaration_only
pub type WGPUCompilationInfoCallbackInfo
///|
#declaration_only
pub type WGPUComputePassDescriptorPtr
///|
#declaration_only
pub type WGPUComputePassEncoder
///|
#declaration_only
pub type WGPUComputePipeline
///|
#declaration_only
pub type WGPUComputePipelineDescriptorPtr
///|
#declaration_only
pub type WGPUCreateComputePipelineAsyncCallbackInfo
///|
#declaration_only
pub type WGPUCreateRenderPipelineAsyncCallbackInfo
///|
#declaration_only
pub type WGPUDevice
///|
#declaration_only
pub type WGPUDeviceDescriptorPtr
///|
#declaration_only
pub type WGPUErrorFilter
///|
#declaration_only
pub type WGPUExtent3DPtr
///|
#declaration_only
pub type WGPUExternalTexture
///|
#declaration_only
pub type WGPUFeatureName
///|
#declaration_only
pub type WGPUFuture
///|
#declaration_only
pub type WGPUFutureWaitInfoPtr
///|
#declaration_only
pub type WGPUGlobalReportPtr
///|
#declaration_only
pub type WGPUImageSubresourceRangePtr
///|
#declaration_only
pub type WGPUIndexFormat
///|
#declaration_only
pub type WGPUInstance
///|
#declaration_only
pub type WGPUInstanceDescriptorPtr
///|
#declaration_only
pub type WGPUInstanceEnumerateAdapterOptionsPtr
///|
#declaration_only
pub type WGPUInstanceFeatureName
///|
#declaration_only
pub type WGPUInstanceLimitsPtr
///|
#declaration_only
pub type WGPULimitsPtr
///|
#declaration_only
pub type WGPULogCallback
///|
pub type WGPULogLevel = UInt
///|
pub type WGPUMapMode = UInt64
///|
#declaration_only
pub type WGPUPipelineLayout
///|
#declaration_only
pub type WGPUPipelineLayoutDescriptorPtr
///|
#declaration_only
pub type WGPUPopErrorScopeCallbackInfo
///|
#declaration_only
pub type WGPUProc
///|
#declaration_only
pub type WGPUQuerySet
///|
#declaration_only
pub type WGPUQuerySetDescriptorPtr
///|
#declaration_only
pub type WGPUQueryType
///|
#declaration_only
pub type WGPUQueue
///|
#declaration_only
pub type WGPUQueueWorkDoneCallbackInfo
///|
#declaration_only
pub type WGPURenderBundle
///|
#declaration_only
pub type WGPURenderBundleDescriptorPtr
///|
#declaration_only
pub type WGPURenderBundleEncoder
///|
#declaration_only
pub type WGPURenderBundleEncoderDescriptorPtr
///|
#declaration_only
pub type WGPURenderBundlePtr
///|
#declaration_only
pub type WGPURenderPassDescriptorPtr
///|
#declaration_only
pub type WGPURenderPassEncoder
///|
#declaration_only
pub type WGPURenderPipeline
///|
#declaration_only
pub type WGPURenderPipelineDescriptorPtr
///|
#declaration_only
pub type WGPURequestAdapterCallbackInfo
///|
#declaration_only
pub type WGPURequestAdapterOptionsPtr
///|
#declaration_only
pub type WGPURequestDeviceCallbackInfo
///|
#declaration_only
pub type WGPUSampler
///|
#declaration_only
pub type WGPUSamplerDescriptorPtr
///|
#declaration_only
pub type WGPUShaderModule
///|
#declaration_only
pub type WGPUShaderModuleDescriptorPtr
///|
#declaration_only
pub type WGPUShaderModuleDescriptorSpirVPtr
///|
pub type WGPUShaderRuntimeChecks = UInt64
///|
#declaration_only
pub type WGPUStatus
///|
#declaration_only
pub type WGPUStringView
///|
pub type WGPUSubmissionIndex = UInt64
///|
#declaration_only
pub type WGPUSubmissionIndexPtr
///|
#declaration_only
pub type WGPUSupportedFeatures
///|
#declaration_only
pub type WGPUSupportedFeaturesPtr
///|
#declaration_only
pub type WGPUSupportedInstanceFeatures
///|
#declaration_only
pub type WGPUSupportedInstanceFeaturesPtr
///|
#declaration_only
pub type WGPUSupportedWGSLLanguageFeatures
///|
#declaration_only
pub type WGPUSupportedWGSLLanguageFeaturesPtr
///|
#declaration_only
pub type WGPUSurface
///|
#declaration_only
pub type WGPUSurfaceCapabilities
///|
#declaration_only
pub type WGPUSurfaceCapabilitiesPtr
///|
#declaration_only
pub type WGPUSurfaceConfigurationPtr
///|
#declaration_only
pub type WGPUSurfaceDescriptorPtr
///|
#declaration_only
pub type WGPUSurfaceTexturePtr
///|
#declaration_only
pub type WGPUTexelCopyBufferInfoPtr
///|
#declaration_only
pub type WGPUTexelCopyBufferLayoutPtr
///|
#declaration_only
pub type WGPUTexelCopyTextureInfoPtr
///|
#declaration_only
pub type WGPUTexture
///|
#declaration_only
pub type WGPUTextureDescriptorPtr
///|
#declaration_only
pub type WGPUTextureDimension
///|
#declaration_only
pub type WGPUTextureFormat
///|
pub type WGPUTextureUsage = UInt64
///|
#declaration_only
pub type WGPUTextureView
///|
#declaration_only
pub type WGPUTextureViewDescriptorPtr
///|
#declaration_only
pub type WGPUTextureViewDimension
///|
#declaration_only
pub type WGPUWGSLLanguageFeatureName
///|
#declaration_only
pub type WGPUWaitStatus
///|
#declaration_only
declare pub fn wgpuAdapterAddRef(adapter : WGPUAdapter) -> Unit
///|
#declaration_only
declare pub fn wgpuAdapterGetFeatures(
adapter : WGPUAdapter,
features : WGPUSupportedFeaturesPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuAdapterGetInfo(
adapter : WGPUAdapter,
info : WGPUAdapterInfoPtr,
) -> WGPUStatus
///|
#declaration_only
declare pub fn wgpuAdapterGetLimits(
adapter : WGPUAdapter,
limits : WGPULimitsPtr,
) -> WGPUStatus
///|
#declaration_only
declare pub fn wgpuAdapterHasFeature(
adapter : WGPUAdapter,
feature : WGPUFeatureName,
) -> Bool
///|
#declaration_only
declare pub fn wgpuAdapterInfoFreeMembers(adapterInfo : WGPUAdapterInfo) -> Unit
///|
#declaration_only
declare pub fn wgpuAdapterRelease(adapter : WGPUAdapter) -> Unit
///|
#declaration_only
declare pub fn wgpuAdapterRequestDevice(
adapter : WGPUAdapter,
descriptor : WGPUDeviceDescriptorPtr,
callbackInfo : WGPURequestDeviceCallbackInfo,
) -> WGPUFuture
///|
#declaration_only
declare pub fn wgpuBindGroupAddRef(bindGroup : WGPUBindGroup) -> Unit
///|
#declaration_only
declare pub fn wgpuBindGroupLayoutAddRef(
bindGroupLayout : WGPUBindGroupLayout,
) -> Unit
///|
#declaration_only
declare pub fn wgpuBindGroupLayoutRelease(
bindGroupLayout : WGPUBindGroupLayout,
) -> Unit
///|
#declaration_only
declare pub fn wgpuBindGroupLayoutSetLabel(
bindGroupLayout : WGPUBindGroupLayout,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuBindGroupRelease(bindGroup : WGPUBindGroup) -> Unit
///|
#declaration_only
declare pub fn wgpuBindGroupSetLabel(
bindGroup : WGPUBindGroup,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuBufferAddRef(buffer : WGPUBuffer) -> Unit
///|
#declaration_only
declare pub fn wgpuBufferDestroy(buffer : WGPUBuffer) -> Unit
///|
#declaration_only
declare pub fn wgpuBufferGetConstMappedRange(
buffer : WGPUBuffer,
offset : UInt64,
size : UInt64,
) -> UnitPtr
///|
#declaration_only
declare pub fn wgpuBufferGetMapState(buffer : WGPUBuffer) -> WGPUBufferMapState
///|
#declaration_only
declare pub fn wgpuBufferGetMappedRange(
buffer : WGPUBuffer,
offset : UInt64,
size : UInt64,
) -> UnitPtr
///|
#declaration_only
declare pub fn wgpuBufferGetSize(buffer : WGPUBuffer) -> UInt64
///|
#declaration_only
declare pub fn wgpuBufferGetUsage(buffer : WGPUBuffer) -> WGPUBufferUsage
///|
#declaration_only
declare pub fn wgpuBufferMapAsync(
buffer : WGPUBuffer,
mode : WGPUMapMode,
offset : UInt64,
size : UInt64,
callbackInfo : WGPUBufferMapCallbackInfo,
) -> WGPUFuture
///|
#declaration_only
declare pub fn wgpuBufferReadMappedRange(
buffer : WGPUBuffer,
offset : UInt64,
data : UnitPtr,
size : UInt64,
) -> WGPUStatus
///|
#declaration_only
declare pub fn wgpuBufferRelease(buffer : WGPUBuffer) -> Unit
///|
#declaration_only
declare pub fn wgpuBufferSetLabel(
buffer : WGPUBuffer,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuBufferUnmap(buffer : WGPUBuffer) -> Unit
///|
#declaration_only
declare pub fn wgpuBufferWriteMappedRange(
buffer : WGPUBuffer,
offset : UInt64,
data : UnitPtr,
size : UInt64,
) -> WGPUStatus
///|
#declaration_only
declare pub fn wgpuCommandBufferAddRef(
commandBuffer : WGPUCommandBuffer,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandBufferRelease(
commandBuffer : WGPUCommandBuffer,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandBufferSetLabel(
commandBuffer : WGPUCommandBuffer,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderAddRef(
commandEncoder : WGPUCommandEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderBeginComputePass(
commandEncoder : WGPUCommandEncoder,
descriptor : WGPUComputePassDescriptorPtr,
) -> WGPUComputePassEncoder
///|
#declaration_only
declare pub fn wgpuCommandEncoderBeginRenderPass(
commandEncoder : WGPUCommandEncoder,
descriptor : WGPURenderPassDescriptorPtr,
) -> WGPURenderPassEncoder
///|
#declaration_only
declare pub fn wgpuCommandEncoderClearBuffer(
commandEncoder : WGPUCommandEncoder,
buffer : WGPUBuffer,
offset : UInt64,
size : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderClearTexture(
commandEncoder : WGPUCommandEncoder,
texture : WGPUTexture,
range : WGPUImageSubresourceRangePtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderCopyBufferToBuffer(
commandEncoder : WGPUCommandEncoder,
source : WGPUBuffer,
sourceOffset : UInt64,
destination : WGPUBuffer,
destinationOffset : UInt64,
size : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderCopyBufferToTexture(
commandEncoder : WGPUCommandEncoder,
source : WGPUTexelCopyBufferInfoPtr,
destination : WGPUTexelCopyTextureInfoPtr,
copySize : WGPUExtent3DPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderCopyTextureToBuffer(
commandEncoder : WGPUCommandEncoder,
source : WGPUTexelCopyTextureInfoPtr,
destination : WGPUTexelCopyBufferInfoPtr,
copySize : WGPUExtent3DPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderCopyTextureToTexture(
commandEncoder : WGPUCommandEncoder,
source : WGPUTexelCopyTextureInfoPtr,
destination : WGPUTexelCopyTextureInfoPtr,
copySize : WGPUExtent3DPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderFinish(
commandEncoder : WGPUCommandEncoder,
descriptor : WGPUCommandBufferDescriptorPtr,
) -> WGPUCommandBuffer
///|
#declaration_only
declare pub fn wgpuCommandEncoderInsertDebugMarker(
commandEncoder : WGPUCommandEncoder,
markerLabel : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderPopDebugGroup(
commandEncoder : WGPUCommandEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderPushDebugGroup(
commandEncoder : WGPUCommandEncoder,
groupLabel : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderRelease(
commandEncoder : WGPUCommandEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderResolveQuerySet(
commandEncoder : WGPUCommandEncoder,
querySet : WGPUQuerySet,
firstQuery : UInt,
queryCount : UInt,
destination : WGPUBuffer,
destinationOffset : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderSetLabel(
commandEncoder : WGPUCommandEncoder,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCommandEncoderWriteTimestamp(
commandEncoder : WGPUCommandEncoder,
querySet : WGPUQuerySet,
queryIndex : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderAddRef(
computePassEncoder : WGPUComputePassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderBeginPipelineStatisticsQuery(
computePassEncoder : WGPUComputePassEncoder,
querySet : WGPUQuerySet,
queryIndex : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderDispatchWorkgroups(
computePassEncoder : WGPUComputePassEncoder,
workgroupCountX : UInt,
workgroupCountY : UInt,
workgroupCountZ : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderDispatchWorkgroupsIndirect(
computePassEncoder : WGPUComputePassEncoder,
indirectBuffer : WGPUBuffer,
indirectOffset : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderEnd(
computePassEncoder : WGPUComputePassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderEndPipelineStatisticsQuery(
computePassEncoder : WGPUComputePassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderInsertDebugMarker(
computePassEncoder : WGPUComputePassEncoder,
markerLabel : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderPopDebugGroup(
computePassEncoder : WGPUComputePassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderPushDebugGroup(
computePassEncoder : WGPUComputePassEncoder,
groupLabel : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderRelease(
computePassEncoder : WGPUComputePassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderSetBindGroup(
computePassEncoder : WGPUComputePassEncoder,
groupIndex : UInt,
group : WGPUBindGroup,
dynamicOffsetCount : UInt64,
dynamicOffsets : UIntPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderSetImmediates(
computePassEncoder : WGPUComputePassEncoder,
offset : UInt,
data : UnitPtr,
size : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderSetLabel(
computePassEncoder : WGPUComputePassEncoder,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderSetPipeline(
computePassEncoder : WGPUComputePassEncoder,
pipeline : WGPUComputePipeline,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePassEncoderWriteTimestamp(
computePassEncoder : WGPUComputePassEncoder,
querySet : WGPUQuerySet,
queryIndex : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePipelineAddRef(
computePipeline : WGPUComputePipeline,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePipelineGetBindGroupLayout(
computePipeline : WGPUComputePipeline,
groupIndex : UInt,
) -> WGPUBindGroupLayout
///|
#declaration_only
declare pub fn wgpuComputePipelineRelease(
computePipeline : WGPUComputePipeline,
) -> Unit
///|
#declaration_only
declare pub fn wgpuComputePipelineSetLabel(
computePipeline : WGPUComputePipeline,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuCreateInstance(
descriptor : WGPUInstanceDescriptorPtr,
) -> WGPUInstance
///|
#declaration_only
declare pub fn wgpuDeviceAddRef(device : WGPUDevice) -> Unit
///|
#declaration_only
declare pub fn wgpuDeviceCreateBindGroup(
device : WGPUDevice,
descriptor : WGPUBindGroupDescriptorPtr,
) -> WGPUBindGroup
///|
#declaration_only
declare pub fn wgpuDeviceCreateBindGroupLayout(
device : WGPUDevice,
descriptor : WGPUBindGroupLayoutDescriptorPtr,
) -> WGPUBindGroupLayout
///|
#declaration_only
declare pub fn wgpuDeviceCreateBuffer(
device : WGPUDevice,
descriptor : WGPUBufferDescriptorPtr,
) -> WGPUBuffer
///|
#declaration_only
declare pub fn wgpuDeviceCreateCommandEncoder(
device : WGPUDevice,
descriptor : WGPUCommandEncoderDescriptorPtr,
) -> WGPUCommandEncoder
///|
#declaration_only
declare pub fn wgpuDeviceCreateComputePipeline(
device : WGPUDevice,
descriptor : WGPUComputePipelineDescriptorPtr,
) -> WGPUComputePipeline
///|
#declaration_only
declare pub fn wgpuDeviceCreateComputePipelineAsync(
device : WGPUDevice,
descriptor : WGPUComputePipelineDescriptorPtr,
callbackInfo : WGPUCreateComputePipelineAsyncCallbackInfo,
) -> WGPUFuture
///|
#declaration_only
declare pub fn wgpuDeviceCreatePipelineLayout(
device : WGPUDevice,
descriptor : WGPUPipelineLayoutDescriptorPtr,
) -> WGPUPipelineLayout
///|
#declaration_only
declare pub fn wgpuDeviceCreateQuerySet(
device : WGPUDevice,
descriptor : WGPUQuerySetDescriptorPtr,
) -> WGPUQuerySet
///|
#declaration_only
declare pub fn wgpuDeviceCreateRenderBundleEncoder(
device : WGPUDevice,
descriptor : WGPURenderBundleEncoderDescriptorPtr,
) -> WGPURenderBundleEncoder
///|
#declaration_only
declare pub fn wgpuDeviceCreateRenderPipeline(
device : WGPUDevice,
descriptor : WGPURenderPipelineDescriptorPtr,
) -> WGPURenderPipeline
///|
#declaration_only
declare pub fn wgpuDeviceCreateRenderPipelineAsync(
device : WGPUDevice,
descriptor : WGPURenderPipelineDescriptorPtr,
callbackInfo : WGPUCreateRenderPipelineAsyncCallbackInfo,
) -> WGPUFuture
///|
#declaration_only
declare pub fn wgpuDeviceCreateSampler(
device : WGPUDevice,
descriptor : WGPUSamplerDescriptorPtr,
) -> WGPUSampler
///|
#declaration_only
declare pub fn wgpuDeviceCreateShaderModule(
device : WGPUDevice,
descriptor : WGPUShaderModuleDescriptorPtr,
) -> WGPUShaderModule
///|
#declaration_only
declare pub fn wgpuDeviceCreateShaderModuleSpirV(
device : WGPUDevice,
descriptor : WGPUShaderModuleDescriptorSpirVPtr,
) -> WGPUShaderModule
///|
#declaration_only
declare pub fn wgpuDeviceCreateShaderModuleTrusted(
device : WGPUDevice,
descriptor : WGPUShaderModuleDescriptorPtr,
runtimeChecks : WGPUShaderRuntimeChecks,
) -> WGPUShaderModule
///|
#declaration_only
declare pub fn wgpuDeviceCreateTexture(
device : WGPUDevice,
descriptor : WGPUTextureDescriptorPtr,
) -> WGPUTexture
///|
#declaration_only
declare pub fn wgpuDeviceDestroy(device : WGPUDevice) -> Unit
///|
#declaration_only
declare pub fn wgpuDeviceGetAdapterInfo(
device : WGPUDevice,
adapterInfo : WGPUAdapterInfoPtr,
) -> WGPUStatus
///|
#declaration_only
declare pub fn wgpuDeviceGetFeatures(
device : WGPUDevice,
features : WGPUSupportedFeaturesPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuDeviceGetLimits(
device : WGPUDevice,
limits : WGPULimitsPtr,
) -> WGPUStatus
///|
#declaration_only
declare pub fn wgpuDeviceGetLostFuture(device : WGPUDevice) -> WGPUFuture
///|
#declaration_only
declare pub fn wgpuDeviceGetNativeMetalDevice(device : WGPUDevice) -> UnitPtr
///|
#declaration_only
declare pub fn wgpuDeviceGetQueue(device : WGPUDevice) -> WGPUQueue
///|
#declaration_only
declare pub fn wgpuDeviceHasFeature(
device : WGPUDevice,
feature : WGPUFeatureName,
) -> Bool
///|
#declaration_only
declare pub fn wgpuDevicePoll(
device : WGPUDevice,
wait : Bool,
submissionIndex : WGPUSubmissionIndexPtr,
) -> Bool
///|
#declaration_only
declare pub fn wgpuDevicePopErrorScope(
device : WGPUDevice,
callbackInfo : WGPUPopErrorScopeCallbackInfo,
) -> WGPUFuture
///|
#declaration_only
declare pub fn wgpuDevicePushErrorScope(
device : WGPUDevice,
filter : WGPUErrorFilter,
) -> Unit
///|
#declaration_only
declare pub fn wgpuDeviceRelease(device : WGPUDevice) -> Unit
///|
#declaration_only
declare pub fn wgpuDeviceSetLabel(
device : WGPUDevice,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuDeviceStartGraphicsDebuggerCapture(
device : WGPUDevice,
) -> Bool
///|
#declaration_only
declare pub fn wgpuDeviceStopGraphicsDebuggerCapture(
device : WGPUDevice,
) -> Unit
///|
#declaration_only
declare pub fn wgpuExternalTextureAddRef(
externalTexture : WGPUExternalTexture,
) -> Unit
///|
#declaration_only
declare pub fn wgpuExternalTextureRelease(
externalTexture : WGPUExternalTexture,
) -> Unit
///|
#declaration_only
declare pub fn wgpuExternalTextureSetLabel(
externalTexture : WGPUExternalTexture,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuGenerateReport(
instance : WGPUInstance,
report : WGPUGlobalReportPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuGetInstanceFeatures(
features : WGPUSupportedInstanceFeaturesPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuGetInstanceLimits(
limits : WGPUInstanceLimitsPtr,
) -> WGPUStatus
///|
#declaration_only
declare pub fn wgpuGetProcAddress(procName : WGPUStringView) -> WGPUProc
///|
#declaration_only
declare pub fn wgpuGetVersion() -> UInt
///|
#declaration_only
declare pub fn wgpuHasInstanceFeature(feature : WGPUInstanceFeatureName) -> Bool
///|
#declaration_only
declare pub fn wgpuInstanceAddRef(instance : WGPUInstance) -> Unit
///|
#declaration_only
declare pub fn wgpuInstanceCreateSurface(
instance : WGPUInstance,
descriptor : WGPUSurfaceDescriptorPtr,
) -> WGPUSurface
///|
#declaration_only
declare pub fn wgpuInstanceEnumerateAdapters(
instance : WGPUInstance,
options : WGPUInstanceEnumerateAdapterOptionsPtr,
adapters : WGPUAdapterPtr,
) -> UInt64
///|
#declaration_only
declare pub fn wgpuInstanceGetWGSLLanguageFeatures(
instance : WGPUInstance,
features : WGPUSupportedWGSLLanguageFeaturesPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuInstanceHasWGSLLanguageFeature(
instance : WGPUInstance,
feature : WGPUWGSLLanguageFeatureName,
) -> Bool
///|
#declaration_only
declare pub fn wgpuInstanceProcessEvents(instance : WGPUInstance) -> Unit
///|
#declaration_only
declare pub fn wgpuInstanceRelease(instance : WGPUInstance) -> Unit
///|
#declaration_only
declare pub fn wgpuInstanceRequestAdapter(
instance : WGPUInstance,
options : WGPURequestAdapterOptionsPtr,
callbackInfo : WGPURequestAdapterCallbackInfo,
) -> WGPUFuture
///|
#declaration_only
declare pub fn wgpuInstanceWaitAny(
instance : WGPUInstance,
futureCount : UInt64,
futures : WGPUFutureWaitInfoPtr,
timeoutNS : UInt64,
) -> WGPUWaitStatus
///|
#declaration_only
declare pub fn wgpuPipelineLayoutAddRef(
pipelineLayout : WGPUPipelineLayout,
) -> Unit
///|
#declaration_only
declare pub fn wgpuPipelineLayoutRelease(
pipelineLayout : WGPUPipelineLayout,
) -> Unit
///|
#declaration_only
declare pub fn wgpuPipelineLayoutSetLabel(
pipelineLayout : WGPUPipelineLayout,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuQuerySetAddRef(querySet : WGPUQuerySet) -> Unit
///|
#declaration_only
declare pub fn wgpuQuerySetDestroy(querySet : WGPUQuerySet) -> Unit
///|
#declaration_only
declare pub fn wgpuQuerySetGetCount(querySet : WGPUQuerySet) -> UInt
///|
#declaration_only
declare pub fn wgpuQuerySetGetType(querySet : WGPUQuerySet) -> WGPUQueryType
///|
#declaration_only
declare pub fn wgpuQuerySetRelease(querySet : WGPUQuerySet) -> Unit
///|
#declaration_only
declare pub fn wgpuQuerySetSetLabel(
querySet : WGPUQuerySet,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuQueueAddRef(queue : WGPUQueue) -> Unit
///|
#declaration_only
declare pub fn wgpuQueueGetNativeMetalCommandQueue(queue : WGPUQueue) -> UnitPtr
///|
#declaration_only
declare pub fn wgpuQueueGetTimestampPeriod(queue : WGPUQueue) -> Float
///|
#declaration_only
declare pub fn wgpuQueueOnSubmittedWorkDone(
queue : WGPUQueue,
callbackInfo : WGPUQueueWorkDoneCallbackInfo,
) -> WGPUFuture
///|
#declaration_only
declare pub fn wgpuQueueRelease(queue : WGPUQueue) -> Unit
///|
#declaration_only
declare pub fn wgpuQueueSetLabel(
queue : WGPUQueue,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuQueueSubmit(
queue : WGPUQueue,
commandCount : UInt64,
commands : WGPUCommandBufferPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuQueueSubmitForIndex(
queue : WGPUQueue,
commandCount : UInt64,
commands : WGPUCommandBufferPtr,
) -> WGPUSubmissionIndex
///|
#declaration_only
declare pub fn wgpuQueueWriteBuffer(
queue : WGPUQueue,
buffer : WGPUBuffer,
bufferOffset : UInt64,
data : UnitPtr,
size : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuQueueWriteTexture(
queue : WGPUQueue,
destination : WGPUTexelCopyTextureInfoPtr,
data : UnitPtr,
dataSize : UInt64,
dataLayout : WGPUTexelCopyBufferLayoutPtr,
writeSize : WGPUExtent3DPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleAddRef(renderBundle : WGPURenderBundle) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderAddRef(
renderBundleEncoder : WGPURenderBundleEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderDraw(
renderBundleEncoder : WGPURenderBundleEncoder,
vertexCount : UInt,
instanceCount : UInt,
firstVertex : UInt,
firstInstance : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderDrawIndexed(
renderBundleEncoder : WGPURenderBundleEncoder,
indexCount : UInt,
instanceCount : UInt,
firstIndex : UInt,
baseVertex : Int,
firstInstance : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderDrawIndexedIndirect(
renderBundleEncoder : WGPURenderBundleEncoder,
indirectBuffer : WGPUBuffer,
indirectOffset : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderDrawIndirect(
renderBundleEncoder : WGPURenderBundleEncoder,
indirectBuffer : WGPUBuffer,
indirectOffset : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderFinish(
renderBundleEncoder : WGPURenderBundleEncoder,
descriptor : WGPURenderBundleDescriptorPtr,
) -> WGPURenderBundle
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderInsertDebugMarker(
renderBundleEncoder : WGPURenderBundleEncoder,
markerLabel : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderPopDebugGroup(
renderBundleEncoder : WGPURenderBundleEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderPushDebugGroup(
renderBundleEncoder : WGPURenderBundleEncoder,
groupLabel : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderRelease(
renderBundleEncoder : WGPURenderBundleEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderSetBindGroup(
renderBundleEncoder : WGPURenderBundleEncoder,
groupIndex : UInt,
group : WGPUBindGroup,
dynamicOffsetCount : UInt64,
dynamicOffsets : UIntPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderSetImmediates(
renderBundleEncoder : WGPURenderBundleEncoder,
offset : UInt,
data : UnitPtr,
size : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderSetIndexBuffer(
renderBundleEncoder : WGPURenderBundleEncoder,
buffer : WGPUBuffer,
format : WGPUIndexFormat,
offset : UInt64,
size : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderSetLabel(
renderBundleEncoder : WGPURenderBundleEncoder,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderSetPipeline(
renderBundleEncoder : WGPURenderBundleEncoder,
pipeline : WGPURenderPipeline,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleEncoderSetVertexBuffer(
renderBundleEncoder : WGPURenderBundleEncoder,
slot : UInt,
buffer : WGPUBuffer,
offset : UInt64,
size : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleRelease(renderBundle : WGPURenderBundle) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderBundleSetLabel(
renderBundle : WGPURenderBundle,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderAddRef(
renderPassEncoder : WGPURenderPassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderBeginOcclusionQuery(
renderPassEncoder : WGPURenderPassEncoder,
queryIndex : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderBeginPipelineStatisticsQuery(
renderPassEncoder : WGPURenderPassEncoder,
querySet : WGPUQuerySet,
queryIndex : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderDraw(
renderPassEncoder : WGPURenderPassEncoder,
vertexCount : UInt,
instanceCount : UInt,
firstVertex : UInt,
firstInstance : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderDrawIndexed(
renderPassEncoder : WGPURenderPassEncoder,
indexCount : UInt,
instanceCount : UInt,
firstIndex : UInt,
baseVertex : Int,
firstInstance : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderDrawIndexedIndirect(
renderPassEncoder : WGPURenderPassEncoder,
indirectBuffer : WGPUBuffer,
indirectOffset : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderDrawIndirect(
renderPassEncoder : WGPURenderPassEncoder,
indirectBuffer : WGPUBuffer,
indirectOffset : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderEnd(
renderPassEncoder : WGPURenderPassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderEndOcclusionQuery(
renderPassEncoder : WGPURenderPassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderEndPipelineStatisticsQuery(
renderPassEncoder : WGPURenderPassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderExecuteBundles(
renderPassEncoder : WGPURenderPassEncoder,
bundleCount : UInt64,
bundles : WGPURenderBundlePtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderInsertDebugMarker(
renderPassEncoder : WGPURenderPassEncoder,
markerLabel : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderMultiDrawIndexedIndirect(
encoder : WGPURenderPassEncoder,
buffer : WGPUBuffer,
offset : UInt64,
count : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderMultiDrawIndexedIndirectCount(
encoder : WGPURenderPassEncoder,
buffer : WGPUBuffer,
offset : UInt64,
count_buffer : WGPUBuffer,
count_buffer_offset : UInt64,
max_count : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderMultiDrawIndirect(
encoder : WGPURenderPassEncoder,
buffer : WGPUBuffer,
offset : UInt64,
count : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderMultiDrawIndirectCount(
encoder : WGPURenderPassEncoder,
buffer : WGPUBuffer,
offset : UInt64,
count_buffer : WGPUBuffer,
count_buffer_offset : UInt64,
max_count : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderPopDebugGroup(
renderPassEncoder : WGPURenderPassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderPushDebugGroup(
renderPassEncoder : WGPURenderPassEncoder,
groupLabel : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderRelease(
renderPassEncoder : WGPURenderPassEncoder,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderSetBindGroup(
renderPassEncoder : WGPURenderPassEncoder,
groupIndex : UInt,
group : WGPUBindGroup,
dynamicOffsetCount : UInt64,
dynamicOffsets : UIntPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderSetBlendConstant(
renderPassEncoder : WGPURenderPassEncoder,
color : WGPUColorPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderSetImmediates(
renderPassEncoder : WGPURenderPassEncoder,
offset : UInt,
data : UnitPtr,
size : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderSetIndexBuffer(
renderPassEncoder : WGPURenderPassEncoder,
buffer : WGPUBuffer,
format : WGPUIndexFormat,
offset : UInt64,
size : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderSetLabel(
renderPassEncoder : WGPURenderPassEncoder,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderSetPipeline(
renderPassEncoder : WGPURenderPassEncoder,
pipeline : WGPURenderPipeline,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderSetScissorRect(
renderPassEncoder : WGPURenderPassEncoder,
x : UInt,
y : UInt,
width : UInt,
height : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderSetStencilReference(
renderPassEncoder : WGPURenderPassEncoder,
reference : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderSetVertexBuffer(
renderPassEncoder : WGPURenderPassEncoder,
slot : UInt,
buffer : WGPUBuffer,
offset : UInt64,
size : UInt64,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderSetViewport(
renderPassEncoder : WGPURenderPassEncoder,
x : Float,
y : Float,
width : Float,
height : Float,
minDepth : Float,
maxDepth : Float,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPassEncoderWriteTimestamp(
renderPassEncoder : WGPURenderPassEncoder,
querySet : WGPUQuerySet,
queryIndex : UInt,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPipelineAddRef(
renderPipeline : WGPURenderPipeline,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPipelineGetBindGroupLayout(
renderPipeline : WGPURenderPipeline,
groupIndex : UInt,
) -> WGPUBindGroupLayout
///|
#declaration_only
declare pub fn wgpuRenderPipelineRelease(
renderPipeline : WGPURenderPipeline,
) -> Unit
///|
#declaration_only
declare pub fn wgpuRenderPipelineSetLabel(
renderPipeline : WGPURenderPipeline,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSamplerAddRef(sampler : WGPUSampler) -> Unit
///|
#declaration_only
declare pub fn wgpuSamplerRelease(sampler : WGPUSampler) -> Unit
///|
#declaration_only
declare pub fn wgpuSamplerSetLabel(
sampler : WGPUSampler,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSetLogCallback(
callback : WGPULogCallback,
userdata : UnitPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSetLogLevel(level : WGPULogLevel) -> Unit
///|
#declaration_only
declare pub fn wgpuShaderModuleAddRef(shaderModule : WGPUShaderModule) -> Unit
///|
#declaration_only
declare pub fn wgpuShaderModuleGetCompilationInfo(
shaderModule : WGPUShaderModule,
callbackInfo : WGPUCompilationInfoCallbackInfo,
) -> WGPUFuture
///|
#declaration_only
declare pub fn wgpuShaderModuleRelease(shaderModule : WGPUShaderModule) -> Unit
///|
#declaration_only
declare pub fn wgpuShaderModuleSetLabel(
shaderModule : WGPUShaderModule,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSupportedFeaturesFreeMembers(
supportedFeatures : WGPUSupportedFeatures,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSupportedInstanceFeaturesFreeMembers(
supportedInstanceFeatures : WGPUSupportedInstanceFeatures,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSupportedWGSLLanguageFeaturesFreeMembers(
supportedWGSLLanguageFeatures : WGPUSupportedWGSLLanguageFeatures,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSurfaceAddRef(surface : WGPUSurface) -> Unit
///|
#declaration_only
declare pub fn wgpuSurfaceCapabilitiesFreeMembers(
surfaceCapabilities : WGPUSurfaceCapabilities,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSurfaceConfigure(
surface : WGPUSurface,
config : WGPUSurfaceConfigurationPtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSurfaceGetCapabilities(
surface : WGPUSurface,
adapter : WGPUAdapter,
capabilities : WGPUSurfaceCapabilitiesPtr,
) -> WGPUStatus
///|
#declaration_only
declare pub fn wgpuSurfaceGetCurrentTexture(
surface : WGPUSurface,
surfaceTexture : WGPUSurfaceTexturePtr,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSurfacePresent(surface : WGPUSurface) -> WGPUStatus
///|
#declaration_only
declare pub fn wgpuSurfaceRelease(surface : WGPUSurface) -> Unit
///|
#declaration_only
declare pub fn wgpuSurfaceSetLabel(
surface : WGPUSurface,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuSurfaceUnconfigure(surface : WGPUSurface) -> Unit
///|
#declaration_only
declare pub fn wgpuTextureAddRef(texture : WGPUTexture) -> Unit
///|
#declaration_only
declare pub fn wgpuTextureCreateView(
texture : WGPUTexture,
descriptor : WGPUTextureViewDescriptorPtr,
) -> WGPUTextureView
///|
#declaration_only
declare pub fn wgpuTextureDestroy(texture : WGPUTexture) -> Unit
///|
#declaration_only
declare pub fn wgpuTextureGetDepthOrArrayLayers(texture : WGPUTexture) -> UInt
///|
#declaration_only
declare pub fn wgpuTextureGetDimension(
texture : WGPUTexture,
) -> WGPUTextureDimension
///|
#declaration_only
declare pub fn wgpuTextureGetFormat(texture : WGPUTexture) -> WGPUTextureFormat
///|
#declaration_only
declare pub fn wgpuTextureGetHeight(texture : WGPUTexture) -> UInt
///|
#declaration_only
declare pub fn wgpuTextureGetMipLevelCount(texture : WGPUTexture) -> UInt
///|
#declaration_only
declare pub fn wgpuTextureGetNativeMetalTexture(
texture : WGPUTexture,
) -> UnitPtr
///|
#declaration_only
declare pub fn wgpuTextureGetSampleCount(texture : WGPUTexture) -> UInt
///|
#declaration_only
declare pub fn wgpuTextureGetTextureBindingViewDimension(
texture : WGPUTexture,
) -> WGPUTextureViewDimension
///|
#declaration_only
declare pub fn wgpuTextureGetUsage(texture : WGPUTexture) -> WGPUTextureUsage
///|
#declaration_only
declare pub fn wgpuTextureGetWidth(texture : WGPUTexture) -> UInt
///|
#declaration_only
declare pub fn wgpuTextureRelease(texture : WGPUTexture) -> Unit
///|
#declaration_only
declare pub fn wgpuTextureSetLabel(
texture : WGPUTexture,
label : WGPUStringView,
) -> Unit
///|
#declaration_only
declare pub fn wgpuTextureViewAddRef(textureView : WGPUTextureView) -> Unit
///|
#declaration_only
declare pub fn wgpuTextureViewRelease(textureView : WGPUTextureView) -> Unit
///|
#declaration_only
declare pub fn wgpuTextureViewSetLabel(
textureView : WGPUTextureView,
label : WGPUStringView,
) -> Unit