VTK  9.6.20260211
vtkWebGPUTexture.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
8#ifndef vtkWebGPUTexture_h
9#define vtkWebGPUTexture_h
10
11#include "vtkTexture.h"
12
13#include "vtkRenderingWebGPUModule.h" // For export macro
14#include "vtkWeakPointer.h" // for weak pointer
15#include "vtkWebGPURenderTextureDeviceResource.h" // for vtkWebGPURenderTextureDeviceResource
16#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
17#include "vtk_wgpu.h" // for webgpu
18
19#include <array> // for std::array
20#include <tuple> // for std::tuple
21
22VTK_ABI_NAMESPACE_BEGIN
24class vtkRenderWindow;
26class VTKRENDERINGWEBGPU_EXPORT VTK_MARSHALAUTO vtkWebGPUTexture : public vtkTexture
27{
28public:
33 void PrintSelf(ostream& os, vtkIndent indent) override;
34
40 void Render(vtkRenderer* ren) override;
41
45 void Load(vtkRenderer*) override;
46
50 void PostRender(vtkRenderer*) override;
51
59
63 int GetTextureUnit() override;
64
68 int IsTranslucent() override;
69
71
72protected:
75
76private:
77 vtkWebGPUTexture(const vtkWebGPUTexture&) = delete;
78 void operator=(const vtkWebGPUTexture&) = delete;
79
80 vtkTimeStamp LoadTime;
82 int TextureIndex;
83
84 bool IsValidTextureIndex();
85 bool CanDataPlaneBeUsedDirectlyAsColors(vtkDataArray* inputScalars);
86 std::tuple<vtkWebGPURenderTextureDeviceResource::TextureDimension, std::array<unsigned int, 3>>
87 GetTextureDimensionAndSize(vtkImageData* imageData);
88 vtkWebGPURenderTextureDeviceResource::TextureFormat GetTextureFormatFromImageData(
89 int numComponents, int dataType);
90};
91#define vtkWebGPUTexture_OVERRIDE_ATTRIBUTES vtkWebGPUTexture::CreateOverrideAttributes()
92VTK_ABI_NAMESPACE_END
93#endif
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:108
Attribute for vtkObjectFactory overrides.
create a window for renderers to draw into
abstract specification for renderers
Hold a reference to a vtkObjectBase instance.
record modification and/or execution time
a weak reference to a vtkObject.
TextureFormat
RGBA8_UNORM: Uses RGB + alpha.
int GetTextureUnit() override
TODO.
vtkSmartPointer< vtkWebGPURenderTextureDeviceResource > GetDeviceResource() const
~vtkWebGPUTexture() override
void Load(vtkRenderer *) override
Implement base class method.
void PostRender(vtkRenderer *) override
Clean up after the rendering is complete.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this texture.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int IsTranslucent() override
TODO.
static vtkOverrideAttribute * CreateOverrideAttributes()
void Render(vtkRenderer *ren) override
Renders a texture map.
static vtkWebGPUTexture * New()
window superclass for vtkRenderWindow
Definition vtkWindow.h:61
#define vtkDataArray
#define VTK_MARSHALAUTO
#define VTK_NEWINSTANCE