VTK  9.6.20260211
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;
20class VTKRENDERINGWEBGPU_EXPORT VTK_MARSHALAUTO vtkWebGPUActor : public vtkActor
21{
22public:
26 vtkTypeMacro(vtkWebGPUActor, vtkActor);
27 void PrintSelf(ostream& os, vtkIndent indent) override;
28
29 void ReleaseGraphicsResources(vtkWindow* window) override;
30
31 void ShallowCopy(vtkProp* other) override;
32
36 void Render(vtkRenderer* renderer, vtkMapper* mapper) override;
37
39
55
56protected:
58 ~vtkWebGPUActor() override;
59
60private:
61 // for accessing SupportsRenderBundles
62 friend class vtkWebGPURenderer;
63 // for accessing vtkWebGPUActorInternals::PopulateBindGroupLayouts
66
67 vtkWebGPUActor(const vtkWebGPUActor&) = delete;
68 void operator=(const vtkWebGPUActor&) = delete;
69
70 std::unique_ptr<vtkWebGPUActorInternals> Internals;
71
78 bool SupportRenderBundles();
79 void SetId(vtkTypeUInt32 id);
80
81 bool UpdateKeyMatrices();
82
83 const void* GetCachedActorInformation();
84 static std::size_t GetCacheSizeBytes();
85
86 bool CacheActorTransforms();
87 bool CacheActorRenderOptions();
88 bool CacheActorShadeOptions();
89 bool CacheActorId();
90
91 bool NeedToRecreateBindGroups();
92 void CreateBindGroups(vtkWebGPUConfiguration* wgpuConfiguration);
93};
94
95#define vtkWebGPUActor_OVERRIDE_ATTRIBUTES vtkWebGPUActor::CreateOverrideAttributes()
96VTK_ABI_NAMESPACE_END
97#endif
a simple class to control print indentation
Definition vtkIndent.h:108
abstract class specifies interface to map data to graphics primitives
Definition vtkMapper.h:97
represent and manipulate 3x3 transformation matrices
Attribute for vtkObjectFactory overrides.
abstract specification for renderers
friend class vtkWebGPUGlyph3DMapperHelper
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
friend class vtkWebGPURenderer
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have opaque/translucent polygonal geometry?
~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 vtkOverrideAttribute * CreateOverrideAttributes()
friend class vtkWebGPUPolyDataMapper
static vtkWebGPUActor * New()
vtkTypeBool HasOpaqueGeometry() override
Does this prop have opaque/translucent polygonal geometry?
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:61
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_MARSHALAUTO
#define VTK_NEWINSTANCE