// // Copyright 2017 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. // // egl_utils.h: Utility routines specific to the EGL->EGL implementation. #ifndef LIBANGLE_RENDERER_GL_EGL_EGLUTILS_H_ #define LIBANGLE_RENDERER_GL_EGL_EGLUTILS_H_ #include #include "common/platform.h" #include "libANGLE/AttributeMap.h" namespace rx { namespace native_egl { using AttributeVector = std::vector; // Filter the attribute map and return a vector of attributes that can be passed to the native // driver. Does NOT append EGL_NONE to the vector. AttributeVector TrimAttributeMap(const egl::AttributeMap &attributes, const EGLint *forwardAttribs, size_t forwardAttribsCount); template AttributeVector TrimAttributeMap(const egl::AttributeMap &attributes, const EGLint (&forwardAttribs)[N]) { return TrimAttributeMap(attributes, forwardAttribs, N); } // Append EGL_NONE to the attribute vector so that it can be passed to a native driver. void FinalizeAttributeVector(AttributeVector *attributeVector); } // namespace native_egl } // namespace rx #endif // LIBANGLE_RENDERER_GL_EGL_EGLUTILS_H_