Hi Alistair,

Great to hear that you've got so far with ANGLE integration.  I haven't yet
fully digested all the various in/outs of what will be required to get
seamless integration but it sounds like it shouldn't be too difficult to
achieve - my initial guess is that on the CMake side we could a new
OPENGL_PROFILE for ANGLE and then have CMake set up the various build
options for GLES2 and not build Graphics*Win32.

The perhaps the next step would be a GraphicsWindowANGLE implementation.

Robert.


On 10 July 2014 14:16, Alistair Baxter <[email protected]> wrote:

>  We have been developing a cross-platform tablet app using Qt Quick
> integrated with OpenSceneGraph in a similar way to that described here:
> http://qt-project.org/forums/viewthread/31277
>
>
>
> Qt 5 is available set up to use both desktop OpenGL and Google's ANGLE
> wrapper for Direct3D ( https://code.google.com/p/angleproject/ ), so I
> was interested to see if I could make OSG, and osgEarth, work in this
> environment, since I had seen ANGLE mentioned several times on this mailing
> list, but no evidence of any development with it. Qt official advice
> recommends ANGLE for the following situations:
>
>
>
> ·         You need OpenGL ES features, but not full OpenGL
>
> ·         You have a heterogeneous user base with different Windows
> versions & graphics cards
>
> ·         You do not want your user to have to install a recent graphics
> card driver
>
> ·         Your application needs to run over Windows Remote Desktop
> Protocol
>
>
>
> And in addition, it forms a step towards getting OSG going on Windows RT
> 8.1 and Windows Phone 8.1.
>
>
>
>
>
> I am pleased to report that I have both packages working with ANGLE now to
> my satisfaction, and have had it running for a few weeks now, with shaders
> and other rendering code identical between desktop Windows, iOS and
> Android. I outline here the steps I had to take so that others may follow
> my example, or that the build system issues I faced might be sorted out.
>
>
>
> I started my most recent build with the following:
>
>
>
> ·         OSG developer release 3.3.2
>
> ·         osgEarth trunk (08/07/2014)
>
> ·         Visual Studio 2013 Pro update 2
>
> ·         OSG prebuilt dependencies for VS2013
>
> ·         Qt Enterprise 5.3.1 for VS2013 32-bit, *without* Desktop OpenGL
> (I see no reason why this shouldn't work as well with Qt Open Source)
>
> ·         Sqlite and geos, built from source with VS2013 for osgEarth
>
>
>
> The process I followed was as follows
>
>
>
> ·         Using CMake Gui, Configure osg for OpenGL ES 2.0 (as per here
> http://trac.openscenegraph.org/projects/osg/wiki/Community/OpenGL-ES )
>
> ·         Set the opengl library to be libgles2 (release) and libgles2d
> (debug)
>
> ·         Set use Qt to OFF
>
> ·         Create visual studio project
>
>
>
> Then in Visual Studio
>
>
>
> ·         Remove GraphicsWindowWin32 and PixelBufferWin32 cpp files from
> the osgViewer project
>
> ·         Add to the Include Directories in the VC++ Directories section
> of all the project properties <qtdir>\ include\QtANGLE
>
> ·         Add to the Libraries Directories <qtdir>\lib (group-selecting
> all the projects in Solution Explorer makes that easier)
>
> ·         Edit the osg::getGLExtensionFuncPtr function to load
> libgles2d.dll for debug builds
>
> ·         Build the solution
>
>
>
> OsgEarth requires similar changes - set the name of the opengl es library
> appropriately in CMake, and add the include and library paths in Visual
> Studio.
>
>
>
> It was then possible to integrate osg with QT Quick's ANGLE-based OpenGL
> ES 2.0 contexts by overriding the background-drawing code of QQuickView
> using osgViewer::GraphicsWindowEmbedded.
>
>
>
>
>
> The principal remaining issue is that neither the osgviewer executable nor
> any of the examples will run, since there is no code to set up windows for
> them - that would require integration of ANGLE's version of EGL in place of
> the deleted GraphicsWindowWin32 etc. Also, this build process is not
> compatible with osgQt, but it should be able to be made compatible, since
> the old QGLWidget code should still work via ANGLE if it is made to use
> OpenGL ES 2.0 calls. I did not need any of that though, so I have not
> investigated further.
>
>
>
> Hopefully this information will be useful for anyone else who wants to use
> ANGLE on Windows with OpenSceneGraph, and it would be great if somebody who
> is sufficiently expert with CMake could fix the setup issues so that there
> was less hacking of the generated Visual Studio projects required.
>
>
>
>
>
> Alistair Baxter
> Software Engineer
> ________________________________
> Have you upgraded  FieldMove Clino to  FieldMove Clino Pro? In-app
> purchase from these app stores:
>
>  <https://itunes.apple.com/us/app/fieldmove-clino/id647463813?mt=8>
> <https://play.google.com/store/apps/details?id=com.mve.fieldmove.clino>
>
> Midland Valley Exploration Ltd.
> 2 West Regent Street
> Glasgow G2 1RW
> United Kingdom
>
> Tel:     +44 (0) 141 332 2681
> Fax:    +44 (0) 141 332 6792
>
> The structural geology experts
>
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to