[osg-users] Support for Windows Universal Platform
michael kapelko
kornerr at gmail.com
Fri Apr 21 18:54:59 PDT 2017
Hi.
Will this pull request include an example? Does it work on Windows Phone?
2017-04-22 6:08 GMT+07:00 Thomas Hogarth <thomas.hogarth at gmail.com>:
> Hi
>
> So I've been tasked to add UWP/Angle support to OSG working with Chris
> Hanson. I have it pretty much working, it's rendering a cube, and just
> wanted a little guidance on a few issues before I submit any changes.
>
> So firstly to the main CMakeLists.txt file I've added a
> OSG_BUILD_PLATFORM_UWP flag, this only does one thing on the CMake side. It
> adds a preprocessor define to all targets 'OSG_UWP' this is used in the
> code to hash def out a few unsupported features.
>
> Also in the osgViewer CMake I have added support to Win32 path to set the
> Window System type, it defaults to Win32 which will behave as usual and any
> other value just doesn't add the Win32 graphics window implementation
> files. Maybe later we could add an EGL implementation but for now we just
> don't want the Win32 version and then we use setupViewerAsEmbedded.
>
> I've hash defed out the plugin loading code on Win32 for now and have
> built osg as static as it uses a few functions not available on UWP,
> however later we could get that working I think as I've got GLExtensions
> code to work with a different function for loading the dll module.
>
> OpenThreads had a few functions not available but none of them are show
> stoppers. The micoSleep function used some stuff not available so I made it
> fall back on standard sleep just as older windows versions do. You can't
> set process affinity on UWP so that function call does nothing, and you
> can't force terminate a thread, but you can cancel them so the fail safe
> terminate is just excluded.
>
> The real issue at the moment is the use of getenv. That's used in a lot of
> places and is a handy bit of code for config type stuff so I didn't really
> want to add hash defs all over the place where ever it's used. So for now I
> made a dummy implementation that just returns 0, but the only place I could
> find to put it that is included globally was in the Notify header which is
> far from ideal. Does anyone have any thoughts or feedback on where I could
> place a dummy function like that that kind of needs to be used anywhere
> without people having to add a new include?
>
> Here's an example CMake command that will generate a UWP visual studio
> project
>
> "C:/Program Files/CMake/bin/cmake.exe" ./ -G "Visual Studio 14 2015 Win64"
> -DCMAKE_SYSTEM_NAME:STRING="WindowsStore" -DCMAKE_SYSTEM_VERSION:STRING="10.0"
> ^
> -DOSG_BUILD_PLATFORM_UWP:BOOL=ON ^
> -DOPENGL_PROFILE:STRING=GLES2 ^
> -DOSG_WINDOWING_SYSTEM:STRING=NONE ^
> -DOSG_USE_UTF8_FILENAME:BOOL=ON ^
> -DDYNAMIC_OPENSCENEGRAPH:BOOL=OFF ^
> -DDYNAMIC_OPENTHREADS:BOOL=OFF ^
> -DBUILD_OSG_APPLICATIONS:BOOL=OFF ^
> -DBUILD_OSG_EXAMPLES:BOOL=OFF ^
> -DOPENGL_INCLUDE_DIR:PATH="C:/Work/AlphaPixel/osgUWP-Port/angle/include" ^
> -DOPENGL_HEADER1:STRING="#include <GLES2/gl2.h>" ^
> -DOPENGL_gl_LIBRARY:STRING="C:/Work/AlphaPixel/osgUWP-Port/
> angle/winrt/10/src/Release_x64/lib/libGLESv2.lib" ^
> -DEGL_INCLUDE_DIR:PATH="C:/Work/AlphaPixel/osgUWP-Port/angle/include" ^
> -DEGL_LIBRARY:STRING="C:/Work/AlphaPixel/osgUWP-Port/angle/
> winrt/10/src/Release_x64/lib/libEGL.lib"
>
>
> Once I have a solution to this getenv thing and done some more testing
> I'll look at doing a pull request.
>
> Thanks
> Tom
>
> PS
> It's currently in a private repo
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=70800#70800
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20170422/92776a4c/attachment-0003.htm>
More information about the osg-users
mailing list