[Interest] Lighthouse iOS OpenGL framebuffer object problem

eike.ziller at nokia.com eike.ziller at nokia.com
Thu Jan 26 09:16:23 CET 2012


Hi,

regarding the system framebuffer problem: The uikit platform plugin solves it by subclassing QGLPaintDevice and setting m_thisFBO in its constructor to the framebuffer object that was created for the UIView's EAGLContext. The plugin is asked by the lighthouse system for its paintdevice, and returns an instance of the subclass.

"GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES"
This sounds like the creating of the framebuffer object is incorrect. Where is that done?

I have never tried to get QGLWidget running, I don't know what the interaction with the lighthouse platform plugin is in this case (it needs to ask it to create a gl context for it at least, I suppose), and it might also need fixes in Qt. I think your best course of action is to ask on the #qt-lighthouse IRC channel on irc.freenode.net for more details.

Br, Eike

--
Eike Ziller
Principal Software Engineer

Nokia, Qt Development Frameworks

Nokia gate5 GmbH
Firmensitz: Invalidenstr. 117, 10115 Berlin, Germany
Registergericht: Amtsgericht Charlottenburg, Berlin: HRB 106443 B
Umsatzsteueridentifikationsnummer: DE 812 845 193
Geschäftsführer: Dr. Michael Halbherr, Karim Tähtivuori

________________________________________
From: interest-bounces+eike.ziller=nokia.com at qt-project.org [interest-bounces+eike.ziller=nokia.com at qt-project.org] on behalf of ext Wuerfel, Hannes [Hannes.Wuerfel at student.hpi.uni-potsdam.de]
Sent: Wednesday, January 25, 2012 22:17
To: interest at qt-project.org
Subject: [Interest] Lighthouse iOS OpenGL framebuffer object problem

Hi,

I've tried the uikit from qt4.8 this week and got it finally running on simulator and device.
I've already red the post on http://labs.qt.nokia.com/2011/08/09/update-on-uikit-lighthouse-platform/ . I've succesfully built the qt opengl es 2 example for the simulator but the QtGL Widget stays black and I've got this error message: "Failed to make complete framebuffer object 8cd6". I've searched for the hex code and got "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES".

The post states: "Qt’s Open GL ES 2 code path resets the used frame buffer in between to a default value, in the unmodified case to the system frame buffer (0) – which doesn’t exist on iOS (all rendering done in FBO’s). The workaround is to override this by setting QGLPaintDevice::m_thisFBO (a protected member) in a custom subclass class and using that instead." as a possible workaround but I need some more information to actually try this out.

My Questions:
When I'm going to subclass QGLPaintDevice how do I set up the frame buffer correctly?
Which other files of the QtOpenGL module are currently using this "private" class?

What I've found out so far is that:
qgl_p.h
qglframebufferobject_p.h
qglpixelbuffer_p.h
qpaintengineex_opengl2_p.h
qpixmapdata_gl_p.h
qpixmapdata_x11gl_p.h
qwindowsurface_gl_p.h

include QGLPaintDevice.

Thanks in advance.
Best regards.
_______________________________________________
Interest mailing list
Interest at qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest



More information about the Interest mailing list