Limited availability
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The setIndexBuffer()
method of the GPURenderBundleEncoder
interface sets the current GPUBuffer
that will provide index data for subsequent drawing commands.
Note: This method is functionally identical to its equivalent on GPURenderPassEncoder
â setIndexBuffer()
.
setIndexBuffer(buffer, indexFormat, offset, size)
Parameters
buffer
A GPUBuffer
representing the buffer containing the index data to use for subsequent drawing commands.
indexFormat
An enumerated value that defines the format of the index data contained in buffer
. Possible values are:
"uint16"
"uint32"
offset
Optional
A number representing the offset, in bytes, into buffer
where the index data begins. If omitted, offset
defaults to 0.
size
Optional
A number representing the size, in bytes, of the index data contained in buffer
. If omitted, size
defaults to the buffer
's GPUBuffer.size
- offset
.
indexFormat
determines both the data type of index values in a buffer and, when used with a pipeline that specifies a strip primitive topology ("line-strip"
or "triangle-strip"
), also determines the primitive restart value. The primitive restart value is an index value indicating that a new primitive should be started rather than continuing to construct the strip with the prior indexed vertices. The value is 0xFFFF
for "uint16"
, or 0xFFFFFFFF
for "uint32"
.
None (Undefined
).
The following criteria must be met when calling setIndexBuffer()
, otherwise a GPUValidationError
is generated and the GPURenderBundleEncoder
becomes invalid:
buffer
's GPUBuffer.usage
contains the GPUBufferUsage.INDEX
flag.offset
+ size
is less than or equal to the buffer
's GPUBuffer.size
.offset
is a multiple of indexFormat
's byte size (2 for "uint16"
, 4 for "uint32"
).// â¦
const bundleEncoder = device.createRenderBundleEncoder(descriptor);
bundleEncoder.setPipeline(pipeline);
bundleEncoder.setBindGroup(0, sceneBindGroupForRender);
bundleEncoder.setBindGroup(1, modelBindGroup);
bundleEncoder.setVertexBuffer(0, vertexBuffer);
bundleEncoder.setIndexBuffer(indexBuffer, "uint16");
bundleEncoder.drawIndexed(indexCount);
const renderBundle = bundleEncoder.finish();
// â¦
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4