1 // Copyright 2015 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.
5 #ifndef UI_COMPOSITOR_PAINT_CACHE_H_
6 #define UI_COMPOSITOR_PAINT_CACHE_H_
8 #include "cc/resources/drawing_display_item.h"
9 #include "ui/compositor/compositor_export.h"
15 // A class that holds the output of a PaintRecorder to be reused when the
16 // object that created the PaintRecorder has not been changed/invalidated.
17 class COMPOSITOR_EXPORT PaintCache
{
22 // Returns true if the PaintCache was able to insert a previously-saved
23 // painting output into the PaintContext. If it returns false, the caller
24 // needs to do the work of painting, which can be stored into the PaintCache
25 // to be used next time.
26 bool UseCache(const PaintContext
& context
);
29 // Only PaintRecorder can modify these.
32 void SetCache(const cc::DrawingDisplayItem
* item
);
35 cc::DrawingDisplayItem display_item_
;
37 DISALLOW_COPY_AND_ASSIGN(PaintCache
);
42 #endif // UI_COMPOSITOR_PAINT_CACHE_H_