blob: 45f1fb180b2be3edae2a5b37e8439fd0c588906d [file] [log] [blame]
// Copyright 2017 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 UI_COMPOSITOR_TEST_FAKE_CONTEXT_FACTORY_H_
#define UI_COMPOSITOR_TEST_FAKE_CONTEXT_FACTORY_H_
#include "cc/test/test_task_graph_runner.h"
#include "components/viz/common/display/renderer_settings.h"
#include "components/viz/test/test_gpu_memory_buffer_manager.h"
#include "ui/compositor/compositor.h"
namespace cc {
class FakeLayerTreeFrameSink;
class TestTaskGraphRunner;
class TestGpuMemoryBufferManager;
}
namespace viz {
class CompositorFrame;
class ContextProvider;
}
namespace ui {
class FakeContextFactory : public ui::ContextFactory {
public:
FakeContextFactory();
~FakeContextFactory() override;
const viz::CompositorFrame& GetLastCompositorFrame() const;
// ui::ContextFactory:
void CreateLayerTreeFrameSink(
base::WeakPtr<ui::Compositor> compositor) override;
scoped_refptr<viz::ContextProvider> SharedMainThreadContextProvider()
override;
void RemoveCompositor(ui::Compositor* compositor) override;
gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() override;
cc::TaskGraphRunner* GetTaskGraphRunner() override;
void AddObserver(ui::ContextFactoryObserver* observer) override {}
void RemoveObserver(ui::ContextFactoryObserver* observer) override {}
bool SyncTokensRequiredForDisplayCompositor() override;
protected:
const viz::RendererSettings& renderer_settings() const {
return renderer_settings_;
}
private:
cc::FakeLayerTreeFrameSink* frame_sink_ = nullptr;
cc::TestTaskGraphRunner task_graph_runner_;
viz::TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
viz::RendererSettings renderer_settings_;
DISALLOW_COPY_AND_ASSIGN(FakeContextFactory);
};
} // namespace ui
#endif // UI_COMPOSITOR_TEST_FAKE_CONTEXT_FACTORY_H_