Coverage Report

Created: 2025-06-24 08:20

/src/skia/src/core/SkReadPixelsRec.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2014 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
8
#ifndef SkReadPixelsRec_DEFINED
9
#define SkReadPixelsRec_DEFINED
10
11
#include "include/core/SkImageInfo.h"
12
#include "include/core/SkPixmap.h"
13
14
#include <cstddef>
15
16
/**
17
 *  Helper class to package and trim the parameters passed to readPixels()
18
 */
19
struct SkReadPixelsRec {
20
    SkReadPixelsRec(const SkImageInfo& info, void* pixels, size_t rowBytes, int x, int y)
21
37.0k
        : fPixels(pixels)
22
37.0k
        , fRowBytes(rowBytes)
23
37.0k
        , fInfo(info)
24
37.0k
        , fX(x)
25
37.0k
        , fY(y)
26
37.0k
    {}
27
28
    SkReadPixelsRec(const SkPixmap& pm, int x, int y)
29
        : fPixels(pm.writable_addr())
30
        , fRowBytes(pm.rowBytes())
31
        , fInfo(pm.info())
32
        , fX(x)
33
        , fY(y)
34
0
    {}
35
36
    void*       fPixels;
37
    size_t      fRowBytes;
38
    SkImageInfo fInfo;
39
    int         fX;
40
    int         fY;
41
42
    /*
43
     *  On true, may have modified its fields (except fRowBytes) to make it a legal subset
44
     *  of the specified src width/height.
45
     *
46
     *  On false, leaves self unchanged, but indicates that it does not overlap src, or
47
     *  is not valid (e.g. bad fInfo) for readPixels().
48
     */
49
    bool trim(int srcWidth, int srcHeight);
50
};
51
52
#endif