chromium/ui/gl/gl_egl_api_implementation.h

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_GL_GL_EGL_API_IMPLEMENTATION_H_
#define UI_GL_GL_EGL_API_IMPLEMENTATION_H_

#include <map>
#include <string>
#include <vector>

#include "base/memory/raw_ptr.h"
#include "ui/gl/gl_bindings.h"
#include "ui/gl/gl_display.h"
#include "ui/gl/gl_export.h"

namespace gl {

struct GLWindowSystemBindingInfo;

GL_EXPORT void InitializeStaticGLBindingsEGL();
GL_EXPORT void ClearBindingsEGL();
GL_EXPORT bool GetGLWindowSystemBindingInfoEGL(GLWindowSystemBindingInfo* info);
GL_EXPORT void SetDisabledExtensionsEGL(const std::string& disabled_extensions);
GL_EXPORT bool InitializeExtensionSettingsOneOffEGL(GLDisplayEGL* display);

class GL_EXPORT EGLApiBase : public EGLApi {};

class GL_EXPORT RealEGLApi : public EGLApiBase {};

// Logs debug information for every EGL call.
class GL_EXPORT LogEGLApi : public EGLApi {};

// Inserts a TRACE for every EGL call.
class GL_EXPORT TraceEGLApi : public EGLApi {};

}  // namespace gl

#endif  // UI_GL_GL_EGL_API_IMPLEMENTATION_H_