Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
SkRecordedDrawable.h
Go to the documentation of this file.
1/*
2 * Copyright 2016 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7#ifndef SkRecordedDrawable_DEFINED
8#define SkRecordedDrawable_DEFINED
9
13#include "include/core/SkRect.h"
15#include "src/core/SkRecord.h"
16#include "src/core/SkRecorder.h"
17
18#include <cstddef>
19#include <memory>
20#include <utility>
21
22class SkCanvas;
23class SkPicture;
24class SkReadBuffer;
25class SkWriteBuffer;
26
28public:
30 std::unique_ptr<SkDrawableList> drawableList, const SkRect& bounds)
31 : fRecord(std::move(record))
32 , fBBH(std::move(bbh))
33 , fDrawableList(std::move(drawableList))
34 , fBounds(bounds)
35 {}
36
37 void flatten(SkWriteBuffer& buffer) const override;
38
39protected:
40 SkRect onGetBounds() override { return fBounds; }
41 size_t onApproximateBytesUsed() override;
42
43 void onDraw(SkCanvas* canvas) override;
44
46
47private:
49
50 sk_sp<SkRecord> fRecord;
52 std::unique_ptr<SkDrawableList> fDrawableList;
53 const SkRect fBounds;
54};
55#endif // SkRecordedDrawable_DEFINED
#define SK_FLATTENABLE_HOOKS(type)
SkRect onGetBounds() override
sk_sp< SkPicture > onMakePictureSnapshot() override
void onDraw(SkCanvas *canvas) override
SkRecordedDrawable(sk_sp< SkRecord > record, sk_sp< SkBBoxHierarchy > bbh, std::unique_ptr< SkDrawableList > drawableList, const SkRect &bounds)
size_t onApproximateBytesUsed() override
void flatten(SkWriteBuffer &buffer) const override
static const uint8_t buffer[]
Definition ref_ptr.h:256