VTK  9.5.20250718
vtkWebGPUActor.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
3#ifndef vtkWebGPUActor_h
4#define vtkWebGPUActor_h
5
6#include "vtkActor.h"
7
8#include "vtkProperty.h" // for VTK_FLAT
9#include "vtkRenderingWebGPUModule.h" // for export macro
10#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
11
12#include <memory> // for unique_ptr
13
14VTK_ABI_NAMESPACE_BEGIN
15class vtkMatrix3x3;
19class VTKRENDERINGWEBGPU_EXPORT VTK_MARSHALAUTO vtkWebGPUActor : public vtkActor
20{
21public:
23 vtkTypeMacro(vtkWebGPUActor, vtkActor);
24 void PrintSelf(ostream& os, vtkIndent indent) override;
25
26 void ReleaseGraphicsResources(vtkWindow* window) override;
27
28 void ShallowCopy(vtkProp* other) override;
29
33 void Render(vtkRenderer* renderer, vtkMapper* mapper) override;
34
36
52
53protected:
55 ~vtkWebGPUActor() override;
56
57private:
58 // for accessing SupportsRenderBundles
59 friend class vtkWebGPURenderer;
60 // for accessing vtkWebGPUActorInternals::PopulateBindGroupLayouts
62 friend class vtkWebGPUGlyph3DMapperHelper;
63
64 vtkWebGPUActor(const vtkWebGPUActor&) = delete;
65 void operator=(const vtkWebGPUActor&) = delete;
66
67 std::unique_ptr<vtkWebGPUActorInternals> Internals;
68
75 bool SupportRenderBundles();
76 void SetId(vtkTypeUInt32 id);
77
78 bool UpdateKeyMatrices();
79
80 const void* GetCachedActorInformation();
81 static std::size_t GetCacheSizeBytes();
82
83 bool CacheActorTransforms();
84 bool CacheActorRenderOptions();
85 bool CacheActorShadeOptions();
86 bool CacheActorId();
87
88 void AllocateResources(vtkWebGPUConfiguration* renderer);
89};
90
91VTK_ABI_NAMESPACE_END
92#endif
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:151
a simple class to control print indentation
Definition vtkIndent.h:108
abstract class specifies interface to map data to graphics primitives
Definition vtkMapper.h:98
represent and manipulate 3x3 transformation matrices
abstract superclass for all actors, volumes and annotations
Definition vtkProp.h:66
abstract specification for renderers
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have opaque/translucent polygonal geometry? These methods are overridden to skip redun...
~vtkWebGPUActor() override
void Render(vtkRenderer *renderer, vtkMapper *mapper) override
Actual actor render method.
void ReleaseGraphicsResources(vtkWindow *window) override
Release any graphics resources that are being consumed by this actor.
static vtkWebGPUActor * New()
vtkTypeBool HasOpaqueGeometry() override
Does this prop have opaque/translucent polygonal geometry? These methods are overridden to skip redun...
void ShallowCopy(vtkProp *other) override
Shallow copy of an actor.
Create a webgpu device for use in rendering and compute pipelines.
Class to create and retrieve render pipelines based on a given key.
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_MARSHALAUTO