// Copyright (c) 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef GPU_IPC_COMMON_ANDROID_ANDROID_IMAGE_READER_UTILS_H_
#define GPU_IPC_COMMON_ANDROID_ANDROID_IMAGE_READER_UTILS_H_

#include <android/hardware_buffer.h>

#include "base/android/android_image_reader_compat.h"
#include "base/files/scoped_file.h"
#include "ui/gl/gl_bindings.h"

namespace gpu {

// Create and inserts an egl fence and exports a ScopedFD from it.
base::ScopedFD CreateEglFenceAndExportFd();

// Delete the AImage asynchronously by inserting an android native fence sync.
bool DeleteAImageAsync(AImage* image,
                       base::android::AndroidImageReader* loader);

// Create and insert an EGL fence and imports the provided fence fd.
bool InsertEglFenceAndWait(base::ScopedFD acquire_fence_fd);

// Create an EGL image from the AImage via AHardwarebuffer. Bind this EGL image
// to the texture target target_id. This changes the texture binding on the
// current context.
bool CreateAndBindEglImage(const AImage* image,
                           GLuint texture_id,
                           base::android::AndroidImageReader* loader);

}  // namespace gpu

#endif  // GPU_IPC_COMMON_ANDROID_ANDROID_IMAGE_READER_UTILS_H_
