VTK  9.7.1
vtkRenderPass.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
36 #ifndef vtkRenderPass_h
37 #define vtkRenderPass_h
38 
39 #include "vtkObject.h"
40 #include "vtkRenderingCoreModule.h" // For export macro
41 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
42 
43 VTK_ABI_NAMESPACE_BEGIN
45 class vtkRenderState;
46 class vtkWindow;
47 class vtkRenderer;
48 
49 class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkRenderPass : public vtkObject
50 {
51 public:
52  vtkTypeMacro(vtkRenderPass, vtkObject);
53  void PrintSelf(ostream& os, vtkIndent indent) override;
54 
60  virtual void Render(const vtkRenderState* s) = 0;
61 
63 
66  vtkGetMacro(NumberOfRenderedProps, int);
68 
74  virtual void ReleaseGraphicsResources(vtkWindow* w);
75 
76 protected:
80  vtkRenderPass();
81 
85  ~vtkRenderPass() override;
86 
92  void UpdateCamera(vtkRenderer* renderer);
93 
98  void ClearLights(vtkRenderer* renderer);
99 
104  void UpdateLightGeometry(vtkRenderer* renderer);
105 
110  void UpdateLights(vtkRenderer* renderer);
111 
116  void UpdateGeometry(vtkRenderer* renderer, vtkFrameBufferObjectBase* fbo = nullptr);
117 
124  void SetLastRenderingUsedDepthPeeling(vtkRenderer* renderer, bool value);
125 
127 
128 private:
129  vtkRenderPass(const vtkRenderPass&) = delete;
130  void operator=(const vtkRenderPass&) = delete;
131 };
132 
133 VTK_ABI_NAMESPACE_END
134 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:52
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
abstract specification for renderers
Definition: vtkRenderer.h:63
int NumberOfRenderedProps
window superclass for vtkRenderWindow
Definition: vtkWindow.h:41
Context in which a vtkRenderPass will render.
abstract interface to OpenGL FBOs
a simple class to control print indentation
Definition: vtkIndent.h:28
#define VTK_MARSHALAUTO
Perform part of the rendering of a vtkRenderer.
Definition: vtkRenderPass.h:49