3#ifndef vtkWebGPUPolyDataMapper_h
4#define vtkWebGPUPolyDataMapper_h
8#include "vtkRenderingWebGPUModule.h"
12VTK_ABI_NAMESPACE_BEGIN
14class vtkTypeFloat32Array;
65 int fieldAssociation,
int componentno = -1)
override;
73 int fieldAssociation,
int componentno = -1)
override;
152 vtkTypeUInt32 Start = 0;
153 vtkTypeUInt32 NumTuples = 0;
154 vtkTypeUInt32 NumComponents = 0;
155 vtkTypeUInt32 Pad = 0;
173 bool InitializedPipeline =
false;
174 bool UpdatedPrimitiveSizes =
false;
175 bool HasPointColors =
false;
176 bool HasPointNormals =
false;
177 bool HasPointTangents =
false;
178 bool HasPointUVs =
false;
179 bool HasCellColors =
false;
180 bool HasCellNormals =
false;
207 vtkTypeUInt32 VertexCount = 0;
215 unsigned long EdgeArrayCount = 0;
abstract class specifies interface to map data
represents an object (geometry & properties) in a rendered scene
object to represent cell connectivity
abstract superclass for arrays of numeric data
a simple class to control print indentation
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
abstract superclass for all actors, volumes and annotations
abstract specification for renderers
record modification and/or execution time
wgpu::BindGroupLayout MeshAttributeBindGroupLayout
vtkTimeStamp PointCellAttributesBuildTimestamp
void ProcessSelectorPixelBuffers(vtkHardwareSelector *sel, std::vector< unsigned int > &pixeloffsets, vtkProp *prop) override
allows a mapper to update a selections color buffers Called from a prop which in turn is called from ...
bool GetSupportsSelection() override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
void SetupBindGroups(const wgpu::Device &device, vtkRenderer *renderer)
Creates bind groups for all the buffers in the MeshGeometryBuffers struct.
PrimitiveBindGroupInfo PointPrimitiveBGInfo
wgpu::BindGroup MeshAttributeBindGroup
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this mapper.
PrimitiveBindGroupInfo TrianglePrimitiveBGInfo
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void MapDataArrayToVertexAttribute(const char *vertexAttributeName, const char *dataArrayName, int fieldAssociation, int componentno=-1) override
Select a data array from the point/cell data and map it to a generic vertex attribute.
void EncodeRenderCommands(vtkRenderer *renderer, vtkActor *act, const wgpu::RenderBundleEncoder &bundleEncoder)
void RemoveAllVertexAttributeMappings() override
Remove all vertex attributes.
wgpu::ShaderModule Shader
PrimitiveBindGroupInfo LinePrimitiveBGInfo
MeshAttributeBuffers MeshSSBO
bool UpdateMeshGeometryBuffers(const wgpu::Device &device, vtkActor *actor)
void SetupPipelineLayout(const wgpu::Device &device, vtkRenderer *renderer, vtkActor *actor)
Sets up bindgroup layouts and creates a pipeline layout.
wgpu::PipelineLayout PipelineLayout
unsigned long GetExactPointBufferSize()
Enqueues a write command on the device queue for all buffers whose data is outdated.
void ShallowCopy(vtkAbstractMapper *m) override
Make a shallow copy of this mapper.
vtkWebGPUPolyDataMapper()
bool UpdateMeshIndexBuffers(const wgpu::Device &device)
void RemoveVertexAttributeMapping(const char *vertexAttributeName) override
Remove a vertex attribute mapping.
static vtkWebGPUPolyDataMapper * New()
vtkTypeFloat32Array * ComputeEdgeArray(vtkCellArray *polys)
~vtkWebGPUPolyDataMapper() override
void MapDataArrayToMultiTextureAttribute(const char *tname, const char *dataArrayName, int fieldAssociation, int componentno=-1) override
void EncodeRenderCommands(vtkRenderer *renderer, vtkActor *act, const wgpu::RenderPassEncoder &passEncoder)
bool LastScalarVisibility
std::vector< unsigned long > GetExactConnecitivityBufferSizes()
void SetupGraphicsPipeline(const wgpu::Device &device, vtkRenderer *renderer, vtkActor *actor)
Creates the graphics pipeline.
void RenderPiece(vtkRenderer *ren, vtkActor *act) override
Implemented by sub classes.
wgpu::BindGroupLayout PrimitiveBindGroupLayout
vtkTimeStamp Primitive2CellIDsBuildTimestamp
unsigned long GetExactCellBufferSize()
wgpu::Buffer AttributeDescriptorBuffer
void ComputeBounds() override
Called in GetBounds().
window superclass for vtkRenderWindow
AttributeDescriptor Positions
AttributeDescriptor CellColors
AttributeDescriptor CellNormals
AttributeDescriptor Normals
AttributeDescriptor CellEdgeArray
AttributeDescriptor Colors
AttributeDescriptor Tangents
wgpu::BindGroup BindGroup
wgpu::Buffer PrimitiveSizeBuffer
wgpu::RenderPipeline Pipeline