[Development] QT5 OpenGL question
Sean Harmer
sh at theharmers.co.uk
Sat Aug 3 10:48:30 CEST 2013
On 02/08/2013 22:30, Jiergir Ogoerg wrote:
> Also,
> QOpenGLFunctions doesn't have a glClear() function while being
> advertised as "The QOpenGLFunctions class provides cross-platform
> access to the OpenGL/ES 2.0 API" but GLES2.0 does have a glClear()
> function.
>
> Is it a bug?
>
> Other classes like QOpenGLFunctions_2_1 and QOpenGLFunctions_3_2_Core
> do have such a function.
QOpenGLFunctions is selective about which GL functions is exposes. I do
not know the reasoning behind the choices of functions as it was before
my time.
The QOpenGLFunctions_<MAJOR>_<MINOR>[_PROFILE] aim t be 100% complete so
if you spot any missing functions on those please report a bug. Yes, I
will be adding support for OpenGL 4.4 in Qt 5.2.0. I don't have any
concrete plans yet to add support for ES 3 as I don't have access to any
ES 3 hardware yet.
Cheers,
Sean
>
>
>
> On Fri, Aug 2, 2013 at 9:35 PM, Jiergir Ogoerg <f35f22fan at gmail.com
> <mailto:f35f22fan at gmail.com>> wrote:
>
> Thanks both of you, I see now, GL is old (1993 I guess) and it
> shows, e.g. it requires creating a context on windows before even
> being able to query GL info etc.
>
> What do you think of the new Linux GL ABI proposal from Nvidia:
> https://github.com/aritger/linux-opengl-abi-proposal
>
> I recall doing some WebGL work a month ago (I forgot about) and I
> ran into the same issue - couldn't use the same "gl" on multiple
> GL canvas on an html5 page,
> but in WebGL the function names are stripped of the "gl" prefix so
> you don't have to repeat yourself like gl.glUseProgram, just
> gl.UseProgram - with
> Qt5 I'd have to use the former, unfortunately, but not a big deal.
>
>
>
> On Fri, Aug 2, 2013 at 3:21 PM, Sean Harmer <sean.harmer at kdab.com
> <mailto:sean.harmer at kdab.com>> wrote:
>
> Hi,
>
> On Friday 02 August 2013 15:01:05 Jiergir Ogoerg wrote:
> > Thanks, but it's better to use functions wrapped in
> namespaces when it's
> > possible (for example - according to Google's C++ coding
> style) instead of
> > static methods in classes or methods of class instances or
> any other
> > solution when you can just use functions wrapped in namespaces.
> > And no, Qt5 doesn't allow using glew.
> >
> > On your later point - could you please elaborate on why you
> need the GL
> > function addresses to be context-specific? I've used
> freeglut and GLFW
> > before and never cared of had issues with this.
>
> Please see:
>
> http://www.opengl.org/wiki/Load_OpenGL_Functions
>
> and
>
> http://msdn.microsoft.com/en-us/library/windows/desktop/dd374386(v=vs.85).aspx
> <http://msdn.microsoft.com/en-us/library/windows/desktop/dd374386%28v=vs.85%29.aspx>
>
> Cheers,
>
> Sean
>
> >
> > On Fri, Aug 2, 2013 at 1:44 PM, Sean Harmer
> <sean.harmer at kdab.com <mailto:sean.harmer at kdab.com>> wrote:
> > > On Friday 02 August 2013 10:05:56 Sze Howe Koh wrote:
> > > > On 2 August 2013 08:16, Jiergir Ogoerg
> <f35f22fan at gmail.com <mailto:f35f22fan at gmail.com>> wrote:
> > > > > Hi,
> > > > > I'm willing to switch to QT5 with GL,
> > > > > afaik in Qt5 the GL functions are encapsulated into a
> class that
> > >
> > > extends
> > >
> > > > > QAbstractOpenGLFunctions and you can't use the GL
> calls outside that
> > >
> > > class
> > >
> > > > > unless you pass each time a reference to this class.
> > > > >
> > > > > Why doesn't it publish the GL functions publicly (not
> inside a class
> > > > > instance) like glew and other tools do?
> > > > >
> > > > > I'm asking because I have a lib of mine that uses GL
> calls, what
> > >
> > > should I
> > >
> > > > > do, pass an instance of OpenGLFunctions class to each
> method in the
> > >
> > > lib? -
> > >
> > > > > that's cumbersome.
> > > >
> > > > Hi,
> > > >
> > > > To answer your second question, you could use a global
> pointer to a
> > > > QOpenGLFunctions_X object -- no need to pass it as
> around as an
> > > > argument.
> > >
> > > Or set it as a member variable in that class. Or inherit
> your class from
> > > QOpenGLFunctions_blah. Or you could resolve global
> functions yourself. Or
> > > maybe use GLEW - although I've not tried that with Qt for
> a while now.
> > >
> > > The reason we have these functions on a class rather than
> globally is that
> > > the
> > > function addresses can be context-specific.
> > >
> > > Cheers,
> > >
> > > Sean
> > > --
> > > Join us in October at Qt Developer Days 2013 -
> https://devdays.kdab.com
> > >
> > > Dr Sean Harmer | sean.harmer at kdab.com
> <mailto:sean.harmer at kdab.com> | Managing Director UK
> > > Klarälvdalens Datakonsult AB, a KDAB Group company
> > > Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
> > > KDAB - Qt Experts - Platform-independent software solutions
> --
> Join us in October at Qt Developer Days 2013 -
> https://devdays.kdab.com
>
> Dr Sean Harmer | sean.harmer at kdab.com
> <mailto:sean.harmer at kdab.com> | Managing Director UK
> Klarälvdalens Datakonsult AB, a KDAB Group company
> Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
> KDAB - Qt Experts - Platform-independent software solutions
>
>
>
>
> --
> This message has been scanned for viruses and
> dangerous content by *MailScanner* <http://www.mailscanner.info/>, and is
> believed to be clean.
>
>
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130803/df889c57/attachment.html>
More information about the Development
mailing list