26#ifndef vtkWebGPUDeepFramebuffer_h
27#define vtkWebGPUDeepFramebuffer_h
31#include "vtkRenderingWebGPUModule.h"
37VTK_ABI_NAMESPACE_BEGIN
52 vtkGetMacro(AverageLayersPerPixel, std::uint32_t);
53 vtkSetClampMacro(AverageLayersPerPixel, std::uint32_t, 1, 64);
84 vtkGetMacro(Width,
int);
85 vtkGetMacro(Height,
int);
86 vtkGetMacro(FragmentNodeCapacity, std::uint32_t);
102 static constexpr std::uint32_t FragmentNodeSize = 28;
107 static constexpr std::uint32_t InvalidIndex = 0xFFFFFFFFu;
114 WGPUBuffer HeadPointersBuffer =
nullptr;
115 WGPUBuffer FragmentNodesBuffer =
nullptr;
116 WGPUBuffer FragmentCounterBuffer =
nullptr;
120 std::uint32_t AverageLayersPerPixel = 8;
121 std::uint32_t FragmentNodeCapacity = 0;
a simple class to control print indentation
Hold a reference to a vtkObjectBase instance.
Create a webgpu device for use in rendering and compute pipelines.
~vtkWebGPUDeepFramebuffer() override
void ReleaseGraphicsResources()
Release the buffers.
static vtkWebGPUDeepFramebuffer * New()
void SetWGPUConfiguration(vtkWebGPUConfiguration *config)
The configuration used to allocate the buffers.
bool Resize(int width, int height)
Allocate the buffers for a width x height viewport, reallocating only when the size actually changed.
void Clear()
Reset the counter to zero and every head pointer to InvalidIndex.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkWebGPUDeepFramebuffer()
WGPUBuffer GetHeadPointersBuffer()
The buffers, for binding into render and compute passes.
WGPUBuffer GetFragmentNodesBuffer()
WGPUBuffer GetFragmentCounterBuffer()