blob: f35a03104a85c58069b3d4fd6086a419e7329109 [file] [log] [blame]
Greg Daniel173464d2019-02-06 15:30:34 -05001/*
2 * Copyright 2019 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 GrAHardwareBufferUtils_DEFINED
8#define GrAHardwareBufferUtils_DEFINED
9
Mike Kleinc0bd9f92019-04-23 12:05:21 -050010#include "include/core/SkTypes.h"
Greg Daniel173464d2019-02-06 15:30:34 -050011
12#if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26
13
Mike Kleinc0bd9f92019-04-23 12:05:21 -050014#include "include/gpu/GrBackendSurface.h"
15#include "include/gpu/GrTypes.h"
Greg Daniel173464d2019-02-06 15:30:34 -050016
17class GrContext;
18
19extern "C" {
20 typedef struct AHardwareBuffer AHardwareBuffer;
21}
22
23namespace GrAHardwareBufferUtils {
24
25SkColorType GetSkColorTypeFromBufferFormat(uint32_t bufferFormat);
26
27GrBackendFormat GetBackendFormat(GrContext* context, AHardwareBuffer* hardwareBuffer,
28 uint32_t bufferFormat, bool requireKnownFormat);
29
30typedef void* DeleteImageCtx;
31typedef void (*DeleteImageProc)(DeleteImageCtx);
32
33GrBackendTexture MakeBackendTexture(GrContext* context, AHardwareBuffer* hardwareBuffer,
34 int width, int height,
35 DeleteImageProc* deleteProc,
36 DeleteImageCtx* deleteCtx,
37 bool isProtectedContent,
38 const GrBackendFormat& backendFormat,
39 bool isRenderable);
40
41} // GrAHardwareBufferUtils
42
43
44#endif
45#endif