1 // Copyright 2019 Google LLC.
2 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
3 
4 #ifndef SkPixelRefPriv_DEFINED
5 #define SkPixelRefPriv_DEFINED
6 /**
7  *  Return a new SkMallocPixelRef with the provided pixel storage and
8  *  rowBytes. On destruction, ReleaseProc will be called.
9  *
10  *  If ReleaseProc is NULL, the pixels will never be released. This
11  *  can be useful if the pixels were stack allocated. However, such an
12  *  SkMallocPixelRef must not live beyond its pixels (e.g. by copying
13  *  an SkBitmap pointing to it, or drawing to an SkPicture).
14  *
15  *  Returns NULL on failure.
16  */
17 sk_sp<SkPixelRef> SkMakePixelRefWithProc(int w, int h, size_t rowBytes, void* addr,
18                                          void (*releaseProc)(void* addr, void* ctx), void* ctx);
19 
20 #endif  // SkPixelRefPriv_DEFINED
21