namespace cc {
namespace {
+class TestOutputSurface : public OutputSurface {
+ public:
+ explicit TestOutputSurface(
+ const scoped_refptr<ContextProvider>& context_provider);
+ ~TestOutputSurface() override;
+
+ // OutputSurface implementation
+ void SwapBuffers(CompositorFrame* frame) override;
+};
+
+TestOutputSurface::TestOutputSurface(
+ const scoped_refptr<ContextProvider>& context_provider)
+ : OutputSurface(context_provider) {
+}
+
+TestOutputSurface::~TestOutputSurface() {
+}
+
+void TestOutputSurface::SwapBuffers(CompositorFrame* frame) {
+ client_->DidSwapBuffers();
+ client_->DidSwapBuffersComplete();
+}
+
class MockContextProvider : public TestContextProvider {
public:
explicit MockContextProvider(scoped_ptr<TestWebGraphicsContext3D> context)
OutputSurface* output_surface,
ResourceProvider* resource_provider) {
return DelegatingRenderer::Create(
- client, settings, output_surface, resource_provider)
- .PassAs<Renderer>();
+ client, settings, output_surface, resource_provider);
}
template <>
OutputSurface* output_surface,
ResourceProvider* resource_provider) {
return GLRenderer::Create(
- client, settings, output_surface, resource_provider, NULL, 0)
- .PassAs<Renderer>();
+ client, settings, output_surface, resource_provider, NULL, 0);
}
template <typename T>
virtual void SetUp() {
context_provider_ =
new MockContextProvider(TestWebGraphicsContext3D::Create());
- output_surface_.reset(new OutputSurface(context_provider_));
+ output_surface_.reset(new TestOutputSurface(context_provider_));
output_surface_->BindToClient(&output_surface_client_);
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), NULL, NULL, 0, false, 1, false);
+ output_surface_.get(), NULL, NULL, NULL, 0, false, 1);
renderer_ = CreateRenderer<T>(&renderer_client_,
&tree_settings_,
output_surface_.get(),