Index: blimp/client/compositor/blimp_output_surface.cc |
diff --git a/blimp/client/compositor/blimp_output_surface.cc b/blimp/client/compositor/blimp_output_surface.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..886dd0398a2d885ed98de0d7745344574bc73660 |
--- /dev/null |
+++ b/blimp/client/compositor/blimp_output_surface.cc |
@@ -0,0 +1,29 @@ |
+// Copyright 2015 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 "blimp/client/compositor/blimp_output_surface.h" |
+ |
+#include "base/bind.h" |
+#include "base/message_loop/message_loop.h" |
+#include "cc/output/output_surface_client.h" |
+#include "gpu/command_buffer/client/context_support.h" |
+ |
+namespace blimp { |
+ |
+BlimpOutputSurface::BlimpOutputSurface( |
+ const scoped_refptr<cc::ContextProvider>& context_provider) |
+ : cc::OutputSurface(context_provider), weak_factory_(this) {} |
+ |
+BlimpOutputSurface::~BlimpOutputSurface() {} |
+ |
+void BlimpOutputSurface::SwapBuffers(cc::CompositorFrame* frame) { |
+ context_provider_->ContextSupport()->Swap(); |
+ client_->DidSwapBuffers(); |
+ |
+ base::MessageLoop::current()->task_runner()->PostTask( |
+ FROM_HERE, base::Bind(&BlimpOutputSurface::OnSwapBuffersComplete, |
+ weak_factory_.GetWeakPtr())); |
+} |
+ |
+} // namespace blimp |