4#ifndef vtkWebGPUBatchedLabeledDataMapperInternals_h
5#define vtkWebGPUBatchedLabeledDataMapperInternals_h
7#include "vtkRenderingWebGPUModule.h"
12VTK_ABI_NAMESPACE_BEGIN
64 vtkWebGPUActor* actor, std::string& vss, std::string& fss)
override;
66 vtkWebGPUActor* actor, std::string& vss, std::string& fss)
override;
68 vtkWebGPUActor* actor, std::string& vss, std::string& fss)
override;
represents an object (geometry & properties) in a rendered scene
abstract specification for renderers
void SetVertexBuffers(const wgpu::RenderPassEncoder &encoder) override
wgpu::TextureView GlyphsTextureView
void ReplaceShaderConstantsDef(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &vss, std::string &fss) override
void ReplaceVertexShaderUVs(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &vss) override
wgpu::VertexAttribute InstanceAttributes[3]
void ReplaceVertexShaderVertexId(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &vss) override
std::vector< wgpu::VertexBufferLayout > GetVertexBufferLayouts() override
wgpu::Sampler GlyphsSampler
std::vector< wgpu::BindGroupEntry > GetMeshBindGroupEntries() override
Allow subclasses to customize the entries in the bind group corresponding to GROUP_MESH.
void ReplaceVertexShaderInputDef(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &vss) override
void RenderPiece(vtkRenderer *renderer, vtkActor *actor) override
Implemented by sub classes.
void ReplaceFragmentShaderCoincidentOffset(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &fss) override
void ReplaceFragmentShaderColors(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &fss) override
std::vector< wgpu::BindGroupLayoutEntry > GetMeshBindGroupLayoutEntries() override
Allow subclasses to customize the entries in the bind group layout corresponding to GROUP_MESH.
static vtkWebGPUBatchedLabeledDataMapperInternals * New()
DrawCallArgs GetDrawCallArgs(GraphicsPipelineType pipelineType, vtkWebGPUCellToPrimitiveConverter::TopologySourceType topologySourceType) override
void ReplaceVertexShaderNormals(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &vss) override
wgpu::Texture GlyphsTexture
void ReplaceVertexShaderTangents(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &vss) override
vtkWebGPUBatchedLabeledDataMapper * Parent
void ReplaceVertexShaderPosition(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &vss) override
void ReplaceFragmentShaderLights(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &fss) override
~vtkWebGPUBatchedLabeledDataMapperInternals() override=default
void SetVertexBuffers(const wgpu::RenderBundleEncoder &encoder) override
wgpu::Buffer InstanceBuffers[NUM_INSTANCE_ATTRIBS]
void ReplaceFragmentShaderNormals(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &fss) override
void ReplaceVertexShaderColors(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &vss) override
void ReleaseGraphicsResources(vtkWindow *window) override
Release any graphics resources that are being consumed by this mapper.
void ReplaceShaderCustomBindings(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &vss, std::string &fss) override
bool IsPipelineSupported(GraphicsPipelineType pipelineType) override
Whether shaders must be built to target the specific pipeline.
DrawCallArgs GetDrawCallArgsForDrawingVertices(vtkWebGPUCellToPrimitiveConverter::TopologySourceType topologySourceType) override
void ReplaceShaderCustomDef(GraphicsPipelineType pipelineType, vtkWebGPURenderer *renderer, vtkWebGPUActor *actor, std::string &vss, std::string &fss) override
uint64_t InstanceBufferSizes[NUM_INSTANCE_ATTRIBS]
vtkWebGPUBatchedLabeledDataMapperInternals()=default
wgpu::Buffer LabelUniformBuffer
void InvalidatePipelines()
WebGPU backend for vtkBatchedLabeledDataMapper.
TopologySourceType
All supported types of topology.
Create a webgpu device for use in rendering and compute pipelines.
bool RebuildGraphicsPipelines
friend class vtkWebGPURenderer
vtkWebGPUPolyDataMapper()
GraphicsPipelineType
This mapper uses different wgpu::RenderPipeline to render a list of primitives.
window superclass for vtkRenderWindow