28 #ifndef vtkFrameBufferObject_h 29 #define vtkFrameBufferObject_h 32 #include "vtkRenderingOpenGL2Module.h" 45 class VertexArrayObject;
54 void PrintSelf(ostream& os,
vtkIndent indent);
72 bool Start(
int width,
int height,
bool shaderSupportsTextureInt);
73 bool StartNonOrtho(
int width,
int height,
bool shaderSupportsTextureInt);
82 void RenderQuad(
int minX,
int maxX,
int minY,
int maxY,
97 this->SetActiveBuffers(1, &index);
105 void SetActiveBuffers(
int numbuffers,
unsigned int indices[]);
119 unsigned int zslice=0);
123 void RemoveColorBuffer(
unsigned int index);
124 void RemoveAllColorBuffers();
129 void RemoveDepthBuffer();
145 void SetNumberOfRenderTargets(
unsigned int);
152 unsigned int GetMaximumNumberOfActiveTargets();
157 unsigned int GetMaximumNumberOfRenderTargets();
170 int CheckFrameBufferStatus(
unsigned int mode);
188 void CreateDepthBuffer(
int width,
int height,
unsigned int mode);
194 void CreateColorBuffers(
198 bool shaderSupportsTextureInt);
201 void DestroyDepthBuffer();
202 void DestroyColorBuffers();
205 void ActivateBuffers();
208 void DisplayFrameBufferAttachments();
211 void DisplayFrameBufferAttachment(
unsigned int uattachment);
214 void DisplayDrawBuffers();
217 void DisplayReadBuffer();
220 void DisplayBuffer(
int value);
227 bool DepthBufferNeeded;
228 bool ColorBuffersDirty;
229 unsigned int FBOIndex;
230 int PreviousFBOIndex;
231 unsigned int DepthBuffer;
232 unsigned int NumberOfRenderTargets;
234 std::vector<unsigned int> UserZSlices;
235 std::vector<vtkSmartPointer<vtkTextureObject> > UserColorBuffers;
236 std::vector<vtkSmartPointer<vtkTextureObject> > ColorBuffers;
237 std::vector<unsigned int> ActiveBuffers;
239 bool DepthBufferDirty;
abstract base class for most VTK objects
#define vtkGetMacro(name, type)
GLsizei const GLfloat * value
void SetActiveBuffer(unsigned int index)
#define vtkTypeMacro(thisClass, superclass)
GLint GLint GLsizei GLsizei height
a simple class to control print indentation
GLint GLint GLsizei width
abstracts an OpenGL pixel buffer object.
The VertexArrayObject class uses, or emulates, vertex array objects.
GLuint GLuint GLsizei GLenum const GLvoid * indices
internal class which encapsulates OpenGL frame buffer object. Not to be used directly.
abstracts an OpenGL texture object.
#define vtkGetVector2Macro(name, type)
create a window for renderers to draw into
vtkWeakPointer< vtkOpenGLRenderWindow > Context
The ShaderProgram uses one or more Shader objects.
#define vtkSetMacro(name, type)