diff --git a/.github/workflows/gen-docs.yml b/.github/workflows/gen-docs.yml new file mode 100644 index 00000000..dfbde26d --- /dev/null +++ b/.github/workflows/gen-docs.yml @@ -0,0 +1,49 @@ +name: gen-docs + +on: + push: + branches: ["main"] + workflow_dispatch: + pull_request: + +# Allow only one concurrent deployment +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + # Generate and build docs + gen-docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v4 + with: + go-version: '>=1.21.0' + - uses: ssciwr/doxygen-install@v1 + with: + version: '1.10.0' + - run: make doc + - uses: actions/upload-pages-artifact@v3 + with: + path: doc/generated/html + + # Deployment job + deploy: + if: ${{ success() && github.ref == 'refs/heads/main' }} + needs: gen-docs + + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 00000000..bdab04c9 --- /dev/null +++ b/Doxyfile @@ -0,0 +1,138 @@ +# This file was initially generated by Doxyfile 1.10.0 and all entries left +# to their default value have been removed for the sake of clarity. + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +PROJECT_NAME = "WebGPU Headers" + +# This is the version of webgpu.h. Currently we don't have release versions. + +PROJECT_NUMBER = + +# This appears at the top of each page and should give viewer a quick idea +# about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "The WebGPU C API" + +# The Doxygen-generated documentation is written in doc/generated. Make sure +# to keep this in sync with the deployment workflow file +# (.github/workflows/gen-docs.yml). + +OUTPUT_DIRECTORY = doc/generated + +# Since webgpu.h is a C API, we set the OPTIMIZE_OUTPUT_FOR_C tag to YES so +# that Doxygen generates an output that is more tailored for C. + +OPTIMIZE_OUTPUT_FOR_C = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# The WebGPU C API does not have cases of symbols only differing by case, so +# we can afford to turn this to YES even on non-case sensitive file systems. +# This options helps getting slightly better path names, although it is still +# overall not satisfying so as soon as we have a proper way to generate good +# human-memorable URLs we could turn this back to NO or SYSTEM. + +CASE_SENSE_NAMES = YES + +# No need to show header file, since there is only webgpu.h. When using this +# Doxyfile with implementation-specific extensions (e.g., wgpu.h), it could +# be useful to turn this back to YES. + +SHOW_HEADERFILE = NO + +# Instead of letting Doxygen sort definition alphabetically, we have it rely +# on the order from webgpu.h. Since the latter is auto-generated, we can +# expect the order there to be sound and consistent. + +SORT_MEMBER_DOCS = NO + +# No need to show used files as there is only webgpu.h + +SHOW_USED_FILES = NO + +# And no need for the Files page neither. + +SHOW_FILES = NO + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# When adding extra files, separate them with spaces. + +INPUT = webgpu.h + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# The header file itself is often a good source of information, so we have +# documented entries be cross-referenced with their source. + +SOURCE_BROWSER = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# Make sure the WGPU/wgpu prefix of type/function names are ignored while +# sorting member names in the alphabetical index. + +IGNORE_PREFIX = WGPU,wgpu + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# Sidebar-based page layout (https://www.doxygen.nl/manual/customize.html) + +DISABLE_INDEX = YES +GENERATE_TREEVIEW = YES +FULL_SIDEBAR = YES + +# Enum values look weird in Doxygen output in general, but a bit less weird +# when only allowing 1 value per line. + +ENUM_VALUES_PER_LINE = 1 + +#--------------------------------------------------------------------------- +# Configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# We do not need a LaTeX documentation + +GENERATE_LATEX = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# We need to expand macros to prevent the empty defines used as tags like +# WGPU_ENUM_ATTRIBUTE to be treated by Doxygen and mess up with the whole +# documentation. + +MACRO_EXPANSION = YES diff --git a/Makefile b/Makefile index 550edf95..33959f27 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: gen +.PHONY: gen gen-check doc gen: schema.json webgpu.yml go run ./gen -schema schema.json -yaml webgpu.yml -header webgpu.h @@ -9,3 +9,6 @@ gen-check: gen git diff -- webgpu.h; \ exit 1; \ } + +doc: webgpu.h Doxyfile + doxygen Doxyfile diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 00000000..9e0adcc1 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1 @@ +/generated/ diff --git a/gen/cheader.tmpl b/gen/cheader.tmpl index 50986f2d..3f9cec36 100644 --- a/gen/cheader.tmpl +++ b/gen/cheader.tmpl @@ -1,5 +1,16 @@ {{- MCommentN .Copyright 0}} +/** @file */ + +/** + * \mainpage + * + * **Important:** *This documentation is a Work In Progress.* + * + * This is the home of WebGPU C API specification. We define here the standard + * `webgpu.h` header that all implementations should provide. + */ + #ifndef {{.HeaderName | ConstantCase}}_H_ #define {{.HeaderName | ConstantCase}}_H_ @@ -54,6 +65,13 @@ #include "webgpu.h" {{end}} +/** + * \defgroup Constants + * \brief Constants. + * + * @{ + */ + {{- if .Constants}} {{- range .Constants}} {{- MComment .Doc 0}} @@ -61,6 +79,15 @@ {{- end}} {{ end}} +/** @} */ + +/** + * \defgroup Typedefs + * \brief Utility typedefs. + * + * @{ + */ + {{- if eq .Name "webgpu"}} typedef uint32_t WGPUFlags; typedef uint32_t WGPUBool; @@ -70,14 +97,26 @@ typedef uint32_t WGPUBool; typedef {{CType .Type "" ""}} WGPU{{.Name | PascalCase}}{{$.ExtSuffix}}; {{ end}} +/** @} */ + +/** + * \defgroup Objects + * \brief Opaque, non-dispatchable handles to WebGPU objects. + * + * @{ + */ + {{- if .Objects}} {{- range .Objects}} {{- if not .IsStruct}} +{{- MComment .Doc 0}} typedef struct WGPU{{.Name | PascalCase}}{{$.ExtSuffix}}Impl* WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} WGPU_OBJECT_ATTRIBUTE; {{- end}} {{- end}} {{ end}} +/** @} */ + {{- if .Structs}} // Structure forward declarations {{- range .Structs}} @@ -85,6 +124,13 @@ struct WGPU{{.Name | PascalCase}}{{$.ExtSuffix}}; {{- end}} {{ end}} +/** + * \defgroup Enumerations + * \brief Enums. + * + * @{ + */ + {{- range $enum := .Enums}} {{- if .Extended}} {{- range $entryIndex, $_ := .Entries}} @@ -94,7 +140,7 @@ __WGPU_EXTEND_ENUM(WGPU{{$enum.Name | PascalCase}}, WGPU{{$enum.Name | PascalCas {{- MComment .Doc 0}} typedef enum WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} { {{- range $entryIndex, $_ := .Entries}} -{{- MComment .Doc 4}} +{{- MCommentEnum .Doc 4 $.EnumPrefix $enum $entryIndex }} WGPU{{$enum.Name | PascalCase}}_{{.Name | PascalCase}}{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} = {{EnumValue $.EnumPrefix $enum $entryIndex}}, {{- end}} WGPU{{$enum.Name | PascalCase}}_Force32{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} = 0x7FFFFFFF @@ -102,6 +148,15 @@ typedef enum WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} { {{- end}} {{ end}} +/** @} */ + +/** + * \defgroup Bitflags + * \brief Enum used as bit flags. + * + * @{ + */ + {{- range $bitflag := .Bitflags}} {{- if .Extended}} {{- range $entryIndex, $_ := .Entries}} @@ -111,7 +166,7 @@ __WGPU_EXTEND_ENUM(WGPU{{$bitflag.Name | PascalCase}}, WGPU{{$bitflag.Name | Pas {{- MComment .Doc 0}} typedef enum WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} { {{- range $entryIndex, $_ := .Entries}} -{{- MComment .Doc 4}} +{{- MCommentBitflag .Doc 4 $bitflag $entryIndex }} WGPU{{$bitflag.Name | PascalCase}}_{{.Name | PascalCase}}{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} = {{BitflagValue $bitflag $entryIndex}}, {{- end}} WGPU{{$bitflag.Name | PascalCase}}_Force32{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} = 0x7FFFFFFF @@ -120,6 +175,8 @@ typedef WGPUFlags WGPU{{$bitflag.Name | PascalCase}}Flags{{$.ExtSuffix}} WGPU_EN {{- end}} {{ end}} +/** @} */ + {{- if eq .Name "webgpu"}} typedef void (*WGPUProc)(void) WGPU_FUNCTION_ATTRIBUTE; {{ end}} @@ -129,6 +186,13 @@ typedef void (*WGPUProc)(void) WGPU_FUNCTION_ATTRIBUTE; typedef {{FunctionReturns .}} (*WGPU{{.Name | PascalCase}}{{$.ExtSuffix}})({{FunctionArgs . nil}}) WGPU_FUNCTION_ATTRIBUTE; {{- end}} +/** + * \defgroup Callbacks + * \brief Callbacks through which asynchronous functions return. + * + * @{ + */ + {{- if .Objects}} {{ range $object := .Objects}} {{- range $method := .Methods}} @@ -140,7 +204,16 @@ typedef void (*WGPU{{$object.Name | PascalCase}}{{$method.Name | PascalCase}}Cal {{- end}} {{ end}} +/** @} */ + {{- if eq .Name "webgpu"}} +/** + * \defgroup ChainedStructures Chained Structures + * \brief Structures used to extend descriptors. + * + * @{ + */ + typedef struct WGPUChainedStruct { struct WGPUChainedStruct const * next; WGPUSType sType; @@ -150,8 +223,17 @@ typedef struct WGPUChainedStructOut { struct WGPUChainedStructOut * next; WGPUSType sType; } WGPUChainedStructOut WGPU_STRUCTURE_ATTRIBUTE; + +/** @} */ {{ end}} +/** + * \defgroup Structures + * \brief Descriptors and other transparent structures. + * + * @{ + */ + {{- range $struct := .Structs}} {{- MComment .Doc 0}} typedef struct WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} { @@ -170,6 +252,8 @@ typedef struct WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} { } WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} WGPU_STRUCTURE_ATTRIBUTE; {{ end}}{{"\n" -}} +/** @} */ + #ifdef __cplusplus extern "C" { #endif @@ -200,6 +284,13 @@ typedef void (*WGPUProc{{.Name | PascalCase}}Release{{$.ExtSuffix}})(WGPU{{.Name #if !defined(WGPU_SKIP_DECLARATIONS){{"\n" -}} +/** + * \defgroup GlobalFunctions Global Functions + * \brief Functions that are not specific to an object. + * + * @{ + */ + {{- range .Functions}} {{- MComment .Doc 0}} WGPU_EXPORT {{FunctionReturns .}} wgpu{{.Name | PascalCase}}{{$.ExtSuffix}}({{FunctionArgs . nil}}) WGPU_FUNCTION_ATTRIBUTE; @@ -208,8 +299,23 @@ WGPU_EXPORT {{FunctionReturns .}} wgpu{{.Name | PascalCase}}{{$.ExtSuffix}}({{Fu WGPU_EXPORT WGPUProc wgpuGetProcAddress(WGPUDevice device, char const * procName) WGPU_FUNCTION_ATTRIBUTE; {{ end}} +/** @} */ + +/** + * \defgroup Methods + * \brief Functions that are relative to a specific object. + * + * @{ + */ + {{- range $object := .Objects}} -// Methods of {{$object.Name | PascalCase}} + +/** + * \defgroup {{$object.Name | PascalCase}}Methods {{$object.Name | PascalCase}} methods + * \brief Functions whose first argument has type {{$object.Name | PascalCase}}. + * + * @{ + */ {{- range $object.Methods}} {{- MComment .Doc 0}} WGPU_EXPORT {{FunctionReturns .}} wgpu{{$object.Name | PascalCase}}{{.Name | PascalCase}}{{$.ExtSuffix}}({{FunctionArgs . $object}}) WGPU_FUNCTION_ATTRIBUTE; @@ -218,8 +324,12 @@ WGPU_EXPORT {{FunctionReturns .}} wgpu{{$object.Name | PascalCase}}{{.Name | Pas WGPU_EXPORT void wgpu{{.Name | PascalCase}}Reference{{$.ExtSuffix}}(WGPU{{.Name | PascalCase}} {{.Name | CamelCase}}) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpu{{.Name | PascalCase}}Release{{$.ExtSuffix}}(WGPU{{.Name | PascalCase}} {{.Name | CamelCase}}) WGPU_FUNCTION_ATTRIBUTE; {{- end}} +/** @} */ + {{ end}}{{"\n" -}} +/** @} */ + #endif // !defined(WGPU_SKIP_DECLARATIONS) #ifdef __cplusplus diff --git a/gen/gen.go b/gen/gen.go index 50877bf6..d4360a3e 100644 --- a/gen/gen.go +++ b/gen/gen.go @@ -24,6 +24,20 @@ func (g *Generator) Gen(dst io.Writer) error { "MComment": func(v string, indent int) string { return Comment(v, CommentTypeMultiLine, indent, true) }, "SCommentN": func(v string, indent int) string { return Comment(v, CommentTypeSingleLine, indent, false) }, "MCommentN": func(v string, indent int) string { return Comment(v, CommentTypeMultiLine, indent, false) }, + "MCommentEnum": func(v string, indent int, prefix string, e Enum, entryIndex int) string { + if v == "" || strings.TrimSpace(v) == "TODO" { + return "" + } + value, _ := g.EnumValue(prefix, e, entryIndex) + return Comment("`" + value + "` " + v, CommentTypeMultiLine, indent, true) + }, + "MCommentBitflag": func(v string, indent int, b Bitflag, entryIndex int) string { + if v == "" || strings.TrimSpace(v) == "TODO" { + return "" + } + value, _ := g.BitflagValue(b, entryIndex) + return Comment("`" + value + "` " + v, CommentTypeMultiLine, indent, true) + }, "ConstantCase": ConstantCase, "PascalCase": PascalCase, "CamelCase": CamelCase, diff --git a/webgpu.h b/webgpu.h index 5b760bd4..3e01c007 100644 --- a/webgpu.h +++ b/webgpu.h @@ -4,6 +4,17 @@ * SPDX-License-Identifier: BSD-3-Clause */ +/** @file */ + +/** + * \mainpage + * + * **Important:** *This documentation is a Work In Progress.* + * + * This is the home of WebGPU C API specification. We define here the standard + * `webgpu.h` header that all implementations should provide. + */ + #ifndef WEBGPU_H_ #define WEBGPU_H_ @@ -44,6 +55,13 @@ #include #include + +/** + * \defgroup Constants + * \brief Constants. + * + * @{ + */ #define WGPU_ARRAY_LAYER_COUNT_UNDEFINED (0xffffffffUL) #define WGPU_COPY_STRIDE_UNDEFINED (0xffffffffUL) #define WGPU_DEPTH_SLICE_UNDEFINED (0xffffffffUL) @@ -54,9 +72,27 @@ #define WGPU_WHOLE_MAP_SIZE (SIZE_MAX) #define WGPU_WHOLE_SIZE (0xffffffffffffffffULL) + +/** @} */ + +/** + * \defgroup Typedefs + * \brief Utility typedefs. + * + * @{ + */ typedef uint32_t WGPUFlags; typedef uint32_t WGPUBool; + +/** @} */ + +/** + * \defgroup Objects + * \brief Opaque, non-dispatchable handles to WebGPU objects. + * + * @{ + */ typedef struct WGPUAdapterImpl* WGPUAdapter WGPU_OBJECT_ATTRIBUTE; typedef struct WGPUBindGroupImpl* WGPUBindGroup WGPU_OBJECT_ATTRIBUTE; typedef struct WGPUBindGroupLayoutImpl* WGPUBindGroupLayout WGPU_OBJECT_ATTRIBUTE; @@ -80,6 +116,8 @@ typedef struct WGPUSurfaceImpl* WGPUSurface WGPU_OBJECT_ATTRIBUTE; typedef struct WGPUTextureImpl* WGPUTexture WGPU_OBJECT_ATTRIBUTE; typedef struct WGPUTextureViewImpl* WGPUTextureView WGPU_OBJECT_ATTRIBUTE; + +/** @} */ // Structure forward declarations struct WGPUAdapterInfo; struct WGPUAdapterProperties; @@ -156,6 +194,13 @@ struct WGPUVertexState; struct WGPUFragmentState; struct WGPURenderPipelineDescriptor; + +/** + * \defgroup Enumerations + * \brief Enums. + * + * @{ + */ typedef enum WGPUAdapterType { WGPUAdapterType_DiscreteGPU = 0x00000000, WGPUAdapterType_IntegratedGPU = 0x00000001, @@ -663,6 +708,15 @@ typedef enum WGPUWGSLFeatureName { WGPUWGSLFeatureName_Force32 = 0x7FFFFFFF } WGPUWGSLFeatureName WGPU_ENUM_ATTRIBUTE; + +/** @} */ + +/** + * \defgroup Bitflags + * \brief Enum used as bit flags. + * + * @{ + */ typedef enum WGPUBufferUsage { WGPUBufferUsage_None = 0x00000000, WGPUBufferUsage_MapRead = 0x00000001, @@ -718,11 +772,20 @@ typedef enum WGPUTextureUsage { } WGPUTextureUsage WGPU_ENUM_ATTRIBUTE; typedef WGPUFlags WGPUTextureUsageFlags WGPU_ENUM_ATTRIBUTE; + +/** @} */ typedef void (*WGPUProc)(void) WGPU_FUNCTION_ATTRIBUTE; typedef void (*WGPUDeviceLostCallback)(WGPUDeviceLostReason reason, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE; typedef void (*WGPUErrorCallback)(WGPUErrorType type, char const * message, void * userdata) WGPU_FUNCTION_ATTRIBUTE; +/** + * \defgroup Callbacks + * \brief Callbacks through which asynchronous functions return. + * + * @{ + */ + typedef void (*WGPUAdapterRequestDeviceCallback)(WGPURequestDeviceStatus status, WGPUDevice device, char const * message, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE; typedef void (*WGPUBufferMapAsyncCallback)(WGPUBufferMapAsyncStatus status, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE; typedef void (*WGPUDeviceCreateComputePipelineAsyncCallback)(WGPUCreatePipelineAsyncStatus status, WGPUComputePipeline pipeline, char const * message, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE; @@ -731,6 +794,15 @@ typedef void (*WGPUInstanceRequestAdapterCallback)(WGPURequestAdapterStatus stat typedef void (*WGPUQueueOnSubmittedWorkDoneCallback)(WGPUQueueWorkDoneStatus status, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE; typedef void (*WGPUShaderModuleGetCompilationInfoCallback)(WGPUCompilationInfoRequestStatus status, struct WGPUCompilationInfo const * compilationInfo, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE; + +/** @} */ +/** + * \defgroup ChainedStructures Chained Structures + * \brief Structures used to extend descriptors. + * + * @{ + */ + typedef struct WGPUChainedStruct { struct WGPUChainedStruct const * next; WGPUSType sType; @@ -741,6 +813,15 @@ typedef struct WGPUChainedStructOut { WGPUSType sType; } WGPUChainedStructOut WGPU_STRUCTURE_ATTRIBUTE; +/** @} */ + + +/** + * \defgroup Structures + * \brief Descriptors and other transparent structures. + * + * @{ + */ typedef struct WGPUAdapterInfo { WGPUChainedStructOut * nextInChain; char const * vendor; @@ -1330,6 +1411,8 @@ typedef struct WGPURenderPipelineDescriptor { WGPU_NULLABLE WGPUFragmentState const * fragment; } WGPURenderPipelineDescriptor WGPU_STRUCTURE_ATTRIBUTE; +/** @} */ + #ifdef __cplusplus extern "C" { #endif @@ -1572,11 +1655,31 @@ typedef void (*WGPUProcTextureViewRelease)(WGPUTextureView textureView) WGPU_FUN #endif // !defined(WGPU_SKIP_PROCS) #if !defined(WGPU_SKIP_DECLARATIONS) - +/** + * \defgroup GlobalFunctions Global Functions + * \brief Functions that are not specific to an object. + * + * @{ + */ WGPU_EXPORT WGPUInstance wgpuCreateInstance(WGPU_NULLABLE WGPUInstanceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT WGPUProc wgpuGetProcAddress(WGPUDevice device, char const * procName) WGPU_FUNCTION_ATTRIBUTE; -// Methods of Adapter + +/** @} */ + +/** + * \defgroup Methods + * \brief Functions that are relative to a specific object. + * + * @{ + */ + +/** + * \defgroup AdapterMethods Adapter methods + * \brief Functions whose first argument has type Adapter. + * + * @{ + */ WGPU_EXPORT size_t wgpuAdapterEnumerateFeatures(WGPUAdapter adapter, WGPUFeatureName * features) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuAdapterGetInfo(WGPUAdapter adapter, WGPUAdapterInfo * info) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT WGPUBool wgpuAdapterGetLimits(WGPUAdapter adapter, WGPUSupportedLimits * limits) WGPU_FUNCTION_ATTRIBUTE; @@ -1585,21 +1688,53 @@ WGPU_EXPORT WGPUBool wgpuAdapterHasFeature(WGPUAdapter adapter, WGPUFeatureName WGPU_EXPORT void wgpuAdapterRequestDevice(WGPUAdapter adapter, WGPU_NULLABLE WGPUDeviceDescriptor const * descriptor, WGPUAdapterRequestDeviceCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuAdapterReference(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuAdapterRelease(WGPUAdapter adapter) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ -// Methods of AdapterInfo + + +/** + * \defgroup AdapterInfoMethods AdapterInfo methods + * \brief Functions whose first argument has type AdapterInfo. + * + * @{ + */ WGPU_EXPORT void wgpuAdapterInfoFreeMembers(WGPUAdapterInfo adapterInfo) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + -// Methods of BindGroup + +/** + * \defgroup BindGroupMethods BindGroup methods + * \brief Functions whose first argument has type BindGroup. + * + * @{ + */ WGPU_EXPORT void wgpuBindGroupSetLabel(WGPUBindGroup bindGroup, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuBindGroupReference(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuBindGroupRelease(WGPUBindGroup bindGroup) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + -// Methods of BindGroupLayout + +/** + * \defgroup BindGroupLayoutMethods BindGroupLayout methods + * \brief Functions whose first argument has type BindGroupLayout. + * + * @{ + */ WGPU_EXPORT void wgpuBindGroupLayoutSetLabel(WGPUBindGroupLayout bindGroupLayout, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuBindGroupLayoutReference(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuBindGroupLayoutRelease(WGPUBindGroupLayout bindGroupLayout) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + + -// Methods of Buffer +/** + * \defgroup BufferMethods Buffer methods + * \brief Functions whose first argument has type Buffer. + * + * @{ + */ WGPU_EXPORT void wgpuBufferDestroy(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void const * wgpuBufferGetConstMappedRange(WGPUBuffer buffer, size_t offset, size_t size) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT WGPUBufferMapState wgpuBufferGetMapState(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; @@ -1611,13 +1746,29 @@ WGPU_EXPORT void wgpuBufferSetLabel(WGPUBuffer buffer, char const * label) WGPU_ WGPU_EXPORT void wgpuBufferUnmap(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuBufferReference(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuBufferRelease(WGPUBuffer buffer) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + + -// Methods of CommandBuffer +/** + * \defgroup CommandBufferMethods CommandBuffer methods + * \brief Functions whose first argument has type CommandBuffer. + * + * @{ + */ WGPU_EXPORT void wgpuCommandBufferSetLabel(WGPUCommandBuffer commandBuffer, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuCommandBufferReference(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuCommandBufferRelease(WGPUCommandBuffer commandBuffer) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ -// Methods of CommandEncoder + + +/** + * \defgroup CommandEncoderMethods CommandEncoder methods + * \brief Functions whose first argument has type CommandEncoder. + * + * @{ + */ WGPU_EXPORT WGPUComputePassEncoder wgpuCommandEncoderBeginComputePass(WGPUCommandEncoder commandEncoder, WGPU_NULLABLE WGPUComputePassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT WGPURenderPassEncoder wgpuCommandEncoderBeginRenderPass(WGPUCommandEncoder commandEncoder, WGPURenderPassDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuCommandEncoderClearBuffer(WGPUCommandEncoder commandEncoder, WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; @@ -1634,8 +1785,16 @@ WGPU_EXPORT void wgpuCommandEncoderSetLabel(WGPUCommandEncoder commandEncoder, c WGPU_EXPORT void wgpuCommandEncoderWriteTimestamp(WGPUCommandEncoder commandEncoder, WGPUQuerySet querySet, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuCommandEncoderReference(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuCommandEncoderRelease(WGPUCommandEncoder commandEncoder) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ -// Methods of ComputePassEncoder + + +/** + * \defgroup ComputePassEncoderMethods ComputePassEncoder methods + * \brief Functions whose first argument has type ComputePassEncoder. + * + * @{ + */ WGPU_EXPORT void wgpuComputePassEncoderDispatchWorkgroups(WGPUComputePassEncoder computePassEncoder, uint32_t workgroupCountX, uint32_t workgroupCountY, uint32_t workgroupCountZ) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuComputePassEncoderDispatchWorkgroupsIndirect(WGPUComputePassEncoder computePassEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuComputePassEncoderEnd(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; @@ -1647,14 +1806,30 @@ WGPU_EXPORT void wgpuComputePassEncoderSetLabel(WGPUComputePassEncoder computePa WGPU_EXPORT void wgpuComputePassEncoderSetPipeline(WGPUComputePassEncoder computePassEncoder, WGPUComputePipeline pipeline) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuComputePassEncoderReference(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuComputePassEncoderRelease(WGPUComputePassEncoder computePassEncoder) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + -// Methods of ComputePipeline + +/** + * \defgroup ComputePipelineMethods ComputePipeline methods + * \brief Functions whose first argument has type ComputePipeline. + * + * @{ + */ WGPU_EXPORT WGPUBindGroupLayout wgpuComputePipelineGetBindGroupLayout(WGPUComputePipeline computePipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuComputePipelineSetLabel(WGPUComputePipeline computePipeline, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuComputePipelineReference(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuComputePipelineRelease(WGPUComputePipeline computePipeline) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + -// Methods of Device + +/** + * \defgroup DeviceMethods Device methods + * \brief Functions whose first argument has type Device. + * + * @{ + */ WGPU_EXPORT WGPUBindGroup wgpuDeviceCreateBindGroup(WGPUDevice device, WGPUBindGroupDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, WGPUBindGroupLayoutDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT WGPUBuffer wgpuDeviceCreateBuffer(WGPUDevice device, WGPUBufferDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; @@ -1679,29 +1854,61 @@ WGPU_EXPORT void wgpuDevicePushErrorScope(WGPUDevice device, WGPUErrorFilter fil WGPU_EXPORT void wgpuDeviceSetLabel(WGPUDevice device, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuDeviceReference(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuDeviceRelease(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + + -// Methods of Instance +/** + * \defgroup InstanceMethods Instance methods + * \brief Functions whose first argument has type Instance. + * + * @{ + */ WGPU_EXPORT WGPUSurface wgpuInstanceCreateSurface(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT WGPUBool wgpuInstanceHasWGSLLanguageFeature(WGPUInstance instance, WGPUWGSLFeatureName feature) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuInstanceProcessEvents(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuInstanceRequestAdapter(WGPUInstance instance, WGPU_NULLABLE WGPURequestAdapterOptions const * options, WGPUInstanceRequestAdapterCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuInstanceReference(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuInstanceRelease(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + + -// Methods of PipelineLayout +/** + * \defgroup PipelineLayoutMethods PipelineLayout methods + * \brief Functions whose first argument has type PipelineLayout. + * + * @{ + */ WGPU_EXPORT void wgpuPipelineLayoutSetLabel(WGPUPipelineLayout pipelineLayout, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuPipelineLayoutReference(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuPipelineLayoutRelease(WGPUPipelineLayout pipelineLayout) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ -// Methods of QuerySet + + +/** + * \defgroup QuerySetMethods QuerySet methods + * \brief Functions whose first argument has type QuerySet. + * + * @{ + */ WGPU_EXPORT void wgpuQuerySetDestroy(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT uint32_t wgpuQuerySetGetCount(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT WGPUQueryType wgpuQuerySetGetType(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuQuerySetSetLabel(WGPUQuerySet querySet, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuQuerySetReference(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuQuerySetRelease(WGPUQuerySet querySet) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + -// Methods of Queue + +/** + * \defgroup QueueMethods Queue methods + * \brief Functions whose first argument has type Queue. + * + * @{ + */ WGPU_EXPORT void wgpuQueueOnSubmittedWorkDone(WGPUQueue queue, WGPUQueueOnSubmittedWorkDoneCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuQueueSetLabel(WGPUQueue queue, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuQueueSubmit(WGPUQueue queue, size_t commandCount, WGPUCommandBuffer const * commands) WGPU_FUNCTION_ATTRIBUTE; @@ -1709,13 +1916,29 @@ WGPU_EXPORT void wgpuQueueWriteBuffer(WGPUQueue queue, WGPUBuffer buffer, uint64 WGPU_EXPORT void wgpuQueueWriteTexture(WGPUQueue queue, WGPUImageCopyTexture const * destination, void const * data, size_t dataSize, WGPUTextureDataLayout const * dataLayout, WGPUExtent3D const * writeSize) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuQueueReference(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuQueueRelease(WGPUQueue queue) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + -// Methods of RenderBundle + +/** + * \defgroup RenderBundleMethods RenderBundle methods + * \brief Functions whose first argument has type RenderBundle. + * + * @{ + */ WGPU_EXPORT void wgpuRenderBundleSetLabel(WGPURenderBundle renderBundle, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderBundleReference(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderBundleRelease(WGPURenderBundle renderBundle) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + + -// Methods of RenderBundleEncoder +/** + * \defgroup RenderBundleEncoderMethods RenderBundleEncoder methods + * \brief Functions whose first argument has type RenderBundleEncoder. + * + * @{ + */ WGPU_EXPORT void wgpuRenderBundleEncoderDraw(WGPURenderBundleEncoder renderBundleEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndexed(WGPURenderBundleEncoder renderBundleEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderBundleEncoderDrawIndexedIndirect(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer indirectBuffer, uint64_t indirectOffset) WGPU_FUNCTION_ATTRIBUTE; @@ -1731,8 +1954,16 @@ WGPU_EXPORT void wgpuRenderBundleEncoderSetPipeline(WGPURenderBundleEncoder rend WGPU_EXPORT void wgpuRenderBundleEncoderSetVertexBuffer(WGPURenderBundleEncoder renderBundleEncoder, uint32_t slot, WGPU_NULLABLE WGPUBuffer buffer, uint64_t offset, uint64_t size) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderBundleEncoderReference(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderBundleEncoderRelease(WGPURenderBundleEncoder renderBundleEncoder) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + + -// Methods of RenderPassEncoder +/** + * \defgroup RenderPassEncoderMethods RenderPassEncoder methods + * \brief Functions whose first argument has type RenderPassEncoder. + * + * @{ + */ WGPU_EXPORT void wgpuRenderPassEncoderBeginOcclusionQuery(WGPURenderPassEncoder renderPassEncoder, uint32_t queryIndex) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderPassEncoderDraw(WGPURenderPassEncoder renderPassEncoder, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderPassEncoderDrawIndexed(WGPURenderPassEncoder renderPassEncoder, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t baseVertex, uint32_t firstInstance) WGPU_FUNCTION_ATTRIBUTE; @@ -1755,25 +1986,57 @@ WGPU_EXPORT void wgpuRenderPassEncoderSetVertexBuffer(WGPURenderPassEncoder rend WGPU_EXPORT void wgpuRenderPassEncoderSetViewport(WGPURenderPassEncoder renderPassEncoder, float x, float y, float width, float height, float minDepth, float maxDepth) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderPassEncoderReference(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderPassEncoderRelease(WGPURenderPassEncoder renderPassEncoder) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ -// Methods of RenderPipeline + + +/** + * \defgroup RenderPipelineMethods RenderPipeline methods + * \brief Functions whose first argument has type RenderPipeline. + * + * @{ + */ WGPU_EXPORT WGPUBindGroupLayout wgpuRenderPipelineGetBindGroupLayout(WGPURenderPipeline renderPipeline, uint32_t groupIndex) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderPipelineSetLabel(WGPURenderPipeline renderPipeline, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderPipelineReference(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuRenderPipelineRelease(WGPURenderPipeline renderPipeline) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ -// Methods of Sampler + + +/** + * \defgroup SamplerMethods Sampler methods + * \brief Functions whose first argument has type Sampler. + * + * @{ + */ WGPU_EXPORT void wgpuSamplerSetLabel(WGPUSampler sampler, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuSamplerReference(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuSamplerRelease(WGPUSampler sampler) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + -// Methods of ShaderModule + +/** + * \defgroup ShaderModuleMethods ShaderModule methods + * \brief Functions whose first argument has type ShaderModule. + * + * @{ + */ WGPU_EXPORT void wgpuShaderModuleGetCompilationInfo(WGPUShaderModule shaderModule, WGPUShaderModuleGetCompilationInfoCallback callback, WGPU_NULLABLE void * userdata) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuShaderModuleSetLabel(WGPUShaderModule shaderModule, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuShaderModuleReference(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuShaderModuleRelease(WGPUShaderModule shaderModule) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + -// Methods of Surface + +/** + * \defgroup SurfaceMethods Surface methods + * \brief Functions whose first argument has type Surface. + * + * @{ + */ WGPU_EXPORT void wgpuSurfaceConfigure(WGPUSurface surface, WGPUSurfaceConfiguration const * config) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuSurfaceGetCapabilities(WGPUSurface surface, WGPUAdapter adapter, WGPUSurfaceCapabilities * capabilities) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuSurfaceGetCurrentTexture(WGPUSurface surface, WGPUSurfaceTexture * surfaceTexture) WGPU_FUNCTION_ATTRIBUTE; @@ -1782,11 +2045,27 @@ WGPU_EXPORT void wgpuSurfaceSetLabel(WGPUSurface surface, char const * label) WG WGPU_EXPORT void wgpuSurfaceUnconfigure(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuSurfaceReference(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuSurfaceRelease(WGPUSurface surface) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + + -// Methods of SurfaceCapabilities +/** + * \defgroup SurfaceCapabilitiesMethods SurfaceCapabilities methods + * \brief Functions whose first argument has type SurfaceCapabilities. + * + * @{ + */ WGPU_EXPORT void wgpuSurfaceCapabilitiesFreeMembers(WGPUSurfaceCapabilities surfaceCapabilities) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + + -// Methods of Texture +/** + * \defgroup TextureMethods Texture methods + * \brief Functions whose first argument has type Texture. + * + * @{ + */ WGPU_EXPORT WGPUTextureView wgpuTextureCreateView(WGPUTexture texture, WGPU_NULLABLE WGPUTextureViewDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuTextureDestroy(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT uint32_t wgpuTextureGetDepthOrArrayLayers(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; @@ -1800,11 +2079,23 @@ WGPU_EXPORT uint32_t wgpuTextureGetWidth(WGPUTexture texture) WGPU_FUNCTION_ATTR WGPU_EXPORT void wgpuTextureSetLabel(WGPUTexture texture, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuTextureReference(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuTextureRelease(WGPUTexture texture) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + + -// Methods of TextureView +/** + * \defgroup TextureViewMethods TextureView methods + * \brief Functions whose first argument has type TextureView. + * + * @{ + */ WGPU_EXPORT void wgpuTextureViewSetLabel(WGPUTextureView textureView, char const * label) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuTextureViewReference(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE; WGPU_EXPORT void wgpuTextureViewRelease(WGPUTextureView textureView) WGPU_FUNCTION_ATTRIBUTE; +/** @} */ + + +/** @} */ #endif // !defined(WGPU_SKIP_DECLARATIONS)