fake_context_factory.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright 2017 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef UI_COMPOSITOR_TEST_FAKE_CONTEXT_FACTORY_H_
  5. #define UI_COMPOSITOR_TEST_FAKE_CONTEXT_FACTORY_H_
  6. #include "base/memory/raw_ptr.h"
  7. #include "cc/test/test_task_graph_runner.h"
  8. #include "components/viz/common/display/renderer_settings.h"
  9. #include "components/viz/test/test_gpu_memory_buffer_manager.h"
  10. #include "ui/compositor/compositor.h"
  11. namespace cc {
  12. class FakeLayerTreeFrameSink;
  13. class TestTaskGraphRunner;
  14. class TestGpuMemoryBufferManager;
  15. }
  16. namespace viz {
  17. class CompositorFrame;
  18. class ContextProvider;
  19. }
  20. namespace ui {
  21. class FakeContextFactory : public ui::ContextFactory {
  22. public:
  23. FakeContextFactory();
  24. FakeContextFactory(const FakeContextFactory&) = delete;
  25. FakeContextFactory& operator=(const FakeContextFactory&) = delete;
  26. ~FakeContextFactory() override;
  27. const viz::CompositorFrame& GetLastCompositorFrame() const;
  28. // ui::ContextFactory:
  29. void CreateLayerTreeFrameSink(
  30. base::WeakPtr<ui::Compositor> compositor) override;
  31. scoped_refptr<viz::ContextProvider> SharedMainThreadContextProvider()
  32. override;
  33. scoped_refptr<viz::RasterContextProvider>
  34. SharedMainThreadRasterContextProvider() override;
  35. void RemoveCompositor(ui::Compositor* compositor) override;
  36. gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() override;
  37. cc::TaskGraphRunner* GetTaskGraphRunner() override;
  38. protected:
  39. const viz::RendererSettings& renderer_settings() const {
  40. return renderer_settings_;
  41. }
  42. private:
  43. raw_ptr<cc::FakeLayerTreeFrameSink> frame_sink_ = nullptr;
  44. cc::TestTaskGraphRunner task_graph_runner_;
  45. viz::TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
  46. viz::RendererSettings renderer_settings_;
  47. };
  48. } // namespace ui
  49. #endif // UI_COMPOSITOR_TEST_FAKE_CONTEXT_FACTORY_H_