Warning, /graphics/krita/3rdparty/ext_googleangle/01-patches_qt5.12.12/0002-ANGLE-Add-support-for-querying-platform-device.patch is written in an unsupported language. File is not indexed.

0001 From 16ce00cdd735a4f369abfb71908c280b6cc3ab14 Mon Sep 17 00:00:00 2001
0002 From: Oliver Wolff <oliver.wolff@qt.io>
0003 Date: Wed, 22 Aug 2018 12:58:13 +0200
0004 Subject: [PATCH 02/17] ANGLE: Add support for querying platform device
0005 
0006 The EGL_EXT_device_base extension allows for querying the platform
0007 device of the graphics hardware via eglQueryDisplayAttribEXT().
0008 As that extension is not supported by ANGLE, this patch adds similar
0009 functionality to the existing eglQuerySurfacePointerANGLE API. When
0010 EGL_DEVICE_EXT is passed as the queried attribute, the underlying
0011 D3D/DXGI device pointer is passed back to the caller via the value
0012 argument.
0013 
0014 The D3D device is needed for the IDXGIDevice3::Trim() calls required by the Windows Store.
0015 
0016 Change-Id: Ib3dfd3edc47dbcc02b07f71980ba785508f2ee57
0017 ---
0018  src/libANGLE/renderer/d3d/SurfaceD3D.cpp        | 4 ++++
0019  src/libANGLE/renderer/d3d/SwapChainD3D.h        | 1 +
0020  src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 5 +++++
0021  src/libANGLE/renderer/d3d/d3d11/SwapChain11.h   | 2 ++
0022  4 files changed, 12 insertions(+)
0023 
0024 diff --git a/src/libANGLE/renderer/d3d/SurfaceD3D.cpp b/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
0025 index 6e0e2b37e..6fc42139a 100644
0026 --- a/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
0027 +++ b/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
0028 @@ -429,6 +429,10 @@ egl::Error SurfaceD3D::querySurfacePointerANGLE(EGLint attribute, void **value)
0029      {
0030          *value = mSwapChain->getKeyedMutex();
0031      }
0032 +    else if (attribute == EGL_DEVICE_EXT)
0033 +    {
0034 +        *value = mSwapChain->getDevice();
0035 +    }
0036      else
0037          UNREACHABLE();
0038  
0039 diff --git a/src/libANGLE/renderer/d3d/SwapChainD3D.h b/src/libANGLE/renderer/d3d/SwapChainD3D.h
0040 index fcbab95c8..8e4750a6d 100644
0041 --- a/src/libANGLE/renderer/d3d/SwapChainD3D.h
0042 +++ b/src/libANGLE/renderer/d3d/SwapChainD3D.h
0043 @@ -59,6 +59,7 @@ class SwapChainD3D : angle::NonCopyable
0044                              EGLint width,
0045                              EGLint height)       = 0;
0046      virtual void recreate()                      = 0;
0047 +    virtual void *getDevice() { return nullptr; }
0048  
0049      virtual RenderTargetD3D *getColorRenderTarget()        = 0;
0050      virtual RenderTargetD3D *getDepthStencilRenderTarget() = 0;
0051 diff --git a/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp b/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
0052 index 39a1f8b1f..a82b77b33 100644
0053 --- a/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
0054 +++ b/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp
0055 @@ -1049,6 +1049,11 @@ void SwapChain11::recreate()
0056      // possibly should use this method instead of reset
0057  }
0058  
0059 +void *rx::SwapChain11::getDevice()
0060 +{
0061 +    return mRenderer->getDevice();
0062 +}
0063 +
0064  RenderTargetD3D *SwapChain11::getColorRenderTarget()
0065  {
0066      return &mColorRenderTarget;
0067 diff --git a/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h b/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h
0068 index ada35b99b..9dd98462c 100644
0069 --- a/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h
0070 +++ b/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h
0071 @@ -59,6 +59,8 @@ class SwapChain11 final : public SwapChainD3D
0072      void *getKeyedMutex() override;
0073      EGLint getSamples() const { return mEGLSamples; }
0074  
0075 +    void *getDevice() override;
0076 +
0077      egl::Error getSyncValues(EGLuint64KHR *ust, EGLuint64KHR *msc, EGLuint64KHR *sbc) override;
0078  
0079    private:
0080 -- 
0081 2.24.1.windows.2
0082