Class WgpuStreamingBuffer
java.lang.Object
dev.engine.graphics.webgpu.WgpuStreamingBuffer
- All Implemented Interfaces:
StreamingBuffer, AutoCloseable
WebGPU implementation of
StreamingBuffer.
Uses a single GPU buffer with per-frame regions. Writes are done via
wgpuQueueWriteBuffer on each endWrite(), copying the
staging data to the appropriate region of the GPU buffer.
-
Method Summary
Modifier and TypeMethodDescriptionvoidadvance()Advances to the next frame.Begins writing for the current frame.voidclose()longReturns the byte offset into the buffer for the current frame's data.voidendWrite()Finishes writing.longSize of a single frame's region.handle()The underlying GPU buffer handle.longsize()Total buffer size in bytes.
-
Method Details
-
handle
Description copied from interface:StreamingBufferThe underlying GPU buffer handle.- Specified by:
handlein interfaceStreamingBuffer
-
size
public long size()Description copied from interface:StreamingBufferTotal buffer size in bytes.- Specified by:
sizein interfaceStreamingBuffer
-
frameSize
public long frameSize()Description copied from interface:StreamingBufferSize of a single frame's region.- Specified by:
frameSizein interfaceStreamingBuffer
-
beginWrite
Description copied from interface:StreamingBufferBegins writing for the current frame. Returns aNativeMemorypointing to the current frame's region. The memory is valid untilStreamingBuffer.endWrite()is called.- Specified by:
beginWritein interfaceStreamingBuffer
-
endWrite
public void endWrite()Description copied from interface:StreamingBufferFinishes writing. The data becomes available to the GPU.- Specified by:
endWritein interfaceStreamingBuffer
-
currentOffset
public long currentOffset()Description copied from interface:StreamingBufferReturns the byte offset into the buffer for the current frame's data. Use this for glBindBufferRange offset.- Specified by:
currentOffsetin interfaceStreamingBuffer
-
advance
public void advance()Description copied from interface:StreamingBufferAdvances to the next frame. Must be called once per frame.- Specified by:
advancein interfaceStreamingBuffer
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceStreamingBuffer
-