149 lines
5.0 KiB
ReStructuredText
149 lines
5.0 KiB
ReStructuredText
Compiling for Universal Windows Apps
|
|
====================================
|
|
|
|
This page documents the current state of the \\"winrt\\" platform, used
|
|
to support \\"Windows Store Apps\\" for Windows 8.1, and Windows Phone
|
|
8.1 apps using Microsoft's new \\"Universal\\" APIs.
|
|
|
|
Requirements
|
|
------------
|
|
|
|
- Windows 8
|
|
- SCons (see [[Compiling for Windows]] for more details)
|
|
- Visual Studio 2013 for Windows (but *not* \\"for Windows Desktop\\").
|
|
Tested on \\"Microsoft Visual Studio Express 2013 for Windows Version
|
|
12.0.31101.00 Update 4\\".
|
|
|
|
Compiling
|
|
---------
|
|
|
|
The platform can compile binaries for both Windows 8.1 and Windows Phone
|
|
8.1. The architecture is decided by the environment variable
|
|
\\"PLATFORM\\".
|
|
|
|
Windows 8.1
|
|
~~~~~~~~~~~
|
|
|
|
\* Open a \\"VS 2013 x64 Cross Tools Command Prompt\\"
|
|
|
|
\* The value of environment variable \\"PLATFORM\\" should be \\"x64\\"
|
|
|
|
\* Run scons with platform=winrt from the root of the source tree
|
|
|
|
::
|
|
|
|
C:\\godot_source> scons platform=winrt
|
|
|
|
- You should get an executable file inside bin/ named according to your
|
|
build options, for the architecture \\"x64\\", for example
|
|
\\"godot.winrt.tools.x64.exe\\".
|
|
|
|
Windows Phone 8.1
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
\* Open a \\"Visual Studio 2012 ARM Phone Tools Command Prompt\\"
|
|
|
|
\* The value of environment variable \\"PLATFORM\\" should be \\"arm\\"
|
|
|
|
\* Run scons with platform=winrt from the root of the source tree
|
|
|
|
::
|
|
|
|
C:\\godot_source> scons platform=winrt
|
|
|
|
- You should get an executable file inside bin/ named according to your
|
|
build options, for the architecture \\"arm\\", for example
|
|
\\"godot.winrt.tools.arm.exe\\".
|
|
|
|
Running
|
|
-------
|
|
|
|
On Visual studio, create a new project using any of the \\"Unversal
|
|
App\\" templates found under Visual C++ -> Store Apps -> Universal Apps.
|
|
\\"Blank App\\" should be fine.
|
|
|
|
On the \\"Solution Explorer\\" box, you should have 3 sections,
|
|
\\"App.Windows (Windows 8.1)\\", \\"App.WindowsPhone (Windows Phone
|
|
8.1)\\" and \\"App.Shared\\". You need to add files to each section:
|
|
|
|
App.Shared
|
|
~~~~~~~~~~
|
|
|
|
- Add a folder named \\"game\\" containing your game content (can be
|
|
individual files or your data.pck). Remember to set the \\"Content\\"
|
|
property of each file to \\"True\\", otherwise your files won't get
|
|
included in the package.
|
|
|
|
App.Windows
|
|
~~~~~~~~~~~
|
|
|
|
\* Add your windows executable, and all the .dll files found on
|
|
platform/winrt/x64/bin on the godot source. Remember to also set the
|
|
\\"Content\\" property.
|
|
|
|
\* Find the file \\"Package.appxmanifest\\". Right click on it and
|
|
select \\"Open with...\\" then \\"XML (Text) Editor\\" from the list.
|
|
|
|
\* Find the \\"Application\\" section, and add (or modify) the
|
|
\\"Executable\\" property with the name of your .exe. Example:
|
|
|
|
::
|
|
|
|
App.WindowsPhone
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
- Repeat all the steps from App.Windows, using your arm executable and
|
|
the dlls found in platform/winrt/arm/bin. Remember to set the
|
|
\\"Content\\" property for all the files.
|
|
|
|
Use the green \\"Play\\" button on the top to run. The drop down menu
|
|
next to it should let you choose the project (App.Windows or
|
|
App.WindowsPhone) and the device (\\"Local Machine\\", \\"Device\\" for
|
|
an attached phone, etc).
|
|
|
|
Angle
|
|
-----
|
|
|
|
ANGLE precompiled binaries are provided on platform/winrt/x64 and
|
|
platform/winrt/arm. They are built from MSOpenTech's \\"future-dev\\"
|
|
branch, found here:
|
|
\\\ `https://github.com/MSOpenTech/angle\\ <https://github.com/MSOpenTech/angle>`__.
|
|
The visual studio 'solutions' used are found on
|
|
\\"projects/winrt/windows/angle.sln\\" and
|
|
\\"projects/winrt/windowsphone/angle.sln\\".
|
|
|
|
What's missing
|
|
--------------
|
|
|
|
- Audio
|
|
- Semaphores
|
|
- Keyboard input
|
|
- Proper handling of screen rotation
|
|
- Proper handling of other events such as focus lost, back button, etc.
|
|
- Packaging and deploying to devices from the editor.
|
|
- Adding Angle to our tree and compiling it from there. The same source
|
|
could also be used to build for Windows (and use Angle instead of
|
|
native GL, which will be more compatible with graphics hardware)
|
|
|
|
Packages
|
|
--------
|
|
|
|
This is what we know:
|
|
|
|
- App packages are documented here:
|
|
\\\ `http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh464929.aspx\\ <http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh464929.aspx>`__
|
|
- There are 2 command line tools that might be useful, \\\ `App
|
|
Packager\\ <http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh446767.aspx>`__
|
|
and
|
|
\\\ `SignTool\\ <http://msdn.microsoft.com/en-us/library/windows/apps/xaml/ff551778.aspx>`__.
|
|
- There are a bunch of tools on \\"powershell\\" that deal with
|
|
packages that might be relevant:
|
|
\\\ `http://technet.microsoft.com/library/dn448373.aspx\\ <http://technet.microsoft.com/library/dn448373.aspx>`__
|
|
- When running a Windows 8.1 app on \\"Local Machine\\" from Visual
|
|
studio, the app seems to run from an uncompressed directory on the
|
|
filesystem in an arbitrary location (ie. outside of the proper
|
|
directory where Apps are installed), but there is some special
|
|
registry entry made for it, so we know it's possible to skip the
|
|
packaging step to run locally (in the case of very big games this can
|
|
be useful).
|