45 #ifndef vtkFrameBufferObject2_h
46 #define vtkFrameBufferObject2_h
49 #include "vtkRenderingOpenGLModule.h"
60 # define vtkCheckFrameBufferStatusMacro(mode)
61 # define vtkStaticCheckFrameBufferStatusMacro(mode)
63 # define vtkCheckFrameBufferStatusMacroImpl(macro, mode) \
66 bool ok = vtkFrameBufferObject2::GetFrameBufferStatus(mode, eStr); \
70 << "OpenGL ERROR. The FBO is incomplete : " << eStr); \
73 # define vtkCheckFrameBufferStatusMacro(mode) \
74 vtkCheckFrameBufferStatusMacroImpl(vtkErrorMacro, mode)
75 # define vtkStaticCheckFrameBufferStatusMacro(mode) \
76 vtkCheckFrameBufferStatusMacroImpl(vtkGenericWarningMacro, mode)
117 void Bind(
unsigned int mode);
124 void UnBind(
unsigned int mode);
133 void SaveCurrentBindings();
143 void SaveCurrentBuffers();
144 void RestorePreviousBuffers(
unsigned int mode);
150 void AddColorAttachment(
155 void AddTexColorAttachment(
158 unsigned int handle);
160 void RemoveTexColorAttachments(
unsigned int mode,
unsigned int num);
162 { this->AddTexColorAttachment(mode, attId, 0U); }
167 void AddColorAttachment(
172 void AddRenColorAttachment(
175 unsigned int handle);
177 void RemoveRenColorAttachments(
unsigned int mode,
unsigned int num);
179 { this->AddRenColorAttachment(mode, attId, 0U); }
186 void AddTexDepthAttachment(
unsigned int mode,
unsigned int handle);
188 { this->AddTexDepthAttachment(mode, 0U); }
196 void AddRenDepthAttachment(
unsigned int mode,
unsigned int handle);
198 { this->AddRenDepthAttachment(mode, 0U); }
205 void ActivateDrawBuffer(
unsigned int id);
206 void ActivateReadBuffer(
unsigned int id);
207 void DeactivateReadBuffer();
215 void ActivateDrawBuffers(
unsigned int n);
216 void ActivateDrawBuffers(
unsigned int *ids,
int n);
217 void DeactivateDrawBuffers();
227 void InitializeViewport(
int width,
int height);
234 int CheckFrameBufferStatus(
unsigned int mode);
243 bool GetFrameBufferStatus(
258 unsigned int mapping);
330 int GetOpenGLType(
int vtkType);
unsigned int PreviousDrawBuffer
unsigned int PreviousReadFBO
void RemoveRenColorAttachment(unsigned int mode, unsigned int attId)
void RemoveRenDepthAttachment(unsigned int mode)
Directly assign/remove a renderbuffer to depth attachments.
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkWeakPointer< vtkRenderWindow > Context
a simple class to control print indentation
unsigned int PreviousReadBuffer
abstracts an OpenGL pixel buffer object.
Interface class for querying and using OpenGL extensions.
abstracts an OpenGL texture object.
create a window for renderers to draw into
unsigned int PreviousDrawFBO
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
void RemoveTexColorAttachment(unsigned int mode, unsigned int attId)
void RemoveTexDepthAttachment(unsigned int mode)
Directly assign/remove a texture/renderbuffer to depth attachments.
Interface to OpenGL framebuffer object.