-
Notifications
You must be signed in to change notification settings - Fork 0
/
render_pass.c3i
127 lines (95 loc) · 4.52 KB
/
render_pass.c3i
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
module webgpu;
distinct RenderPassEncoder = inline void*;
fn void RenderPassEncoder.beginOcclusionQuery(RenderPassEncoder encoder,
CUInt queryIndex) @extern("wgpuRenderPassEncoderBeginOcclusionQuery");
fn void RenderPassEncoder.draw(RenderPassEncoder encoder,
CUInt vertexCount, CUInt instanceCount, CUInt firstVertex = 0, CUInt firstInstance = 0)
@extern("wgpuRenderPassEncoderDraw");
fn void RenderPassEncoder.drawIndexed(RenderPassEncoder encoder,
CUInt indexCount, CUInt instanceCount, CUInt firstIndex = 0, CInt baseVertex = 0, CUInt firstInstance = 0)
@extern("wgpuRenderPassEncoderDrawIndexed");
fn void RenderPassEncoder.drawIndexedIndirect(RenderPassEncoder encoder,
Buffer buffer, CULong offset) @extern("wgpuRenderPassEncoderDrawIndexedIndirect");
fn void RenderPassEncoder.drawIndirect(RenderPassEncoder encoder,
Buffer buffer, CULong offset) @extern("wgpuRenderPassEncoderDrawIndirect");
fn RenderBundle RenderPassEncoder.end(RenderPassEncoder encoder) @extern("wgpuRenderPassEncoderEnd");
fn void RenderPassEncoder.endOcclusionQuery(RenderPassEncoder encoder) @extern("wgpuRenderPassEncoderEndOcclusionQuery");
fn void RenderPassEncoder.executeBundles(RenderPassEncoder encoder,
usz count, RenderBundle* bundles) @extern("wgpuRenderPassEncoderExecuteBundles");
fn void RenderPassEncoder.insertDebugMarker(RenderPassEncoder encoder,
ZString label) @extern("wgpuRenderPassEncoderInsertDebugMarker");
fn void RenderPassEncoder.popDebugGroup(RenderPassEncoder encoder)
@extern("wgpuRenderPassEncoderPopDebugGroup");
fn void RenderPassEncoder.pushDebugGroup(RenderPassEncoder encoder, ZString label)
@extern("wgpuRenderPassEncoderPushDebugGroup");
fn void RenderPassEncoder.setBlendConstant(RenderPassEncoder encoder, Color* color)
@extern("wgpuRenderPassEncoderSetBlendConstant");
fn void RenderPassEncoder.setBindGroup(RenderPassEncoder encoder, CUInt groupIndex, BindGroup bindGroup,
usz dynamicOffsetCount = 0, CUInt* dynamicOffsets = null) @extern("wgpuRenderPassEncoderSetBindGroup");
fn void RenderPassEncoder.setIndexBuffer(RenderPassEncoder encoder,
Buffer buffer, IndexFormat format, CULong offset, CULong size)
@extern("wgpuRenderPassEncoderSetIndexBuffer");
fn void RenderPassEncoder.setLabel(RenderPassEncoder encoder, ZString label)
@extern("wgpuRenderPassEncoderSetLabel");
fn void RenderPassEncoder.setPipeline(RenderPassEncoder encoder, RenderPipeline pipeline)
@extern("wgpuRenderPassEncoderSetPipeline");
fn void RenderPassEncoder.setScissorRect(RenderPassEncoder encoder,
CUInt x, CUInt y, CUInt width, CUInt height) @extern("wgpuRenderPassEncoderSetScissorRect");
fn void RenderPassEncoder.setStencilReference(RenderPassEncoder encoder,
CUInt reference) @extern("wgpuRenderPassEncoderSetStencilReference");
fn void RenderPassEncoder.setVertexBuffer(RenderPassEncoder encoder,
CUInt slot, Buffer buffer, CULong offset, CULong size)
@extern("wgpuRenderPassEncoderSetVertexBuffer");
fn void RenderPassEncoder.setViewport(RenderPassEncoder encoder,
float x, float y, float width, float height, float minDepth, float maxDepth)
@extern("wgpuRenderPassEncoderSetViewport");
fn void RenderPassEncoder.reference(RenderPassEncoder encoder) @extern("wgpuRenderPassEncoderReference");
fn void RenderPassEncoder.release(RenderPassEncoder encoder) @extern("wgpuRenderPassEncoderRelease");
struct RenderPassDescriptor {
ChainedStruct* next;
ZString label;
usz colorAttachmentCount;
RenderPassColorAttachment* colorAttachments;
RenderPassDepthStencilAttachment* depthStencilAttachment;
QuerySet occlusionQuerySet;
RenderPassTimestampWrites* timestampWrites;
}
struct RenderPassDepthStencilAttachment {
TextureView view;
LoadOperation depthLoadOperation;
StoreOperation depthStoreOperation;
float depthClearValue;
Bool depthReadOnly;
LoadOperation stencilLoadOperation;
StoreOperation stencilStoreOperation;
CUInt stencilClearValue;
Bool stencilReadOnly;
}
struct RenderPassDescriptorMaxDrawCount {
ChainedStruct chain;
CULong maxDrawCount;
}
struct RenderPassTimestampWrites {
QuerySet querySet;
CUInt beginningOfPassWriteIndex;
CUInt endOfPassWriteIndex;
}
struct RenderPassColorAttachment {
ChainedStruct* next;
TextureView view;
CUInt depthSlice;
TextureView resolveTarget;
LoadOperation loadOperation;
StoreOperation storeOperation;
Color clearValue;
}
enum LoadOperation {
UNDEFINED,
CLEAR,
LOAD
}
enum StoreOperation {
UNDEFINED,
STORE,
DISCARD
}