TachyonUI 0.1.0
High-performance UI for building tools.
Loading...
Searching...
No Matches
tachyon::RHI::RenderCommandList Class Referenceabstract

One frame's recording surface for one window. More...

#include <gui_core/graphics/gui_rhi.h>

Inheritance diagram for tachyon::RHI::RenderCommandList:

Public Member Functions

virtual ~RenderCommandList ()=default
virtual void DrawPrimitives (const GpuPipeline &pipeline, const GPUDrawPushConstants &pushConstants, uint32_t primitiveCount, uint32_t firstPrimitive, PrimitiveShape shape)=0
 Binds the pipeline and the GUI image set, pushes the constants and draws primitiveCount primitives starting at firstPrimitive, each as shape says; the vertex shader builds the vertices from the primitive.
virtual void UploadTransientBuffers (std::span< const UploadRequest > requests, std::span< DeviceAddress > addresses)=0
 Copies a batch of transient data into storage that remains valid until this command list's frame fence signals.
virtual ResidentBufferId UploadResidentBuffers (std::span< const UploadRequest > requests, std::span< DeviceAddress > addresses)=0
 Copies a batch of data into GPU memory that stays until released, for data drawn again over many frames (a cached scope's primitives).
virtual ResidentState ResidentBufferState (ResidentBufferId id) const =0
virtual void ReleaseResidentBuffer (ResidentBufferId id)=0
 Frees the buffer once no frame in flight reads it; an unknown id does nothing.

Detailed Description

One frame's recording surface for one window.

Constructor & Destructor Documentation

◆ ~RenderCommandList()

virtual tachyon::RHI::RenderCommandList::~RenderCommandList ( )
virtualdefault

Member Function Documentation

◆ DrawPrimitives()

virtual void tachyon::RHI::RenderCommandList::DrawPrimitives ( const GpuPipeline & pipeline,
const GPUDrawPushConstants & pushConstants,
uint32_t primitiveCount,
uint32_t firstPrimitive,
PrimitiveShape shape )
pure virtual

Binds the pipeline and the GUI image set, pushes the constants and draws primitiveCount primitives starting at firstPrimitive, each as shape says; the vertex shader builds the vertices from the primitive.

Implemented in tachyon::vulkan::VulkanRenderCommandList.

◆ UploadTransientBuffers()

virtual void tachyon::RHI::RenderCommandList::UploadTransientBuffers ( std::span< const UploadRequest > requests,
std::span< DeviceAddress > addresses )
pure virtual

Copies a batch of transient data into storage that remains valid until this command list's frame fence signals.

One device address is returned per request; empty requests produce address 0.

◆ UploadResidentBuffers()

virtual ResidentBufferId tachyon::RHI::RenderCommandList::UploadResidentBuffers ( std::span< const UploadRequest > requests,
std::span< DeviceAddress > addresses )
pure virtual

Copies a batch of data into GPU memory that stays until released, for data drawn again over many frames (a cached scope's primitives).

The copy is made at the start of a later frame (see ResidentBufferState); the addresses are its final ones. One address per request; empty requests produce address 0, all-empty no buffer.

◆ ResidentBufferState()

virtual ResidentState tachyon::RHI::RenderCommandList::ResidentBufferState ( ResidentBufferId id) const
pure virtual

◆ ReleaseResidentBuffer()

virtual void tachyon::RHI::RenderCommandList::ReleaseResidentBuffer ( ResidentBufferId id)
pure virtual

Frees the buffer once no frame in flight reads it; an unknown id does nothing.

Implemented in tachyon::vulkan::VulkanRenderCommandList.


The documentation for this class was generated from the following file: