Hi, I'm trying to draw the contents of a QGLFramebufferObject onto a QDeclarativeItem. To do this, I first draw onto the FBO and then call QGLFramebufferObject::drawTexture(...) in the item's paint() method. This seems to work as expected on the desktop, but doesn't work on a device that uses OpenGL ES 2. When I call the drawTexture method, I get the following output: "drawTexture() with OpenGL ES 2 requires an active OpenGL2 paint engine". When I explicitly check, I see that the paint engine type is OpenGL2 and that it's active... but it still fails. Here's how I create, draw to and paint the fbo:
// create the frambuffer object m_frameBufferObj = new QGLFramebufferObject(width(),height(), QGLFramebufferObject::NoAttachment, // I tried playing around with Attachment types to no avail GL_TEXTURE_2D, GL_RGBA); // draw viewport contents to fbo QPainter fboPainter(m_frameBufferObj); fboPainter.beginNativePainting(); m_frameBufferObj->bind(); this->drawViewport(); m_frameBufferObj->release(); fboPainter.endNativePainting(); fboPainter.end(); // draw fbo contents to item if(qPainter->paintEngine()->type() == QPaintEngine::OpenGL2 && qPainter->paintEngine()->isActive()) { m_frameBufferObj->drawTexture(localBounds, // this is the call that fails m_frameBufferObj->texture()); } My overloaded paint() method, initialization and what I draw to the fbo (just a triangle) is here: http://pastie.org/4090279. I'd appreciate any advice on how I could get this working. Preet _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest