document_transition_content_layer.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright 2021 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 CC_LAYERS_DOCUMENT_TRANSITION_CONTENT_LAYER_H_
  5. #define CC_LAYERS_DOCUMENT_TRANSITION_CONTENT_LAYER_H_
  6. #include <memory>
  7. #include "base/logging.h"
  8. #include "cc/cc_export.h"
  9. #include "cc/layers/layer.h"
  10. #include "components/viz/common/shared_element_resource_id.h"
  11. namespace cc {
  12. // A layer that renders a texture cached in the Viz process.
  13. class CC_EXPORT DocumentTransitionContentLayer : public Layer {
  14. public:
  15. static scoped_refptr<DocumentTransitionContentLayer> Create(
  16. const viz::SharedElementResourceId& resource_id,
  17. bool is_live_content_layer);
  18. DocumentTransitionContentLayer(const DocumentTransitionContentLayer&) =
  19. delete;
  20. DocumentTransitionContentLayer& operator=(
  21. const DocumentTransitionContentLayer&) = delete;
  22. viz::SharedElementResourceId DocumentTransitionResourceId() const override;
  23. // Layer overrides.
  24. std::unique_ptr<LayerImpl> CreateLayerImpl(
  25. LayerTreeImpl* tree_impl) const override;
  26. protected:
  27. explicit DocumentTransitionContentLayer(
  28. const viz::SharedElementResourceId& resource_id,
  29. bool is_live_content_layer);
  30. private:
  31. ~DocumentTransitionContentLayer() override;
  32. const viz::SharedElementResourceId resource_id_;
  33. const bool is_live_content_layer_;
  34. };
  35. } // namespace cc
  36. #endif // CC_LAYERS_DOCUMENT_TRANSITION_CONTENT_LAYER_H_