include/SDL_egl.h
author Ryan C. Gordon <icculus@icculus.org>
Sun, 12 Apr 2015 20:28:28 -0400
changeset 9553 75dca0c33be6
parent 9055 868b523403e0
child 9619 b94b6d0bff0f
permissions -rw-r--r--
Merged.
gabomdq@8021
     1
/*
gabomdq@8021
     2
  Simple DirectMedia Layer
slouken@8149
     3
  Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
gabomdq@8021
     4
gabomdq@8021
     5
  This software is provided 'as-is', without any express or implied
gabomdq@8021
     6
  warranty.  In no event will the authors be held liable for any damages
gabomdq@8021
     7
  arising from the use of this software.
gabomdq@8021
     8
gabomdq@8021
     9
  Permission is granted to anyone to use this software for any purpose,
gabomdq@8021
    10
  including commercial applications, and to alter it and redistribute it
gabomdq@8021
    11
  freely, subject to the following restrictions:
gabomdq@8021
    12
gabomdq@8021
    13
  1. The origin of this software must not be misrepresented; you must not
gabomdq@8021
    14
     claim that you wrote the original software. If you use this software
gabomdq@8021
    15
     in a product, an acknowledgment in the product documentation would be
gabomdq@8021
    16
     appreciated but is not required.
gabomdq@8021
    17
  2. Altered source versions must be plainly marked as such, and must not be
gabomdq@8021
    18
     misrepresented as being the original software.
gabomdq@8021
    19
  3. This notice may not be removed or altered from any source distribution.
gabomdq@8021
    20
*/
gabomdq@8021
    21
gabomdq@8021
    22
/**
philipp@9055
    23
 *  \file SDL_egl.h
gabomdq@8021
    24
 *
philipp@9055
    25
 *  This is a simple file to encapsulate the EGL API headers.
gabomdq@8021
    26
 */
gabomdq@8021
    27
#ifndef _MSC_VER
gabomdq@8021
    28
gabomdq@8021
    29
#include <EGL/egl.h>
knut@8962
    30
#include <EGL/eglext.h>
gabomdq@8021
    31
gabomdq@8021
    32
#else /* _MSC_VER */
gabomdq@8021
    33
gabomdq@8021
    34
/* EGL headers for Visual Studio */
gabomdq@8021
    35
gabomdq@8021
    36
#ifndef __khrplatform_h_
gabomdq@8021
    37
#define __khrplatform_h_
gabomdq@8021
    38
gabomdq@8021
    39
/*
gabomdq@8021
    40
** Copyright (c) 2008-2009 The Khronos Group Inc.
gabomdq@8021
    41
**
gabomdq@8021
    42
** Permission is hereby granted, free of charge, to any person obtaining a
gabomdq@8021
    43
** copy of this software and/or associated documentation files (the
gabomdq@8021
    44
** "Materials"), to deal in the Materials without restriction, including
gabomdq@8021
    45
** without limitation the rights to use, copy, modify, merge, publish,
gabomdq@8021
    46
** distribute, sublicense, and/or sell copies of the Materials, and to
gabomdq@8021
    47
** permit persons to whom the Materials are furnished to do so, subject to
gabomdq@8021
    48
** the following conditions:
gabomdq@8021
    49
**
gabomdq@8021
    50
** The above copyright notice and this permission notice shall be included
gabomdq@8021
    51
** in all copies or substantial portions of the Materials.
gabomdq@8021
    52
**
gabomdq@8021
    53
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
gabomdq@8021
    54
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
gabomdq@8021
    55
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
gabomdq@8021
    56
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
gabomdq@8021
    57
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
gabomdq@8021
    58
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
gabomdq@8021
    59
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
gabomdq@8021
    60
*/
gabomdq@8021
    61
gabomdq@8021
    62
/* Khronos platform-specific types and definitions.
gabomdq@8021
    63
*
gabomdq@8021
    64
* $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $
gabomdq@8021
    65
*
gabomdq@8021
    66
* Adopters may modify this file to suit their platform. Adopters are
gabomdq@8021
    67
* encouraged to submit platform specific modifications to the Khronos
gabomdq@8021
    68
* group so that they can be included in future versions of this file.
gabomdq@8021
    69
* Please submit changes by sending them to the public Khronos Bugzilla
gabomdq@8021
    70
* (http://khronos.org/bugzilla) by filing a bug against product
gabomdq@8021
    71
* "Khronos (general)" component "Registry".
gabomdq@8021
    72
*
gabomdq@8021
    73
* A predefined template which fills in some of the bug fields can be
gabomdq@8021
    74
* reached using http://tinyurl.com/khrplatform-h-bugreport, but you
gabomdq@8021
    75
* must create a Bugzilla login first.
gabomdq@8021
    76
*
gabomdq@8021
    77
*
gabomdq@8021
    78
* See the Implementer's Guidelines for information about where this file
gabomdq@8021
    79
* should be located on your system and for more details of its use:
gabomdq@8021
    80
*    http://www.khronos.org/registry/implementers_guide.pdf
gabomdq@8021
    81
*
gabomdq@8021
    82
* This file should be included as
gabomdq@8021
    83
*        #include <KHR/khrplatform.h>
gabomdq@8021
    84
* by Khronos client API header files that use its types and defines.
gabomdq@8021
    85
*
gabomdq@8021
    86
* The types in khrplatform.h should only be used to define API-specific types.
gabomdq@8021
    87
*
gabomdq@8021
    88
* Types defined in khrplatform.h:
gabomdq@8021
    89
*    khronos_int8_t              signed   8  bit
gabomdq@8021
    90
*    khronos_uint8_t             unsigned 8  bit
gabomdq@8021
    91
*    khronos_int16_t             signed   16 bit
gabomdq@8021
    92
*    khronos_uint16_t            unsigned 16 bit
gabomdq@8021
    93
*    khronos_int32_t             signed   32 bit
gabomdq@8021
    94
*    khronos_uint32_t            unsigned 32 bit
gabomdq@8021
    95
*    khronos_int64_t             signed   64 bit
gabomdq@8021
    96
*    khronos_uint64_t            unsigned 64 bit
gabomdq@8021
    97
*    khronos_intptr_t            signed   same number of bits as a pointer
gabomdq@8021
    98
*    khronos_uintptr_t           unsigned same number of bits as a pointer
gabomdq@8021
    99
*    khronos_ssize_t             signed   size
gabomdq@8021
   100
*    khronos_usize_t             unsigned size
gabomdq@8021
   101
*    khronos_float_t             signed   32 bit floating point
gabomdq@8021
   102
*    khronos_time_ns_t           unsigned 64 bit time in nanoseconds
gabomdq@8021
   103
*    khronos_utime_nanoseconds_t unsigned time interval or absolute time in
gabomdq@8021
   104
*                                         nanoseconds
gabomdq@8021
   105
*    khronos_stime_nanoseconds_t signed time interval in nanoseconds
gabomdq@8021
   106
*    khronos_boolean_enum_t      enumerated boolean type. This should
gabomdq@8021
   107
*      only be used as a base type when a client API's boolean type is
gabomdq@8021
   108
*      an enum. Client APIs which use an integer or other type for
gabomdq@8021
   109
*      booleans cannot use this as the base type for their boolean.
gabomdq@8021
   110
*
gabomdq@8021
   111
* Tokens defined in khrplatform.h:
gabomdq@8021
   112
*
gabomdq@8021
   113
*    KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
gabomdq@8021
   114
*
gabomdq@8021
   115
*    KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
gabomdq@8021
   116
*    KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
gabomdq@8021
   117
*
gabomdq@8021
   118
* Calling convention macros defined in this file:
gabomdq@8021
   119
*    KHRONOS_APICALL
gabomdq@8021
   120
*    KHRONOS_APIENTRY
gabomdq@8021
   121
*    KHRONOS_APIATTRIBUTES
gabomdq@8021
   122
*
gabomdq@8021
   123
* These may be used in function prototypes as:
gabomdq@8021
   124
*
gabomdq@8021
   125
*      KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
gabomdq@8021
   126
*                                  int arg1,
gabomdq@8021
   127
*                                  int arg2) KHRONOS_APIATTRIBUTES;
gabomdq@8021
   128
*/
gabomdq@8021
   129
gabomdq@8021
   130
/*-------------------------------------------------------------------------
gabomdq@8021
   131
* Definition of KHRONOS_APICALL
gabomdq@8021
   132
*-------------------------------------------------------------------------
gabomdq@8021
   133
* This precedes the return type of the function in the function prototype.
gabomdq@8021
   134
*/
gabomdq@8021
   135
#if defined(_WIN32) && !defined(__SCITECH_SNAP__)
gabomdq@8021
   136
#   define KHRONOS_APICALL __declspec(dllimport)
gabomdq@8021
   137
#elif defined (__SYMBIAN32__)
gabomdq@8021
   138
#   define KHRONOS_APICALL IMPORT_C
gabomdq@8021
   139
#else
gabomdq@8021
   140
#   define KHRONOS_APICALL
gabomdq@8021
   141
#endif
gabomdq@8021
   142
gabomdq@8021
   143
/*-------------------------------------------------------------------------
gabomdq@8021
   144
* Definition of KHRONOS_APIENTRY
gabomdq@8021
   145
*-------------------------------------------------------------------------
gabomdq@8021
   146
* This follows the return type of the function  and precedes the function
gabomdq@8021
   147
* name in the function prototype.
gabomdq@8021
   148
*/
gabomdq@8021
   149
#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
gabomdq@8021
   150
/* Win32 but not WinCE */
gabomdq@8021
   151
#   define KHRONOS_APIENTRY __stdcall
gabomdq@8021
   152
#else
gabomdq@8021
   153
#   define KHRONOS_APIENTRY
gabomdq@8021
   154
#endif
gabomdq@8021
   155
gabomdq@8021
   156
/*-------------------------------------------------------------------------
gabomdq@8021
   157
* Definition of KHRONOS_APIATTRIBUTES
gabomdq@8021
   158
*-------------------------------------------------------------------------
gabomdq@8021
   159
* This follows the closing parenthesis of the function prototype arguments.
gabomdq@8021
   160
*/
gabomdq@8021
   161
#if defined (__ARMCC_2__)
gabomdq@8021
   162
#define KHRONOS_APIATTRIBUTES __softfp
gabomdq@8021
   163
#else
gabomdq@8021
   164
#define KHRONOS_APIATTRIBUTES
gabomdq@8021
   165
#endif
gabomdq@8021
   166
gabomdq@8021
   167
/*-------------------------------------------------------------------------
gabomdq@8021
   168
* basic type definitions
gabomdq@8021
   169
*-----------------------------------------------------------------------*/
gabomdq@8021
   170
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
gabomdq@8021
   171
gabomdq@8021
   172
gabomdq@8021
   173
/*
gabomdq@8021
   174
* Using <stdint.h>
gabomdq@8021
   175
*/
gabomdq@8021
   176
#include <stdint.h>
gabomdq@8021
   177
typedef int32_t                 khronos_int32_t;
gabomdq@8021
   178
typedef uint32_t                khronos_uint32_t;
gabomdq@8021
   179
typedef int64_t                 khronos_int64_t;
gabomdq@8021
   180
typedef uint64_t                khronos_uint64_t;
gabomdq@8021
   181
#define KHRONOS_SUPPORT_INT64   1
gabomdq@8021
   182
#define KHRONOS_SUPPORT_FLOAT   1
gabomdq@8021
   183
gabomdq@8021
   184
#elif defined(__VMS ) || defined(__sgi)
gabomdq@8021
   185
gabomdq@8021
   186
/*
gabomdq@8021
   187
* Using <inttypes.h>
gabomdq@8021
   188
*/
gabomdq@8021
   189
#include <inttypes.h>
gabomdq@8021
   190
typedef int32_t                 khronos_int32_t;
gabomdq@8021
   191
typedef uint32_t                khronos_uint32_t;
gabomdq@8021
   192
typedef int64_t                 khronos_int64_t;
gabomdq@8021
   193
typedef uint64_t                khronos_uint64_t;
gabomdq@8021
   194
#define KHRONOS_SUPPORT_INT64   1
gabomdq@8021
   195
#define KHRONOS_SUPPORT_FLOAT   1
gabomdq@8021
   196
gabomdq@8021
   197
#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
gabomdq@8021
   198
gabomdq@8021
   199
/*
gabomdq@8021
   200
* Win32
gabomdq@8021
   201
*/
gabomdq@8021
   202
typedef __int32                 khronos_int32_t;
gabomdq@8021
   203
typedef unsigned __int32        khronos_uint32_t;
gabomdq@8021
   204
typedef __int64                 khronos_int64_t;
gabomdq@8021
   205
typedef unsigned __int64        khronos_uint64_t;
gabomdq@8021
   206
#define KHRONOS_SUPPORT_INT64   1
gabomdq@8021
   207
#define KHRONOS_SUPPORT_FLOAT   1
gabomdq@8021
   208
gabomdq@8021
   209
#elif defined(__sun__) || defined(__digital__)
gabomdq@8021
   210
gabomdq@8021
   211
/*
gabomdq@8021
   212
* Sun or Digital
gabomdq@8021
   213
*/
gabomdq@8021
   214
typedef int                     khronos_int32_t;
gabomdq@8021
   215
typedef unsigned int            khronos_uint32_t;
gabomdq@8021
   216
#if defined(__arch64__) || defined(_LP64)
gabomdq@8021
   217
typedef long int                khronos_int64_t;
gabomdq@8021
   218
typedef unsigned long int       khronos_uint64_t;
gabomdq@8021
   219
#else
gabomdq@8021
   220
typedef long long int           khronos_int64_t;
gabomdq@8021
   221
typedef unsigned long long int  khronos_uint64_t;
gabomdq@8021
   222
#endif /* __arch64__ */
gabomdq@8021
   223
#define KHRONOS_SUPPORT_INT64   1
gabomdq@8021
   224
#define KHRONOS_SUPPORT_FLOAT   1
gabomdq@8021
   225
gabomdq@8021
   226
#elif 0
gabomdq@8021
   227
gabomdq@8021
   228
/*
gabomdq@8021
   229
* Hypothetical platform with no float or int64 support
gabomdq@8021
   230
*/
gabomdq@8021
   231
typedef int                     khronos_int32_t;
gabomdq@8021
   232
typedef unsigned int            khronos_uint32_t;
gabomdq@8021
   233
#define KHRONOS_SUPPORT_INT64   0
gabomdq@8021
   234
#define KHRONOS_SUPPORT_FLOAT   0
gabomdq@8021
   235
gabomdq@8021
   236
#else
gabomdq@8021
   237
gabomdq@8021
   238
/*
gabomdq@8021
   239
* Generic fallback
gabomdq@8021
   240
*/
gabomdq@8021
   241
#include <stdint.h>
gabomdq@8021
   242
typedef int32_t                 khronos_int32_t;
gabomdq@8021
   243
typedef uint32_t                khronos_uint32_t;
gabomdq@8021
   244
typedef int64_t                 khronos_int64_t;
gabomdq@8021
   245
typedef uint64_t                khronos_uint64_t;
gabomdq@8021
   246
#define KHRONOS_SUPPORT_INT64   1
gabomdq@8021
   247
#define KHRONOS_SUPPORT_FLOAT   1
gabomdq@8021
   248
gabomdq@8021
   249
#endif
gabomdq@8021
   250
gabomdq@8021
   251
gabomdq@8021
   252
/*
gabomdq@8021
   253
* Types that are (so far) the same on all platforms
gabomdq@8021
   254
*/
gabomdq@8021
   255
typedef signed   char          khronos_int8_t;
gabomdq@8021
   256
typedef unsigned char          khronos_uint8_t;
gabomdq@8021
   257
typedef signed   short int     khronos_int16_t;
gabomdq@8021
   258
typedef unsigned short int     khronos_uint16_t;
gabomdq@8021
   259
gabomdq@8021
   260
/*
gabomdq@8021
   261
* Types that differ between LLP64 and LP64 architectures - in LLP64,
gabomdq@8021
   262
* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
gabomdq@8021
   263
* to be the only LLP64 architecture in current use.
gabomdq@8021
   264
*/
gabomdq@8021
   265
#ifdef _WIN64
gabomdq@8021
   266
typedef signed   long long int khronos_intptr_t;
gabomdq@8021
   267
typedef unsigned long long int khronos_uintptr_t;
gabomdq@8021
   268
typedef signed   long long int khronos_ssize_t;
gabomdq@8021
   269
typedef unsigned long long int khronos_usize_t;
gabomdq@8021
   270
#else
gabomdq@8021
   271
typedef signed   long  int     khronos_intptr_t;
gabomdq@8021
   272
typedef unsigned long  int     khronos_uintptr_t;
gabomdq@8021
   273
typedef signed   long  int     khronos_ssize_t;
gabomdq@8021
   274
typedef unsigned long  int     khronos_usize_t;
gabomdq@8021
   275
#endif
gabomdq@8021
   276
gabomdq@8021
   277
#if KHRONOS_SUPPORT_FLOAT
gabomdq@8021
   278
/*
gabomdq@8021
   279
* Float type
gabomdq@8021
   280
*/
gabomdq@8021
   281
typedef          float         khronos_float_t;
gabomdq@8021
   282
#endif
gabomdq@8021
   283
gabomdq@8021
   284
#if KHRONOS_SUPPORT_INT64
gabomdq@8021
   285
/* Time types
gabomdq@8021
   286
*
gabomdq@8021
   287
* These types can be used to represent a time interval in nanoseconds or
gabomdq@8021
   288
* an absolute Unadjusted System Time.  Unadjusted System Time is the number
gabomdq@8021
   289
* of nanoseconds since some arbitrary system event (e.g. since the last
gabomdq@8021
   290
* time the system booted).  The Unadjusted System Time is an unsigned
gabomdq@8021
   291
* 64 bit value that wraps back to 0 every 584 years.  Time intervals
gabomdq@8021
   292
* may be either signed or unsigned.
gabomdq@8021
   293
*/
gabomdq@8021
   294
typedef khronos_uint64_t       khronos_utime_nanoseconds_t;
gabomdq@8021
   295
typedef khronos_int64_t        khronos_stime_nanoseconds_t;
gabomdq@8021
   296
#endif
gabomdq@8021
   297
gabomdq@8021
   298
/*
gabomdq@8021
   299
* Dummy value used to pad enum types to 32 bits.
gabomdq@8021
   300
*/
gabomdq@8021
   301
#ifndef KHRONOS_MAX_ENUM
gabomdq@8021
   302
#define KHRONOS_MAX_ENUM 0x7FFFFFFF
gabomdq@8021
   303
#endif
gabomdq@8021
   304
gabomdq@8021
   305
/*
gabomdq@8021
   306
* Enumerated boolean type
gabomdq@8021
   307
*
gabomdq@8021
   308
* Values other than zero should be considered to be true.  Therefore
gabomdq@8021
   309
* comparisons should not be made against KHRONOS_TRUE.
gabomdq@8021
   310
*/
gabomdq@8021
   311
typedef enum {
gabomdq@8021
   312
    KHRONOS_FALSE = 0,
gabomdq@8021
   313
    KHRONOS_TRUE = 1,
gabomdq@8021
   314
    KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
gabomdq@8021
   315
} khronos_boolean_enum_t;
gabomdq@8021
   316
gabomdq@8021
   317
#endif /* __khrplatform_h_ */
gabomdq@8021
   318
gabomdq@8021
   319
gabomdq@8021
   320
#ifndef __eglplatform_h_
gabomdq@8021
   321
#define __eglplatform_h_
gabomdq@8021
   322
gabomdq@8021
   323
/*
gabomdq@8021
   324
** Copyright (c) 2007-2009 The Khronos Group Inc.
gabomdq@8021
   325
**
gabomdq@8021
   326
** Permission is hereby granted, free of charge, to any person obtaining a
gabomdq@8021
   327
** copy of this software and/or associated documentation files (the
gabomdq@8021
   328
** "Materials"), to deal in the Materials without restriction, including
gabomdq@8021
   329
** without limitation the rights to use, copy, modify, merge, publish,
gabomdq@8021
   330
** distribute, sublicense, and/or sell copies of the Materials, and to
gabomdq@8021
   331
** permit persons to whom the Materials are furnished to do so, subject to
gabomdq@8021
   332
** the following conditions:
gabomdq@8021
   333
**
gabomdq@8021
   334
** The above copyright notice and this permission notice shall be included
gabomdq@8021
   335
** in all copies or substantial portions of the Materials.
gabomdq@8021
   336
**
gabomdq@8021
   337
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
gabomdq@8021
   338
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
gabomdq@8021
   339
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
gabomdq@8021
   340
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
gabomdq@8021
   341
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
gabomdq@8021
   342
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
gabomdq@8021
   343
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
gabomdq@8021
   344
*/
gabomdq@8021
   345
gabomdq@8021
   346
/* Platform-specific types and definitions for egl.h
gabomdq@8021
   347
* $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
gabomdq@8021
   348
*
gabomdq@8021
   349
* Adopters may modify khrplatform.h and this file to suit their platform.
gabomdq@8021
   350
* You are encouraged to submit all modifications to the Khronos group so that
gabomdq@8021
   351
* they can be included in future versions of this file.  Please submit changes
gabomdq@8021
   352
* by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
gabomdq@8021
   353
* by filing a bug against product "EGL" component "Registry".
gabomdq@8021
   354
*/
gabomdq@8021
   355
gabomdq@8021
   356
/*#include <KHR/khrplatform.h>*/
gabomdq@8021
   357
gabomdq@8021
   358
/* Macros used in EGL function prototype declarations.
gabomdq@8021
   359
*
gabomdq@8021
   360
* EGL functions should be prototyped as:
gabomdq@8021
   361
*
gabomdq@8021
   362
* EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
gabomdq@8021
   363
* typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
gabomdq@8021
   364
*
gabomdq@8021
   365
* KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
gabomdq@8021
   366
*/
gabomdq@8021
   367
gabomdq@8021
   368
#ifndef EGLAPI
gabomdq@8021
   369
#define EGLAPI KHRONOS_APICALL
gabomdq@8021
   370
#endif
gabomdq@8021
   371
gabomdq@8021
   372
#ifndef EGLAPIENTRY
gabomdq@8021
   373
#define EGLAPIENTRY  KHRONOS_APIENTRY
gabomdq@8021
   374
#endif
gabomdq@8021
   375
#define EGLAPIENTRYP EGLAPIENTRY*
gabomdq@8021
   376
gabomdq@8021
   377
/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
gabomdq@8021
   378
* are aliases of window-system-dependent types, such as X Display * or
gabomdq@8021
   379
* Windows Device Context. They must be defined in platform-specific
gabomdq@8021
   380
* code below. The EGL-prefixed versions of Native*Type are the same
gabomdq@8021
   381
* types, renamed in EGL 1.3 so all types in the API start with "EGL".
gabomdq@8021
   382
*
gabomdq@8021
   383
* Khronos STRONGLY RECOMMENDS that you use the default definitions
gabomdq@8021
   384
* provided below, since these changes affect both binary and source
gabomdq@8021
   385
* portability of applications using EGL running on different EGL
gabomdq@8021
   386
* implementations.
gabomdq@8021
   387
*/
gabomdq@8021
   388
gabomdq@8021
   389
#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
gabomdq@8021
   390
#ifndef WIN32_LEAN_AND_MEAN
gabomdq@8021
   391
#define WIN32_LEAN_AND_MEAN 1
gabomdq@8021
   392
#endif
gabomdq@8021
   393
#include <windows.h>
gabomdq@8021
   394
dludwig@8545
   395
#if __WINRT__
dludwig@8545
   396
#include <Unknwn.h>
slouken@8582
   397
typedef IUnknown * EGLNativeWindowType;
dludwig@8663
   398
typedef IUnknown * EGLNativePixmapType;
dludwig@8663
   399
typedef IUnknown * EGLNativeDisplayType;
dludwig@8545
   400
#else
gabomdq@8021
   401
typedef HDC     EGLNativeDisplayType;
gabomdq@8021
   402
typedef HBITMAP EGLNativePixmapType;
gabomdq@8021
   403
typedef HWND    EGLNativeWindowType;
dludwig@8545
   404
#endif
gabomdq@8021
   405
gabomdq@8021
   406
#elif defined(__WINSCW__) || defined(__SYMBIAN32__)  /* Symbian */
gabomdq@8021
   407
gabomdq@8021
   408
typedef int   EGLNativeDisplayType;
gabomdq@8021
   409
typedef void *EGLNativeWindowType;
gabomdq@8021
   410
typedef void *EGLNativePixmapType;
gabomdq@8021
   411
gabomdq@8021
   412
#elif defined(WL_EGL_PLATFORM)
gabomdq@8021
   413
gabomdq@8021
   414
typedef struct wl_display     *EGLNativeDisplayType;
gabomdq@8021
   415
typedef struct wl_egl_pixmap  *EGLNativePixmapType;
gabomdq@8021
   416
typedef struct wl_egl_window  *EGLNativeWindowType;
gabomdq@8021
   417
gabomdq@8021
   418
#elif defined(__GBM__)
gabomdq@8021
   419
gabomdq@8021
   420
typedef struct gbm_device  *EGLNativeDisplayType;
gabomdq@8021
   421
typedef struct gbm_bo      *EGLNativePixmapType;
gabomdq@8021
   422
typedef void               *EGLNativeWindowType;
gabomdq@8021
   423
dimitris@8761
   424
#elif defined(__ANDROID__) /* Android */
gabomdq@8021
   425
gabomdq@8021
   426
struct ANativeWindow;
gabomdq@8021
   427
struct egl_native_pixmap_t;
gabomdq@8021
   428
gabomdq@8021
   429
typedef struct ANativeWindow        *EGLNativeWindowType;
gabomdq@8021
   430
typedef struct egl_native_pixmap_t  *EGLNativePixmapType;
gabomdq@8021
   431
typedef void                        *EGLNativeDisplayType;
gabomdq@8021
   432
gabomdq@8021
   433
#elif defined(MIR_EGL_PLATFORM)
gabomdq@8021
   434
gabomdq@8021
   435
#include <mir_toolkit/mir_client_library.h>
gabomdq@8021
   436
typedef MirEGLNativeDisplayType EGLNativeDisplayType;
gabomdq@8021
   437
typedef void                   *EGLNativePixmapType;
gabomdq@8021
   438
typedef MirEGLNativeWindowType  EGLNativeWindowType;
gabomdq@8021
   439
gabomdq@8021
   440
#elif defined(__unix__)
gabomdq@8021
   441
gabomdq@8021
   442
#ifdef MESA_EGL_NO_X11_HEADERS
gabomdq@8021
   443
gabomdq@8021
   444
typedef void            *EGLNativeDisplayType;
gabomdq@8021
   445
typedef khronos_uintptr_t EGLNativePixmapType;
gabomdq@8021
   446
typedef khronos_uintptr_t EGLNativeWindowType;
gabomdq@8021
   447
gabomdq@8021
   448
#else
gabomdq@8021
   449
gabomdq@8021
   450
/* X11 (tentative)  */
gabomdq@8021
   451
#include <X11/Xlib.h>
gabomdq@8021
   452
#include <X11/Xutil.h>
gabomdq@8021
   453
gabomdq@8021
   454
typedef Display *EGLNativeDisplayType;
gabomdq@8021
   455
typedef Pixmap   EGLNativePixmapType;
gabomdq@8021
   456
typedef Window   EGLNativeWindowType;
gabomdq@8021
   457
gabomdq@8021
   458
#endif /* MESA_EGL_NO_X11_HEADERS */
gabomdq@8021
   459
gabomdq@8021
   460
#else
gabomdq@8021
   461
#error "Platform not recognized"
gabomdq@8021
   462
#endif
gabomdq@8021
   463
gabomdq@8021
   464
/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
gabomdq@8021
   465
typedef EGLNativeDisplayType NativeDisplayType;
gabomdq@8021
   466
typedef EGLNativePixmapType  NativePixmapType;
gabomdq@8021
   467
typedef EGLNativeWindowType  NativeWindowType;
gabomdq@8021
   468
gabomdq@8021
   469
gabomdq@8021
   470
/* Define EGLint. This must be a signed integral type large enough to contain
gabomdq@8021
   471
* all legal attribute names and values passed into and out of EGL, whether
gabomdq@8021
   472
* their type is boolean, bitmask, enumerant (symbolic constant), integer,
gabomdq@8021
   473
* handle, or other.  While in general a 32-bit integer will suffice, if
gabomdq@8021
   474
* handles are 64 bit types, then EGLint should be defined as a signed 64-bit
gabomdq@8021
   475
* integer type.
gabomdq@8021
   476
*/
gabomdq@8021
   477
typedef khronos_int32_t EGLint;
gabomdq@8021
   478
gabomdq@8021
   479
#endif /* __eglplatform_h */
gabomdq@8021
   480
gabomdq@8021
   481
/* -*- mode: c; tab-width: 8; -*- */
gabomdq@8021
   482
/* vi: set sw=4 ts=8: */
gabomdq@8021
   483
/* Reference version of egl.h for EGL 1.4.
gabomdq@8021
   484
* $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
gabomdq@8021
   485
*/
gabomdq@8021
   486
gabomdq@8021
   487
/*
gabomdq@8021
   488
** Copyright (c) 2007-2009 The Khronos Group Inc.
gabomdq@8021
   489
**
gabomdq@8021
   490
** Permission is hereby granted, free of charge, to any person obtaining a
gabomdq@8021
   491
** copy of this software and/or associated documentation files (the
gabomdq@8021
   492
** "Materials"), to deal in the Materials without restriction, including
gabomdq@8021
   493
** without limitation the rights to use, copy, modify, merge, publish,
gabomdq@8021
   494
** distribute, sublicense, and/or sell copies of the Materials, and to
gabomdq@8021
   495
** permit persons to whom the Materials are furnished to do so, subject to
gabomdq@8021
   496
** the following conditions:
gabomdq@8021
   497
**
gabomdq@8021
   498
** The above copyright notice and this permission notice shall be included
gabomdq@8021
   499
** in all copies or substantial portions of the Materials.
gabomdq@8021
   500
**
gabomdq@8021
   501
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
gabomdq@8021
   502
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
gabomdq@8021
   503
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
gabomdq@8021
   504
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
gabomdq@8021
   505
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
gabomdq@8021
   506
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
gabomdq@8021
   507
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
gabomdq@8021
   508
*/
gabomdq@8021
   509
gabomdq@8021
   510
#ifndef __egl_h_
gabomdq@8021
   511
#define __egl_h_
gabomdq@8021
   512
gabomdq@8021
   513
/* All platform-dependent types and macro boilerplate (such as EGLAPI
gabomdq@8021
   514
* and EGLAPIENTRY) should go in eglplatform.h.
gabomdq@8021
   515
*/
gabomdq@8021
   516
/*#include <EGL/eglplatform.h>*/
gabomdq@8021
   517
gabomdq@8021
   518
#ifdef __cplusplus
gabomdq@8021
   519
extern "C" {
gabomdq@8021
   520
#endif
gabomdq@8021
   521
gabomdq@8021
   522
    /* EGL Types */
gabomdq@8021
   523
    /* EGLint is defined in eglplatform.h */
gabomdq@8021
   524
    typedef unsigned int EGLBoolean;
gabomdq@8021
   525
    typedef unsigned int EGLenum;
gabomdq@8021
   526
    typedef void *EGLConfig;
gabomdq@8021
   527
    typedef void *EGLContext;
gabomdq@8021
   528
    typedef void *EGLDisplay;
gabomdq@8021
   529
    typedef void *EGLSurface;
gabomdq@8021
   530
    typedef void *EGLClientBuffer;
gabomdq@8021
   531
gabomdq@8021
   532
    /* EGL Versioning */
gabomdq@8021
   533
#define EGL_VERSION_1_0			1
gabomdq@8021
   534
#define EGL_VERSION_1_1			1
gabomdq@8021
   535
#define EGL_VERSION_1_2			1
gabomdq@8021
   536
#define EGL_VERSION_1_3			1
gabomdq@8021
   537
#define EGL_VERSION_1_4			1
gabomdq@8021
   538
gabomdq@8021
   539
    /* EGL Enumerants. Bitmasks and other exceptional cases aside, most
gabomdq@8021
   540
    * enums are assigned unique values starting at 0x3000.
gabomdq@8021
   541
    */
gabomdq@8021
   542
gabomdq@8021
   543
    /* EGL aliases */
gabomdq@8021
   544
#define EGL_FALSE			0
gabomdq@8021
   545
#define EGL_TRUE			1
gabomdq@8021
   546
gabomdq@8021
   547
    /* Out-of-band handle values */
gabomdq@8021
   548
#define EGL_DEFAULT_DISPLAY		((EGLNativeDisplayType)0)
gabomdq@8021
   549
#define EGL_NO_CONTEXT			((EGLContext)0)
gabomdq@8021
   550
#define EGL_NO_DISPLAY			((EGLDisplay)0)
gabomdq@8021
   551
#define EGL_NO_SURFACE			((EGLSurface)0)
gabomdq@8021
   552
gabomdq@8021
   553
    /* Out-of-band attribute value */
gabomdq@8021
   554
#define EGL_DONT_CARE			((EGLint)-1)
gabomdq@8021
   555
gabomdq@8021
   556
    /* Errors / GetError return values */
gabomdq@8021
   557
#define EGL_SUCCESS			0x3000
gabomdq@8021
   558
#define EGL_NOT_INITIALIZED		0x3001
gabomdq@8021
   559
#define EGL_BAD_ACCESS			0x3002
gabomdq@8021
   560
#define EGL_BAD_ALLOC			0x3003
gabomdq@8021
   561
#define EGL_BAD_ATTRIBUTE		0x3004
gabomdq@8021
   562
#define EGL_BAD_CONFIG			0x3005
gabomdq@8021
   563
#define EGL_BAD_CONTEXT			0x3006
gabomdq@8021
   564
#define EGL_BAD_CURRENT_SURFACE		0x3007
gabomdq@8021
   565
#define EGL_BAD_DISPLAY			0x3008
gabomdq@8021
   566
#define EGL_BAD_MATCH			0x3009
gabomdq@8021
   567
#define EGL_BAD_NATIVE_PIXMAP		0x300A
gabomdq@8021
   568
#define EGL_BAD_NATIVE_WINDOW		0x300B
gabomdq@8021
   569
#define EGL_BAD_PARAMETER		0x300C
gabomdq@8021
   570
#define EGL_BAD_SURFACE			0x300D
gabomdq@8021
   571
#define EGL_CONTEXT_LOST		0x300E	/* EGL 1.1 - IMG_power_management */
gabomdq@8021
   572
gabomdq@8021
   573
    /* Reserved 0x300F-0x301F for additional errors */
gabomdq@8021
   574
gabomdq@8021
   575
    /* Config attributes */
gabomdq@8021
   576
#define EGL_BUFFER_SIZE			0x3020
gabomdq@8021
   577
#define EGL_ALPHA_SIZE			0x3021
gabomdq@8021
   578
#define EGL_BLUE_SIZE			0x3022
gabomdq@8021
   579
#define EGL_GREEN_SIZE			0x3023
gabomdq@8021
   580
#define EGL_RED_SIZE			0x3024
gabomdq@8021
   581
#define EGL_DEPTH_SIZE			0x3025
gabomdq@8021
   582
#define EGL_STENCIL_SIZE		0x3026
gabomdq@8021
   583
#define EGL_CONFIG_CAVEAT		0x3027
gabomdq@8021
   584
#define EGL_CONFIG_ID			0x3028
gabomdq@8021
   585
#define EGL_LEVEL			0x3029
gabomdq@8021
   586
#define EGL_MAX_PBUFFER_HEIGHT		0x302A
gabomdq@8021
   587
#define EGL_MAX_PBUFFER_PIXELS		0x302B
gabomdq@8021
   588
#define EGL_MAX_PBUFFER_WIDTH		0x302C
gabomdq@8021
   589
#define EGL_NATIVE_RENDERABLE		0x302D
gabomdq@8021
   590
#define EGL_NATIVE_VISUAL_ID		0x302E
gabomdq@8021
   591
#define EGL_NATIVE_VISUAL_TYPE		0x302F
gabomdq@8021
   592
#define EGL_SAMPLES			0x3031
gabomdq@8021
   593
#define EGL_SAMPLE_BUFFERS		0x3032
gabomdq@8021
   594
#define EGL_SURFACE_TYPE		0x3033
gabomdq@8021
   595
#define EGL_TRANSPARENT_TYPE		0x3034
gabomdq@8021
   596
#define EGL_TRANSPARENT_BLUE_VALUE	0x3035
gabomdq@8021
   597
#define EGL_TRANSPARENT_GREEN_VALUE	0x3036
gabomdq@8021
   598
#define EGL_TRANSPARENT_RED_VALUE	0x3037
gabomdq@8021
   599
#define EGL_NONE			0x3038	/* Attrib list terminator */
gabomdq@8021
   600
#define EGL_BIND_TO_TEXTURE_RGB		0x3039
gabomdq@8021
   601
#define EGL_BIND_TO_TEXTURE_RGBA	0x303A
gabomdq@8021
   602
#define EGL_MIN_SWAP_INTERVAL		0x303B
gabomdq@8021
   603
#define EGL_MAX_SWAP_INTERVAL		0x303C
gabomdq@8021
   604
#define EGL_LUMINANCE_SIZE		0x303D
gabomdq@8021
   605
#define EGL_ALPHA_MASK_SIZE		0x303E
gabomdq@8021
   606
#define EGL_COLOR_BUFFER_TYPE		0x303F
gabomdq@8021
   607
#define EGL_RENDERABLE_TYPE		0x3040
gabomdq@8021
   608
#define EGL_MATCH_NATIVE_PIXMAP		0x3041	/* Pseudo-attribute (not queryable) */
gabomdq@8021
   609
#define EGL_CONFORMANT			0x3042
gabomdq@8021
   610
gabomdq@8021
   611
    /* Reserved 0x3041-0x304F for additional config attributes */
gabomdq@8021
   612
gabomdq@8021
   613
    /* Config attribute values */
gabomdq@8021
   614
#define EGL_SLOW_CONFIG			0x3050	/* EGL_CONFIG_CAVEAT value */
gabomdq@8021
   615
#define EGL_NON_CONFORMANT_CONFIG	0x3051	/* EGL_CONFIG_CAVEAT value */
gabomdq@8021
   616
#define EGL_TRANSPARENT_RGB		0x3052	/* EGL_TRANSPARENT_TYPE value */
gabomdq@8021
   617
#define EGL_RGB_BUFFER			0x308E	/* EGL_COLOR_BUFFER_TYPE value */
gabomdq@8021
   618
#define EGL_LUMINANCE_BUFFER		0x308F	/* EGL_COLOR_BUFFER_TYPE value */
gabomdq@8021
   619
gabomdq@8021
   620
    /* More config attribute values, for EGL_TEXTURE_FORMAT */
gabomdq@8021
   621
#define EGL_NO_TEXTURE			0x305C
gabomdq@8021
   622
#define EGL_TEXTURE_RGB			0x305D
gabomdq@8021
   623
#define EGL_TEXTURE_RGBA		0x305E
gabomdq@8021
   624
#define EGL_TEXTURE_2D			0x305F
gabomdq@8021
   625
gabomdq@8021
   626
    /* Config attribute mask bits */
gabomdq@8021
   627
#define EGL_PBUFFER_BIT			0x0001	/* EGL_SURFACE_TYPE mask bits */
gabomdq@8021
   628
#define EGL_PIXMAP_BIT			0x0002	/* EGL_SURFACE_TYPE mask bits */
gabomdq@8021
   629
#define EGL_WINDOW_BIT			0x0004	/* EGL_SURFACE_TYPE mask bits */
gabomdq@8021
   630
#define EGL_VG_COLORSPACE_LINEAR_BIT	0x0020	/* EGL_SURFACE_TYPE mask bits */
gabomdq@8021
   631
#define EGL_VG_ALPHA_FORMAT_PRE_BIT	0x0040	/* EGL_SURFACE_TYPE mask bits */
gabomdq@8021
   632
#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200	/* EGL_SURFACE_TYPE mask bits */
gabomdq@8021
   633
#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400	/* EGL_SURFACE_TYPE mask bits */
gabomdq@8021
   634
gabomdq@8021
   635
#define EGL_OPENGL_ES_BIT		0x0001	/* EGL_RENDERABLE_TYPE mask bits */
gabomdq@8021
   636
#define EGL_OPENVG_BIT			0x0002	/* EGL_RENDERABLE_TYPE mask bits */
gabomdq@8021
   637
#define EGL_OPENGL_ES2_BIT		0x0004	/* EGL_RENDERABLE_TYPE mask bits */
gabomdq@8021
   638
#define EGL_OPENGL_BIT			0x0008	/* EGL_RENDERABLE_TYPE mask bits */
gabomdq@8021
   639
gabomdq@8021
   640
    /* QueryString targets */
gabomdq@8021
   641
#define EGL_VENDOR			0x3053
gabomdq@8021
   642
#define EGL_VERSION			0x3054
gabomdq@8021
   643
#define EGL_EXTENSIONS			0x3055
gabomdq@8021
   644
#define EGL_CLIENT_APIS			0x308D
gabomdq@8021
   645
gabomdq@8021
   646
    /* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */
gabomdq@8021
   647
#define EGL_HEIGHT			0x3056
gabomdq@8021
   648
#define EGL_WIDTH			0x3057
gabomdq@8021
   649
#define EGL_LARGEST_PBUFFER		0x3058
gabomdq@8021
   650
#define EGL_TEXTURE_FORMAT		0x3080
gabomdq@8021
   651
#define EGL_TEXTURE_TARGET		0x3081
gabomdq@8021
   652
#define EGL_MIPMAP_TEXTURE		0x3082
gabomdq@8021
   653
#define EGL_MIPMAP_LEVEL		0x3083
gabomdq@8021
   654
#define EGL_RENDER_BUFFER		0x3086
gabomdq@8021
   655
#define EGL_VG_COLORSPACE		0x3087
gabomdq@8021
   656
#define EGL_VG_ALPHA_FORMAT		0x3088
gabomdq@8021
   657
#define EGL_HORIZONTAL_RESOLUTION	0x3090
gabomdq@8021
   658
#define EGL_VERTICAL_RESOLUTION		0x3091
gabomdq@8021
   659
#define EGL_PIXEL_ASPECT_RATIO		0x3092
gabomdq@8021
   660
#define EGL_SWAP_BEHAVIOR		0x3093
gabomdq@8021
   661
#define EGL_MULTISAMPLE_RESOLVE		0x3099
gabomdq@8021
   662
gabomdq@8021
   663
    /* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
gabomdq@8021
   664
#define EGL_BACK_BUFFER			0x3084
gabomdq@8021
   665
#define EGL_SINGLE_BUFFER		0x3085
gabomdq@8021
   666
gabomdq@8021
   667
    /* OpenVG color spaces */
gabomdq@8021
   668
#define EGL_VG_COLORSPACE_sRGB		0x3089	/* EGL_VG_COLORSPACE value */
gabomdq@8021
   669
#define EGL_VG_COLORSPACE_LINEAR	0x308A	/* EGL_VG_COLORSPACE value */
gabomdq@8021
   670
gabomdq@8021
   671
    /* OpenVG alpha formats */
gabomdq@8021
   672
#define EGL_VG_ALPHA_FORMAT_NONPRE	0x308B	/* EGL_ALPHA_FORMAT value */
gabomdq@8021
   673
#define EGL_VG_ALPHA_FORMAT_PRE		0x308C	/* EGL_ALPHA_FORMAT value */
gabomdq@8021
   674
gabomdq@8021
   675
    /* Constant scale factor by which fractional display resolutions &
gabomdq@8021
   676
    * aspect ratio are scaled when queried as integer values.
gabomdq@8021
   677
    */
gabomdq@8021
   678
#define EGL_DISPLAY_SCALING		10000
gabomdq@8021
   679
gabomdq@8021
   680
    /* Unknown display resolution/aspect ratio */
gabomdq@8021
   681
#define EGL_UNKNOWN			((EGLint)-1)
gabomdq@8021
   682
gabomdq@8021
   683
    /* Back buffer swap behaviors */
gabomdq@8021
   684
#define EGL_BUFFER_PRESERVED		0x3094	/* EGL_SWAP_BEHAVIOR value */
gabomdq@8021
   685
#define EGL_BUFFER_DESTROYED		0x3095	/* EGL_SWAP_BEHAVIOR value */
gabomdq@8021
   686
gabomdq@8021
   687
    /* CreatePbufferFromClientBuffer buffer types */
gabomdq@8021
   688
#define EGL_OPENVG_IMAGE		0x3096
gabomdq@8021
   689
gabomdq@8021
   690
    /* QueryContext targets */
gabomdq@8021
   691
#define EGL_CONTEXT_CLIENT_TYPE		0x3097
gabomdq@8021
   692
gabomdq@8021
   693
    /* CreateContext attributes */
gabomdq@8021
   694
#define EGL_CONTEXT_CLIENT_VERSION	0x3098
gabomdq@8021
   695
gabomdq@8021
   696
    /* Multisample resolution behaviors */
gabomdq@8021
   697
#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A	/* EGL_MULTISAMPLE_RESOLVE value */
gabomdq@8021
   698
#define EGL_MULTISAMPLE_RESOLVE_BOX	0x309B	/* EGL_MULTISAMPLE_RESOLVE value */
gabomdq@8021
   699
gabomdq@8021
   700
    /* BindAPI/QueryAPI targets */
gabomdq@8021
   701
#define EGL_OPENGL_ES_API		0x30A0
gabomdq@8021
   702
#define EGL_OPENVG_API			0x30A1
gabomdq@8021
   703
#define EGL_OPENGL_API			0x30A2
gabomdq@8021
   704
gabomdq@8021
   705
    /* GetCurrentSurface targets */
gabomdq@8021
   706
#define EGL_DRAW			0x3059
gabomdq@8021
   707
#define EGL_READ			0x305A
gabomdq@8021
   708
gabomdq@8021
   709
    /* WaitNative engines */
gabomdq@8021
   710
#define EGL_CORE_NATIVE_ENGINE		0x305B
gabomdq@8021
   711
gabomdq@8021
   712
    /* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
gabomdq@8021
   713
#define EGL_COLORSPACE			EGL_VG_COLORSPACE
gabomdq@8021
   714
#define EGL_ALPHA_FORMAT		EGL_VG_ALPHA_FORMAT
gabomdq@8021
   715
#define EGL_COLORSPACE_sRGB		EGL_VG_COLORSPACE_sRGB
gabomdq@8021
   716
#define EGL_COLORSPACE_LINEAR		EGL_VG_COLORSPACE_LINEAR
gabomdq@8021
   717
#define EGL_ALPHA_FORMAT_NONPRE		EGL_VG_ALPHA_FORMAT_NONPRE
gabomdq@8021
   718
#define EGL_ALPHA_FORMAT_PRE		EGL_VG_ALPHA_FORMAT_PRE
gabomdq@8021
   719
gabomdq@8021
   720
    /* EGL extensions must request enum blocks from the Khronos
gabomdq@8021
   721
    * API Registrar, who maintains the enumerant registry. Submit
gabomdq@8021
   722
    * a bug in Khronos Bugzilla against task "Registry".
gabomdq@8021
   723
    */
gabomdq@8021
   724
gabomdq@8021
   725
gabomdq@8021
   726
gabomdq@8021
   727
    /* EGL Functions */
gabomdq@8021
   728
gabomdq@8021
   729
    EGLAPI EGLint EGLAPIENTRY eglGetError(void);
gabomdq@8021
   730
gabomdq@8021
   731
    EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
gabomdq@8021
   732
    EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
gabomdq@8021
   733
    EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
gabomdq@8021
   734
gabomdq@8021
   735
    EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
gabomdq@8021
   736
gabomdq@8021
   737
    EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
gabomdq@8021
   738
        EGLint config_size, EGLint *num_config);
gabomdq@8021
   739
    EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
gabomdq@8021
   740
        EGLConfig *configs, EGLint config_size,
gabomdq@8021
   741
        EGLint *num_config);
gabomdq@8021
   742
    EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
gabomdq@8021
   743
        EGLint attribute, EGLint *value);
gabomdq@8021
   744
gabomdq@8021
   745
    EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
gabomdq@8021
   746
        EGLNativeWindowType win,
gabomdq@8021
   747
        const EGLint *attrib_list);
gabomdq@8021
   748
    EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
gabomdq@8021
   749
        const EGLint *attrib_list);
gabomdq@8021
   750
    EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
gabomdq@8021
   751
        EGLNativePixmapType pixmap,
gabomdq@8021
   752
        const EGLint *attrib_list);
gabomdq@8021
   753
    EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
gabomdq@8021
   754
    EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
gabomdq@8021
   755
        EGLint attribute, EGLint *value);
gabomdq@8021
   756
gabomdq@8021
   757
    EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
gabomdq@8021
   758
    EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
gabomdq@8021
   759
gabomdq@8021
   760
    EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
gabomdq@8021
   761
gabomdq@8021
   762
    EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
gabomdq@8021
   763
gabomdq@8021
   764
    EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
gabomdq@8021
   765
        EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
gabomdq@8021
   766
        EGLConfig config, const EGLint *attrib_list);
gabomdq@8021
   767
gabomdq@8021
   768
    EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
gabomdq@8021
   769
        EGLint attribute, EGLint value);
gabomdq@8021
   770
    EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
gabomdq@8021
   771
    EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
gabomdq@8021
   772
gabomdq@8021
   773
gabomdq@8021
   774
    EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
gabomdq@8021
   775
gabomdq@8021
   776
gabomdq@8021
   777
    EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
gabomdq@8021
   778
        EGLContext share_context,
gabomdq@8021
   779
        const EGLint *attrib_list);
gabomdq@8021
   780
    EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
gabomdq@8021
   781
    EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
gabomdq@8021
   782
        EGLSurface read, EGLContext ctx);
gabomdq@8021
   783
gabomdq@8021
   784
    EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
gabomdq@8021
   785
    EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
gabomdq@8021
   786
    EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
gabomdq@8021
   787
    EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
gabomdq@8021
   788
        EGLint attribute, EGLint *value);
gabomdq@8021
   789
gabomdq@8021
   790
    EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
gabomdq@8021
   791
    EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
gabomdq@8021
   792
    EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
gabomdq@8021
   793
    EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
gabomdq@8021
   794
        EGLNativePixmapType target);
gabomdq@8021
   795
gabomdq@8021
   796
    /* This is a generic function pointer type, whose name indicates it must
gabomdq@8021
   797
    * be cast to the proper type *and calling convention* before use.
gabomdq@8021
   798
    */
gabomdq@8021
   799
    typedef void(*__eglMustCastToProperFunctionPointerType)(void);
gabomdq@8021
   800
gabomdq@8021
   801
    /* Now, define eglGetProcAddress using the generic function ptr. type */
gabomdq@8021
   802
    EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
gabomdq@8021
   803
        eglGetProcAddress(const char *procname);
gabomdq@8021
   804
gabomdq@8021
   805
#ifdef __cplusplus
gabomdq@8021
   806
}
gabomdq@8021
   807
#endif
gabomdq@8021
   808
gabomdq@8021
   809
#endif /* __egl_h_ */
gabomdq@8021
   810
gabomdq@8021
   811
gabomdq@8021
   812
gabomdq@8021
   813
gabomdq@8021
   814
#ifndef __eglext_h_
gabomdq@8021
   815
#define __eglext_h_
gabomdq@8021
   816
gabomdq@8021
   817
#ifdef __cplusplus
gabomdq@8021
   818
extern "C" {
gabomdq@8021
   819
#endif
gabomdq@8021
   820
gabomdq@8021
   821
    /*
gabomdq@8021
   822
    ** Copyright (c) 2007-2013 The Khronos Group Inc.
gabomdq@8021
   823
    **
gabomdq@8021
   824
    ** Permission is hereby granted, free of charge, to any person obtaining a
gabomdq@8021
   825
    ** copy of this software and/or associated documentation files (the
gabomdq@8021
   826
    ** "Materials"), to deal in the Materials without restriction, including
gabomdq@8021
   827
    ** without limitation the rights to use, copy, modify, merge, publish,
gabomdq@8021
   828
    ** distribute, sublicense, and/or sell copies of the Materials, and to
gabomdq@8021
   829
    ** permit persons to whom the Materials are furnished to do so, subject to
gabomdq@8021
   830
    ** the following conditions:
gabomdq@8021
   831
    **
gabomdq@8021
   832
    ** The above copyright notice and this permission notice shall be included
gabomdq@8021
   833
    ** in all copies or substantial portions of the Materials.
gabomdq@8021
   834
    **
gabomdq@8021
   835
    ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
gabomdq@8021
   836
    ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
gabomdq@8021
   837
    ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
gabomdq@8021
   838
    ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
gabomdq@8021
   839
    ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
gabomdq@8021
   840
    ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
gabomdq@8021
   841
    ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
gabomdq@8021
   842
    */
gabomdq@8021
   843
gabomdq@8021
   844
/* #include <EGL/eglplatform.h> */
gabomdq@8021
   845
gabomdq@8021
   846
    /*************************************************************/
gabomdq@8021
   847
gabomdq@8021
   848
    /* Header file version number */
gabomdq@8021
   849
    /* Current version at http://www.khronos.org/registry/egl/ */
gabomdq@8021
   850
    /* $Revision: 21254 $ on $Date: 2013-04-25 03:11:55 -0700 (Thu, 25 Apr 2013) $ */
gabomdq@8021
   851
#define EGL_EGLEXT_VERSION 16
gabomdq@8021
   852
gabomdq@8021
   853
#ifndef EGL_KHR_config_attribs
gabomdq@8021
   854
#define EGL_KHR_config_attribs 1
gabomdq@8021
   855
#define EGL_CONFORMANT_KHR			0x3042	/* EGLConfig attribute */
gabomdq@8021
   856
#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR	0x0020	/* EGL_SURFACE_TYPE bitfield */
gabomdq@8021
   857
#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR		0x0040	/* EGL_SURFACE_TYPE bitfield */
gabomdq@8021
   858
#endif
gabomdq@8021
   859
gabomdq@8021
   860
#ifndef EGL_KHR_lock_surface
gabomdq@8021
   861
#define EGL_KHR_lock_surface 1
gabomdq@8021
   862
#define EGL_READ_SURFACE_BIT_KHR		0x0001	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
gabomdq@8021
   863
#define EGL_WRITE_SURFACE_BIT_KHR		0x0002	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
gabomdq@8021
   864
#define EGL_LOCK_SURFACE_BIT_KHR		0x0080	/* EGL_SURFACE_TYPE bitfield */
gabomdq@8021
   865
#define EGL_OPTIMAL_FORMAT_BIT_KHR		0x0100	/* EGL_SURFACE_TYPE bitfield */
gabomdq@8021
   866
#define EGL_MATCH_FORMAT_KHR			0x3043	/* EGLConfig attribute */
gabomdq@8021
   867
#define EGL_FORMAT_RGB_565_EXACT_KHR		0x30C0	/* EGL_MATCH_FORMAT_KHR value */
gabomdq@8021
   868
#define EGL_FORMAT_RGB_565_KHR			0x30C1	/* EGL_MATCH_FORMAT_KHR value */
gabomdq@8021
   869
#define EGL_FORMAT_RGBA_8888_EXACT_KHR		0x30C2	/* EGL_MATCH_FORMAT_KHR value */
gabomdq@8021
   870
#define EGL_FORMAT_RGBA_8888_KHR		0x30C3	/* EGL_MATCH_FORMAT_KHR value */
gabomdq@8021
   871
#define EGL_MAP_PRESERVE_PIXELS_KHR		0x30C4	/* eglLockSurfaceKHR attribute */
gabomdq@8021
   872
#define EGL_LOCK_USAGE_HINT_KHR			0x30C5	/* eglLockSurfaceKHR attribute */
gabomdq@8021
   873
#define EGL_BITMAP_POINTER_KHR			0x30C6	/* eglQuerySurface attribute */
gabomdq@8021
   874
#define EGL_BITMAP_PITCH_KHR			0x30C7	/* eglQuerySurface attribute */
gabomdq@8021
   875
#define EGL_BITMAP_ORIGIN_KHR			0x30C8	/* eglQuerySurface attribute */
gabomdq@8021
   876
#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR		0x30C9	/* eglQuerySurface attribute */
gabomdq@8021
   877
#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR	0x30CA	/* eglQuerySurface attribute */
gabomdq@8021
   878
#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR	0x30CB	/* eglQuerySurface attribute */
gabomdq@8021
   879
#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR	0x30CC	/* eglQuerySurface attribute */
gabomdq@8021
   880
#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR	0x30CD	/* eglQuerySurface attribute */
gabomdq@8021
   881
#define EGL_LOWER_LEFT_KHR			0x30CE	/* EGL_BITMAP_ORIGIN_KHR value */
gabomdq@8021
   882
#define EGL_UPPER_LEFT_KHR			0x30CF	/* EGL_BITMAP_ORIGIN_KHR value */
gabomdq@8021
   883
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
   884
    EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
gabomdq@8021
   885
    EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface);
gabomdq@8021
   886
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
   887
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
gabomdq@8021
   888
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
gabomdq@8021
   889
#endif
gabomdq@8021
   890
gabomdq@8021
   891
#ifndef EGL_KHR_image
gabomdq@8021
   892
#define EGL_KHR_image 1
gabomdq@8021
   893
#define EGL_NATIVE_PIXMAP_KHR			0x30B0	/* eglCreateImageKHR target */
gabomdq@8021
   894
    typedef void *EGLImageKHR;
gabomdq@8021
   895
#define EGL_NO_IMAGE_KHR			((EGLImageKHR)0)
gabomdq@8021
   896
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
   897
    EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
gabomdq@8021
   898
    EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image);
gabomdq@8021
   899
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
   900
    typedef EGLImageKHR(EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
gabomdq@8021
   901
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
gabomdq@8021
   902
#endif
gabomdq@8021
   903
gabomdq@8021
   904
#ifndef EGL_KHR_vg_parent_image
gabomdq@8021
   905
#define EGL_KHR_vg_parent_image 1
gabomdq@8021
   906
#define EGL_VG_PARENT_IMAGE_KHR			0x30BA	/* eglCreateImageKHR target */
gabomdq@8021
   907
#endif
gabomdq@8021
   908
gabomdq@8021
   909
#ifndef EGL_KHR_gl_texture_2D_image
gabomdq@8021
   910
#define EGL_KHR_gl_texture_2D_image 1
gabomdq@8021
   911
#define EGL_GL_TEXTURE_2D_KHR			0x30B1	/* eglCreateImageKHR target */
gabomdq@8021
   912
#define EGL_GL_TEXTURE_LEVEL_KHR		0x30BC	/* eglCreateImageKHR attribute */
gabomdq@8021
   913
#endif
gabomdq@8021
   914
gabomdq@8021
   915
#ifndef EGL_KHR_gl_texture_cubemap_image
gabomdq@8021
   916
#define EGL_KHR_gl_texture_cubemap_image 1
gabomdq@8021
   917
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR	0x30B3	/* eglCreateImageKHR target */
gabomdq@8021
   918
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR	0x30B4	/* eglCreateImageKHR target */
gabomdq@8021
   919
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR	0x30B5	/* eglCreateImageKHR target */
gabomdq@8021
   920
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR	0x30B6	/* eglCreateImageKHR target */
gabomdq@8021
   921
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR	0x30B7	/* eglCreateImageKHR target */
gabomdq@8021
   922
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR	0x30B8	/* eglCreateImageKHR target */
gabomdq@8021
   923
#endif
gabomdq@8021
   924
gabomdq@8021
   925
#ifndef EGL_KHR_gl_texture_3D_image
gabomdq@8021
   926
#define EGL_KHR_gl_texture_3D_image 1
gabomdq@8021
   927
#define EGL_GL_TEXTURE_3D_KHR			0x30B2	/* eglCreateImageKHR target */
gabomdq@8021
   928
#define EGL_GL_TEXTURE_ZOFFSET_KHR		0x30BD	/* eglCreateImageKHR attribute */
gabomdq@8021
   929
#endif
gabomdq@8021
   930
gabomdq@8021
   931
#ifndef EGL_KHR_gl_renderbuffer_image
gabomdq@8021
   932
#define EGL_KHR_gl_renderbuffer_image 1
gabomdq@8021
   933
#define EGL_GL_RENDERBUFFER_KHR			0x30B9	/* eglCreateImageKHR target */
gabomdq@8021
   934
#endif
gabomdq@8021
   935
gabomdq@8021
   936
#if KHRONOS_SUPPORT_INT64   /* EGLTimeKHR requires 64-bit uint support */
gabomdq@8021
   937
#ifndef EGL_KHR_reusable_sync
gabomdq@8021
   938
#define EGL_KHR_reusable_sync 1
gabomdq@8021
   939
gabomdq@8021
   940
    typedef void* EGLSyncKHR;
gabomdq@8021
   941
    typedef khronos_utime_nanoseconds_t EGLTimeKHR;
gabomdq@8021
   942
gabomdq@8021
   943
#define EGL_SYNC_STATUS_KHR			0x30F1
gabomdq@8021
   944
#define EGL_SIGNALED_KHR			0x30F2
gabomdq@8021
   945
#define EGL_UNSIGNALED_KHR			0x30F3
gabomdq@8021
   946
#define EGL_TIMEOUT_EXPIRED_KHR			0x30F5
gabomdq@8021
   947
#define EGL_CONDITION_SATISFIED_KHR		0x30F6
gabomdq@8021
   948
#define EGL_SYNC_TYPE_KHR			0x30F7
gabomdq@8021
   949
#define EGL_SYNC_REUSABLE_KHR			0x30FA
gabomdq@8021
   950
#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR		0x0001	/* eglClientWaitSyncKHR <flags> bitfield */
gabomdq@8021
   951
#define EGL_FOREVER_KHR				0xFFFFFFFFFFFFFFFFull
gabomdq@8021
   952
#define EGL_NO_SYNC_KHR				((EGLSyncKHR)0)
gabomdq@8021
   953
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
   954
    EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
gabomdq@8021
   955
    EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync);
gabomdq@8021
   956
    EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
gabomdq@8021
   957
    EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
gabomdq@8021
   958
    EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
gabomdq@8021
   959
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
   960
    typedef EGLSyncKHR(EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
gabomdq@8021
   961
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
gabomdq@8021
   962
    typedef EGLint(EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
gabomdq@8021
   963
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
gabomdq@8021
   964
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
gabomdq@8021
   965
#endif
gabomdq@8021
   966
#endif
gabomdq@8021
   967
gabomdq@8021
   968
#ifndef EGL_KHR_image_base
gabomdq@8021
   969
#define EGL_KHR_image_base 1
gabomdq@8021
   970
    /* Most interfaces defined by EGL_KHR_image_pixmap above */
gabomdq@8021
   971
#define EGL_IMAGE_PRESERVED_KHR			0x30D2	/* eglCreateImageKHR attribute */
gabomdq@8021
   972
#endif
gabomdq@8021
   973
gabomdq@8021
   974
#ifndef EGL_KHR_image_pixmap
gabomdq@8021
   975
#define EGL_KHR_image_pixmap 1
gabomdq@8021
   976
    /* Interfaces defined by EGL_KHR_image above */
gabomdq@8021
   977
#endif
gabomdq@8021
   978
gabomdq@8021
   979
#ifndef EGL_IMG_context_priority
gabomdq@8021
   980
#define EGL_IMG_context_priority 1
gabomdq@8021
   981
#define EGL_CONTEXT_PRIORITY_LEVEL_IMG		0x3100
gabomdq@8021
   982
#define EGL_CONTEXT_PRIORITY_HIGH_IMG		0x3101
gabomdq@8021
   983
#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG		0x3102
gabomdq@8021
   984
#define EGL_CONTEXT_PRIORITY_LOW_IMG		0x3103
gabomdq@8021
   985
#endif
gabomdq@8021
   986
gabomdq@8021
   987
#ifndef EGL_KHR_lock_surface2
gabomdq@8021
   988
#define EGL_KHR_lock_surface2 1
gabomdq@8021
   989
#define EGL_BITMAP_PIXEL_SIZE_KHR		0x3110
gabomdq@8021
   990
#endif
gabomdq@8021
   991
gabomdq@8021
   992
#ifndef EGL_NV_coverage_sample
gabomdq@8021
   993
#define EGL_NV_coverage_sample 1
gabomdq@8021
   994
#define EGL_COVERAGE_BUFFERS_NV			0x30E0
gabomdq@8021
   995
#define EGL_COVERAGE_SAMPLES_NV			0x30E1
gabomdq@8021
   996
#endif
gabomdq@8021
   997
gabomdq@8021
   998
#ifndef EGL_NV_depth_nonlinear
gabomdq@8021
   999
#define EGL_NV_depth_nonlinear 1
gabomdq@8021
  1000
#define EGL_DEPTH_ENCODING_NV			0x30E2
gabomdq@8021
  1001
#define EGL_DEPTH_ENCODING_NONE_NV 0
gabomdq@8021
  1002
#define EGL_DEPTH_ENCODING_NONLINEAR_NV		0x30E3
gabomdq@8021
  1003
#endif
gabomdq@8021
  1004
gabomdq@8021
  1005
#if KHRONOS_SUPPORT_INT64   /* EGLTimeNV requires 64-bit uint support */
gabomdq@8021
  1006
#ifndef EGL_NV_sync
gabomdq@8021
  1007
#define EGL_NV_sync 1
gabomdq@8021
  1008
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV	0x30E6
gabomdq@8021
  1009
#define EGL_SYNC_STATUS_NV			0x30E7
gabomdq@8021
  1010
#define EGL_SIGNALED_NV				0x30E8
gabomdq@8021
  1011
#define EGL_UNSIGNALED_NV			0x30E9
gabomdq@8021
  1012
#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV		0x0001
gabomdq@8021
  1013
#define EGL_FOREVER_NV				0xFFFFFFFFFFFFFFFFull
gabomdq@8021
  1014
#define EGL_ALREADY_SIGNALED_NV			0x30EA
gabomdq@8021
  1015
#define EGL_TIMEOUT_EXPIRED_NV			0x30EB
gabomdq@8021
  1016
#define EGL_CONDITION_SATISFIED_NV		0x30EC
gabomdq@8021
  1017
#define EGL_SYNC_TYPE_NV			0x30ED
gabomdq@8021
  1018
#define EGL_SYNC_CONDITION_NV			0x30EE
gabomdq@8021
  1019
#define EGL_SYNC_FENCE_NV			0x30EF
gabomdq@8021
  1020
#define EGL_NO_SYNC_NV				((EGLSyncNV)0)
gabomdq@8021
  1021
    typedef void* EGLSyncNV;
gabomdq@8021
  1022
    typedef khronos_utime_nanoseconds_t EGLTimeNV;
gabomdq@8021
  1023
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1024
    EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV(EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
gabomdq@8021
  1025
    EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV(EGLSyncNV sync);
gabomdq@8021
  1026
    EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV(EGLSyncNV sync);
gabomdq@8021
  1027
    EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV(EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
gabomdq@8021
  1028
    EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV(EGLSyncNV sync, EGLenum mode);
gabomdq@8021
  1029
    EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV(EGLSyncNV sync, EGLint attribute, EGLint *value);
gabomdq@8021
  1030
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1031
    typedef EGLSyncNV(EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
gabomdq@8021
  1032
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
gabomdq@8021
  1033
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
gabomdq@8021
  1034
    typedef EGLint(EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
gabomdq@8021
  1035
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
gabomdq@8021
  1036
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
gabomdq@8021
  1037
#endif
gabomdq@8021
  1038
#endif
gabomdq@8021
  1039
gabomdq@8021
  1040
#if KHRONOS_SUPPORT_INT64   /* Dependent on EGL_KHR_reusable_sync which requires 64-bit uint support */
gabomdq@8021
  1041
#ifndef EGL_KHR_fence_sync
gabomdq@8021
  1042
#define EGL_KHR_fence_sync 1
gabomdq@8021
  1043
    /* Reuses most tokens and entry points from EGL_KHR_reusable_sync */
gabomdq@8021
  1044
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR	0x30F0
gabomdq@8021
  1045
#define EGL_SYNC_CONDITION_KHR			0x30F8
gabomdq@8021
  1046
#define EGL_SYNC_FENCE_KHR			0x30F9
gabomdq@8021
  1047
#endif
gabomdq@8021
  1048
#endif
gabomdq@8021
  1049
gabomdq@8021
  1050
#ifndef EGL_HI_clientpixmap
gabomdq@8021
  1051
#define EGL_HI_clientpixmap 1
gabomdq@8021
  1052
gabomdq@8021
  1053
    /* Surface Attribute */
gabomdq@8021
  1054
#define EGL_CLIENT_PIXMAP_POINTER_HI		0x8F74
gabomdq@8021
  1055
    /*
gabomdq@8021
  1056
    * Structure representing a client pixmap
gabomdq@8021
  1057
    * (pixmap's data is in client-space memory).
gabomdq@8021
  1058
    */
gabomdq@8021
  1059
    struct EGLClientPixmapHI
gabomdq@8021
  1060
    {
gabomdq@8021
  1061
        void*		pData;
gabomdq@8021
  1062
        EGLint		iWidth;
gabomdq@8021
  1063
        EGLint		iHeight;
gabomdq@8021
  1064
        EGLint		iStride;
gabomdq@8021
  1065
    };
gabomdq@8021
  1066
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1067
    EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
gabomdq@8021
  1068
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1069
    typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
gabomdq@8021
  1070
#endif	/* EGL_HI_clientpixmap */
gabomdq@8021
  1071
gabomdq@8021
  1072
#ifndef EGL_HI_colorformats
gabomdq@8021
  1073
#define EGL_HI_colorformats 1
gabomdq@8021
  1074
    /* Config Attribute */
gabomdq@8021
  1075
#define EGL_COLOR_FORMAT_HI			0x8F70
gabomdq@8021
  1076
    /* Color Formats */
gabomdq@8021
  1077
#define EGL_COLOR_RGB_HI			0x8F71
gabomdq@8021
  1078
#define EGL_COLOR_RGBA_HI			0x8F72
gabomdq@8021
  1079
#define EGL_COLOR_ARGB_HI			0x8F73
gabomdq@8021
  1080
#endif /* EGL_HI_colorformats */
gabomdq@8021
  1081
gabomdq@8021
  1082
#ifndef EGL_MESA_drm_image
gabomdq@8021
  1083
#define EGL_MESA_drm_image 1
gabomdq@8021
  1084
#define EGL_DRM_BUFFER_FORMAT_MESA		0x31D0	    /* CreateDRMImageMESA attribute */
gabomdq@8021
  1085
#define EGL_DRM_BUFFER_USE_MESA			0x31D1	    /* CreateDRMImageMESA attribute */
gabomdq@8021
  1086
#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA	0x31D2	    /* EGL_IMAGE_FORMAT_MESA attribute value */
gabomdq@8021
  1087
#define EGL_DRM_BUFFER_MESA			0x31D3	    /* eglCreateImageKHR target */
gabomdq@8021
  1088
#define EGL_DRM_BUFFER_STRIDE_MESA		0x31D4
gabomdq@8021
  1089
#define EGL_DRM_BUFFER_USE_SCANOUT_MESA		0x00000001  /* EGL_DRM_BUFFER_USE_MESA bits */
gabomdq@8021
  1090
#define EGL_DRM_BUFFER_USE_SHARE_MESA		0x00000002  /* EGL_DRM_BUFFER_USE_MESA bits */
gabomdq@8021
  1091
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1092
    EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attrib_list);
gabomdq@8021
  1093
    EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
gabomdq@8021
  1094
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1095
    typedef EGLImageKHR(EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list);
gabomdq@8021
  1096
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
gabomdq@8021
  1097
#endif
gabomdq@8021
  1098
gabomdq@8021
  1099
#ifndef EGL_NV_post_sub_buffer
gabomdq@8021
  1100
#define EGL_NV_post_sub_buffer 1
gabomdq@8021
  1101
#define EGL_POST_SUB_BUFFER_SUPPORTED_NV	0x30BE
gabomdq@8021
  1102
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1103
    EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
gabomdq@8021
  1104
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1105
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
gabomdq@8021
  1106
#endif
gabomdq@8021
  1107
gabomdq@8021
  1108
#ifndef EGL_ANGLE_query_surface_pointer
gabomdq@8021
  1109
#define EGL_ANGLE_query_surface_pointer 1
gabomdq@8021
  1110
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1111
    EGLAPI EGLBoolean eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
gabomdq@8021
  1112
#endif
gabomdq@8021
  1113
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
gabomdq@8021
  1114
#endif
gabomdq@8021
  1115
gabomdq@8021
  1116
#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle
gabomdq@8021
  1117
#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
gabomdq@8021
  1118
#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE	0x3200
gabomdq@8021
  1119
#endif
gabomdq@8021
  1120
gabomdq@8021
  1121
#ifndef EGL_NV_coverage_sample_resolve
gabomdq@8021
  1122
#define EGL_NV_coverage_sample_resolve 1
gabomdq@8021
  1123
#define EGL_COVERAGE_SAMPLE_RESOLVE_NV		0x3131
gabomdq@8021
  1124
#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV	0x3132
gabomdq@8021
  1125
#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV	0x3133
gabomdq@8021
  1126
#endif
gabomdq@8021
  1127
gabomdq@8021
  1128
#if KHRONOS_SUPPORT_INT64   /* EGLuint64NV requires 64-bit uint support */
gabomdq@8021
  1129
#ifndef EGL_NV_system_time
gabomdq@8021
  1130
#define EGL_NV_system_time 1
gabomdq@8021
  1131
    typedef khronos_utime_nanoseconds_t EGLuint64NV;
gabomdq@8021
  1132
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1133
    EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV(void);
gabomdq@8021
  1134
    EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV(void);
gabomdq@8021
  1135
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1136
    typedef EGLuint64NV(EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
gabomdq@8021
  1137
    typedef EGLuint64NV(EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void);
gabomdq@8021
  1138
#endif
gabomdq@8021
  1139
#endif
gabomdq@8021
  1140
gabomdq@8021
  1141
#if KHRONOS_SUPPORT_INT64 /* EGLuint64KHR requires 64-bit uint support */
gabomdq@8021
  1142
#ifndef EGL_KHR_stream
gabomdq@8021
  1143
#define EGL_KHR_stream 1
gabomdq@8021
  1144
    typedef void* EGLStreamKHR;
gabomdq@8021
  1145
    typedef khronos_uint64_t EGLuint64KHR;
gabomdq@8021
  1146
#define EGL_NO_STREAM_KHR			((EGLStreamKHR)0)
gabomdq@8021
  1147
#define EGL_CONSUMER_LATENCY_USEC_KHR		0x3210
gabomdq@8021
  1148
#define EGL_PRODUCER_FRAME_KHR			0x3212
gabomdq@8021
  1149
#define EGL_CONSUMER_FRAME_KHR			0x3213
gabomdq@8021
  1150
#define EGL_STREAM_STATE_KHR			0x3214
gabomdq@8021
  1151
#define EGL_STREAM_STATE_CREATED_KHR		0x3215
gabomdq@8021
  1152
#define EGL_STREAM_STATE_CONNECTING_KHR		0x3216
gabomdq@8021
  1153
#define EGL_STREAM_STATE_EMPTY_KHR		0x3217
gabomdq@8021
  1154
#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR    0x3218
gabomdq@8021
  1155
#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR    0x3219
gabomdq@8021
  1156
#define EGL_STREAM_STATE_DISCONNECTED_KHR	0x321A
gabomdq@8021
  1157
#define EGL_BAD_STREAM_KHR			0x321B
gabomdq@8021
  1158
#define EGL_BAD_STATE_KHR			0x321C
gabomdq@8021
  1159
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1160
    EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_list);
gabomdq@8021
  1161
    EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream);
gabomdq@8021
  1162
    EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
gabomdq@8021
  1163
    EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
gabomdq@8021
  1164
    EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
gabomdq@8021
  1165
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1166
    typedef EGLStreamKHR(EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC)(EGLDisplay dpy, const EGLint *attrib_list);
gabomdq@8021
  1167
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
gabomdq@8021
  1168
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
gabomdq@8021
  1169
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
gabomdq@8021
  1170
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
gabomdq@8021
  1171
#endif
gabomdq@8021
  1172
#endif
gabomdq@8021
  1173
gabomdq@8021
  1174
#ifdef EGL_KHR_stream /* Requires KHR_stream extension */
gabomdq@8021
  1175
#ifndef EGL_KHR_stream_consumer_gltexture
gabomdq@8021
  1176
#define EGL_KHR_stream_consumer_gltexture 1
gabomdq@8021
  1177
#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR	0x321E
gabomdq@8021
  1178
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1179
    EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EGLStreamKHR stream);
gabomdq@8021
  1180
    EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream);
gabomdq@8021
  1181
    EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream);
gabomdq@8021
  1182
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1183
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
gabomdq@8021
  1184
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
gabomdq@8021
  1185
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
gabomdq@8021
  1186
#endif
gabomdq@8021
  1187
#endif
gabomdq@8021
  1188
gabomdq@8021
  1189
#ifdef EGL_KHR_stream /* Requires KHR_stream extension */
gabomdq@8021
  1190
#ifndef EGL_KHR_stream_producer_eglsurface
gabomdq@8021
  1191
#define EGL_KHR_stream_producer_eglsurface 1
gabomdq@8021
  1192
#define EGL_STREAM_BIT_KHR			0x0800
gabomdq@8021
  1193
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1194
    EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
gabomdq@8021
  1195
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1196
    typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
gabomdq@8021
  1197
#endif
gabomdq@8021
  1198
#endif
gabomdq@8021
  1199
gabomdq@8021
  1200
#ifdef EGL_KHR_stream /* Requires KHR_stream extension */
gabomdq@8021
  1201
#ifndef EGL_KHR_stream_producer_aldatalocator
gabomdq@8021
  1202
#define EGL_KHR_stream_producer_aldatalocator 1
gabomdq@8021
  1203
#endif
gabomdq@8021
  1204
#endif
gabomdq@8021
  1205
gabomdq@8021
  1206
#ifdef EGL_KHR_stream /* Requires KHR_stream extension */
gabomdq@8021
  1207
#ifndef EGL_KHR_stream_fifo
gabomdq@8021
  1208
#define EGL_KHR_stream_fifo 1
gabomdq@8021
  1209
    /* reuse EGLTimeKHR */
gabomdq@8021
  1210
#define EGL_STREAM_FIFO_LENGTH_KHR		0x31FC
gabomdq@8021
  1211
#define EGL_STREAM_TIME_NOW_KHR			0x31FD
gabomdq@8021
  1212
#define EGL_STREAM_TIME_CONSUMER_KHR		0x31FE
gabomdq@8021
  1213
#define EGL_STREAM_TIME_PRODUCER_KHR		0x31FF
gabomdq@8021
  1214
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1215
    EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
gabomdq@8021
  1216
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1217
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
gabomdq@8021
  1218
#endif
gabomdq@8021
  1219
#endif
gabomdq@8021
  1220
gabomdq@8021
  1221
#ifndef EGL_EXT_create_context_robustness
gabomdq@8021
  1222
#define EGL_EXT_create_context_robustness 1
gabomdq@8021
  1223
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT	0x30BF
gabomdq@8021
  1224
#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
gabomdq@8021
  1225
#define EGL_NO_RESET_NOTIFICATION_EXT		0x31BE
gabomdq@8021
  1226
#define EGL_LOSE_CONTEXT_ON_RESET_EXT		0x31BF
gabomdq@8021
  1227
#endif
gabomdq@8021
  1228
gabomdq@8021
  1229
#ifndef EGL_ANGLE_d3d_share_handle_client_buffer
gabomdq@8021
  1230
#define EGL_ANGLE_d3d_share_handle_client_buffer 1
gabomdq@8021
  1231
    /* reuse EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE */
gabomdq@8021
  1232
#endif
gabomdq@8021
  1233
gabomdq@8021
  1234
#ifndef EGL_KHR_create_context
gabomdq@8021
  1235
#define EGL_KHR_create_context 1
gabomdq@8021
  1236
#define EGL_CONTEXT_MAJOR_VERSION_KHR			    EGL_CONTEXT_CLIENT_VERSION
gabomdq@8021
  1237
#define EGL_CONTEXT_MINOR_VERSION_KHR			    0x30FB
gabomdq@8021
  1238
#define EGL_CONTEXT_FLAGS_KHR				    0x30FC
gabomdq@8021
  1239
#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR		    0x30FD
gabomdq@8021
  1240
#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR  0x31BD
gabomdq@8021
  1241
#define EGL_NO_RESET_NOTIFICATION_KHR			    0x31BE
gabomdq@8021
  1242
#define EGL_LOSE_CONTEXT_ON_RESET_KHR			    0x31BF
gabomdq@8021
  1243
#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR		    0x00000001
gabomdq@8021
  1244
#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR	    0x00000002
gabomdq@8021
  1245
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR	    0x00000004
gabomdq@8021
  1246
#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR		    0x00000001
gabomdq@8021
  1247
#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR    0x00000002
gabomdq@8021
  1248
#define EGL_OPENGL_ES3_BIT_KHR				    0x00000040
gabomdq@8021
  1249
#endif
gabomdq@8021
  1250
gabomdq@8021
  1251
#ifndef EGL_KHR_surfaceless_context
gabomdq@8021
  1252
#define EGL_KHR_surfaceless_context 1
gabomdq@8021
  1253
    /* No tokens/entry points, just relaxes an error condition */
gabomdq@8021
  1254
#endif
gabomdq@8021
  1255
gabomdq@8021
  1256
#ifdef EGL_KHR_stream /* Requires KHR_stream extension */
gabomdq@8021
  1257
#ifndef EGL_KHR_stream_cross_process_fd
gabomdq@8021
  1258
#define EGL_KHR_stream_cross_process_fd 1
gabomdq@8021
  1259
    typedef int EGLNativeFileDescriptorKHR;
gabomdq@8021
  1260
#define EGL_NO_FILE_DESCRIPTOR_KHR		((EGLNativeFileDescriptorKHR)(-1))
gabomdq@8021
  1261
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1262
    EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR(EGLDisplay dpy, EGLStreamKHR stream);
gabomdq@8021
  1263
    EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
gabomdq@8021
  1264
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1265
    typedef EGLNativeFileDescriptorKHR(EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
gabomdq@8021
  1266
    typedef EGLStreamKHR(EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
gabomdq@8021
  1267
#endif
gabomdq@8021
  1268
#endif
gabomdq@8021
  1269
gabomdq@8021
  1270
#ifndef EGL_EXT_multiview_window
gabomdq@8021
  1271
#define EGL_EXT_multiview_window 1
gabomdq@8021
  1272
#define EGL_MULTIVIEW_VIEW_COUNT_EXT		0x3134
gabomdq@8021
  1273
#endif
gabomdq@8021
  1274
gabomdq@8021
  1275
#ifndef EGL_KHR_wait_sync
gabomdq@8021
  1276
#define EGL_KHR_wait_sync 1
gabomdq@8021
  1277
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1278
    EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
gabomdq@8021
  1279
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1280
    typedef EGLint(EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
gabomdq@8021
  1281
#endif
gabomdq@8021
  1282
gabomdq@8021
  1283
#ifndef EGL_NV_post_convert_rounding
gabomdq@8021
  1284
#define EGL_NV_post_convert_rounding 1
gabomdq@8021
  1285
    /* No tokens or entry points, just relaxes behavior of SwapBuffers */
gabomdq@8021
  1286
#endif
gabomdq@8021
  1287
gabomdq@8021
  1288
#ifndef EGL_NV_native_query
gabomdq@8021
  1289
#define EGL_NV_native_query 1
gabomdq@8021
  1290
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1291
    EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV(EGLDisplay dpy, EGLNativeDisplayType* display_id);
gabomdq@8021
  1292
    EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV(EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType* window);
gabomdq@8021
  1293
    EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV(EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType* pixmap);
gabomdq@8021
  1294
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1295
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC)(EGLDisplay dpy, EGLNativeDisplayType *display_id);
gabomdq@8021
  1296
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
gabomdq@8021
  1297
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
gabomdq@8021
  1298
#endif
gabomdq@8021
  1299
gabomdq@8021
  1300
#ifndef EGL_NV_3dvision_surface
gabomdq@8021
  1301
#define EGL_NV_3dvision_surface 1
gabomdq@8021
  1302
#define EGL_AUTO_STEREO_NV			0x3136
gabomdq@8021
  1303
#endif
gabomdq@8021
  1304
gabomdq@8021
  1305
#ifndef EGL_ANDROID_framebuffer_target
gabomdq@8021
  1306
#define EGL_ANDROID_framebuffer_target 1
gabomdq@8021
  1307
#define EGL_FRAMEBUFFER_TARGET_ANDROID		0x3147
gabomdq@8021
  1308
#endif
gabomdq@8021
  1309
gabomdq@8021
  1310
#ifndef EGL_ANDROID_blob_cache
gabomdq@8021
  1311
#define EGL_ANDROID_blob_cache 1
gabomdq@8021
  1312
    typedef khronos_ssize_t EGLsizeiANDROID;
gabomdq@8021
  1313
    typedef void(*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
gabomdq@8021
  1314
    typedef EGLsizeiANDROID(*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
gabomdq@8021
  1315
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1316
    EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
gabomdq@8021
  1317
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1318
    typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC)(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
gabomdq@8021
  1319
#endif
gabomdq@8021
  1320
gabomdq@8021
  1321
#ifndef EGL_ANDROID_image_native_buffer
gabomdq@8021
  1322
#define EGL_ANDROID_image_native_buffer 1
gabomdq@8021
  1323
#define EGL_NATIVE_BUFFER_ANDROID		0x3140
gabomdq@8021
  1324
#endif
gabomdq@8021
  1325
gabomdq@8021
  1326
#ifndef EGL_ANDROID_native_fence_sync
gabomdq@8021
  1327
#define EGL_ANDROID_native_fence_sync 1
gabomdq@8021
  1328
#define EGL_SYNC_NATIVE_FENCE_ANDROID		0x3144
gabomdq@8021
  1329
#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID	0x3145
gabomdq@8021
  1330
#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID	0x3146
gabomdq@8021
  1331
#define EGL_NO_NATIVE_FENCE_FD_ANDROID		-1
gabomdq@8021
  1332
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1333
    EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR);
gabomdq@8021
  1334
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1335
    typedef EGLint(EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC)(EGLDisplay dpy, EGLSyncKHR);
gabomdq@8021
  1336
#endif
gabomdq@8021
  1337
gabomdq@8021
  1338
#ifndef EGL_ANDROID_recordable
gabomdq@8021
  1339
#define EGL_ANDROID_recordable 1
gabomdq@8021
  1340
#define EGL_RECORDABLE_ANDROID			0x3142
gabomdq@8021
  1341
#endif
gabomdq@8021
  1342
gabomdq@8021
  1343
#ifndef EGL_EXT_buffer_age
gabomdq@8021
  1344
#define EGL_EXT_buffer_age 1
gabomdq@8021
  1345
#define EGL_BUFFER_AGE_EXT			0x313D
gabomdq@8021
  1346
#endif
gabomdq@8021
  1347
gabomdq@8021
  1348
#ifndef EGL_EXT_image_dma_buf_import
gabomdq@8021
  1349
#define EGL_EXT_image_dma_buf_import 1
gabomdq@8021
  1350
#define EGL_LINUX_DMA_BUF_EXT			0x3270
gabomdq@8021
  1351
#define EGL_LINUX_DRM_FOURCC_EXT		0x3271
gabomdq@8021
  1352
#define EGL_DMA_BUF_PLANE0_FD_EXT		0x3272
gabomdq@8021
  1353
#define EGL_DMA_BUF_PLANE0_OFFSET_EXT		0x3273
gabomdq@8021
  1354
#define EGL_DMA_BUF_PLANE0_PITCH_EXT		0x3274
gabomdq@8021
  1355
#define EGL_DMA_BUF_PLANE1_FD_EXT		0x3275
gabomdq@8021
  1356
#define EGL_DMA_BUF_PLANE1_OFFSET_EXT		0x3276
gabomdq@8021
  1357
#define EGL_DMA_BUF_PLANE1_PITCH_EXT		0x3277
gabomdq@8021
  1358
#define EGL_DMA_BUF_PLANE2_FD_EXT		0x3278
gabomdq@8021
  1359
#define EGL_DMA_BUF_PLANE2_OFFSET_EXT		0x3279
gabomdq@8021
  1360
#define EGL_DMA_BUF_PLANE2_PITCH_EXT		0x327A
gabomdq@8021
  1361
#define EGL_YUV_COLOR_SPACE_HINT_EXT		0x327B
gabomdq@8021
  1362
#define EGL_SAMPLE_RANGE_HINT_EXT		0x327C
gabomdq@8021
  1363
#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
gabomdq@8021
  1364
#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
gabomdq@8021
  1365
#define EGL_ITU_REC601_EXT			0x327F
gabomdq@8021
  1366
#define EGL_ITU_REC709_EXT			0x3280
gabomdq@8021
  1367
#define EGL_ITU_REC2020_EXT			0x3281
gabomdq@8021
  1368
#define EGL_YUV_FULL_RANGE_EXT			0x3282
gabomdq@8021
  1369
#define EGL_YUV_NARROW_RANGE_EXT		0x3283
gabomdq@8021
  1370
#define EGL_YUV_CHROMA_SITING_0_EXT		0x3284
gabomdq@8021
  1371
#define EGL_YUV_CHROMA_SITING_0_5_EXT		0x3285
gabomdq@8021
  1372
#endif
gabomdq@8021
  1373
gabomdq@8021
  1374
#ifndef EGL_ARM_pixmap_multisample_discard
gabomdq@8021
  1375
#define EGL_ARM_pixmap_multisample_discard 1
gabomdq@8021
  1376
#define EGL_DISCARD_SAMPLES_ARM			0x3286
gabomdq@8021
  1377
#endif
gabomdq@8021
  1378
gabomdq@8021
  1379
#ifndef EGL_EXT_swap_buffers_with_damage
gabomdq@8021
  1380
#define EGL_EXT_swap_buffers_with_damage 1
gabomdq@8021
  1381
#ifdef EGL_EGLEXT_PROTOTYPES
gabomdq@8021
  1382
    EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT(EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
gabomdq@8021
  1383
#endif /* EGL_EGLEXT_PROTOTYPES */
gabomdq@8021
  1384
    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)(EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
gabomdq@8021
  1385
#endif
gabomdq@8021
  1386
gabomdq@8021
  1387
/* #include <EGL/eglmesaext.h> */
gabomdq@8021
  1388
gabomdq@8021
  1389
#ifdef __cplusplus
gabomdq@8021
  1390
}
gabomdq@8021
  1391
#endif
gabomdq@8021
  1392
gabomdq@8021
  1393
#endif /* __eglext_h_ */
gabomdq@8021
  1394
gabomdq@8021
  1395
gabomdq@8021
  1396
slouken@8149
  1397
#endif /* _MSC_VER */