[Interest] multiple displaying backends on OS X?

Thiago Macieira thiago.macieira at intel.com
Sun Jan 25 23:05:43 CET 2015


On Sunday 25 January 2015 22:21:31 René J.V. Bertin wrote:
> On Sunday January 25 2015 18:59:32 Thiago Macieira wrote:
> > It requires that the dependent libs be installed. Please consult your
> > system's documentation on how to install libxcb and stuff.
> 
> I'm that guy doing a MacPorts port of Qt 5.4, remember? :)

Yup, so consult yourself :-)

> - mkspecs/common/macx.conf has no definition for QMAKE_LIBS_X11

It shouldn't need that. We want libxcb, not libX11.

> - after adding one, X11 and enough of xcb are found using `configure -qt-xcb
> -xcb-xlib`, but the OpenGL libraries to be used remain clamped on the
> native OS X frameworks. So GLX isn't found according to configure
> (correctly so), but regardless of that conclusion glX functions are
> referenced (and not found) when linking offscreen.dylib and libqxcb.dylib.

-qt-xcb allows you to have X11 (xcb) support even without system libs.

Providing OpenGL support is a platform requirement, not Qt's.

> - Adding a definition for QMAKE_LIBS_GL=-lGL doesn't cause GLX to be
> detected 

Ensure you have libxcb-glx (which -qt-xcb doesn't provide).

> - offscreen.dylib also builds for the standard OS X build, so it
> was easy to remove the dependency on GLX

I don't see how your premise allows you to conclude your conclusion. Yes, 
offscreen compiles, but what does that have to do with GLX?

> - if I add /opt/local/lib/libGL.dylib manually to the libqxcb.dylib link 
> step, GLX functions are found, but I am still missing something else:

> > Undefined symbols for architecture x86_64:
> >   "QGenericUnixTheme::themeNames()", referenced from:
> >       QXcbIntegration::themeNames() const in qxcbintegration.o
> >   
> >   "QGenericUnixTheme::createUnixTheme(QString const&)", referenced from:
> >       QXcbIntegration::createPlatformTheme(QString const&) const in
> >       qxcbintegration.o>
> >   
> >   "vtable for QGenericUnixServices", referenced from:
> >       QXcbIntegration::QXcbIntegration(QStringList const&, int&, char**)
> >       in
> >       qxcbintegration.o>
> >   
> >   NOTE: a missing vtable usually means the first non-inline virtual member
> >   function has no definition.>
> > 
> > ld: symbol(s) not found for architecture x86_64
> > clang: error: linker command failed with exit code 1 (use -v to see
> > invocation)
> 
> I think that answers my question if the xcb platform has ever been built for
> OS X ...

Right.

> Out of curiosity: does Qt do actual OpenGL on a remote X11 display?

The GLX calls will work. The pure OpenGL ones may not work properly, depending 
on your OpenGL library.

Anyway, the question is nonsensical: you want OpenGL for hardware access 
(ostensibly for performance reasons) and you don't get that with remote X 
anyway. Any application willing to be run on a remote X11 display needs to 
figure out a software fallback on its own.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Interest mailing list