8 #ifndef vtkWebGPURenderTextureDeviceResource_h
9 #define vtkWebGPURenderTextureDeviceResource_h
11 #include "vtkRenderingWebGPUModule.h"
18 VTK_ABI_NAMESPACE_BEGIN
33 void ReleaseGraphicsResources(
vtkWindow* window);
115 vtkGetMacro(LODMinClamp,
float);
116 vtkSetMacro(LODMinClamp,
float);
117 vtkGetMacro(LODMaxClamp,
float);
118 vtkSetMacro(LODMaxClamp,
float);
125 vtkGetMacro(MaxAnisotropy, vtkTypeUInt16);
126 vtkSetMacro(MaxAnisotropy, vtkTypeUInt16);
133 vtkGetMacro(SampleCount, vtkTypeUInt32);
134 vtkSetMacro(SampleCount, vtkTypeUInt32);
143 void SendToWebGPUDevice(
152 wgpu::BindGroupLayoutEntry MakeSamplerBindGroupLayoutEntry(
153 std::uint32_t binding, wgpu::ShaderStage visibility);
160 wgpu::BindGroupEntry MakeSamplerBindGroupEntry(std::uint32_t binding);
168 wgpu::BindGroupLayoutEntry MakeTextureViewBindGroupLayoutEntry(
169 std::uint32_t binding, wgpu::ShaderStage visibility);
176 wgpu::BindGroupEntry MakeTextureViewBindGroupEntry(std::uint32_t binding);
182 vtkSetStdStringFromCharMacro(Label);
184 vtkGetCharFromStdStringMacro(Label);
187 static const char* GetTextureSampleTypeString(TextureSampleType
type);
188 static wgpu::FilterMode GetWebGPUFilterMode(FilterMode
mode);
189 static wgpu::MipmapFilterMode GetWGPUMipMapFilterMode(FilterMode
mode);
190 static wgpu::AddressMode GetWebGPUAddressMode(AddressMode
mode);
191 static wgpu::SamplerBindingType GetWebGPUSamplerBindingType(SamplerMode
mode);
192 static wgpu::CompareFunction GetWebGPUCompareFunction(CompareFunction
mode);
202 AddressMode AddressModeU = AddressMode::UNDEFINED;
203 AddressMode AddressModeV = AddressMode::UNDEFINED;
204 AddressMode AddressModeW = AddressMode::UNDEFINED;
206 FilterMode MagFilter = FilterMode::UNDEFINED;
207 FilterMode MinFilter = FilterMode::UNDEFINED;
208 FilterMode MipmapFilter = FilterMode::UNDEFINED;
210 SamplerMode SamplerBindingType = SamplerMode::UNDEFINED;
211 CompareFunction CompareFunc = CompareFunction::UNDEFINED;
213 float LODMinClamp = 0.0f;
214 float LODMaxClamp = 32.0f;
215 vtkTypeUInt16 MaxAnisotropy = 1;
217 vtkTypeUInt32 SampleCount = 1;
218 vtkTypeUInt32 BaseMipLevel = 0;
222 wgpu::TextureDescriptor TextureDescriptor;
223 wgpu::Texture Texture;
224 wgpu::SamplerDescriptor SamplerDescriptor;
225 wgpu::Sampler Sampler;
226 wgpu::TextureViewDescriptor TextureViewDescriptor;
227 wgpu::TextureView TextureView;
230 VTK_ABI_NAMESPACE_END
window superclass for vtkRenderWindow
a simple class to control print indentation
Abstraction class for WebGPU textures.
topologically and geometrically regular array of data
static vtkWebGPUTextureDeviceResource * New()
vtkGetEnumMacro(Dimension, TextureDimension)
Get/set the texture dimension.
Create a webgpu device for use in rendering and compute pipelines.
vtkSetEnumMacro(Dimension, TextureDimension)
Get/set the texture dimension.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.