// Copyright 2016 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 FLUTTER_SHELL_COMMON_NULL_RASTERIZER_H_ #define FLUTTER_SHELL_COMMON_NULL_RASTERIZER_H_ #include "flutter/shell/common/rasterizer.h" #include "lib/fxl/macros.h" #include "lib/fxl/memory/weak_ptr.h" namespace shell { class NullRasterizer : public Rasterizer { public: NullRasterizer(); void Setup(std::unique_ptr surface_or_null, fxl::Closure rasterizer_continuation, fxl::AutoResetWaitableEvent* setup_completion_event) override; void Teardown( fxl::AutoResetWaitableEvent* teardown_completion_event) override; void Clear(SkColor color, const SkISize& size) override; fml::WeakPtr GetWeakRasterizerPtr() override; flow::LayerTree* GetLastLayerTree() override; void DrawLastLayerTree() override; flow::TextureRegistry& GetTextureRegistry() override; void Draw(fxl::RefPtr> pipeline) override; void AddNextFrameCallback(fxl::Closure nextFrameCallback) override; void SetTextureRegistry(flow::TextureRegistry* textureRegistry) override; private: std::unique_ptr surface_; fml::WeakPtrFactory weak_factory_; flow::TextureRegistry* texture_registry_; FXL_DISALLOW_COPY_AND_ASSIGN(NullRasterizer); }; } // namespace shell #endif // FLUTTER_SHELL_COMMON_NULL_RASTERIZER_H_