| Index: cc/output/output_surface.cc | 
| diff --git a/cc/output/output_surface.cc b/cc/output/output_surface.cc | 
| deleted file mode 100644 | 
| index 630019e61ecbb58f0ec0ca378cca740bb906417e..0000000000000000000000000000000000000000 | 
| --- a/cc/output/output_surface.cc | 
| +++ /dev/null | 
| @@ -1,250 +0,0 @@ | 
| -// Copyright (c) 2013 The Chromium Authors. All rights reserved. | 
| -// Use of this source code is governed by a BSD-style license that can be | 
| -// found in the LICENSE file. | 
| - | 
| -#include "cc/output/output_surface.h" | 
| - | 
| -#include "base/bind.h" | 
| -#include "base/message_loop/message_loop.h" | 
| -#include "base/trace_event/trace_event.h" | 
| -#include "cc/output/output_surface_client.h" | 
| -#include "gpu/GLES2/gl2extchromium.h" | 
| -#include "gpu/command_buffer/client/gles2_interface.h" | 
| -#include "ui/gfx/geometry/rect.h" | 
| -#include "ui/gfx/geometry/size.h" | 
| - | 
| - | 
| -namespace cc { | 
| - | 
| -OutputSurface::OutputSurface( | 
| -    const scoped_refptr<ContextProvider>& context_provider, | 
| -    const scoped_refptr<ContextProvider>& worker_context_provider, | 
| -    scoped_ptr<SoftwareOutputDevice> software_device) | 
| -    : client_(NULL), | 
| -      context_provider_(context_provider), | 
| -      worker_context_provider_(worker_context_provider), | 
| -      software_device_(software_device.Pass()), | 
| -      device_scale_factor_(-1), | 
| -      external_stencil_test_enabled_(false), | 
| -      weak_ptr_factory_(this) { | 
| -} | 
| - | 
| -OutputSurface::OutputSurface( | 
| -    const scoped_refptr<ContextProvider>& context_provider) | 
| -    : OutputSurface(context_provider, nullptr, nullptr) { | 
| -} | 
| - | 
| -OutputSurface::OutputSurface( | 
| -    const scoped_refptr<ContextProvider>& context_provider, | 
| -    const scoped_refptr<ContextProvider>& worker_context_provider) | 
| -    : OutputSurface(context_provider, worker_context_provider, nullptr) { | 
| -} | 
| - | 
| -OutputSurface::OutputSurface(scoped_ptr<SoftwareOutputDevice> software_device) | 
| -    : OutputSurface(nullptr, nullptr, software_device.Pass()) { | 
| -} | 
| - | 
| -OutputSurface::OutputSurface( | 
| -    const scoped_refptr<ContextProvider>& context_provider, | 
| -    scoped_ptr<SoftwareOutputDevice> software_device) | 
| -    : OutputSurface(context_provider, nullptr, software_device.Pass()) { | 
| -} | 
| - | 
| -void OutputSurface::CommitVSyncParameters(base::TimeTicks timebase, | 
| -                                          base::TimeDelta interval) { | 
| -  TRACE_EVENT2("cc", | 
| -               "OutputSurface::CommitVSyncParameters", | 
| -               "timebase", | 
| -               (timebase - base::TimeTicks()).InSecondsF(), | 
| -               "interval", | 
| -               interval.InSecondsF()); | 
| -  client_->CommitVSyncParameters(timebase, interval); | 
| -} | 
| - | 
| -// Forwarded to OutputSurfaceClient | 
| -void OutputSurface::SetNeedsRedrawRect(const gfx::Rect& damage_rect) { | 
| -  TRACE_EVENT0("cc", "OutputSurface::SetNeedsRedrawRect"); | 
| -  client_->SetNeedsRedrawRect(damage_rect); | 
| -} | 
| - | 
| -void OutputSurface::ReclaimResources(const CompositorFrameAck* ack) { | 
| -  client_->ReclaimResources(ack); | 
| -} | 
| - | 
| -void OutputSurface::DidLoseOutputSurface() { | 
| -  TRACE_EVENT0("cc", "OutputSurface::DidLoseOutputSurface"); | 
| -  client_->DidLoseOutputSurface(); | 
| -} | 
| - | 
| -void OutputSurface::SetExternalStencilTest(bool enabled) { | 
| -  external_stencil_test_enabled_ = enabled; | 
| -} | 
| - | 
| -void OutputSurface::SetExternalDrawConstraints( | 
| -    const gfx::Transform& transform, | 
| -    const gfx::Rect& viewport, | 
| -    const gfx::Rect& clip, | 
| -    const gfx::Rect& viewport_rect_for_tile_priority, | 
| -    const gfx::Transform& transform_for_tile_priority, | 
| -    bool resourceless_software_draw) { | 
| -  client_->SetExternalDrawConstraints(transform, | 
| -                                      viewport, | 
| -                                      clip, | 
| -                                      viewport_rect_for_tile_priority, | 
| -                                      transform_for_tile_priority, | 
| -                                      resourceless_software_draw); | 
| -} | 
| - | 
| -OutputSurface::~OutputSurface() { | 
| -  ResetContext3d(); | 
| -} | 
| - | 
| -bool OutputSurface::HasExternalStencilTest() const { | 
| -  return external_stencil_test_enabled_; | 
| -} | 
| - | 
| -bool OutputSurface::BindToClient(OutputSurfaceClient* client) { | 
| -  DCHECK(client); | 
| -  client_ = client; | 
| -  bool success = true; | 
| - | 
| -  if (context_provider_.get()) { | 
| -    success = context_provider_->BindToCurrentThread(); | 
| -    if (success) | 
| -      SetUpContext3d(); | 
| -  } | 
| - | 
| -  if (success && worker_context_provider_.get()) { | 
| -    success = worker_context_provider_->BindToCurrentThread(); | 
| -    if (success) { | 
| -      worker_context_provider_->SetupLock(); | 
| -      // The destructor resets the context lost callback, so base::Unretained | 
| -      // is safe, as long as the worker threads stop using the context before | 
| -      // the output surface is destroyed. | 
| -      worker_context_provider_->SetLostContextCallback(base::Bind( | 
| -          &OutputSurface::DidLoseOutputSurface, base::Unretained(this))); | 
| -    } | 
| -  } | 
| - | 
| -  if (!success) | 
| -    client_ = NULL; | 
| - | 
| -  return success; | 
| -} | 
| - | 
| -bool OutputSurface::InitializeAndSetContext3d( | 
| -    scoped_refptr<ContextProvider> context_provider, | 
| -    scoped_refptr<ContextProvider> worker_context_provider) { | 
| -  DCHECK(!context_provider_.get()); | 
| -  DCHECK(context_provider.get()); | 
| -  DCHECK(client_); | 
| - | 
| -  bool success = context_provider->BindToCurrentThread(); | 
| -  if (success) { | 
| -    context_provider_ = context_provider; | 
| -    SetUpContext3d(); | 
| -  } | 
| -  if (success && worker_context_provider.get()) { | 
| -    success = worker_context_provider->BindToCurrentThread(); | 
| -    if (success) { | 
| -      worker_context_provider_ = worker_context_provider; | 
| -      // The destructor resets the context lost callback, so base::Unretained | 
| -      // is safe, as long as the worker threads stop using the context before | 
| -      // the output surface is destroyed. | 
| -      worker_context_provider_->SetLostContextCallback(base::Bind( | 
| -          &OutputSurface::DidLoseOutputSurface, base::Unretained(this))); | 
| -    } | 
| -  } | 
| - | 
| -  if (!success) | 
| -    ResetContext3d(); | 
| -  else | 
| -    client_->DeferredInitialize(); | 
| - | 
| -  return success; | 
| -} | 
| - | 
| -void OutputSurface::ReleaseGL() { | 
| -  DCHECK(client_); | 
| -  DCHECK(context_provider_.get()); | 
| -  client_->ReleaseGL(); | 
| -  DCHECK(!context_provider_.get()); | 
| -} | 
| - | 
| -void OutputSurface::SetUpContext3d() { | 
| -  DCHECK(context_provider_.get()); | 
| -  DCHECK(client_); | 
| - | 
| -  context_provider_->SetLostContextCallback( | 
| -      base::Bind(&OutputSurface::DidLoseOutputSurface, | 
| -                 base::Unretained(this))); | 
| -} | 
| - | 
| -void OutputSurface::ReleaseContextProvider() { | 
| -  DCHECK(client_); | 
| -  DCHECK(context_provider_.get()); | 
| -  ResetContext3d(); | 
| -} | 
| - | 
| -void OutputSurface::ResetContext3d() { | 
| -  if (context_provider_.get()) { | 
| -    context_provider_->SetLostContextCallback( | 
| -        ContextProvider::LostContextCallback()); | 
| -  } | 
| -  if (worker_context_provider_.get()) { | 
| -    worker_context_provider_->SetLostContextCallback( | 
| -        ContextProvider::LostContextCallback()); | 
| -  } | 
| -  context_provider_ = NULL; | 
| -  worker_context_provider_ = NULL; | 
| -} | 
| - | 
| -void OutputSurface::EnsureBackbuffer() { | 
| -  if (software_device_) | 
| -    software_device_->EnsureBackbuffer(); | 
| -} | 
| - | 
| -void OutputSurface::DiscardBackbuffer() { | 
| -  if (context_provider_.get()) | 
| -    context_provider_->ContextGL()->DiscardBackbufferCHROMIUM(); | 
| -  if (software_device_) | 
| -    software_device_->DiscardBackbuffer(); | 
| -} | 
| - | 
| -void OutputSurface::Reshape(const gfx::Size& size, float scale_factor) { | 
| -  if (size == surface_size_ && scale_factor == device_scale_factor_) | 
| -    return; | 
| - | 
| -  surface_size_ = size; | 
| -  device_scale_factor_ = scale_factor; | 
| -  if (context_provider_.get()) { | 
| -    context_provider_->ContextGL()->ResizeCHROMIUM( | 
| -        size.width(), size.height(), scale_factor); | 
| -  } | 
| -  if (software_device_) | 
| -    software_device_->Resize(size, scale_factor); | 
| -} | 
| - | 
| -gfx::Size OutputSurface::SurfaceSize() const { | 
| -  return surface_size_; | 
| -} | 
| - | 
| -void OutputSurface::BindFramebuffer() { | 
| -  DCHECK(context_provider_.get()); | 
| -  context_provider_->ContextGL()->BindFramebuffer(GL_FRAMEBUFFER, 0); | 
| -} | 
| - | 
| -void OutputSurface::PostSwapBuffersComplete() { | 
| -  base::MessageLoop::current()->PostTask( | 
| -      FROM_HERE, | 
| -      base::Bind(&OutputSurface::OnSwapBuffersComplete, | 
| -                 weak_ptr_factory_.GetWeakPtr())); | 
| -} | 
| - | 
| -// We don't post tasks bound to the client directly since they might run | 
| -// after the OutputSurface has been destroyed. | 
| -void OutputSurface::OnSwapBuffersComplete() { | 
| -  client_->DidSwapBuffersComplete(); | 
| -} | 
| - | 
| -}  // namespace cc | 
|  |