VTK  9.4.20250319
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
11#include <memory> // for unique_ptr
12
13VTK_ABI_NAMESPACE_BEGIN
14class vtkMatrix3x3;
18class VTKRENDERINGWEBGPU_EXPORT vtkWebGPUActor : public vtkActor
19{
20public:
22 vtkTypeMacro(vtkWebGPUActor, vtkActor);
23 void PrintSelf(ostream& os, vtkIndent indent) override;
24
25 void ReleaseGraphicsResources(vtkWindow* window) override;
26
27 void ShallowCopy(vtkProp* other) override;
28
32 void Render(vtkRenderer* renderer, vtkMapper* mapper) override;
33
35
51
52protected:
54 ~vtkWebGPUActor() override;
55
56private:
57 // for accessing SupportsRenderBundles
58 friend class vtkWebGPURenderer;
59 // for accessing vtkWebGPUActorInternals::PopulateBindGroupLayouts
61 friend class vtkWebGPUGlyph3DMapperHelper;
62
63 vtkWebGPUActor(const vtkWebGPUActor&) = delete;
64 void operator=(const vtkWebGPUActor&) = delete;
65
66 std::unique_ptr<vtkWebGPUActorInternals> Internals;
67
74 bool SupportRenderBundles();
75 void SetId(vtkTypeUInt32 id);
76
77 bool UpdateKeyMatrices();
78
79 const void* GetCachedActorInformation();
80 static std::size_t GetCacheSizeBytes();
81
82 bool CacheActorTransforms();
83 bool CacheActorRenderOptions();
84 bool CacheActorShadeOptions();
85 bool CacheActorId();
86
87 void AllocateResources(vtkWebGPUConfiguration* renderer);
88};
89
90VTK_ABI_NAMESPACE_END
91#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