blob: 335a8405988c700029c09847046448dd3c1aebde [file] [log] [blame]
// 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_