5757{{- if .Constants}}
5858{{- range .Constants}}
5959{{- MComment .Doc 0}}
60- #define WGPU_{{.Name | ConstantCase}} ({{.Value | CValue}})
60+ #define WGPU_{{.Name | ConstantCase}}{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} ({{.Value | CValue}})
6161{{- end}}
6262{{ end}}
6363
@@ -69,50 +69,50 @@ typedef uint32_t WGPUBool;
6969{{- if .Objects}}
7070{{- range .Objects}}
7171{{- if not .IsStruct}}
72- typedef struct WGPU{{.Name | PascalCase}}Impl* WGPU{{.Name | PascalCase}} WGPU_OBJECT_ATTRIBUTE;
72+ typedef struct WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} Impl* WGPU{{.Name | PascalCase}}{{$.ExtSuffix }} WGPU_OBJECT_ATTRIBUTE;
7373{{- end}}
7474{{- end}}
7575{{ end}}
7676
7777{{- if .Structs}}
7878// Structure forward declarations
7979{{- range .Structs}}
80- struct WGPU{{.Name | PascalCase}};
80+ struct WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} ;
8181{{- end}}
8282{{ end}}
8383
8484{{- range $enum := .Enums}}
8585{{- if .Extended}}
8686{{- range $entryIndex, $_ := .Entries}}
87- __WGPU_EXTEND_ENUM(WGPU{{$enum.Name | PascalCase}}, WGPU{{$enum.Name | PascalCase}}_{{.Name | PascalCase}}, {{EnumValue $.EnumPrefix $enum $entryIndex}});
87+ __WGPU_EXTEND_ENUM(WGPU{{$enum.Name | PascalCase}}, WGPU{{$enum.Name | PascalCase}}_{{.Name | PascalCase}}{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} , {{EnumValue $.EnumPrefix $enum $entryIndex}});
8888{{- end}}
8989{{- else}}
9090{{- MComment .Doc 0}}
91- typedef enum WGPU{{.Name | PascalCase}} {
91+ typedef enum WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} {
9292{{- range $entryIndex, $_ := .Entries}}
9393{{- MComment .Doc 4}}
94- WGPU{{$enum.Name | PascalCase}}_{{.Name | PascalCase}} = {{EnumValue $.EnumPrefix $enum $entryIndex}},
94+ WGPU{{$enum.Name | PascalCase}}_{{.Name | PascalCase}}{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} = {{EnumValue $.EnumPrefix $enum $entryIndex}},
9595{{- end}}
96- WGPU{{$enum.Name | PascalCase}}_Force32 = 0x7FFFFFFF
97- } WGPU{{$enum.Name | PascalCase}} WGPU_ENUM_ATTRIBUTE;
96+ WGPU{{$enum.Name | PascalCase}}_Force32{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} = 0x7FFFFFFF
97+ } WGPU{{$enum.Name | PascalCase}}{{$.ExtSuffix}} WGPU_ENUM_ATTRIBUTE;
9898{{- end}}
9999{{ end}}
100100
101101{{- range $bitflag := .Bitflags}}
102102{{- if .Extended}}
103103{{- range $entryIndex, $_ := .Entries}}
104- __WGPU_EXTEND_ENUM(WGPU{{$bitflag.Name | PascalCase}}, WGPU{{$bitflag.Name | PascalCase}}_{{.Name | PascalCase}}, {{BitflagValue $bitflag $entryIndex}});
104+ __WGPU_EXTEND_ENUM(WGPU{{$bitflag.Name | PascalCase}}, WGPU{{$bitflag.Name | PascalCase}}_{{.Name | PascalCase}}{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} , {{BitflagValue $bitflag $entryIndex}});
105105{{- end}}
106106{{- else}}
107107{{- MComment .Doc 0}}
108- typedef enum WGPU{{.Name | PascalCase}} {
108+ typedef enum WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} {
109109{{- range $entryIndex, $_ := .Entries}}
110110{{- MComment .Doc 4}}
111- WGPU{{$bitflag.Name | PascalCase}}_{{.Name | PascalCase}} = {{BitflagValue $bitflag $entryIndex}},
111+ WGPU{{$bitflag.Name | PascalCase}}_{{.Name | PascalCase}}{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} = {{BitflagValue $bitflag $entryIndex}},
112112{{- end}}
113- WGPU{{$bitflag.Name | PascalCase}}_Force32 = 0x7FFFFFFF
114- } WGPU{{$bitflag.Name | PascalCase}} WGPU_ENUM_ATTRIBUTE;
115- typedef WGPUFlags WGPU{{$bitflag.Name | PascalCase}}Flags WGPU_ENUM_ATTRIBUTE;
113+ WGPU{{$bitflag.Name | PascalCase}}_Force32{{if $.ExtSuffix}}_{{$.ExtSuffix}}{{end}} = 0x7FFFFFFF
114+ } WGPU{{$bitflag.Name | PascalCase}}{{$.ExtSuffix}} WGPU_ENUM_ATTRIBUTE;
115+ typedef WGPUFlags WGPU{{$bitflag.Name | PascalCase}}Flags{{$.ExtSuffix}} WGPU_ENUM_ATTRIBUTE;
116116{{- end}}
117117{{ end}}
118118
@@ -122,15 +122,15 @@ typedef void (*WGPUProc)(void) WGPU_FUNCTION_ATTRIBUTE;
122122
123123{{- range .FunctionTypes}}
124124{{- MComment .Doc 0}}
125- typedef {{FunctionReturns .}} (*WGPU{{.Name | PascalCase}})({{FunctionArgs . nil}}) WGPU_FUNCTION_ATTRIBUTE;
125+ typedef {{FunctionReturns .}} (*WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} )({{FunctionArgs . nil}}) WGPU_FUNCTION_ATTRIBUTE;
126126{{- end}}
127127
128128{{- if .Objects}}
129129{{ range $object := .Objects}}
130130{{- range $method := .Methods}}
131131{{- if .ReturnsAsync}}
132132{{- MComment .Doc 0}}
133- typedef void (*WGPU{{$object.Name | PascalCase}}{{$method.Name | PascalCase}}Callback)({{CallbackArgs .}}) WGPU_FUNCTION_ATTRIBUTE;
133+ typedef void (*WGPU{{$object.Name | PascalCase}}{{$method.Name | PascalCase}}Callback{{$.ExtSuffix}} )({{CallbackArgs .}}) WGPU_FUNCTION_ATTRIBUTE;
134134{{- end}}
135135{{- end}}
136136{{- end}}
@@ -148,9 +148,9 @@ typedef struct WGPUChainedStructOut {
148148} WGPUChainedStructOut WGPU_STRUCTURE_ATTRIBUTE;
149149{{ end}}
150150
151- {{- range .Structs}}
151+ {{- range $struct := .Structs}}
152152{{- MComment .Doc 0}}
153- typedef struct WGPU{{.Name | PascalCase}} {
153+ typedef struct WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} {
154154{{- if eq .Type "base_in" }}
155155 WGPUChainedStruct const * nextInChain;
156156{{- else if eq .Type "base_out" }}
@@ -160,17 +160,10 @@ typedef struct WGPU{{.Name | PascalCase}} {
160160{{- else if eq .Type "extension_out"}}
161161 WGPUChainedStructOut chain;
162162{{- end}}
163- {{- range .Members}}
164- {{- if IsArray .Type}}
165- size_t {{.Name | CamelCase | Singularize}}Count;
166- {{- MComment .Doc 4}}
167- {{ArrayType .Type .Pointer}} {{.Name | CamelCase}};
168- {{- else}}
169- {{- MComment .Doc 4}}
170- {{if .Optional}}WGPU_NULLABLE {{end}}{{CType .Type .Pointer}} {{.Name | CamelCase}};
171- {{- end}}
163+ {{- range $memberIndex, $_ := .Members}}
164+ {{ StructMember $struct $memberIndex}}
172165{{- end}}
173- } WGPU{{.Name | PascalCase}} WGPU_STRUCTURE_ATTRIBUTE;
166+ } WGPU{{.Name | PascalCase}}{{$.ExtSuffix}} WGPU_STRUCTURE_ATTRIBUTE;
174167{{ end}}{{"\n" -}}
175168
176169#ifdef __cplusplus
@@ -181,7 +174,7 @@ extern "C" {
181174
182175{{- range .Functions}}
183176{{- MComment .Doc 0}}
184- typedef {{FunctionReturns .}} (*WGPUProc{{.Name | PascalCase}})({{FunctionArgs . nil}}) WGPU_FUNCTION_ATTRIBUTE;
177+ typedef {{FunctionReturns .}} (*WGPUProc{{.Name | PascalCase}}{{$.ExtSuffix}} )({{FunctionArgs . nil}}) WGPU_FUNCTION_ATTRIBUTE;
185178{{- end}}
186179{{- if eq .Name "webgpu"}}
187180typedef WGPUProc (*WGPUProcGetProcAddress)(WGPUDevice device, char const * procName) WGPU_FUNCTION_ATTRIBUTE;
@@ -191,11 +184,11 @@ typedef WGPUProc (*WGPUProcGetProcAddress)(WGPUDevice device, char const * procN
191184// Procs of {{$object.Name | PascalCase}}
192185{{- range $object.Methods}}
193186{{- MComment .Doc 0}}
194- typedef {{FunctionReturns .}} (*WGPUProc{{$object.Name | PascalCase}}{{.Name | PascalCase}})({{FunctionArgs . $object}}) WGPU_FUNCTION_ATTRIBUTE;
187+ typedef {{FunctionReturns .}} (*WGPUProc{{$object.Name | PascalCase}}{{.Name | PascalCase}}{{$.ExtSuffix}} )({{FunctionArgs . $object}}) WGPU_FUNCTION_ATTRIBUTE;
195188{{- end}}
196189{{- if not (or .IsStruct .Extended)}}
197- typedef void (*WGPUProc{{.Name | PascalCase}}Reference)(WGPU{{.Name | PascalCase}} {{.Name | CamelCase}}) WGPU_FUNCTION_ATTRIBUTE;
198- typedef void (*WGPUProc{{.Name | PascalCase}}Release)(WGPU{{.Name | PascalCase}} {{.Name | CamelCase}}) WGPU_FUNCTION_ATTRIBUTE;
190+ typedef void (*WGPUProc{{.Name | PascalCase}}Reference{{$.ExtSuffix}} )(WGPU{{.Name | PascalCase}} {{.Name | CamelCase}}) WGPU_FUNCTION_ATTRIBUTE;
191+ typedef void (*WGPUProc{{.Name | PascalCase}}Release{{$.ExtSuffix}} )(WGPU{{.Name | PascalCase}} {{.Name | CamelCase}}) WGPU_FUNCTION_ATTRIBUTE;
199192{{- end}}
200193{{ end}}{{"\n" -}}
201194
@@ -205,7 +198,7 @@ typedef void (*WGPUProc{{.Name | PascalCase}}Release)(WGPU{{.Name | PascalCase}}
205198
206199{{- range .Functions}}
207200{{- MComment .Doc 0}}
208- WGPU_EXPORT {{FunctionReturns .}} wgpu{{.Name | PascalCase}}({{FunctionArgs . nil}}) WGPU_FUNCTION_ATTRIBUTE;
201+ WGPU_EXPORT {{FunctionReturns .}} wgpu{{.Name | PascalCase}}{{$.ExtSuffix}} ({{FunctionArgs . nil}}) WGPU_FUNCTION_ATTRIBUTE;
209202{{- end}}
210203{{- if eq .Name "webgpu"}}
211204WGPU_EXPORT WGPUProc wgpuGetProcAddress(WGPUDevice device, char const * procName) WGPU_FUNCTION_ATTRIBUTE;
@@ -215,11 +208,11 @@ WGPU_EXPORT WGPUProc wgpuGetProcAddress(WGPUDevice device, char const * procName
215208// Methods of {{$object.Name | PascalCase}}
216209{{- range $object.Methods}}
217210{{- MComment .Doc 0}}
218- WGPU_EXPORT {{FunctionReturns .}} wgpu{{$object.Name | PascalCase}}{{.Name | PascalCase}}({{FunctionArgs . $object}}) WGPU_FUNCTION_ATTRIBUTE;
211+ WGPU_EXPORT {{FunctionReturns .}} wgpu{{$object.Name | PascalCase}}{{.Name | PascalCase}}{{$.ExtSuffix}} ({{FunctionArgs . $object}}) WGPU_FUNCTION_ATTRIBUTE;
219212{{- end}}
220213{{- if not (or .IsStruct .Extended)}}
221- WGPU_EXPORT void wgpu{{.Name | PascalCase}}Reference(WGPU{{.Name | PascalCase}} {{.Name | CamelCase}}) WGPU_FUNCTION_ATTRIBUTE;
222- WGPU_EXPORT void wgpu{{.Name | PascalCase}}Release(WGPU{{.Name | PascalCase}} {{.Name | CamelCase}}) WGPU_FUNCTION_ATTRIBUTE;
214+ WGPU_EXPORT void wgpu{{.Name | PascalCase}}Reference{{$.ExtSuffix}} (WGPU{{.Name | PascalCase}} {{.Name | CamelCase}}) WGPU_FUNCTION_ATTRIBUTE;
215+ WGPU_EXPORT void wgpu{{.Name | PascalCase}}Release{{$.ExtSuffix}} (WGPU{{.Name | PascalCase}} {{.Name | CamelCase}}) WGPU_FUNCTION_ATTRIBUTE;
223216{{- end}}
224217{{ end}}{{"\n" -}}
225218
0 commit comments