Coverage Report

Created: 2021-08-22 09:07

/src/skia/src/codec/SkBmpBaseCodec.h
Line
Count
Source
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 SkBmpBaseCodec_DEFINED
8
#define SkBmpBaseCodec_DEFINED
9
10
#include "include/private/SkTemplates.h"
11
#include "src/codec/SkBmpCodec.h"
12
13
/*
14
 * Common base class for SkBmpStandardCodec and SkBmpMaskCodec.
15
 */
16
class SkBmpBaseCodec : public SkBmpCodec {
17
public:
18
    ~SkBmpBaseCodec() override;
19
20
    /*
21
     * Whether fSrcBuffer was successfully created.
22
     *
23
     * If false, this Codec must not be used.
24
     */
25
839
    bool didCreateSrcBuffer() const { return fSrcBuffer != nullptr; }
26
27
protected:
28
    SkBmpBaseCodec(SkEncodedInfo&& info, std::unique_ptr<SkStream>,
29
                   uint16_t bitsPerPixel, SkCodec::SkScanlineOrder rowOrder);
30
31
137k
    uint8_t* srcBuffer() { return reinterpret_cast<uint8_t*>(fSrcBuffer.get()); }
32
33
private:
34
    SkAutoFree fSrcBuffer;
35
36
    using INHERITED = SkBmpCodec;
37
};
38
#endif // SkBmpBaseCodec_DEFINED