Hash :
4c941149
Author :
Date :
2022-08-12T11:42:07
External Texture Support In MEC Bug: angleproject:4964 Change-Id: I5cfbadf515a30fb20d75b2d745fdecdafa12268f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3812378 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Faye Zhang <ffz@google.com> Commit-Queue: Faye Zhang <ffz@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
//
// Copyright 2022 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// capture_egl.h:
// EGL capture functions
//
#ifndef LIBANGLE_CAPTURE_EGL_H_
#define LIBANGLE_CAPTURE_EGL_H_
#include "libANGLE/Context.h"
#include "libANGLE/Thread.h"
#include "libANGLE/capture/FrameCapture.h"
namespace gl
{
enum class GLenumGroup;
}
namespace egl
{
template <typename CaptureFuncT, typename... ArgsT>
void CaptureCallToCaptureEGL(CaptureFuncT captureFunc, egl::Thread *thread, ArgsT... captureParams)
{
gl::Context *context = thread->getContext();
if (!context)
{
return;
}
angle::FrameCaptureShared *frameCaptureShared =
context->getShareGroup()->getFrameCaptureShared();
if (!frameCaptureShared->isCapturing())
{
return;
}
angle::CallCapture call = captureFunc(captureParams...);
frameCaptureShared->captureCall(context, std::move(call), true);
}
angle::CallCapture CaptureCreateNativeClientBufferANDROID(const egl::AttributeMap &attribMap,
EGLClientBuffer eglClientBuffer);
angle::CallCapture CaptureEGLCreateImage(const gl::Context *context,
EGLenum target,
EGLClientBuffer buffer,
const egl::AttributeMap &attributes,
egl::Image *image);
angle::CallCapture CaptureEGLDestroyImage(egl::Display *display, egl::Image *image);
angle::CallCapture CaptureEGLCreatePbufferSurface(const AttributeMap &attrib_list,
egl::Surface *surface);
angle::CallCapture CaptureEGLDestroySurface(Display *display, Surface *surface);
angle::CallCapture CaptureEGLBindTexImage(egl::Surface *surface, EGLint buffer);
angle::CallCapture CaptureEGLReleaseTexImage(egl::Surface *surface, EGLint buffer);
angle::CallCapture CaptureEGLMakeCurrent(Surface *drawSurface,
Surface *readSurface,
gl::Context *context);
} // namespace egl
#endif // LIBANGLE_FRAME_CAPTURE_H_