Visual Studio 2017用 Microsoft Angel

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 でシンボリックリンクを作成するとコードを修正することなくコンパイルできます。

2018年3月13日現在の内容です。今後の更新で不要になる可能性があります。

Windows Store App でOpenGL(OpenGLES)を使用できます。