| // Copyright 2018 The Fuchsia 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 GARNET_BIN_DISPLAY_CAPTURE_TEST_CONTEXT_H_ |
| #define GARNET_BIN_DISPLAY_CAPTURE_TEST_CONTEXT_H_ |
| |
| #include "layer.h" |
| |
| namespace display_test { |
| |
| class Context { |
| public: |
| ~Context() {} |
| |
| PrimaryLayer* CreatePrimaryLayer(uint32_t width, uint32_t height); |
| Image* CreateImage(uint32_t width, uint32_t height); |
| Image* CreateScalableImage(uint32_t width, uint32_t height); |
| Image* CreateAlphaImage(uint32_t width, uint32_t height, uint8_t alpha, |
| bool premultiply); |
| |
| uint32_t display_width() const; |
| uint32_t display_height() const; |
| bool has_frame() const { return has_frame_; } |
| |
| void SetLayers(std::vector<Layer*> layers); |
| void ApplyConfig(); |
| |
| private: |
| Context(internal::Runner* runner) : runner_(runner) {} |
| |
| bool IsReady(); |
| |
| internal::Runner* runner_; |
| friend internal::Runner; |
| |
| std::vector<internal::LayerImpl*> pending_layers_; |
| |
| std::vector<std::unique_ptr<PrimaryLayer>> primary_layers_; |
| std::vector<std::unique_ptr<Image>> images_; |
| |
| bool has_frame_ = false; |
| }; |
| |
| } // namespace display_test |
| |
| #endif // GARNET_BIN_DISPLAY_CAPTURE_TEST_CONTEXT_H_ |