Patch ANGLE to support WinRT
authorAndrew Knight <andrew.knight@digia.com>
Thu, 25 Apr 2013 11:42:41 +0000 (14:42 +0300)
committerOliver Wolff <oliver.wolff@digia.com>
Mon, 2 Sep 2013 11:43:02 +0000 (13:43 +0200)
commit2c76807a3870143db30c8873469536f2924a5637
treebb44edf50e3587619dc9cff27aede4a9a1b83e3a
parent2ee98ab0f6a8f33b98c17a69b4e1841c951592bd
Patch ANGLE to support WinRT

By adding WinRT handle types to libEGL and updating some codepaths to use
Direct3D 11.1, it is possible to run OpenGL ES in WinRT via ANGLE.
Changes remain compatible with desktop ANGLE.
- WinRT native handles added to eglplatform.h
- References to native handles in libEGL/libGLESv2 follow eglplatform.h
- D3D11 structures and methods used when necessary
- TLS replaced with thread attribute
- LocalAlloc/Free replaced with Heap API

WinRT apps should be able to link to libEGL/libGLESv2 and use OpenGL ES2
APIs (but not the Qt OpenGL APIs, as the platform support is not
included in this commit), but it is required that libEGL(d).dll,
libGLESv2(d).dll, and d3dcompiler_46.dll are included in the application
package.

Change-Id: Ia90377e700d335a1c569c2145008dd4b0dfd84d3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
29 files changed:
mkspecs/common/winrt_winphone/qmake.conf
mkspecs/winphone-arm-msvc2012/D3Dcompiler.h [new file with mode: 0644]
mkspecs/winphone-x86-msvc2012/D3Dcompiler.h [new file with mode: 0644]
src/3rdparty/angle/include/EGL/eglplatform.h
src/3rdparty/angle/src/compiler/osinclude.h
src/3rdparty/angle/src/compiler/ossource_posix.cpp
src/3rdparty/angle/src/compiler/ossource_win.cpp
src/3rdparty/angle/src/libEGL/Display.cpp
src/3rdparty/angle/src/libEGL/Display.h
src/3rdparty/angle/src/libEGL/Surface.cpp
src/3rdparty/angle/src/libEGL/Surface.h
src/3rdparty/angle/src/libEGL/libEGL.cpp
src/3rdparty/angle/src/libEGL/main.cpp
src/3rdparty/angle/src/libGLESv2/main.cpp
src/3rdparty/angle/src/libGLESv2/precompiled.h
src/3rdparty/angle/src/libGLESv2/renderer/Fence11.cpp
src/3rdparty/angle/src/libGLESv2/renderer/Query11.cpp
src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
src/3rdparty/angle/src/libGLESv2/renderer/Renderer.h
src/3rdparty/angle/src/libGLESv2/renderer/Renderer11.cpp
src/3rdparty/angle/src/libGLESv2/renderer/Renderer11.h
src/3rdparty/angle/src/libGLESv2/renderer/SwapChain.h
src/3rdparty/angle/src/libGLESv2/renderer/SwapChain11.cpp
src/3rdparty/angle/src/libGLESv2/renderer/SwapChain11.h
src/3rdparty/angle/src/libGLESv2/utilities.cpp
src/angle/patches/0010-Patch-ANGLE-to-support-WinRT.patch [new file with mode: 0644]
src/angle/src/common/common.pri
src/angle/src/config.pri
src/angle/src/libGLESv2/libGLESv2.pro