| Index: gpu/ipc/service/direct_composition_child_surface_win.h | 
| diff --git a/gpu/ipc/service/direct_composition_surface_win.h b/gpu/ipc/service/direct_composition_child_surface_win.h | 
| similarity index 50% | 
| copy from gpu/ipc/service/direct_composition_surface_win.h | 
| copy to gpu/ipc/service/direct_composition_child_surface_win.h | 
| index e2121eaaca0aacec70b95e26959181bd322e08af..8d5dc5d6931570db29ab9b204a05cfbf4eda2091 100644 | 
| --- a/gpu/ipc/service/direct_composition_surface_win.h | 
| +++ b/gpu/ipc/service/direct_composition_child_surface_win.h | 
| @@ -2,38 +2,24 @@ | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|  | 
| -#ifndef GPU_IPC_SERVICE_DIRECT_COMPOSITION_SURFACE_WIN_H_ | 
| -#define GPU_IPC_SERVICE_DIRECT_COMPOSITION_SURFACE_WIN_H_ | 
| +#ifndef GPU_IPC_SERVICE_DIRECT_COMPOSITION_CHILD_SURFACE_WIN_H_ | 
| +#define GPU_IPC_SERVICE_DIRECT_COMPOSITION_CHILD_SURFACE_WIN_H_ | 
|  | 
| #include <d3d11.h> | 
| #include <dcomp.h> | 
| #include <windows.h> | 
|  | 
| -#include "base/memory/weak_ptr.h" | 
| #include "base/win/scoped_comptr.h" | 
| -#include "gpu/config/gpu_driver_bug_workarounds.h" | 
| #include "gpu/gpu_export.h" | 
| -#include "gpu/ipc/service/child_window_win.h" | 
| -#include "gpu/ipc/service/image_transport_surface_delegate.h" | 
| -#include "ui/gl/gl_image.h" | 
| #include "ui/gl/gl_surface_egl.h" | 
|  | 
| namespace gpu { | 
|  | 
| -class DCLayerTree; | 
| - | 
| -class GPU_EXPORT DirectCompositionSurfaceWin : public gl::GLSurfaceEGL { | 
| +class GPU_EXPORT DirectCompositionChildSurfaceWin : public gl::GLSurfaceEGL { | 
| public: | 
| -  DirectCompositionSurfaceWin( | 
| -      std::unique_ptr<gfx::VSyncProvider> vsync_provider, | 
| -      base::WeakPtr<ImageTransportSurfaceDelegate> delegate, | 
| -      HWND parent_window); | 
| - | 
| -  // Returns true if there's an output on the current adapter that can | 
| -  // use overlays. | 
| -  static bool AreOverlaysSupported(); | 
| - | 
| -  bool InitializeNativeWindow(); | 
| +  DirectCompositionChildSurfaceWin(const gfx::Size& size, | 
| +                                   bool has_alpha, | 
| +                                   bool enable_dc_layers); | 
|  | 
| // GLSurfaceEGL implementation. | 
| using GLSurfaceEGL::Initialize; | 
| @@ -42,44 +28,24 @@ class GPU_EXPORT DirectCompositionSurfaceWin : public gl::GLSurfaceEGL { | 
| gfx::Size GetSize() override; | 
| bool IsOffscreen() override; | 
| void* GetHandle() override; | 
| -  bool Resize(const gfx::Size& size, | 
| -              float scale_factor, | 
| -              bool has_alpha) override; | 
| gfx::SwapResult SwapBuffers() override; | 
| -  gfx::SwapResult PostSubBuffer(int x, int y, int width, int height) override; | 
| -  gfx::VSyncProvider* GetVSyncProvider() override; | 
| -  bool SetEnableDCLayers(bool enable) override; | 
| bool FlipsVertically() const override; | 
| bool SupportsPostSubBuffer() override; | 
| bool OnMakeCurrent(gl::GLContext* context) override; | 
| bool SupportsDCLayers() const override; | 
| bool SetDrawRectangle(const gfx::Rect& rect) override; | 
| gfx::Vector2d GetDrawOffset() const override; | 
| -  void WaitForSnapshotRendering() override; | 
| - | 
| -  // This schedules an overlay plane to be displayed on the next SwapBuffers | 
| -  // or PostSubBuffer call. Overlay planes must be scheduled before every swap | 
| -  // to remain in the layer tree. This surface's backbuffer doesn't have to be | 
| -  // scheduled with ScheduleDCLayer, as it's automatically placed in the layer | 
| -  // tree at z-order 0. | 
| -  bool ScheduleDCLayer(const ui::DCRendererLayerParams& params) override; | 
|  | 
| const base::win::ScopedComPtr<IDCompositionSurface>& dcomp_surface() const { | 
| return dcomp_surface_; | 
| } | 
|  | 
| -  scoped_refptr<base::TaskRunner> GetWindowTaskRunnerForTesting(); | 
| const base::win::ScopedComPtr<IDXGISwapChain1>& swap_chain() const { | 
| return swap_chain_; | 
| } | 
|  | 
| -  base::win::ScopedComPtr<IDXGISwapChain1> GetLayerSwapChainForTesting( | 
| -      size_t index) const; | 
| - | 
| -  const GpuDriverBugWorkarounds& workarounds() const { return workarounds_; } | 
| - | 
| protected: | 
| -  ~DirectCompositionSurfaceWin() override; | 
| +  ~DirectCompositionChildSurfaceWin() override; | 
|  | 
| private: | 
| void ReleaseCurrentSurface(); | 
| @@ -89,11 +55,6 @@ class GPU_EXPORT DirectCompositionSurfaceWin : public gl::GLSurfaceEGL { | 
| // to it. | 
| void ReleaseDrawTexture(bool will_discard); | 
|  | 
| -  ChildWindowWin child_window_; | 
| - | 
| -  GpuDriverBugWorkarounds workarounds_; | 
| - | 
| -  HWND window_ = nullptr; | 
| // This is a placeholder surface used when not rendering to the | 
| // DirectComposition surface. | 
| EGLSurface default_surface_ = 0; | 
| @@ -101,13 +62,11 @@ class GPU_EXPORT DirectCompositionSurfaceWin : public gl::GLSurfaceEGL { | 
| // This is the real surface representing the backbuffer. It may be null | 
| // outside of a BeginDraw/EndDraw pair. | 
| EGLSurface real_surface_ = 0; | 
| -  gfx::Size size_ = gfx::Size(1, 1); | 
| bool first_swap_ = true; | 
| -  bool enable_dc_layers_ = false; | 
| -  bool has_alpha_ = true; | 
| -  std::unique_ptr<gfx::VSyncProvider> vsync_provider_; | 
| +  const gfx::Size size_; | 
| +  const bool has_alpha_; | 
| +  const bool enable_dc_layers_; | 
| gfx::Rect swap_rect_; | 
| -  std::unique_ptr<DCLayerTree> layer_tree_; | 
| gfx::Vector2d draw_offset_; | 
|  | 
| base::win::ScopedComPtr<ID3D11Device> d3d11_device_; | 
| @@ -120,9 +79,9 @@ class GPU_EXPORT DirectCompositionSurfaceWin : public gl::GLSurfaceEGL { | 
| // to it must overwrite the entire thing. | 
| bool has_been_rendered_to_ = false; | 
|  | 
| -  DISALLOW_COPY_AND_ASSIGN(DirectCompositionSurfaceWin); | 
| +  DISALLOW_COPY_AND_ASSIGN(DirectCompositionChildSurfaceWin); | 
| }; | 
|  | 
| }  // namespace gpu | 
|  | 
| -#endif  // GPU_IPC_SERVICE_DIRECT_COMPOSITION_SURFACE_WIN_H_ | 
| +#endif  // GPU_IPC_SERVICE_DIRECT_COMPOSITION_CHILD_SURFACE_WIN_H_ | 
|  |