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;
void SetActiveBuffer(unsigned int index)
Choose the buffers to render into.
window superclass for vtkRenderWindow
abstract interface to OpenGL FBOs
a simple class to control print indentation
The VertexArrayObject class uses, or emulates, vertex array objects.
abstracts an OpenGL pixel buffer object.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
internal class which encapsulates OpenGL frame buffer object.
abstracts an OpenGL texture object.
create a window for renderers to draw into
vtkWeakPointer< vtkOpenGLRenderWindow > Context
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkGenericOpenGLResourceFreeCallback * ResourceCallback
The ShaderProgram uses one or more Shader objects.