VTK  9.1.0
vtkRenderbuffer.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkRenderbuffer.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
22#ifndef vtkRenderbuffer_h
23#define vtkRenderbuffer_h
24
25#include "vtkObject.h"
26#include "vtkRenderingOpenGL2Module.h" // for export macro
27#include "vtkWeakPointer.h" // for render context
28
29class vtkRenderWindow;
30class vtkWindow;
31
32class VTKRENDERINGOPENGL2_EXPORT vtkRenderbuffer : public vtkObject
33{
34public:
36 vtkTypeMacro(vtkRenderbuffer, vtkObject);
37 void PrintSelf(ostream& os, vtkIndent indent) override;
38
43 static bool IsSupported(vtkRenderWindow* renWin);
44
46
49 vtkGetMacro(Handle, unsigned int);
51
53
63
68 int CreateColorAttachment(unsigned int width, unsigned int height);
69
74 int CreateDepthAttachment(unsigned int width, unsigned int height);
75
80 int Create(unsigned int format, unsigned int width, unsigned int height);
81 int Create(unsigned int format, unsigned int width, unsigned int height, unsigned int samples);
82
84
85 // resizes an existing renderbuffer
86 void Resize(unsigned int width, unsigned int height);
87
89
93 vtkGetMacro(Width, unsigned int);
94 vtkGetMacro(Height, unsigned int);
95 vtkGetMacro(Samples, unsigned int);
97
98protected:
101
103 void Alloc();
104 void Free();
105
107
108 unsigned int Width;
109 unsigned int Height;
110 unsigned int Format;
111 unsigned int Samples;
112
113private:
114 unsigned int Handle;
116
117private:
118 vtkRenderbuffer(const vtkRenderbuffer&) = delete;
119 void operator=(const vtkRenderbuffer&) = delete;
120};
121
122#endif
a simple class to control print indentation
Definition: vtkIndent.h:113
abstract base class for most VTK objects
Definition: vtkObject.h:82
create a window for renderers to draw into
Storage for FBO's.
static bool IsSupported(vtkRenderWindow *renWin)
Returns if the context supports the required extensions.
bool LoadRequiredExtensions(vtkRenderWindow *renWin)
unsigned int Samples
int CreateColorAttachment(unsigned int width, unsigned int height)
Sets up an RGBAF renderbufffer for use as a color attachment.
unsigned int Width
void ReleaseGraphicsResources(vtkWindow *win)
unsigned int Height
int Create(unsigned int format, unsigned int width, unsigned int height, unsigned int samples)
int Create(unsigned int format, unsigned int width, unsigned int height)
Sets up an renderbufffer.
unsigned int Format
void Resize(unsigned int width, unsigned int height)
vtkRenderWindow * GetContext()
Setting the context has the side affect of initializing OpenGL required extensions and allocates an O...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkRenderbuffer * New()
void SetContext(vtkRenderWindow *win)
Setting the context has the side affect of initializing OpenGL required extensions and allocates an O...
~vtkRenderbuffer() override
int CreateDepthAttachment(unsigned int width, unsigned int height)
Sets up an DEPTH renderbufffer for use as a color attachment.
a weak reference to a vtkObject.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39