29 #ifndef vtkFrameBufferObject_h
30 #define vtkFrameBufferObject_h
33 #include "vtkRenderingOpenGL2Module.h"
77 bool Start(
int width,
int height,
bool shaderSupportsTextureInt);
78 bool StartNonOrtho(
int width,
int height,
bool shaderSupportsTextureInt);
91 void RenderQuad(
int minX,
int maxX,
int minY,
int maxY,
110 this->SetActiveBuffers(1, &
index);
120 void SetActiveBuffers(
int numbuffers,
unsigned int indices[]);
136 unsigned int zslice=0);
139 void RemoveColorBuffer(
unsigned int index);
140 void RemoveAllColorBuffers();
147 void RemoveDepthBuffer();
156 vtkGetMacro(DepthBufferNeeded,
bool);
167 void SetNumberOfRenderTargets(
unsigned int);
168 vtkGetMacro(NumberOfRenderTargets,
unsigned int);
176 unsigned int GetMaximumNumberOfActiveTargets();
183 unsigned int GetMaximumNumberOfRenderTargets();
189 vtkGetVector2Macro(LastSize,
int);
202 int CheckFrameBufferStatus(
unsigned int mode);
207 virtual void ReleaseGraphicsResources(
vtkWindow *win);
227 void CreateDepthBuffer(
int width,
int height,
unsigned int mode);
233 void CreateColorBuffers(
237 bool shaderSupportsTextureInt);
240 void DestroyDepthBuffer();
241 void DestroyColorBuffers();
244 void ActivateBuffers();
249 void DisplayFrameBufferAttachments();
254 void DisplayFrameBufferAttachment(
unsigned int uattachment);
259 void DisplayDrawBuffers();
264 void DisplayReadBuffer();
269 void DisplayBuffer(
int value);
276 bool DepthBufferNeeded;
277 bool ColorBuffersDirty;
278 unsigned int FBOIndex;
279 int PreviousFBOIndex;
280 unsigned int DepthBuffer;
281 unsigned int NumberOfRenderTargets;
283 std::vector<unsigned int> UserZSlices;
284 std::vector<vtkSmartPointer<vtkTextureObject> > UserColorBuffers;
285 std::vector<vtkSmartPointer<vtkTextureObject> > ColorBuffers;
286 std::vector<unsigned int> ActiveBuffers;
288 bool DepthBufferDirty;