chromium/ui/gl/gl_display.h

// Copyright 2022 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_DISPLAY_H_
#define UI_GL_GL_DISPLAY_H_

#include <EGL/egl.h>
#include <stdint.h>

#include <memory>
#include <vector>

#include "ui/gl/gl_export.h"
#include "ui/gl/gpu_switching_manager.h"

#if BUILDFLAG(IS_APPLE)
#if __OBJC__
@protocol MTLSharedEvent;
#endif  // __OBJC__
#endif

namespace gl {
struct DisplayExtensionsEGL;
template <typename GLDisplayPlatform>
class GLDisplayManager;

class EGLDisplayPlatform {};

// If adding a new type, also add it to EGLDisplayType in
// tools/metrics/histograms/enums.xml. Don't remove or reorder entries.
enum DisplayType {};

enum DisplayPlatform {};

class GL_EXPORT GLDisplay {};

// TODO(344606399): Consider merging GLDisplayEGL into GLDisplay.
class GL_EXPORT GLDisplayEGL : public GLDisplay {};

}  // namespace gl

#endif  // UI_GL_GL_DISPLAY_H_