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 3// found in the LICENSE file. 4 5#ifndef CONTENT_BROWSER_COMPOSITOR_GPU_SURFACELESS_BROWSER_COMPOSITOR_OUTPUT_SURFACE_H_ 6#define CONTENT_BROWSER_COMPOSITOR_GPU_SURFACELESS_BROWSER_COMPOSITOR_OUTPUT_SURFACE_H_ 7 8#include "content/browser/compositor/gpu_browser_compositor_output_surface.h" 9 10namespace content { 11 12class BufferQueue; 13 14class GpuSurfacelessBrowserCompositorOutputSurface 15 : public GpuBrowserCompositorOutputSurface { 16 public: 17 GpuSurfacelessBrowserCompositorOutputSurface( 18 const scoped_refptr<ContextProviderCommandBuffer>& context, 19 int surface_id, 20 IDMap<BrowserCompositorOutputSurface>* output_surface_map, 21 const scoped_refptr<ui::CompositorVSyncManager>& vsync_manager, 22 scoped_ptr<cc::OverlayCandidateValidator> overlay_candidate_validator, 23 unsigned internalformat); 24 virtual ~GpuSurfacelessBrowserCompositorOutputSurface(); 25 26 private: 27 // cc::OutputSurface implementation. 28 virtual void SwapBuffers(cc::CompositorFrame* frame) OVERRIDE; 29 virtual void OnSwapBuffersComplete() OVERRIDE; 30 virtual void BindFramebuffer() OVERRIDE; 31 virtual void Reshape(const gfx::Size& size, float scale_factor) OVERRIDE; 32 virtual bool BindToClient(cc::OutputSurfaceClient* client) OVERRIDE; 33 34 unsigned int internalformat_; 35 scoped_ptr<BufferQueue> output_surface_; 36}; 37 38} // namespace content 39 40#endif // CONTENT_BROWSER_COMPOSITOR_GPU_SURFACELESS_BROWSER_COMPOSITOR_OUTPUT_SURFACE_H_ 41