1a4def8b8aa60588513f89b3a701a5e2c788abb4
[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 typedef struct tagSFG_PlatformDisplay SFG_PlatformDisplay;
34 struct tagSFG_Window;
35 struct tagSFG_PlatformDisplay
36 {
37   /* Used to initialize and deinitialize EGL */
38   EGLDisplay          eglDisplay;
39   EGLContext          eglContext;
40   EGLConfig           eglContextConfig;
41   EGLint              eglContextFormat;
42   struct tagSFG_Window* single_window;
43 };
44
45
46 /*
47  * Make "freeglut" window handle and context types so that we don't need so
48  * much conditionally-compiled code later in the library.
49  */
50 typedef EGLNativeWindowType SFG_WindowHandleType ;
51 typedef EGLContext SFG_WindowContextType ;
52 typedef struct tagSFG_PlatformContext SFG_PlatformContext;
53 /* SFG_PlatformContext is used for SFG_Window.Window */
54 struct tagSFG_PlatformContext
55 {
56   EGLSurface          eglSurface;
57 };
58
59
60 /* Window's state description. This structure should be kept portable. */
61 typedef struct tagSFG_PlatformWindowState SFG_PlatformWindowState;
62 struct tagSFG_PlatformWindowState
63 {
64     int             OldWidth;           /* Window width from before a resize */
65     int             OldHeight;          /*   "    height  "    "    "   "    */
66 };
67
68 #endif