16#ifndef vtkWebGPUSkybox_h
17#define vtkWebGPUSkybox_h
22#include "vtkRenderingWebGPUModule.h"
26VTK_ABI_NAMESPACE_BEGIN
63 std::string BuildShaderSource();
83 float CameraPosition[4];
90 alignas(16)
float RotationMatrix[12];
93 int LastProjection = -1;
94 bool LastGammaCorrect =
false;
96 wgpu::RenderPipeline Pipeline;
97 wgpu::BindGroupLayout BindGroupLayout;
98 wgpu::BindGroup BindGroup;
99 wgpu::Buffer UniformBuffer;
100 wgpu::Buffer MatrixBuffer;
101 wgpu::BindGroupLayout MatrixBindGroupLayout;
102 wgpu::BindGroup MatrixBindGroup;
103 std::string PipelineKey;
110#define vtkWebGPUSkybox_OVERRIDE_ATTRIBUTES vtkWebGPUSkybox::CreateOverrideAttributes()
a simple class to control print indentation
abstract class specifies interface to map data to graphics primitives
represent and manipulate 3x3 transformation matrices
Allocate and hold a VTK object.
Attribute for vtkObjectFactory overrides.
abstract specification for renderers
float FloorTexCoordScale[2]
Create a webgpu device for use in rendering and compute pipelines.
~vtkWebGPUSkybox() override
void ReleaseGraphicsResources(vtkWindow *window) override
Release any graphics resources that are being consumed by this skybox.
static vtkOverrideAttribute * CreateOverrideAttributes()
static vtkWebGPUSkybox * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void Render(vtkRenderer *ren, vtkMapper *mapper) override
Actual Skybox render method.
window superclass for vtkRenderWindow
vtkTypeUInt32 vtkMTimeType