MS Open Tech working with the ANGLE Project community to increase apps’ portability to Windows Devices

Microsoft Open Technologies is working with the ANGLE Project community to enable ANGLE in Windows Phone 8 and Windows Store apps. This will allow developers to reuse their existing OpenGL ES 2.0 code, and to apply their current skills to building apps and games for Windows devices.

ANGLE Project is an open source project which goal is to allow Windows users to run OpenGL ES 2.0 content seamlessly by translating OpenGL ES 2.0 API calls to DirectX 9 or DirectX 11.

The changes proposed by MS Open Tech developers so far consist of the following:

  • Added support to ANGLE for Windows Store Apps (WinRT) on Windows 8.0 and Windows 8.1
  • Added support to ANGLE for Windows Phone 8.0 (WP8)
  • Added preliminary support to precompile shaders for WP8 and WinRT (on Windows 8.0)
  • Added support for DirectX 11 feature levels 9_1 (WinRT) and 9_3 (WP8)
  • Support for runtime shader compilation for WinRT on Windows 8.1 was added. It is no longer necessary to include the D3DCompiler.dll with your app.
  • Project solution files for WinRT (VS2012 and VS2013) and WP8 (VS2012) were added to build ANGLE for these devices.
  • A sample project called RotatingCube was added to the samples directory to demonstrate the use of ANGLE on WinRT and WP8. Sample projects for Visual Studio 2012 and 2013 were added.

If you want to see the results of this work, the Cocos2D-X project is already leveraging ANGLE to simplify app portability to Windows Store and Windows Phone 8. You can learn more about it from our blog post.

While we work with Shannon Woods, Andrew Knight and others from the ANGLE project community to integrate these changes in the main branch of the project, you are warmly encouraged to join the discussion. Please contribute to this effort by downloading the bits from our development branch, and by offering your comments and feedback.

Dale Stammen – Software Developer – Microsoft Open Technologies, Inc.
Adalberto Foresti – Principal Program Manager – Microsoft Open Technologies, Inc.


14 thoughts on “MS Open Tech working with the ANGLE Project community to increase apps’ portability to Windows Devices

  1. I didn’t notice this before. I like the direction, but do you believe it will be possible to compile shaders in real time in WP8 and WRT devices? Having to support special cases of precompiled shaders for a platform is quite a hassle, specially given WP8 is an unpopular platform for developers.
    Also, why putting effort behind ANGLE when Microsoft already has their own WebGL implementation which does support compiling shaders in real time? Doesn’t it make more sense to just port that?

    • Hi Reduzuan, we understand the concern about precompiled shaders. However, the Windows Phone 8 app platform does not allow for runtime shaders compilation. We have added a compiler tool added to Angle that enables shaders to be precompiled.
      - Olivier

  2. Pingback: Tips and Tricks Best Practice for building your Windows Phone Game - Microsoft UK Faculty Connection - Site Home - MSDN Blogs

  3. Pingback: Tips and Tricks Best Practice for building your Windows 8 Game - Microsoft UK Faculty Connection - Site Home - MSDN Blogs

  4. Angleproject is the C/C++ engine used by chrome and firefox browsers on windows platforms to support webgl which is a javascript interface over GLESv2. It converts GLESv2 calls -including converting shader programs- to directx. You can program from C/C++ against the GLESv2 interface.
    InternetExplorer 11 -E11- supports webgl.
    Q. Is there an ‘engine’ – an interface to IE11′s GLESv2 engine – we can get from C/C++ ? That would allow us to skip angleproject.

    • Hello,

      that’s a very good news!

      I have two questions:
      - Can you please clarify what you have already contributed to the ANGLE project (as opposed to “planning to contribute”)?
      - The Windows Phone 8.1 SDK announced the support for the “online” shader compiler; will you make changes in ANGLE to support this and make ANGLE OpenGL ES compliant on WP 8.1?

      Thanks for the great work!

      • We are starting work on the Windows Phone 8,1 version of ANGLE. We will announce when it will be available. It will be great to finally have run-time shader compilation on the Phone!

  5. Hi,
    Using cocos2dx 2.2.3 version.

    I have ported a ios game to windows phone 8 – xaml. Game is running but crashes after playing some levels. i have checked it is due to out of memory. In our game we just have 40 mb of texture in which 21.2 mb has been taken by sound(wav format).

    To find the memory usage i am using following code
    long currentMemoryInBytes = Windows::Phone::System::Memory::MemoryManager::ProcessCommittedBytes;

    In the first time play its showing more than 80 mb used.
    In the second time play its showing more than 100 mb used.
    But when memory reaches to 173 Mb my app gets crashed.

    Crash memory varies with high end and low end devices. The above memory information is for nokia lumia 520.

    Calling this code to remove unsued textures helps to reduce 5-10 Mb of space.
    CCTextureCache::sharedTextureCache()->removeUnusedTextures();

    We are just postponing the release date of the game in windows phone 8.
    Expecting help ASAP

    Thanks
    Amir

  6. Hi,

    I was trying my app to work on Windows 8.1 surface. It seems to work fine, except that it uses some extensions (GL_EXT_shader_framebuffer_fetch, GL_EXT_shader_texture_lod), which seem, aren’t supported when using Angle.

    Any ideas / suggestions on how could I proceed?

    Thanks,
    Daman

  7. Pingback: My 5th weekly tech newsletter is out - Dave Voyles | Tech Evangelist at Microsoft

Leave a Reply