28 #ifndef vtkFrameBufferObject_h
29 #define vtkFrameBufferObject_h
32 #include "vtkRenderingOpenGL2Module.h"
68 bool Start(
int width,
int height,
bool shaderSupportsTextureInt);
69 bool StartNonOrtho(
int width,
int height,
bool shaderSupportsTextureInt);
78 void RenderQuad(
int minX,
int maxX,
int minY,
int maxY,
93 this->SetActiveBuffers(1, &index);
101 void SetActiveBuffers(
int numbuffers,
unsigned int indices[]);
115 unsigned int zslice=0);
119 void RemoveColorBuffer(
unsigned int index);
120 void RemoveAllColorBuffers();
125 void RemoveDepthBuffer();
131 vtkSetMacro(DepthBufferNeeded,
bool);
132 vtkGetMacro(DepthBufferNeeded,
bool);
141 void SetNumberOfRenderTargets(
unsigned int);
142 vtkGetMacro(NumberOfRenderTargets,
unsigned int);
148 unsigned int GetMaximumNumberOfActiveTargets();
153 unsigned int GetMaximumNumberOfRenderTargets();
157 vtkGetVector2Macro(LastSize,
int);
166 int CheckFrameBufferStatus(
unsigned int mode);
184 void CreateDepthBuffer(
int width,
int height,
unsigned int mode);
190 void CreateColorBuffers(
194 bool shaderSupportsTextureInt);
197 void DestroyDepthBuffer();
198 void DestroyColorBuffers();
201 void ActivateBuffers();
204 void DisplayFrameBufferAttachments();
207 void DisplayFrameBufferAttachment(
unsigned int uattachment);
210 void DisplayDrawBuffers();
213 void DisplayReadBuffer();
216 void DisplayBuffer(
int value);
223 bool DepthBufferNeeded;
224 bool ColorBuffersDirty;
225 unsigned int FBOIndex;
226 int PreviousFBOIndex;
227 unsigned int DepthBuffer;
228 unsigned int NumberOfRenderTargets;
230 std::vector<unsigned int> UserZSlices;
231 std::vector<vtkSmartPointer<vtkTextureObject> > UserColorBuffers;
232 std::vector<vtkSmartPointer<vtkTextureObject> > ColorBuffers;
233 std::vector<unsigned int> ActiveBuffers;
235 bool DepthBufferDirty;
abstract base class for most VTK objects
void SetActiveBuffer(unsigned int index)
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
The VertexArrayObject class uses, or emulates, vertex array objects.
abstracts an OpenGL pixel buffer object.
internal class which encapsulates OpenGL frame buffer object. Not to be used directly.
abstracts an OpenGL texture object.
create a window for renderers to draw into
vtkWeakPointer< vtkOpenGLRenderWindow > Context
The ShaderProgram uses one or more Shader objects.