Visual Studio 2017用に Microsoft Angel (https://github.com/Microsoft/angle) を修正したものを公開しました。
https://github.com/setokynet/vs2017-winrt-angel_opengl
- slnファイルの ToolsVersion を14.0から15.0に変更
- WindowsTargetPlatformMinVersion を10.0.10240.0 から 10.0.10586.0に変更
CoreWindowNativeWindow.cpp を次のように変更しました。
static float GetLogicalDpi() { // ComPtr<ABI::Windows::Graphics::Display::IDisplayPropertiesStatics> displayProperties; ComPtr<ABI::Windows::Graphics::Display::IDisplayInformation> displayProperties; // if (SUCCEEDED(GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayProperties).Get(), displayProperties.GetAddressOf()))) if (SUCCEEDED(GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayInformation).Get(), displayProperties.GetAddressOf()))) { float dpi = 96.0f; if (SUCCEEDED(displayProperties->get_LogicalDpi(&dpi))) { return dpi; } } // Return 96 dpi as a default if display properties cannot be obtained. return 96.0f; }
IDisplayPropertiesStaticsとDisplayPropertiesStatics は Windows Phone 8.1 対応が必要となり、Winrt(UWP)では使用できないためIDisplayInformationとDisplayInformationに変更しました。コードの変数はdisplaypropertiesのまま変更していません。
github.com/setokynet/vs2017-winrt-angel_opengl にはCoreWindowNativeWindow.cppは含まれていません。angle-ms-master\src\libANGLE\renderer\d3d\d3d11\winrt\CoreWindowNativeWindow.cpp のGetLogicalDpi()を修正してください。
#include “id/commit.h” が含まれていてコンパイルできない場合、mklink /D /J angle-ms-master\src\id angle-ms-master\src でシンボリックリンクを作成するとコードを修正することなくコンパイルできます。