#include <VFramebufferObject.h>
Public Member Functions | |
VFramebufferObject (int width, int height, unsigned int texturetype) | |
~VFramebufferObject () | |
void | init () |
void | destroy () |
void | bind () |
void | unbind () |
unsigned int | getFboHandle () |
unsigned int | getTextureHandle () |
void | saveImage (std::string filename) |
void | renderToFullScreen () |
void | renderToLowerRightQuad () |
void | renderToLowerLeftQuad () |
Static Public Member Functions | |
static void | checkFramebufferObjectStatus () |
static VProgram * | getRenderToScreenProgram () |
static bool | initialiseDevIl () |
Static Public Attributes | |
static bool | devIlInitialised = false |
Private Member Functions | |
const int | getNextPowerOfTwo (const int number) |
Private Attributes | |
unsigned int | m_FboHandle |
unsigned int | m_TextureHandle |
unsigned int | m_RenderBufferHandle |
int | m_Width |
int | m_Height |
unsigned int | m_TextureType |
Static Private Attributes | |
static VProgram | m_RenderToScreen |
static bool | m_ProgramLoaded = false |
Definition at line 12 of file VFramebufferObject.h.
VFramebufferObject::VFramebufferObject | ( | int | width, | |
int | height, | |||
unsigned int | texturetype | |||
) |
constructor with given size
Definition at line 12 of file VFramebufferObject.cpp.
References getNextPowerOfTwo(), m_Height, and m_Width.
VFramebufferObject::~VFramebufferObject | ( | ) | [inline] |
void VFramebufferObject::checkFramebufferObjectStatus | ( | ) | [static] |
static method for fbo errorchecking
Definition at line 27 of file VFramebufferObject.cpp.
VProgram * VFramebufferObject::getRenderToScreenProgram | ( | ) | [static] |
Definition at line 54 of file VFramebufferObject.cpp.
References m_ProgramLoaded, and m_RenderToScreen.
Referenced by VImage::renderToLowerRightQuad().
bool VFramebufferObject::initialiseDevIl | ( | ) | [static] |
method to initialise DevIl
Definition at line 38 of file VFramebufferObject.cpp.
Referenced by VImage::loadImage(), and saveImage().
void VFramebufferObject::init | ( | ) |
inits the FBO
Definition at line 66 of file VFramebufferObject.cpp.
References checkFramebufferObjectStatus(), m_FboHandle, m_Height, m_ProgramLoaded, m_RenderBufferHandle, m_RenderToScreen, m_TextureHandle, m_TextureType, and m_Width.
Referenced by VTransferFunction::interpolateTransferPoints(), VTransferFunction2D::interpolateTransferTriangles(), QVolRendCanvas::mousePressEvent(), QVolRendCanvas::mouseReleaseEvent(), QVolRendCanvas::paintGL(), VVolumeRenderer::resize(), and QVolRendCanvas::resizeGL().
void VFramebufferObject::destroy | ( | ) |
destroys the FBO
Definition at line 130 of file VFramebufferObject.cpp.
References m_FboHandle, and m_RenderBufferHandle.
Referenced by ~VFramebufferObject().
void VFramebufferObject::bind | ( | ) |
binds the FBO
Definition at line 141 of file VFramebufferObject.cpp.
References checkFramebufferObjectStatus(), m_FboHandle, m_Height, m_RenderBufferHandle, m_TextureHandle, and m_Width.
Referenced by VVolumeRenderer::drawBackFaces(), VVolumeRenderer::drawFrontFaces(), VTransferFunction::interpolateTransferPoints(), VTransferFunction2D::interpolateTransferTriangles(), and QVolRendCanvas::paintGL().
void VFramebufferObject::unbind | ( | ) |
unbinds the FBO
Definition at line 154 of file VFramebufferObject.cpp.
References checkFramebufferObjectStatus().
Referenced by VVolumeRenderer::drawBackFaces(), VVolumeRenderer::drawFrontFaces(), VTransferFunction::interpolateTransferPoints(), VTransferFunction2D::interpolateTransferTriangles(), and QVolRendCanvas::paintGL().
unsigned int VFramebufferObject::getFboHandle | ( | ) | [inline] |
returns the handle to the Fbo
Definition at line 67 of file VFramebufferObject.h.
References m_FboHandle.
Referenced by VTransferFunction::interpolateTransferPoints(), and VTransferFunction2D::interpolateTransferTriangles().
unsigned int VFramebufferObject::getTextureHandle | ( | ) | [inline] |
returns the handle to the Texture
Definition at line 75 of file VFramebufferObject.h.
References m_TextureHandle.
Referenced by VTransferFunction2D::getGLHandle(), VTransferFunction::getGLHandle(), VVolumeRenderer::setShaderWrapperCurvature(), VVolumeRenderer::setShaderWrapperDVR(), VVolumeRenderer::setShaderWrapperDVRbtf(), VVolumeRenderer::setShaderWrapperDVRbtftf(), VVolumeRenderer::setShaderWrapperDVRbtftf2d(), VVolumeRenderer::setShaderWrapperDVRCombMetal(), VVolumeRenderer::setShaderWrapperDVRCombMetal2f(), VVolumeRenderer::setShaderWrapperDVRCombMetalCont(), VVolumeRenderer::setShaderWrapperDVRCombMetalCont2f(), VVolumeRenderer::setShaderWrapperDVRCombMetalContShadow(), VVolumeRenderer::setShaderWrapperDVRCombMetalContShadow2f(), VVolumeRenderer::setShaderWrapperDVRCombMetalShadow(), VVolumeRenderer::setShaderWrapperDVRCombMetalShadow2f(), VVolumeRenderer::setShaderWrapperDVRCombPhong(), VVolumeRenderer::setShaderWrapperDVRCombPhongCont(), VVolumeRenderer::setShaderWrapperDVRCombPhongContShadow(), VVolumeRenderer::setShaderWrapperDVRCombPhongContShadowt2f(), VVolumeRenderer::setShaderWrapperDVRCombPhongContt2f(), VVolumeRenderer::setShaderWrapperDVRCombPhongShadow(), VVolumeRenderer::setShaderWrapperDVRCombPhongShadowt2f(), VVolumeRenderer::setShaderWrapperDVRCombPhongt2f(), VVolumeRenderer::setShaderWrapperDVRCombToon(), VVolumeRenderer::setShaderWrapperDVRCombToon2f(), VVolumeRenderer::setShaderWrapperDVRCombToonCont(), VVolumeRenderer::setShaderWrapperDVRCombToonCont2f(), VVolumeRenderer::setShaderWrapperDVRCombToonContShadow(), VVolumeRenderer::setShaderWrapperDVRCombToonContShadow2f(), VVolumeRenderer::setShaderWrapperDVRCombToonShadow(), VVolumeRenderer::setShaderWrapperDVRCombToonShadow2f(), VVolumeRenderer::setShaderWrapperDVRtf(), VVolumeRenderer::setShaderWrapperDVRtf2d(), VVolumeRenderer::setShaderWrapperMIP(), VVolumeRenderer::setShaderWrapperMIPtf(), and VVolumeRenderer::setShaderWrapperMIPtf2d().
void VFramebufferObject::saveImage | ( | std::string | filename | ) |
saves the Current Image to Disc
filename | filename of Image |
Definition at line 165 of file VFramebufferObject.cpp.
References devIlInitialised, initialiseDevIl(), m_Height, m_TextureHandle, and m_Width.
Referenced by QVolRendCanvas::saveImage().
void VFramebufferObject::renderToFullScreen | ( | ) |
renders the FBO to Fullscreen
Definition at line 207 of file VFramebufferObject.cpp.
References VProgram::bind(), VProgram::getUniformLocation(), m_RenderToScreen, and VProgram::release().
Referenced by QVolRendCanvas::paintGL().
void VFramebufferObject::renderToLowerRightQuad | ( | ) |
renders the FBO to a Lower Right Quad
Definition at line 269 of file VFramebufferObject.cpp.
References VProgram::bind(), VProgram::getUniformLocation(), m_RenderToScreen, and VProgram::release().
Referenced by VVolumeRenderer::drawBackFacesToSmallQuad(), and VTransferFunction2D::renderTest().
void VFramebufferObject::renderToLowerLeftQuad | ( | ) |
renders the FBO to a Lower Left Quad
Definition at line 238 of file VFramebufferObject.cpp.
References VProgram::bind(), VProgram::getUniformLocation(), m_RenderToScreen, and VProgram::release().
Referenced by VVolumeRenderer::drawFrontFacesToSmallQuad().
const int VFramebufferObject::getNextPowerOfTwo | ( | const int | number | ) | [inline, private] |
returns the next power of two value to a given number
number | number to computate power of 2 |
Definition at line 108 of file VFramebufferObject.h.
Referenced by VFramebufferObject().
bool VFramebufferObject::devIlInitialised = false [static] |
Bool Containing if DevIl is initialised
Definition at line 21 of file VFramebufferObject.h.
Referenced by VImage::loadImage(), and saveImage().
unsigned int VFramebufferObject::m_FboHandle [private] |
Handle to FBO.
Definition at line 116 of file VFramebufferObject.h.
Referenced by bind(), destroy(), getFboHandle(), and init().
unsigned int VFramebufferObject::m_TextureHandle [private] |
Handle to Texture.
Definition at line 119 of file VFramebufferObject.h.
Referenced by bind(), getTextureHandle(), init(), and saveImage().
unsigned int VFramebufferObject::m_RenderBufferHandle [private] |
Handle to Renderbuffer.
Definition at line 120 of file VFramebufferObject.h.
int VFramebufferObject::m_Width [private] |
Width of FBO.
Definition at line 121 of file VFramebufferObject.h.
Referenced by bind(), init(), saveImage(), and VFramebufferObject().
int VFramebufferObject::m_Height [private] |
Height of FBO.
Definition at line 122 of file VFramebufferObject.h.
Referenced by bind(), init(), saveImage(), and VFramebufferObject().
unsigned int VFramebufferObject::m_TextureType [private] |
VProgram VFramebufferObject::m_RenderToScreen [static, private] |
Program to Render To Screen.
Definition at line 125 of file VFramebufferObject.h.
Referenced by getRenderToScreenProgram(), init(), renderToFullScreen(), renderToLowerLeftQuad(), and renderToLowerRightQuad().
bool VFramebufferObject::m_ProgramLoaded = false [static, private] |
If Program is already loaded.
Definition at line 127 of file VFramebufferObject.h.
Referenced by getRenderToScreenProgram(), and init().