blob: a665a1f4cc1d9c8dba00ca1388fdadb4517c54be [file] [log] [blame]
// Copyright 2019 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_TEST_CONTEXT_FACTORIES_H_
#define UI_COMPOSITOR_TEST_TEST_CONTEXT_FACTORIES_H_
#include <memory>
namespace gl {
class DisableNullDrawGLBindings;
}
namespace viz {
class HostFrameSinkManager;
class ServerSharedBitmapManager;
class FrameSinkManagerImpl;
} // namespace viz
namespace ui {
class InProcessContextFactory;
class ContextFactory;
// Set up the compositor ContextFactory for a test environment. Unit tests that
// do not have a full content environment need to call this before initializing
// the Compositor. Some tests expect pixel output, and they should pass true for
// |enable_pixel_output|. Most unit tests should pass false.
class TestContextFactories {
public:
explicit TestContextFactories(bool enable_pixel_output);
TestContextFactories(bool enable_pixel_output, bool use_skia_renderer);
~TestContextFactories();
TestContextFactories(const TestContextFactories&) = delete;
TestContextFactories& operator=(const TestContextFactories&) = delete;
ContextFactory* GetContextFactory() const;
// See InProcessContextFactory::set_use_test_surface().
// If true (the default) an OutputSurface is created that does not display
// anything. Set to false if you want to see results on the screen.
void SetUseTestSurface(bool use_test_surface);
private:
std::unique_ptr<gl::DisableNullDrawGLBindings> disable_null_draw_;
std::unique_ptr<viz::ServerSharedBitmapManager> shared_bitmap_manager_;
std::unique_ptr<viz::FrameSinkManagerImpl> frame_sink_manager_;
std::unique_ptr<viz::HostFrameSinkManager> host_frame_sink_manager_;
std::unique_ptr<ui::InProcessContextFactory> implicit_factory_;
};
} // namespace ui
#endif // UI_COMPOSITOR_TEST_TEST_CONTEXT_FACTORIES_H_