tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

NativeWindow11Win32.h (1662B)


      1 //
      2 // Copyright 2016 The ANGLE Project Authors. All rights reserved.
      3 // Use of this source code is governed by a BSD-style license that can be
      4 // found in the LICENSE file.
      5 //
      6 
      7 // NativeWindow11Win32.h: Implementation of NativeWindow11 using win32 window APIs.
      8 
      9 #ifndef LIBANGLE_RENDERER_D3D_D3D11_WIN32_NATIVEWINDOW11WIN32_H_
     10 #define LIBANGLE_RENDERER_D3D_D3D11_WIN32_NATIVEWINDOW11WIN32_H_
     11 
     12 #include "libANGLE/renderer/d3d/d3d11/NativeWindow11.h"
     13 
     14 typedef interface IDCompositionDevice IDCompositionDevice;
     15 typedef interface IDCompositionTarget IDCompositionTarget;
     16 typedef interface IDCompositionVisual IDCompositionVisual;
     17 
     18 namespace rx
     19 {
     20 
     21 class NativeWindow11Win32 : public NativeWindow11
     22 {
     23  public:
     24    NativeWindow11Win32(EGLNativeWindowType window, bool hasAlpha, bool directComposition);
     25    ~NativeWindow11Win32() override;
     26 
     27    bool initialize() override;
     28    bool getClientRect(LPRECT rect) const override;
     29    bool isIconic() const override;
     30 
     31    HRESULT createSwapChain(ID3D11Device *device,
     32                            IDXGIFactory *factory,
     33                            DXGI_FORMAT format,
     34                            UINT width,
     35                            UINT height,
     36                            UINT samples,
     37                            IDXGISwapChain **swapChain) override;
     38 
     39    void commitChange() override;
     40 
     41    static bool IsValidNativeWindow(EGLNativeWindowType window);
     42 
     43  private:
     44    bool mDirectComposition;
     45    bool mHasAlpha;
     46    IDCompositionDevice *mDevice;
     47    IDCompositionTarget *mCompositionTarget;
     48    IDCompositionVisual *mVisual;
     49 };
     50 
     51 }  // namespace rx
     52 
     53 #endif  // LIBANGLE_RENDERER_D3D_D3D11_WIN32_NATIVEWINDOW11WIN32_H_