EGL: separate config and context code
[freeglut] / src / egl / fg_internal_egl.h
1 /*
2  * freeglut_internal_android.h
3  *
4  * The freeglut library private include file.
5  *
6  * Copyright (C) 2012  Sylvain Beucler
7  *
8  * Permission is hereby granted, free of charge, to any person obtaining a
9  * copy of this software and associated documentation files (the "Software"),
10  * to deal in the Software without restriction, including without limitation
11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12  * and/or sell copies of the Software, and to permit persons to whom the
13  * Software is furnished to do so, subject to the following conditions:
14  *
15  * The above copyright notice and this permission notice shall be included
16  * in all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21  * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
22  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
23  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24  */
25
26 #ifndef  FREEGLUT_INTERNAL_EGL_H
27 #define  FREEGLUT_INTERNAL_EGL_H
28
29 #include <EGL/egl.h>
30
31 /* -- GLOBAL TYPE DEFINITIONS ---------------------------------------------- */
32 /* The structure used by display initialization in freeglut_init.c */
33 struct tagSFG_Window;
34 struct tagSFG_PlatformDisplayEGL
35 {
36   /* Used to initialize and deinitialize EGL */
37   EGLDisplay          Display;
38 };
39
40
41 /*
42  * Make "freeglut" window handle and context types so that we don't need so
43  * much conditionally-compiled code later in the library.
44  */
45 typedef EGLNativeWindowType SFG_WindowHandleType ;
46 typedef EGLContext SFG_WindowContextType ;
47 struct tagSFG_PlatformContextEGL
48 {
49   EGLSurface          Surface;
50   EGLConfig           Config;
51 };
52
53
54 /* Window's state description. This structure should be kept portable. */
55 typedef struct tagSFG_PlatformWindowState SFG_PlatformWindowState;
56 struct tagSFG_PlatformWindowState
57 {
58     int             OldWidth;           /* Window width from before a resize */
59     int             OldHeight;          /*   "    height  "    "    "   "    */
60 };
61
62 #endif