#ifndef WEBGPU_COMPAT_H
#define WEBGPU_COMPAT_H

#define WGPU_DEPTH_CLEAR_VALUE_UNDEFINED NAN

#define WGPUTexelCopyBufferInfo WGPUImageCopyBuffer
#define WGPUTexelCopyTextureInfo WGPUImageCopyTexture
#define WGPUTexelCopyBufferLayout WGPUTextureDataLayout
#define WGPUInstanceCapabilities WGPUInstanceFeatures

#if !defined(WGPUOptionalBool)
#define WGPUOptionalBool int32_t
#define WGPUOptionalBool_False 0x00000000
#define WGPUOptionalBool_True 0x00000001
#define WGPUOptionalBool_Undefined 0x00000002
#define WGPUOptionalBool_Force32 0x7FFFFFFF
#endif

#define WGPUSurfaceGetCurrentTextureStatus_SuccessOptimal                      \
  WGPUSurfaceGetCurrentTextureStatus_Success

#define WGPUMapAsyncStatus_Success WGPUBufferMapAsyncStatus_Success
#define WGPUMapAsyncStatus_Force32 WGPUBufferMapAsyncStatus_Force32

#define WGPUSType_ShaderSourceWGSL WGPUSType_ShaderModuleWGSLDescriptor
#define WGPUStatus int

#define WGPUStatus_Success 1

#define wgpuGetInstanceCapabilities wgpuGetInstanceFeatures

#define WGPUMapAsyncStatus WGPUBufferMapAsyncStatus
#define WGPUShaderSourceWGSL WGPUShaderModuleWGSLDescriptor
#define WGPURenderPassMaxDrawCount WGPURenderPassDescriptorMaxDrawCount
#define WGPUWGSLLanguageFeatureName WGPUWGSLFeatureName

#define WGPUEmscriptenSurfaceSourceCanvasHTMLSelector                          \
  WGPUSurfaceDescriptorFromCanvasHTMLSelector
#define WGPUWGSLLanguageFeatureName_Force32 WGPUWGSLFeatureName_Force32
#define WGPUSType_EmscriptenSurfaceSourceCanvasHTMLSelector                    \
  WGPUSType_SurfaceDescriptorFromCanvasHTMLSelector
#define WGPUSType_RenderPassMaxDrawCount                                       \
  WGPUSType_RenderPassDescriptorMaxDrawCount
#define WGPUSType_ShaderSourceWGSL WGPUSType_ShaderModuleWGSLDescriptor
#define WGPUWGSLLanguageFeatureName_Packed4x8IntegerDotProduct                 \
  WGPUWGSLFeatureName_Packed4x8IntegerDotProduct
#define WGPUWGSLLanguageFeatureName_PointerCompositeAccess                     \
  WGPUWGSLFeatureName_PointerCompositeAccess
#define WGPUWGSLLanguageFeatureName_ReadonlyAndReadwriteStorageTextures        \
  WGPUWGSLFeatureName_ReadonlyAndReadwriteStorageTextures
// #define WGPUWGSLLanguageFeatureName_Undefined WGPUWGSLFeatureName_Undefined
#define WGPUWGSLLanguageFeatureName_UnrestrictedPointerParameters              \
  WGPUWGSLFeatureName_UnrestrictedPointerParameters

#define WGPU_STRING_VIEW(s) s
#define WGPU_STRING_VIEW_INIT NULL
#define WGPU_STRING_VIEW_TO_STRING(s) std::string(s)
#define WGPU_STRING_VIEW_TO_CSTR(s) s
#define WGPU_STRING_VIEW_FROM_STRING(s) strdup(s.c_str())
#define WGPU_STRING_VIEW_FREE(s) free(const_cast<char*>(s))
#define WGPUStringView const char*

#define WGPU_ADDREF(d, o) wgpu##d##Reference(o)

#define WGPU_CHECK_STATUS(s) s

#if defined(__cplusplus)
#if __cplusplus >= 201103L
#define WGPU_MAKE_INIT_STRUCT(type, value) (type value)
#else
#define WGPU_MAKE_INIT_STRUCT(type, value) value
#endif
#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define WGPU_MAKE_INIT_STRUCT(type, value) ((type)value)
#else
#define WGPU_MAKE_INIT_STRUCT(type, value) value
#endif

#ifndef _wgpu_COMMA
#define _wgpu_COMMA ,
#endif

#define WGPU_ADAPTER_INFO_INIT                                                 \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUAdapterInfo,                                                         \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.vendor=*/NULL                      \
           _wgpu_COMMA /*.architecture=*/NULL _wgpu_COMMA /*.device=*/NULL     \
               _wgpu_COMMA /*.description=*/NULL _wgpu_COMMA /*.backendType=*/ \
       {} _wgpu_COMMA /*.adapterType=*/{} _wgpu_COMMA        /*.vendorID=*/    \
       {} _wgpu_COMMA /*.deviceID=*/{} _wgpu_COMMA})

#define WGPU_BIND_GROUP_DESCRIPTOR_INIT                                        \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUBindGroupDescriptor,                                                 \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.layout=*/{} _wgpu_COMMA /*.entryCount=*/             \
       {} _wgpu_COMMA /*.entries=*/{} _wgpu_COMMA})

#define WGPU_BIND_GROUP_ENTRY_INIT                                             \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUBindGroupEntry,                                                      \
      {/*.nextInChain=*/NULL                                                   \
           _wgpu_COMMA /*.binding=*/{} _wgpu_COMMA /*.buffer=*/NULL            \
               _wgpu_COMMA /*.offset=*/0 _wgpu_COMMA /*.size=*/                \
                   WGPU_WHOLE_SIZE _wgpu_COMMA /*.sampler=*/NULL               \
                       _wgpu_COMMA /*.textureView=*/NULL _wgpu_COMMA})

#define WGPU_BIND_GROUP_LAYOUT_DESCRIPTOR_INIT                                 \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUBindGroupLayoutDescriptor,                                           \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.entryCount=*/                                        \
       {} _wgpu_COMMA /*.entries=*/{} _wgpu_COMMA})

#define WGPU_BIND_GROUP_LAYOUT_ENTRY_INIT                                      \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUBindGroupLayoutEntry,                                                \
      {/*.nextInChain=*/NULL _wgpu_COMMA             /*.binding=*/             \
       {} _wgpu_COMMA /*.visibility=*/{} _wgpu_COMMA /*.buffer=*/              \
           WGPU_BUFFER_BINDING_LAYOUT_INIT                                     \
               _wgpu_COMMA /*.sampler=*/WGPU_SAMPLER_BINDING_LAYOUT_INIT       \
                   _wgpu_COMMA /*.texture=*/WGPU_TEXTURE_BINDING_LAYOUT_INIT   \
                       _wgpu_COMMA /*.storageTexture=*/                        \
                           WGPU_STORAGE_TEXTURE_BINDING_LAYOUT_INIT            \
                               _wgpu_COMMA})

#define WGPU_BLEND_COMPONENT_INIT                                              \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUBlendComponent,                                                      \
      {/*.operation=*/WGPUBlendOperation_Add _wgpu_COMMA /*.srcFactor=*/       \
           WGPUBlendFactor_One _wgpu_COMMA /*.dstFactor=*/WGPUBlendFactor_Zero \
               _wgpu_COMMA})

#define WGPU_BLEND_STATE_INIT                                                  \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUBlendState,                                                          \
      {/*.color=*/WGPU_BLEND_COMPONENT_INIT _wgpu_COMMA /*.alpha=*/            \
           WGPU_BLEND_COMPONENT_INIT _wgpu_COMMA})

#define WGPU_BUFFER_BINDING_LAYOUT_INIT                                        \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUBufferBindingLayout,                                                 \
      {/*.nextInChain=*/NULL _wgpu_COMMA               /*.type=*/              \
           WGPUBufferBindingType_Undefined _wgpu_COMMA /*.hasDynamicOffset=*/  \
       0 _wgpu_COMMA /*.minBindingSize=*/0 _wgpu_COMMA})

#define WGPU_BUFFER_DESCRIPTOR_INIT                                            \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUBufferDescriptor,                                                    \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.usage=*/{} _wgpu_COMMA /*.size=*/                    \
       {} _wgpu_COMMA /*.mappedAtCreation=*/0 _wgpu_COMMA})

#define WGPU_BUFFER_MAP_CALLBACK_INFO_INIT                                     \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUBufferMapCallbackInfo,                                               \
      {/*.nextInChain=*/NULL                                                   \
           _wgpu_COMMA /*.mode=*/{} _wgpu_COMMA /*.callback=*/NULL             \
               _wgpu_COMMA /*.userdata1=*/NULL _wgpu_COMMA /*.userdata2=*/NULL \
                   _wgpu_COMMA})

#define WGPU_COLOR_INIT                                                        \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUColor,                                                               \
      {/*.r=*/{} _wgpu_COMMA /*.g=*/{} _wgpu_COMMA /*.b=*/                     \
       {} _wgpu_COMMA /*.a=*/{} _wgpu_COMMA})

#define WGPU_COLOR_TARGET_STATE_INIT                                           \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUColorTargetState,                                                    \
      {/*.nextInChain=*/NULL                                                   \
           _wgpu_COMMA /*.format=*/{} _wgpu_COMMA /*.blend=*/NULL              \
               _wgpu_COMMA /*.writeMask=*/WGPUColorWriteMask_All _wgpu_COMMA})

#define WGPU_COMMAND_BUFFER_DESCRIPTOR_INIT                                    \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUCommandBufferDescriptor,                                             \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL _wgpu_COMMA})

#define WGPU_COMMAND_ENCODER_DESCRIPTOR_INIT                                   \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUCommandEncoderDescriptor,                                            \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL _wgpu_COMMA})

#define WGPU_COMPILATION_INFO_INIT                                             \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUCompilationInfo,                                                     \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.messageCount=*/                    \
       {} _wgpu_COMMA /*.messages=*/{} _wgpu_COMMA})

#define WGPU_COMPILATION_MESSAGE_INIT                                          \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUCompilationMessage,                                                  \
      ,                                                                        \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.message=*/NULL                     \
           _wgpu_COMMA /*.type=*/{} _wgpu_COMMA       /*.lineNum=*/            \
       {} _wgpu_COMMA /*.linePos=*/{} _wgpu_COMMA     /*.offset=*/             \
       {} _wgpu_COMMA /*.length=*/{} _wgpu_COMMA      /*.utf16LinePos=*/       \
       {} _wgpu_COMMA /*.utf16Offset=*/{} _wgpu_COMMA /*.utf16Length=*/        \
       {} _wgpu_COMMA})

#define WGPU_COMPUTE_PASS_DESCRIPTOR_INIT                                      \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUComputePassDescriptor,                                               \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.timestampWrites=*/NULL _wgpu_COMMA})

#define WGPU_COMPUTE_PASS_TIMESTAMP_WRITES_INIT                                \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUComputePassTimestampWrites,                                          \
      {/*.querySet=*/{} _wgpu_COMMA /*.beginningOfPassWriteIndex=*/            \
           WGPU_QUERY_SET_INDEX_UNDEFINED                                      \
               _wgpu_COMMA /*.endOfPassWriteIndex=*/                           \
                   WGPU_QUERY_SET_INDEX_UNDEFINED _wgpu_COMMA})

#define WGPU_COMPUTE_PIPELINE_DESCRIPTOR_INIT                                  \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUComputePipelineDescriptor,                                           \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.layout=*/NULL _wgpu_COMMA /*.compute=*/              \
               WGPU_COMPUTE_STATE_INIT _wgpu_COMMA})

#define WGPU_COMPUTE_STATE_INIT                                                \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUProgrammableStageDescriptor,                                         \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.module=*/NULL                      \
           _wgpu_COMMA /*.entryPoint=*/NULL                                    \
               _wgpu_COMMA /*.constantCount=*/0 _wgpu_COMMA /*.constants=*/    \
                   NULL _wgpu_COMMA})

#define WGPU_CONSTANT_ENTRY_INIT                                               \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUConstantEntry,                                                       \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.key=*/NULL                         \
           _wgpu_COMMA /*.value=*/{} _wgpu_COMMA})

#define WGPU_DEPTH_STENCIL_STATE_INIT                                          \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUDepthStencilState,                                                   \
      {/*.nextInChain=*/NULL                                                   \
           _wgpu_COMMA /*.format=*/{} _wgpu_COMMA /*.depthWriteEnabled=*/      \
       0 _wgpu_COMMA /*.depthCompare=*/WGPUCompareFunction_Undefined           \
           _wgpu_COMMA /*.stencilFront=*/WGPU_STENCIL_FACE_STATE_INIT          \
               _wgpu_COMMA /*.stencilBack=*/WGPU_STENCIL_FACE_STATE_INIT       \
                   _wgpu_COMMA /*.stencilReadMask=*/                           \
       0xFFFFFFFF _wgpu_COMMA  /*.stencilWriteMask=*/                          \
       0xFFFFFFFF _wgpu_COMMA  /*.depthBias=*/                                 \
       0 _wgpu_COMMA           /*.depthBiasSlopeScale=*/                       \
       0.0f _wgpu_COMMA /*.depthBiasClamp=*/0.0f _wgpu_COMMA})

#define WGPU_DEVICE_DESCRIPTOR_INIT                                            \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUDeviceDescriptor,                                                    \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.requiredFeatureCount=*/                              \
       0 _wgpu_COMMA /*.requiredFeatures=*/NULL                                \
           _wgpu_COMMA /*.requiredLimits=*/NULL                                \
               _wgpu_COMMA /*.defaultQueue=*/WGPU_QUEUE_DESCRIPTOR_INIT        \
                   _wgpu_COMMA /*.deviceLostCallback=*/NULL                    \
                       _wgpu_COMMA /*.deviceLostUserdata=*/NULL _wgpu_COMMA})

#define WGPU_EXTENT_3D_INIT                                                    \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUExtent3D,                                                            \
      {/*.width=*/0 _wgpu_COMMA /*.height=*/                                   \
       1 _wgpu_COMMA /*.depthOrArrayLayers=*/1 _wgpu_COMMA})

#define WGPU_FRAGMENT_STATE_INIT                                               \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUFragmentState,                                                       \
      {/*.nextInChain=*/NULL                                                   \
           _wgpu_COMMA /*.module=*/{} _wgpu_COMMA /*.entryPoint=*/NULL         \
               _wgpu_COMMA /*.constantCount=*/0 _wgpu_COMMA /*.constants=*/    \
       {} _wgpu_COMMA /*.targetCount=*/{} _wgpu_COMMA       /*.targets=*/      \
       {} _wgpu_COMMA})

#define WGPU_TEXEL_COPY_BUFFER_INFO_INIT                                       \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUTexelCopyBufferInfo,                                                 \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.layout=*/                          \
           WGPU_TEXTURE_DATA_LAYOUT_INIT                                       \
               _wgpu_COMMA /*.buffer=*/{} _wgpu_COMMA})

#define WGPU_TEXEL_COPY_TEXTURE_INFO_INIT                                      \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUTexelCopyTextureInfo,                                                \
      {/*.nextInChain=*/NULL _wgpu_COMMA          /*.texture=*/                \
       {} _wgpu_COMMA /*.mipLevel=*/0 _wgpu_COMMA /*.origin=*/                 \
           WGPU_ORIGIN_3D_INIT _wgpu_COMMA /*.aspect=*/WGPUTextureAspect_All   \
               _wgpu_COMMA})

#define WGPU_INSTANCE_DESCRIPTOR_INIT                                          \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUInstanceDescriptor,                                                  \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.features=*/                        \
           WGPU_INSTANCE_CAPABILITIES_INIT _wgpu_COMMA})

#define WGPU_INSTANCE_CAPABILITIES_INIT                                        \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUInstanceCapabilities,                                                \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.timedWaitAnyEnable=*/              \
       0 _wgpu_COMMA /*.timedWaitAnyMaxCount=*/0 _wgpu_COMMA})

#define WGPU_LIMITS_INIT                                                                                                                                           \
  WGPU_MAKE_INIT_STRUCT(                                                                                                                                           \
      WGPULimits,                                                                                                                                                  \
      {/*.maxTextureDimension1D=*/                                                                                                                                 \
       WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxTextureDimension2D=*/WGPU_LIMIT_U32_UNDEFINED                                                                    \
           _wgpu_COMMA /*.maxTextureDimension3D=*/WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxTextureArrayLayers=*/WGPU_LIMIT_U32_UNDEFINED                         \
               _wgpu_COMMA /*.maxBindGroups=*/WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxBindGroupsPlusVertexBuffers=*/WGPU_LIMIT_U32_UNDEFINED                    \
                   _wgpu_COMMA /*.maxBindingsPerBindGroup=*/WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxDynamicUniformBuffersPerPipelineLayout=*/                   \
                       WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxDynamicStorageBuffersPerPipelineLayout=*/WGPU_LIMIT_U32_UNDEFINED                                \
                           _wgpu_COMMA /*.maxSampledTexturesPerShaderStage=*/WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxSamplersPerShaderStage=*/                  \
                               WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxStorageBuffersPerShaderStage=*/WGPU_LIMIT_U32_UNDEFINED                                  \
                                   _wgpu_COMMA /*.maxStorageTexturesPerShaderStage=*/WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxUniformBuffersPerShaderStage=*/    \
                                       WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxUniformBufferBindingSize=*/WGPU_LIMIT_U64_UNDEFINED                              \
                                           _wgpu_COMMA /*.maxStorageBufferBindingSize=*/WGPU_LIMIT_U64_UNDEFINED _wgpu_COMMA /*.minUniformBufferOffsetAlignment=*/ \
                                               WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.minStorageBufferOffsetAlignment=*/                                          \
                                                   WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxVertexBuffers=*/WGPU_LIMIT_U32_UNDEFINED                             \
                                                       _wgpu_COMMA /*.maxBufferSize=*/WGPU_LIMIT_U64_UNDEFINED _wgpu_COMMA /*.maxVertexAttributes=*/               \
                                                           WGPU_LIMIT_U32_UNDEFINED _wgpu_COMMA /*.maxVertexBufferArrayStride=*/WGPU_LIMIT_U32_UNDEFINED           \
                                                               _wgpu_COMMA /*.maxInterStageShaderComponents=*/WGPU_LIMIT_U32_UNDEFINED                             \
                                                                   _wgpu_COMMA /*.maxInterStageShaderVariables=*/WGPU_LIMIT_U32_UNDEFINED                          \
                                                                       _wgpu_COMMA /*.maxColorAttachments=*/WGPU_LIMIT_U32_UNDEFINED                               \
                                                                           _wgpu_COMMA /*.maxColorAttachmentBytesPerSample=*/WGPU_LIMIT_U32_UNDEFINED              \
                                                                               _wgpu_COMMA /*.maxComputeWorkgroupStorageSize=*/WGPU_LIMIT_U32_UNDEFINED            \
                                                                                   _wgpu_COMMA /*.maxComputeInvocationsPerWorkgroup=*/WGPU_LIMIT_U32_UNDEFINED     \
                                                                                       _wgpu_COMMA /*.maxComputeWorkgroupSizeX=*/WGPU_LIMIT_U32_UNDEFINED          \
                                                                                           _wgpu_COMMA /*.maxComputeWorkgroupSizeY=*/                              \
                                                                                               WGPU_LIMIT_U32_UNDEFINED                                            \
                                                                                                   _wgpu_COMMA /*.maxComputeWorkgroupSizeZ=*/                      \
                                                                                                       WGPU_LIMIT_U32_UNDEFINED                                    \
                                                                                                           _wgpu_COMMA /*.maxComputeWorkgroupsPerDimension=*/      \
                                                                                                               WGPU_LIMIT_U32_UNDEFINED                            \
                                                                                                                   _wgpu_COMMA})

#define WGPU_MULTISAMPLE_STATE_INIT                                            \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUMultisampleState,                                                    \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.count=*/1 _wgpu_COMMA /*.mask=*/   \
       0xFFFFFFFF _wgpu_COMMA /*.alphaToCoverageEnabled=*/0 _wgpu_COMMA})

#define WGPU_ORIGIN_3D_INIT                                                    \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUOrigin3D,                                                            \
      {/*.x=*/0 _wgpu_COMMA /*.y=*/0 _wgpu_COMMA /*.z=*/0 _wgpu_COMMA})

#define WGPU_PIPELINE_LAYOUT_DESCRIPTOR_INIT                                   \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUPipelineLayoutDescriptor,                                            \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.bindGroupLayoutCount=*/                              \
       {} _wgpu_COMMA /*.bindGroupLayouts=*/NULL _wgpu_COMMA})

#define WGPU_PRIMITIVE_STATE_INIT                                              \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUPrimitiveState,                                                      \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.topology=*/                        \
           WGPUPrimitiveTopology_TriangleList                                  \
               _wgpu_COMMA /*.stripIndexFormat=*/WGPUIndexFormat_Undefined     \
                   _wgpu_COMMA /*.frontFace=*/WGPUFrontFace_CCW                \
                       _wgpu_COMMA /*.cullMode=*/WGPUCullMode_None             \
                           _wgpu_COMMA})

#define WGPU_QUERY_SET_DESCRIPTOR_INIT                                         \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUQuerySetDescriptor,                                                  \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.type=*/{} _wgpu_COMMA /*.count=*/{} _wgpu_COMMA})

#define WGPU_QUEUE_DESCRIPTOR_INIT                                             \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUQueueDescriptor,                                                     \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL _wgpu_COMMA})

#define WGPU_RENDER_BUNDLE_DESCRIPTOR_INIT                                     \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPURenderBundleDescriptor,                                              \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL _wgpu_COMMA})

#define WGPU_RENDER_BUNDLE_ENCODER_DESCRIPTOR_INIT                             \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPURenderBundleEncoderDescriptor,                                       \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.colorFormatCount=*/                                  \
       {} _wgpu_COMMA  /*.colorFormats=*/                                      \
       {} _wgpu_COMMA /*.depthStencilFormat=*/WGPUTextureFormat_Undefined      \
           _wgpu_COMMA /*.sampleCount=*/1 _wgpu_COMMA /*.depthReadOnly=*/      \
       0 _wgpu_COMMA /*.stencilReadOnly=*/0 _wgpu_COMMA})

#define WGPU_RENDER_PASS_COLOR_ATTACHMENT_INIT                                 \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPURenderPassColorAttachment,                                           \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.view=*/NULL                        \
           _wgpu_COMMA /*.depthSlice=*/WGPU_DEPTH_SLICE_UNDEFINED              \
               _wgpu_COMMA /*.resolveTarget=*/NULL                             \
                   _wgpu_COMMA /*.loadOp=*/{} _wgpu_COMMA /*.storeOp=*/        \
       {} _wgpu_COMMA /*.clearValue=*/WGPU_COLOR_INIT _wgpu_COMMA})

#define WGPU_RENDER_PASS_DEPTH_STENCIL_ATTACHMENT_INIT                         \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPURenderPassDepthStencilAttachment,                                    \
      {/*.view=*/{} _wgpu_COMMA /*.depthLoadOp=*/WGPULoadOp_Undefined          \
           _wgpu_COMMA /*.depthStoreOp=*/WGPUStoreOp_Undefined                 \
               _wgpu_COMMA /*.depthClearValue=*/                               \
                   WGPU_DEPTH_CLEAR_VALUE_UNDEFINED                            \
                       _wgpu_COMMA /*.depthReadOnly=*/                         \
       0 _wgpu_COMMA /*.stencilLoadOp=*/WGPULoadOp_Undefined                   \
           _wgpu_COMMA /*.stencilStoreOp=*/WGPUStoreOp_Undefined               \
               _wgpu_COMMA /*.stencilClearValue=*/                             \
       0 _wgpu_COMMA /*.stencilReadOnly=*/0 _wgpu_COMMA})

#define WGPU_RENDER_PASS_DESCRIPTOR_INIT                                       \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPURenderPassDescriptor,                                                \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.colorAttachmentCount=*/                              \
       {} _wgpu_COMMA  /*.colorAttachments=*/                                  \
       {} _wgpu_COMMA /*.depthStencilAttachment=*/NULL                         \
           _wgpu_COMMA /*.occlusionQuerySet=*/NULL                             \
               _wgpu_COMMA /*.timestampWrites=*/NULL _wgpu_COMMA})

#define WGPU_RENDER_PASS_MAX_DRAW_COUNT_INIT                                   \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPURenderPassMaxDrawCount,                                              \
      {/*.chain= WGPUChainedStruct*/ {                                         \
          /*.next=*/NULL _wgpu_COMMA /*.sType=*/                               \
              WGPUSType_RenderPassDescriptorMaxDrawCount                       \
                  _wgpu_COMMA} _wgpu_COMMA /*.maxDrawCount=*/                  \
       50000000 _wgpu_COMMA})

#define WGPU_RENDER_PASS_TIMESTAMP_WRITES_INIT                                 \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPURenderPassTimestampWrites,                                           \
      {/*.querySet=*/{} _wgpu_COMMA /*.beginningOfPassWriteIndex=*/            \
           WGPU_QUERY_SET_INDEX_UNDEFINED                                      \
               _wgpu_COMMA /*.endOfPassWriteIndex=*/                           \
                   WGPU_QUERY_SET_INDEX_UNDEFINED _wgpu_COMMA})

#define WGPU_RENDER_PIPELINE_DESCRIPTOR_INIT                                   \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPURenderPipelineDescriptor,                                            \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.layout=*/NULL _wgpu_COMMA      /*.vertex=*/          \
               WGPU_VERTEX_STATE_INIT _wgpu_COMMA        /*.primitive=*/       \
                   WGPU_PRIMITIVE_STATE_INIT _wgpu_COMMA /*.depthStencil=*/    \
                       NULL _wgpu_COMMA                  /*.multisample=*/     \
                           WGPU_MULTISAMPLE_STATE_INIT                         \
                               _wgpu_COMMA /*.fragment=*/NULL _wgpu_COMMA})

#define WGPU_REQUEST_ADAPTER_OPTIONS_INIT                                      \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPURequestAdapterOptions,                                               \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.compatibleSurface=*/NULL           \
           _wgpu_COMMA /*.powerPreference=*/WGPUPowerPreference_Undefined      \
               _wgpu_COMMA /*.backendType=*/WGPUBackendType_Undefined          \
                   _wgpu_COMMA /*.forceFallbackAdapter=*/                      \
       0 _wgpu_COMMA /*.compatibilityMode=*/0 _wgpu_COMMA})

#define WGPU_REQUIRED_LIMITS_INIT                                              \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPURequiredLimits,                                                      \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.limits=*/WGPU_LIMITS_INIT          \
           _wgpu_COMMA})

#define WGPU_SAMPLER_BINDING_LAYOUT_INIT                                       \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUSamplerBindingLayout,                                                \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.type=*/                            \
           WGPUSamplerBindingType_Undefined _wgpu_COMMA})

#define WGPU_SAMPLER_DESCRIPTOR_INIT                                           \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUSamplerDescriptor,                                                   \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.addressModeU=*/WGPUAddressMode_ClampToEdge           \
               _wgpu_COMMA /*.addressModeV=*/WGPUAddressMode_ClampToEdge       \
                   _wgpu_COMMA /*.addressModeW=*/WGPUAddressMode_ClampToEdge   \
                       _wgpu_COMMA /*.magFilter=*/WGPUFilterMode_Nearest       \
                           _wgpu_COMMA /*.minFilter=*/WGPUFilterMode_Nearest   \
                               _wgpu_COMMA /*.mipmapFilter=*/                  \
                                   WGPUMipmapFilterMode_Nearest                \
                                       _wgpu_COMMA         /*.lodMinClamp=*/   \
       0.0f _wgpu_COMMA /*.lodMaxClamp=*/32.0f _wgpu_COMMA /*.compare=*/       \
           WGPUCompareFunction_Undefined                                       \
               _wgpu_COMMA /*.maxAnisotropy=*/1 _wgpu_COMMA})

#define WGPU_SHADER_MODULE_DESCRIPTOR_INIT                                     \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUShaderModuleDescriptor,                                              \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL _wgpu_COMMA})

#define WGPU_SHADER_SOURCE_SPIRV_INIT                                          \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUShaderSourceSPIRV,                                                   \
      {/*.chain= WGPUChainedStruct*/ {                                         \
           /*.next=*/NULL _wgpu_COMMA /*.sType=*/WGPUSType_ShaderSourceSPIRV   \
               _wgpu_COMMA} _wgpu_COMMA /*.codeSize=*/{},                      \
       .code = {} _wgpu_COMMA})

#define WGPU_SHADER_SOURCE_WGSL_INIT                                           \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUShaderSourceWGSL,                                                    \
      {/*.chain= WGPUChainedStruct*/ {                                         \
          /*.next=*/NULL _wgpu_COMMA /*.sType=*/WGPUSType_ShaderSourceWGSL     \
              _wgpu_COMMA} _wgpu_COMMA /*.code=*/NULL _wgpu_COMMA})

#define WGPU_STENCIL_FACE_STATE_INIT                                           \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUStencilFaceState,                                                    \
      {/*.compare=*/WGPUCompareFunction_Always _wgpu_COMMA /*.failOp=*/        \
           WGPUStencilOperation_Keep                                           \
               _wgpu_COMMA /*.depthFailOp=*/WGPUStencilOperation_Keep          \
                   _wgpu_COMMA /*.passOp=*/WGPUStencilOperation_Keep           \
                       _wgpu_COMMA})

#define WGPU_STORAGE_TEXTURE_BINDING_LAYOUT_INIT                               \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUStorageTextureBindingLayout,                                         \
      {/*.nextInChain=*/NULL _wgpu_COMMA                  /*.access=*/         \
           WGPUStorageTextureAccess_Undefined _wgpu_COMMA /*.format=*/         \
               WGPUTextureFormat_Undefined _wgpu_COMMA    /*.viewDimension=*/  \
                   WGPUTextureViewDimension_Undefined _wgpu_COMMA})

#define WGPU_SUPPORTED_LIMITS_INIT                                             \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUSupportedLimits,                                                     \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.limits=*/WGPU_LIMITS_INIT          \
           _wgpu_COMMA})

#define WGPU_SURFACE_CAPABILITIES_INIT                                         \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUSurfaceCapabilities,                                                 \
      {/*.nextInChain=*/NULL _wgpu_COMMA               /*.formatCount=*/       \
       {} _wgpu_COMMA /*.formats=*/{} _wgpu_COMMA      /*.presentModeCount=*/  \
       {} _wgpu_COMMA /*.presentModes=*/{} _wgpu_COMMA /*.alphaModeCount=*/    \
       {} _wgpu_COMMA /*.alphaModes=*/{} _wgpu_COMMA})

#define WGPU_SURFACE_CONFIGURATION_INIT                                        \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUSurfaceConfiguration,                                                \
      {/*.nextInChain=*/NULL                                                   \
           _wgpu_COMMA /*.device=*/{} _wgpu_COMMA /*.format=*/                 \
       {} _wgpu_COMMA /*.usage=*/WGPUTextureUsage_RenderAttachment             \
           _wgpu_COMMA /*.viewFormatCount=*/0 _wgpu_COMMA /*.viewFormats=*/    \
               NULL _wgpu_COMMA /*.alphaMode=*/WGPUCompositeAlphaMode_Auto     \
                   _wgpu_COMMA /*.width=*/{} _wgpu_COMMA /*.height=*/          \
       {} _wgpu_COMMA /*.presentMode=*/WGPUPresentMode_Fifo _wgpu_COMMA})

#define WGPU_SURFACE_DESCRIPTOR_INIT                                           \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUSurfaceDescriptor,                                                   \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL _wgpu_COMMA})

#define WGPU_SURFACE_TEXTURE_INIT                                              \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUSurfaceTexture,                                                      \
      {/*.texture=*/{} _wgpu_COMMA /*.suboptimal=*/                            \
       {} _wgpu_COMMA /*.status=*/{} _wgpu_COMMA})

#define WGPU_TEXTURE_BINDING_LAYOUT_INIT                                       \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUTextureBindingLayout,                                                \
      {/*.nextInChain=*/NULL _wgpu_COMMA               /*.sampleType=*/        \
           WGPUTextureSampleType_Undefined _wgpu_COMMA /*.viewDimension=*/     \
               WGPUTextureViewDimension_Undefined                              \
                   _wgpu_COMMA /*.multisampled=*/0 _wgpu_COMMA})

#define WGPU_TEXTURE_BINDING_VIEW_DIMENSION_DESCRIPTOR_INIT                    \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUTextureBindingViewDimensionDescriptor,                               \
      {/*.chain= WGPUChainedStruct*/ {                                         \
          /*.next=*/NULL _wgpu_COMMA /*.sType=*/                               \
              WGPUSType_TextureBindingViewDimensionDescriptor                  \
                  _wgpu_COMMA} _wgpu_COMMA /*.textureBindingViewDimension=*/   \
           WGPUTextureViewDimension_Undefined _wgpu_COMMA})

#define WGPU_TEXTURE_DATA_LAYOUT_INIT                                          \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUTextureDataLayout,                                                   \
      {/*.nextInChain=*/NULL                                                   \
           _wgpu_COMMA /*.offset=*/0 _wgpu_COMMA      /*.bytesPerRow=*/        \
               WGPU_COPY_STRIDE_UNDEFINED _wgpu_COMMA /*.rowsPerImage=*/       \
                   WGPU_COPY_STRIDE_UNDEFINED _wgpu_COMMA})

#define WGPU_TEXTURE_DESCRIPTOR_INIT                                           \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUTextureDescriptor,                                                   \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.usage=*/{} _wgpu_COMMA        /*.dimension=*/        \
               WGPUTextureDimension_2D _wgpu_COMMA      /*.size=*/             \
                   WGPU_EXTENT_3D_INIT _wgpu_COMMA      /*.format=*/           \
       {} _wgpu_COMMA /*.mipLevelCount=*/1 _wgpu_COMMA  /*.sampleCount=*/      \
       1 _wgpu_COMMA /*.viewFormatCount=*/0 _wgpu_COMMA /*.viewFormats=*/      \
           NULL _wgpu_COMMA})

#define WGPU_TEXTURE_VIEW_DESCRIPTOR_INIT                                      \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUTextureViewDescriptor,                                               \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.label=*/NULL                       \
           _wgpu_COMMA /*.format=*/WGPUTextureFormat_Undefined                 \
               _wgpu_COMMA /*.dimension=*/WGPUTextureViewDimension_Undefined   \
                   _wgpu_COMMA /*.baseMipLevel=*/                              \
       0 _wgpu_COMMA /*.mipLevelCount=*/WGPU_MIP_LEVEL_COUNT_UNDEFINED         \
           _wgpu_COMMA /*.baseArrayLayer=*/                                    \
       0 _wgpu_COMMA /*.arrayLayerCount=*/WGPU_ARRAY_LAYER_COUNT_UNDEFINED     \
           _wgpu_COMMA /*.aspect=*/WGPUTextureAspect_All _wgpu_COMMA})

#define WGPU_VERTEX_ATTRIBUTE_INIT                                             \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUVertexAttribute,                                                     \
      {/*.format=*/{} _wgpu_COMMA /*.offset=*/                                 \
       {} _wgpu_COMMA /*.shaderLocation=*/{} _wgpu_COMMA})

#define WGPU_VERTEX_BUFFER_LAYOUT_INIT                                         \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUVertexBufferLayout,                                                  \
      {/*.arrayStride=*/{} _wgpu_COMMA /*.stepMode=*/                          \
       {} _wgpu_COMMA                  /*.attributeCount=*/                    \
       {} _wgpu_COMMA /*.attributes=*/{} _wgpu_COMMA})

#define WGPU_VERTEX_STATE_INIT                                                 \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUVertexState,                                                         \
      {/*.nextInChain=*/NULL                                                   \
           _wgpu_COMMA /*.module=*/{} _wgpu_COMMA /*.entryPoint=*/NULL         \
               _wgpu_COMMA /*.constantCount=*/0 _wgpu_COMMA /*.constants=*/    \
       {} _wgpu_COMMA /*.bufferCount=*/0 _wgpu_COMMA        /*.buffers=*/      \
       {} _wgpu_COMMA})

#define WGPU_QUEUE_WORK_DONE_CALLBACK_INFO_INIT                                \
  WGPU_MAKE_INIT_STRUCT(                                                       \
      WGPUQueueWorkDoneCallbackInfo,                                           \
      {/*.nextInChain=*/NULL _wgpu_COMMA /*.callback=*/NULL                    \
           _wgpu_COMMA /*.userdata1=*/NULL _wgpu_COMMA /*.userdata2=*/NULL     \
               _wgpu_COMMA})

#if defined(__cplusplus)
#define WGPU_WAGYU_STRING_VIEW(s)                                              \
  WGPUWagyuStringView{s, (s != NULL) ? strlen(s) : 0}
#else
#define WGPU_WAGYU_STRING_VIEW(s)                                              \
  (WGPUWagyuStringView){s, (s != NULL) ? strlen(s) : 0}
#endif

#endif // WEBGPU_COMPAT_H
