| OLD | NEW | 
|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef COMPONENTS_MUS_PUBLIC_CPP_OUTPUT_SURFACE_H_ | 5 #ifndef COMPONENTS_MUS_PUBLIC_CPP_OUTPUT_SURFACE_H_ | 
| 6 #define COMPONENTS_MUS_PUBLIC_CPP_OUTPUT_SURFACE_H_ | 6 #define COMPONENTS_MUS_PUBLIC_CPP_OUTPUT_SURFACE_H_ | 
| 7 | 7 | 
| 8 #include "base/macros.h" | 8 #include "base/macros.h" | 
| 9 #include "cc/output/output_surface.h" | 9 #include "cc/output/output_surface.h" | 
| 10 #include "cc/surfaces/surface_id.h" | 10 #include "cc/surfaces/surface_id.h" | 
| 11 #include "components/mus/public/cpp/window_surface.h" | 11 #include "components/mus/public/cpp/window_surface.h" | 
| 12 #include "components/mus/public/cpp/window_surface_client.h" | 12 #include "components/mus/public/cpp/window_surface_client.h" | 
| 13 #include "mojo/public/cpp/bindings/binding.h" | 13 #include "mojo/public/cpp/bindings/binding.h" | 
| 14 | 14 | 
| 15 namespace mus { | 15 namespace mus { | 
| 16 | 16 | 
| 17 class OutputSurface : public cc::OutputSurface, public WindowSurfaceClient { | 17 class OutputSurface : public cc::OutputSurface, public WindowSurfaceClient { | 
| 18  public: | 18  public: | 
| 19   OutputSurface(const scoped_refptr<cc::ContextProvider>& context_provider, | 19   OutputSurface(const scoped_refptr<cc::ContextProvider>& context_provider, | 
| 20                 std::unique_ptr<WindowSurface> surface); | 20                 std::unique_ptr<WindowSurface> surface); | 
| 21   ~OutputSurface() override; | 21   ~OutputSurface() override; | 
| 22 | 22 | 
| 23   // cc::OutputSurface implementation. | 23   // cc::OutputSurface implementation. | 
| 24   void SwapBuffers(cc::CompositorFrame* frame) override; | 24   void SwapBuffers(cc::CompositorFrame* frame) override; | 
| 25   bool BindToClient(cc::OutputSurfaceClient* client) override; | 25   bool BindToClient(cc::OutputSurfaceClient* client) override; | 
| 26   void DetachFromClient() override; | 26   void DetachFromClient() override; | 
|  | 27   void BindFramebuffer() override; | 
|  | 28   uint32_t GetFramebufferCopyTextureFormat() override; | 
| 27 | 29 | 
| 28  private: | 30  private: | 
| 29   // WindowSurfaceClient implementation: | 31   // WindowSurfaceClient implementation: | 
| 30   void OnResourcesReturned( | 32   void OnResourcesReturned( | 
| 31       WindowSurface* surface, | 33       WindowSurface* surface, | 
| 32       mojo::Array<cc::ReturnedResource> resources) override; | 34       mojo::Array<cc::ReturnedResource> resources) override; | 
| 33 | 35 | 
| 34   void SwapBuffersComplete(); | 36   void SwapBuffersComplete(); | 
| 35 | 37 | 
| 36   std::unique_ptr<WindowSurface> surface_; | 38   std::unique_ptr<WindowSurface> surface_; | 
| 37 | 39 | 
| 38   DISALLOW_COPY_AND_ASSIGN(OutputSurface); | 40   DISALLOW_COPY_AND_ASSIGN(OutputSurface); | 
| 39 }; | 41 }; | 
| 40 | 42 | 
| 41 }  // namespace mus | 43 }  // namespace mus | 
| 42 | 44 | 
| 43 #endif  // COMPONENTS_MUS_PUBLIC_CPP_OUTPUT_SURFACE_H_ | 45 #endif  // COMPONENTS_MUS_PUBLIC_CPP_OUTPUT_SURFACE_H_ | 
| OLD | NEW | 
|---|