Flutter Engine
The Flutter Engine
SkKeyedImage.h
Go to the documentation of this file.
1/*
2 * Copyright 2017 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 SkKeyedImage_DEFINED
8#define SkKeyedImage_DEFINED
9
12#include "src/pdf/SkBitmapKey.h"
13
14class SkBitmap;
15struct SkIRect;
16
17/**
18 This class has all the advantages of SkBitmaps and SkImages.
19
20 The SkImage holds on to encoded data. The SkBitmapKey properly de-dups subsets.
21 */
23public:
26 SkKeyedImage(const SkBitmap&);
28 SkKeyedImage(const SkKeyedImage&) = default;
29
32
33 explicit operator bool() const { return fImage != nullptr; }
34 const SkBitmapKey& key() const { return fKey; }
35 const sk_sp<SkImage>& image() const { return fImage; }
38
39private:
40 sk_sp<SkImage> fImage;
41 SkBitmapKey fKey = {{0, 0, 0, 0}, 0};
42};
43
44/**
45 * Given an Image, return the Bitmap Key that corresponds to it. If the Image
46 * wraps a Bitmap, use that Bitmap's key.
47 */
49#endif // SkKeyedImage_DEFINED
SkBitmapKey SkBitmapKeyFromImage(const SkImage *)
SkKeyedImage & operator=(const SkKeyedImage &)=default
const sk_sp< SkImage > & image() const
Definition: SkKeyedImage.h:35
SkKeyedImage(const SkKeyedImage &)=default
SkKeyedImage subset(SkIRect subset) const
SkKeyedImage & operator=(SkKeyedImage &&)=default
const SkBitmapKey & key() const
Definition: SkKeyedImage.h:34
SkKeyedImage(SkKeyedImage &&)=default
sk_sp< SkImage > release()
Definition: SkRect.h:32