Index: cc/output_surface_impl.h |
diff --git a/cc/output_surface_impl.h b/cc/output_surface_impl.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..87390567f1118fd4a4248c05a306b1a03c6f7f45 |
--- /dev/null |
+++ b/cc/output_surface_impl.h |
@@ -0,0 +1,48 @@ |
+// 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. |
+ |
+#ifndef CC_OUTPUT_SURFACE_IMPL_H_ |
+#define CC_OUTPUT_SURFACE_IMPL_H_ |
+ |
+#include "base/memory/scoped_ptr.h" |
+#include "cc/cc_export.h" |
+#include "cc/output_surface.h" |
+#include "cc/software_output_device.h" |
+#include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3D.h" |
+ |
+namespace cc { |
+ |
+class CC_EXPORT OutputSurfaceImpl : public OutputSurface { |
+ public: |
+ explicit OutputSurfaceImpl( |
+ scoped_ptr<WebKit::WebGraphicsContext3D> context3d); |
+ |
+ explicit OutputSurfaceImpl( |
+ scoped_ptr<cc::SoftwareOutputDevice> software_device); |
+ |
+ OutputSurfaceImpl( |
+ scoped_ptr<WebKit::WebGraphicsContext3D> context3d, |
+ scoped_ptr<cc::SoftwareOutputDevice> software_device); |
+ |
+ virtual ~OutputSurfaceImpl(); |
+ |
+ virtual bool BindToClient(cc::OutputSurfaceClient*) OVERRIDE; |
+ |
+ virtual const struct Capabilities& Capabilities() const OVERRIDE; |
+ |
+ virtual WebKit::WebGraphicsContext3D* Context3D() const OVERRIDE; |
+ virtual cc::SoftwareOutputDevice* SoftwareDevice() const OVERRIDE; |
+ |
+ virtual void SendFrameToParentCompositor(cc::CompositorFrame*) OVERRIDE; |
+ |
+protected: |
+ OutputSurfaceClient* client_; |
+ struct cc::OutputSurface::Capabilities capabilities_; |
+ scoped_ptr<WebKit::WebGraphicsContext3D> context3d_; |
+ scoped_ptr<cc::SoftwareOutputDevice> software_device_; |
+}; |
+ |
+} // namespace cc |
+ |
+#endif // CC_OUTPUT_SURFACE_IMPL_H_ |