On 4/05/20 1:09 pm, Thiago Macieira wrote: > On Sunday, 3 May 2020 16:48:45 PDT Glenn Ramsey wrote: >> Qt is a cross platform C++ framework and presumably its users (who are C++ >> developers and not necessarily platform experts) expect some sort of >> insulation from platform issues. In this case it is unavoidable so it would >> be a courtesy to those non-mac developers to mention in the documentation >> for >> QCocoaNativeContext that it is not a C++ header and can only be included in >> an Objective-C++ file. > > And Qt does that, so long as you're using the Qt API. But you specifically > included a "platform header" with "Cocoa" in the name. The module in question > by its very name means it's not insulating you from the underlying API. If > you'd included the GLX header, you'd have to deal with its very C-ish way of > doing things. > > They also mean you must be reading the documentation of the API in question. > And if you're reading Cocoa documentation, you'll probably have seen all > those > extra brackets that make no sense in C or C++. > > Why did you include this header?
The app I'm working on embeds Ogre3D in a Qt window. It also uses QWebEngineView, which doesn't draw anything if the embedded Ogre3D is animating. From what I can gather this is because there needs to be a shared OpenGL context (possibly another question coming about that soon). What I'm trying to do is to get an OpenGL context that I can pass to Ogre3D to set up sharing. I'm not accessing the API at all and Ogre takes the pointer to the context as a string representation of a decimal integer. If I had been attempting to actually use the NSOpenGLContext pointer that QCocoaNativeContext::context returns I would probably have needed other headers and the issue would have been more obvious. As far as I know, on the other desktop platforms, i.e. Windows and Linux, the native APIs are in C so including the relevant QtPlatformHeaders files to simply obtain a pointer should 'just work'. That is how I was thinking about it at the time. It would have saved me a bit of mental tax if there had been a note in the documentation drawing attention to the fact that this one particular header is Objective-C++. Glenn _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest