11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef CONTENT_BROWSER_COMPOSITOR_GPU_SURFACELESS_BROWSER_COMPOSITOR_OUTPUT_SURFACE_H_ 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define CONTENT_BROWSER_COMPOSITOR_GPU_SURFACELESS_BROWSER_COMPOSITOR_OUTPUT_SURFACE_H_ 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "content/browser/compositor/gpu_browser_compositor_output_surface.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace content { 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass BufferQueue; 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass GpuSurfacelessBrowserCompositorOutputSurface 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci : public GpuBrowserCompositorOutputSurface { 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci GpuSurfacelessBrowserCompositorOutputSurface( 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const scoped_refptr<ContextProviderCommandBuffer>& context, 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int surface_id, 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci IDMap<BrowserCompositorOutputSurface>* output_surface_map, 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const scoped_refptr<ui::CompositorVSyncManager>& vsync_manager, 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<cc::OverlayCandidateValidator> overlay_candidate_validator, 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci unsigned internalformat); 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~GpuSurfacelessBrowserCompositorOutputSurface(); 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private: 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // cc::OutputSurface implementation. 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void SwapBuffers(cc::CompositorFrame* frame) OVERRIDE; 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void OnSwapBuffersComplete() OVERRIDE; 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void BindFramebuffer() OVERRIDE; 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void Reshape(const gfx::Size& size, float scale_factor) OVERRIDE; 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool BindToClient(cc::OutputSurfaceClient* client) OVERRIDE; 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci unsigned int internalformat_; 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<BufferQueue> output_surface_; 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace content 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // CONTENT_BROWSER_COMPOSITOR_GPU_SURFACELESS_BROWSER_COMPOSITOR_OUTPUT_SURFACE_H_ 41