// Copyright 2019 Google LLC.
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

#ifndef SkPixelRefPriv_DEFINED
#define SkPixelRefPriv_DEFINED
/**
 *  Return a new SkMallocPixelRef with the provided pixel storage and
 *  rowBytes. On destruction, ReleaseProc will be called.
 *
 *  If ReleaseProc is NULL, the pixels will never be released. This
 *  can be useful if the pixels were stack allocated. However, such an
 *  SkMallocPixelRef must not live beyond its pixels (e.g. by copying
 *  an SkBitmap pointing to it, or drawing to an SkPicture).
 *
 *  Returns NULL on failure.
 */
sk_sp<SkPixelRef> SkMakePixelRefWithProc(int w, int h, size_t rowBytes, void* addr,
                                         void (*releaseProc)(void* addr, void* ctx), void* ctx);

#endif  // SkPixelRefPriv_DEFINED
