VTK  9.7.1
vtkWebGPUShaderProperty.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
12 #ifndef vtkWebGPUShaderProperty_h
13 #define vtkWebGPUShaderProperty_h
14 
15 #include "vtkRenderingWebGPUModule.h" // For export macro
16 #include "vtkShaderProperty.h"
17 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
18 
19 VTK_ABI_NAMESPACE_BEGIN
21 
22 class VTKRENDERINGWEBGPU_EXPORT VTK_MARSHALAUTO vtkWebGPUShaderProperty : public vtkShaderProperty
23 {
24 public:
25  static vtkWebGPUShaderProperty* New();
27  static vtkOverrideAttribute* CreateOverrideAttributes();
29 
31 
39  bool, // do this replacement before the default
40  const std::string&, bool) override {};
42  bool, // do this replacement before the default
43  const std::string&, bool) override {};
45  bool, // do this replacement before the default
46  const std::string&, bool) override {};
48  bool, // do this replacement before the default
49  const std::string&, bool) override {};
51  bool, // do this replacement before the default
52  const std::string&, bool) override {};
53  int GetNumberOfShaderReplacements() override { return 0; };
55  void GetNthShaderReplacement(vtkIdType, std::string&, bool&, std::string&, bool&) override {};
56  void ClearVertexShaderReplacement(const std::string&, bool) override {};
57  void ClearFragmentShaderReplacement(const std::string&, bool) override {};
58  void ClearGeometryShaderReplacement(const std::string&, bool) override {};
59  void ClearTessControlShaderReplacement(const std::string&, bool) override {};
60  void ClearTessEvaluationShaderReplacement(const std::string&, bool) override {};
66  void ClearAllShaderReplacements() override {};
68 
69 protected:
71  ~vtkWebGPUShaderProperty() override;
72 
73 private:
75  void operator=(const vtkWebGPUShaderProperty&) = delete;
76 };
77 
78 #define vtkWebGPUShaderProperty_OVERRIDE_ATTRIBUTES \
79  vtkWebGPUShaderProperty::CreateOverrideAttributes()
80 VTK_ABI_NAMESPACE_END
81 #endif
Attribute for vtkObjectFactory overrides.
std::string GetNthShaderReplacementTypeAsString(vtkIdType) override
This function enables you to apply your own substitutions to the shader creation process.
void ClearFragmentShaderReplacement(const std::string &, bool) override
This function enables you to apply your own substitutions to the shader creation process.
void ClearTessControlShaderReplacement(const std::string &, bool) override
This function enables you to apply your own substitutions to the shader creation process.
static vtkShaderProperty * New()
Construct object with no shader replacements.
void ClearAllTessControlShaderReplacements() override
This function enables you to apply your own substitutions to the shader creation process.
int vtkIdType
Definition: vtkType.h:363
void ClearGeometryShaderReplacement(const std::string &, bool) override
This function enables you to apply your own substitutions to the shader creation process.
void ClearAllFragmentShaderReplacements() override
This function enables you to apply your own substitutions to the shader creation process.
void ClearAllVertexShaderReplacements() override
This function enables you to apply your own substitutions to the shader creation process.
void AddFragmentShaderReplacement(const std::string &, bool, const std::string &, bool) override
This function enables you to apply your own substitutions to the shader creation process.
void ClearAllShaderReplacements() override
This function enables you to apply your own substitutions to the shader creation process.
void ClearAllGeometryShaderReplacements() override
This function enables you to apply your own substitutions to the shader creation process.
represent GPU shader properties
void AddVertexShaderReplacement(const std::string &, bool, const std::string &, bool) override
This function enables you to apply your own substitutions to the shader creation process.
#define VTK_NEWINSTANCE
int GetNumberOfShaderReplacements() override
This function enables you to apply your own substitutions to the shader creation process.
void AddTessControlShaderReplacement(const std::string &, bool, const std::string &, bool) override
This function enables you to apply your own substitutions to the shader creation process.
#define VTK_MARSHALAUTO
void GetNthShaderReplacement(vtkIdType, std::string &, bool &, std::string &, bool &) override
This function enables you to apply your own substitutions to the shader creation process.
void AddTessEvaluationShaderReplacement(const std::string &, bool, const std::string &, bool) override
This function enables you to apply your own substitutions to the shader creation process.
represent GPU shader properties
void ClearVertexShaderReplacement(const std::string &, bool) override
This function enables you to apply your own substitutions to the shader creation process.
void AddGeometryShaderReplacement(const std::string &, bool, const std::string &, bool) override
This function enables you to apply your own substitutions to the shader creation process.
void ClearTessEvaluationShaderReplacement(const std::string &, bool) override
This function enables you to apply your own substitutions to the shader creation process.
void ClearAllTessEvalShaderReplacements() override
This function enables you to apply your own substitutions to the shader creation process.