Qt5 Multisampling using QOpenGLFrameBufferObject
-
I need to perform multisampling in a Qt5 project but I am not sure how to use "QOpenGLFrameBufferObject":http://http://qt-project.org/doc/qt-5.0/qopenglframebufferobject.html to perform it. There is no example on how to do this as far as I searched and the documentation only mentions: "If you want to use a framebuffer object with multisampling enabled as a texture, you first need to copy from it to a regular framebuffer object using QOpenGLContext::blitFramebuffer()." My code currently looks like this:
@//Enable FSAA for better output
int vp[4];
glGetIntegerv(GL_VIEWPORT, vp);
if(m_lpFBO == NULL)
{
//MultiSampling set to 4 now
QOpenGLFramebufferObjectFormat format;
format.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);
format.setMipmap(true);
format.setSamples(4);
format.setTextureTarget(GL_TEXTURE_2D);
format.setInternalTextureFormat(GL_RGBA32F_ARB);//Create the FBO m_lpFBO = new QOpenGLFramebufferObject(vp[2], vp[3], format); m_lpFBOSurface = new QGLFramebufferObjectSurface(m_lpFBO); } QRect rc(0, 0, vp[2], vp[3]); QGLSubsurface sub(lpPainter->currentSurface(), rc); m_lpFBO->bind(); sub.setFramebufferObject(m_lpFBO); lpPainter->pushSurface(&sub); //Draw as usual . . . lpPainter->popSurface(); //Now Copy QOpenGLFramebufferObject::blitFramebuffer(lpPainter->currentSurface()->framebufferObject(), rc, m_lpFBO, rc);
@
I am using Qt5 alpha and my development system is a Macbook pro with AMD 6600 GPU.
Thanks