// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_ARTIFACT_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_ARTIFACT_H_ #include "base/check_op.h" #include "third_party/blink/renderer/platform/graphics/paint/display_item_list.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_chunk.h" #include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/platform_export.h" namespace blink { // A PaintArtifact represents the output of painting, consisting of paint chunks // and display items (in DisplayItemList). // // A PaintArtifact not only represents the output of the current painting, but // also serves as cache of individual display items and paint chunks for later // paintings as long as the display items and paint chunks are valid. // // It represents a particular state of the world, and is immutable (const) and // promises to be in a reasonable state (e.g. chunk bounding boxes computed) to // all users, except for PaintController and unit tests. class PLATFORM_EXPORT PaintArtifact final : public GarbageCollected<PaintArtifact> { … }; PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const PaintArtifact&); } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_GRAPHICS_PAINT_PAINT_ARTIFACT_H_