Skip to content

Instantly share code, notes, and snippets.

@rajveermalviya
Last active February 11, 2024 16:22
Show Gist options
  • Save rajveermalviya/812ee0398ca88c1962469a0978a4845c to your computer and use it in GitHub Desktop.
Save rajveermalviya/812ee0398ca88c1962469a0978a4845c to your computer and use it in GitHub Desktop.
Sample
/**
* Copyright 2021 The gfx-rs developers
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
#ifndef WGPU_H_
#define WGPU_H_
#if defined(WGPU_SHARED_LIBRARY)
# if defined(_WIN32)
# if defined(WGPU_IMPLEMENTATION)
# define WGPU_EXPORT __declspec(dllexport)
# else
# define WGPU_EXPORT __declspec(dllimport)
# endif
# else // defined(_WIN32)
# if defined(WGPU_IMPLEMENTATION)
# define WGPU_EXPORT __attribute__((visibility("default")))
# else
# define WGPU_EXPORT
# endif
# endif // defined(_WIN32)
#else // defined(WGPU_SHARED_LIBRARY)
# define WGPU_EXPORT
#endif // defined(WGPU_SHARED_LIBRARY)
#if !defined(WGPU_OBJECT_ATTRIBUTE)
#define WGPU_OBJECT_ATTRIBUTE
#endif
#if !defined(WGPU_ENUM_ATTRIBUTE)
#define WGPU_ENUM_ATTRIBUTE
#endif
#if !defined(WGPU_STRUCTURE_ATTRIBUTE)
#define WGPU_STRUCTURE_ATTRIBUTE
#endif
#if !defined(WGPU_FUNCTION_ATTRIBUTE)
#define WGPU_FUNCTION_ATTRIBUTE
#endif
#if !defined(WGPU_NULLABLE)
#define WGPU_NULLABLE
#endif
#if !defined(__WGPU_EXTEND_ENUM)
#ifdef __cplusplus
#define __WGPU_EXTEND_ENUM(E, N, V) static const E N = E(V)
#else
#define __WGPU_EXTEND_ENUM(E, N, V) static const E N = (E)(V)
#endif
#endif // !defined(__WGPU_EXTEND_ENUM)
#include "webgpu.h"
typedef struct WGPURenderPassEncoderImpl* WGPURenderPassEncoder WGPU_OBJECT_ATTRIBUTE;
// Structure forward declarations
struct WGPUShaderDefine;
struct WGPUShaderModuleGLSLDescriptor;
__WGPU_EXTEND_ENUM(WGPUFeatureName, WGPUFeatureName_PushConstants, 0x30000000);
__WGPU_EXTEND_ENUM(WGPUFeatureName, WGPUFeatureName_MultiDrawIndirect, 0x30000001);
__WGPU_EXTEND_ENUM(WGPUSType, WGPUSType_ShaderModuleGLSLDescriptor, 0x30000000);
__WGPU_EXTEND_ENUM(WGPUSType, WGPUSType_InstanceExtras, 0x30000001);
typedef enum WGPUDx12Compiler {
WGPUDx12Compiler_Undefined = 0x30000000,
WGPUDx12Compiler_Fxc = 0x30000001,
WGPUDx12Compiler_Dxc = 0x30000002,
WGPUDx12Compiler_Force32 = 0x7FFFFFFF
} WGPUDx12Compiler WGPU_ENUM_ATTRIBUTE;
typedef enum WGPUGles3MinorVersion {
WGPUGles3MinorVersion_Automatic = 0x30000000,
WGPUGles3MinorVersion_Version0 = 0x30000001,
WGPUGles3MinorVersion_Version1 = 0x30000002,
WGPUGles3MinorVersion_Version2 = 0x30000003,
WGPUGles3MinorVersion_Force32 = 0x7FFFFFFF
} WGPUGles3MinorVersion WGPU_ENUM_ATTRIBUTE;
typedef enum WGPULogLevel {
WGPULogLevel_Off = 0x30000000,
WGPULogLevel_Error = 0x30000001,
WGPULogLevel_Warn = 0x30000002,
WGPULogLevel_Info = 0x30000003,
WGPULogLevel_Debug = 0x30000004,
WGPULogLevel_Trace = 0x30000005,
WGPULogLevel_Force32 = 0x7FFFFFFF
} WGPULogLevel WGPU_ENUM_ATTRIBUTE;
__WGPU_EXTEND_ENUM(WGPUShaderStage, WGPUShaderStage_Mesh, 0x00000008);
typedef enum WGPUSomeStages {
WGPUSomeStages_One = 0x00000000,
WGPUSomeStages_Two = 0x00000001,
WGPUSomeStages_Three = 0x00000002,
WGPUSomeStages_Four = 0x00000004,
WGPUSomeStages_Force32 = 0x7FFFFFFF
} WGPUSomeStages WGPU_ENUM_ATTRIBUTE;
typedef WGPUFlags WGPUSomeStagesFlags WGPU_ENUM_ATTRIBUTE;
typedef struct WGPUShaderDefine {
char const * name;
char const * value;
} WGPUShaderDefine WGPU_STRUCTURE_ATTRIBUTE;
typedef struct WGPUShaderModuleGLSLDescriptor {
WGPUChainedStruct chain;
WGPUShaderStage stage;
char const * code;
size_t defineCount;
WGPUShaderDefine defines;
} WGPUShaderModuleGLSLDescriptor WGPU_STRUCTURE_ATTRIBUTE;
#ifdef __cplusplus
extern "C" {
#endif
#if !defined(WGPU_SKIP_PROCS)
// Procs of RenderPassEncoder
typedef void (*WGPUProcRenderPassEncoderSetPushConstants)(WGPURenderPassEncoder renderPassEncoder, WGPUShaderStageFlags stages, uint32_t offset, size_t sizeBytes, void const * data) WGPU_FUNCTION_ATTRIBUTE;
#endif // !defined(WGPU_SKIP_PROCS)
#if !defined(WGPU_SKIP_DECLARATIONS)
// Methods of RenderPassEncoder
WGPU_EXPORT void wgpuRenderPassEncoderSetPushConstants(WGPURenderPassEncoder renderPassEncoder, WGPUShaderStageFlags stages, uint32_t offset, size_t sizeBytes, void const * data) WGPU_FUNCTION_ATTRIBUTE;
#endif // !defined(WGPU_SKIP_DECLARATIONS)
#ifdef __cplusplus
} // extern "C"
#endif
#endif // WGPU_H_
copyright: |
Copyright 2021 The gfx-rs developers
SPDX-License-Identifier: Apache-2.0 OR MIT
enum_prefix: '0x3000'
constants: []
enums:
- name: s_type
extended: true
doc: |
TODO
entries:
- name: shader_module_GLSL_descriptor
doc: |
TODO
- name: instance_extras
doc: |
TODO
- name: log_level
doc: |
TODO
entries:
- name: off
doc: |
TODO
- name: error
doc: |
TODO
- name: warn
doc: |
TODO
- name: info
doc: |
TODO
- name: debug
doc: |
TODO
- name: trace
doc: |
TODO
- name: dx12_compiler
doc: |
TODO
entries:
- name: undefined
doc: |
TODO
- name: fxc
doc: |
TODO
- name: dxc
doc: |
TODO
- name: gles3_minor_version
doc: |
TODO
entries:
- name: automatic
doc: |
TODO
- name: version0
doc: |
TODO
- name: version1
doc: |
TODO
- name: version2
doc: |
TODO
- name: feature_name
extended: true
doc: |
TODO
entries:
- name: push_constants
doc: |
TODO
- name: multi_draw_indirect
doc: |
TODO
bitflags:
- name: shader_stage
doc: |
TODO
extended: true
entries:
- name: mesh
value: 0x00000008
doc: |
TODO
- name: some_stages
doc: |
TODO
entries:
- name: one
doc: |
TODO
- name: two
doc: |
TODO
- name: three
doc: |
TODO
- name: four
doc: |
TODO
function_types: []
structs:
- name: shader_define
doc: |
TODO
type: standalone
members:
- name: name
doc: |
TODO
type: string
- name: value
doc: |
TODO
type: string
- name: shader_module_GLSL_descriptor
doc: |
TODO
type: extension_in
extends:
- shader_module_descriptor
members:
- name: stage
doc: |
TODO
type: enum.shader_stage
- name: code
doc: |
TODO
type: string
- name: defines
doc: |
TODO
type: array<struct.shader_define>
functions: []
objects:
- name: render_pass_encoder
doc: |
TODO
extended: true
methods:
- name: set_push_constants
doc: |
TODO
args:
- name: stages
doc: |
TODO
type: bitflag.shader_stage
- name: offset
doc: |
TODO
type: uint32
- name: size_bytes
doc: |
TODO
type: usize
- name: data
doc: |
TODO
type: c_void
pointer: immutable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment