1#define LOG_TAG "PicturePileLayerContent"
2#define LOG_NDEBUG 1
3
4#include "config.h"
5#include "PicturePileLayerContent.h"
6
7#include "AndroidLog.h"
8#include "SkCanvas.h"
9#include "SkPicture.h"
10
11namespace WebCore {
12
13PicturePileLayerContent::PicturePileLayerContent(const PicturePile& picturePile)
14    : m_picturePile(picturePile)
15    , m_maxZoomScale(picturePile.maxZoomScale())
16    , m_hasContent(!picturePile.isEmpty())
17{
18}
19
20void PicturePileLayerContent::draw(SkCanvas* canvas)
21{
22    TRACE_METHOD();
23    android::Mutex::Autolock lock(m_drawLock);
24    m_picturePile.draw(canvas);
25
26    if (CC_UNLIKELY(!m_hasContent))
27        ALOGW("Warning: painting PicturePile without content!");
28}
29
30void PicturePileLayerContent::serialize(SkWStream* stream)
31{
32    if (!stream)
33       return;
34    SkPicture picture;
35    draw(picture.beginRecording(width(), height(),
36                                SkPicture::kUsePathBoundsForClip_RecordingFlag));
37    picture.endRecording();
38    picture.serialize(stream);
39}
40
41PrerenderedInval* PicturePileLayerContent::prerenderForRect(const IntRect& dirty)
42{
43    return m_picturePile.prerenderedInvalForArea(dirty);
44}
45
46void PicturePileLayerContent::clearPrerenders()
47{
48    m_picturePile.clearPrerenders();
49}
50
51} // namespace WebCore
52