xref: /aosp_15_r20/external/angle/src/libANGLE/renderer/gl/egl/android/DisplayAndroid.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 //
2 // Copyright 2016 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // DisplayAndroid.h: Android implementation of egl::Display
8 
9 #ifndef LIBANGLE_RENDERER_GL_EGL_ANDROID_DISPLAYANDROID_H_
10 #define LIBANGLE_RENDERER_GL_EGL_ANDROID_DISPLAYANDROID_H_
11 
12 #include <map>
13 #include <string>
14 #include <vector>
15 
16 #include "libANGLE/renderer/gl/egl/DisplayEGL.h"
17 
18 namespace rx
19 {
20 
21 class RendererEGL;
22 
23 class DisplayAndroid : public DisplayEGL
24 {
25   public:
26     DisplayAndroid(const egl::DisplayState &state);
27     ~DisplayAndroid() override;
28 
29     bool isValidNativeWindow(EGLNativeWindowType window) const override;
30 
31     egl::Error validateImageClientBuffer(const gl::Context *context,
32                                          EGLenum target,
33                                          EGLClientBuffer clientBuffer,
34                                          const egl::AttributeMap &attribs) const override;
35 
36     ExternalImageSiblingImpl *createExternalImageSibling(const gl::Context *context,
37                                                          EGLenum target,
38                                                          EGLClientBuffer buffer,
39                                                          const egl::AttributeMap &attribs) override;
40 };
41 
42 }  // namespace rx
43 
44 #endif  // LIBANGLE_RENDERER_GL_EGL_ANDROID_DISPLAYANDROID_H_
45