VTK  9.5.20251127
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
23class vtkRenderWindow;
25class VTKRENDERINGWEBGPU_EXPORT VTK_MARSHALAUTO vtkWebGPUTexture : public vtkTexture
26{
27public:
30 void PrintSelf(ostream& os, vtkIndent indent) override;
31
37 void Render(vtkRenderer* ren) override;
38
42 void Load(vtkRenderer*) override;
43
47 void PostRender(vtkRenderer*) override;
48
56
60 int GetTextureUnit() override;
61
65 int IsTranslucent() override;
66
68
69protected:
72
73private:
74 vtkWebGPUTexture(const vtkWebGPUTexture&) = delete;
75 void operator=(const vtkWebGPUTexture&) = delete;
76
77 vtkTimeStamp LoadTime;
79 int TextureIndex;
80
81 bool IsValidTextureIndex();
82 bool CanDataPlaneBeUsedDirectlyAsColors(vtkDataArray* inputScalars);
83 std::tuple<vtkWebGPURenderTextureDeviceResource::TextureDimension, std::array<unsigned int, 3>>
84 GetTextureDimensionAndSize(vtkImageData* imageData);
85 vtkWebGPURenderTextureDeviceResource::TextureFormat GetTextureFormatFromImageData(
86 int numComponents, int dataType);
87};
88VTK_ABI_NAMESPACE_END
89#endif
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:108
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.
void Render(vtkRenderer *ren) override
Renders a texture map.
static vtkWebGPUTexture * New()
window superclass for vtkRenderWindow
Definition vtkWindow.h:48
#define vtkDataArray
#define VTK_MARSHALAUTO