#1355 WinRT support (Metro style applications for Win8)

Byatis
closed-fixed
nobody
5
2012-12-24
2012-01-03
Eugene Golushkov
No

Hello. My company (www.belightsoft.com) begin porting our product (Live Interior 3D) from Mac to Win8 Metro style. As many Win32 API are not available for such applications, Ogre must be tweaked to work in such environment, or it will not pass validation process for Windows Store.

Here http://www.ogre3d.org/forums/viewtopic.php?f=1&t=67913&p=447694#p447694 is related topic, but I repeat my action plan here:

1. Build Ogre with #define WINAPI_FAMILY 2 using subset of Win32 that is allowed for Metro-style apps. Fix/re-implement/exclude from build Timer, ErrorDialog, ConfigDialog, WindowEventUtilities, DynLib.
2. Tweak RenderSystem_Direct3D11 to work over ICoreWindow as well as over HWND. This must be made via #ifdefs to avoid unavailable API usage, but in all other aspects Direct3D11.1 is similar to Direct3D11.
3. Rebuild Ogre`s dependencies with #define WINAPI_FAMILY 2, build simple sample application and check with Windows App Cert Kit that nobody uses forbidden API and sample application is "Windows Store clean".
4. After Win8 beta1 in late Feb 2012 investigate and add support for Direct3D/XAML mixed mode, i.e. not fullscreen applications.

Patch with modifications for first step (OgreMain) is attached. Would you mind making me the part of the team with commit rights to move through this schedule?

With best regards,
Eugene Golushkov
eugene@belightsoft.com

Discussion

  • I added missing implementations for error and config dialogs as well as two fixes that remove unavailable D3DX calls from Direct3D 11 render system.

     
    • milestone: --> Byatis
     
  • If it`s not clear, Win32 implementation is almost not affected by all this work. WinRT support is (and should be) added as separate OGRE_PLATFORM_WINRT, and it replaces incompatible parts of Win32 implementation with #ifdef-s

     
    • priority: 5 --> 9
     
    • priority: 9 --> 5
    • status: open --> open-accepted
     
  • Murat Sari
    Murat Sari
    2012-12-24

    • status: open-accepted --> closed-fixed