OpenGL ES support for Windows
authorGabriel Jacobo <gabomdq@gmail.com>
Fri, 22 Nov 2013 13:24:53 -0300
changeset 8021f96e12e0ade9
parent 8020 1e390ba95c43
child 8022 7396e3cc5337
OpenGL ES support for Windows
README-windows.txt
VisualC/SDL/SDL_VS2008.vcproj
VisualC/SDL/SDL_VS2010.vcxproj
VisualC/SDL/SDL_VS2012.vcxproj
VisualC/SDL/SDL_VS2013.vcxproj
VisualC/SDL_VS2013.sln
VisualC/tests/testgles2/testgles2_VS2008.vcproj
VisualC/tests/testgles2/testgles2_VS2010.vcxproj
VisualC/tests/testgles2/testgles2_VS2012.vcxproj
VisualC/tests/testgles2/testgles2_VS2013.vcxproj
include/SDL_config_windows.h
include/SDL_egl.h
include/SDL_hints.h
include/SDL_opengles2.h
src/render/opengles2/SDL_gles2funcs.h
src/video/SDL_egl.c
src/video/SDL_egl.h
src/video/SDL_egl_c.h
src/video/android/SDL_androidgl.c
src/video/android/SDL_androidvideo.c
src/video/android/SDL_androidwindow.h
src/video/raspberry/SDL_rpiopengles.h
src/video/windows/SDL_windowsopengl.c
src/video/windows/SDL_windowsopengl.h
src/video/windows/SDL_windowsopengles.c
src/video/windows/SDL_windowsopengles.h
src/video/windows/SDL_windowsvideo.h
src/video/windows/SDL_windowswindow.c
src/video/windows/SDL_windowswindow.h
src/video/x11/SDL_x11opengles.h
test/configure
test/configure.in
test/testgles2.c
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/README-windows.txt	Fri Nov 22 13:24:53 2013 -0300
     1.3 @@ -0,0 +1,42 @@
     1.4 +================================================================================
     1.5 +Simple DirectMedia Layer for Windows
     1.6 +================================================================================
     1.7 +
     1.8 +================================================================================
     1.9 +OpenGL ES 2.x support
    1.10 +================================================================================
    1.11 +
    1.12 +SDL has support for OpenGL ES 2.x under Windows via two alternative 
    1.13 +implementations. 
    1.14 +The most straightforward method consists in running your app in a system with 
    1.15 +a graphic card paired with a relatively recent (as of November of 2013) driver 
    1.16 +which supports the WGL_EXT_create_context_es2_profile extension. Vendors known 
    1.17 +to ship said extension on Windows currently include nVidia and Intel.
    1.18 +
    1.19 +The other method involves using the ANGLE library (https://code.google.com/p/angleproject/)
    1.20 +If an OpenGL ES 2.x context is requested and no WGL_EXT_create_context_es2_profile
    1.21 +extension is found, SDL will try to load the libEGL.dll library provided by
    1.22 +ANGLE.
    1.23 +To obtain the ANGLE binaries, you can either compile from source from
    1.24 +https://chromium.googlesource.com/angle/angle or copy the relevant binaries from
    1.25 +a recent Chrome/Chromium install for Windows. The files you need are:
    1.26 +    
    1.27 +    * libEGL.dll
    1.28 +    * libGLESv2.dll
    1.29 +    * d3dcompiler_46.dll (supports Windows Vista or later, better shader compiler)
    1.30 +    or...
    1.31 +    * d3dcompiler_43.dll (supports Windows XP or later)
    1.32 +    
    1.33 +If you compile ANGLE from source, you can configure it so it does not need the
    1.34 +d3dcompiler_* DLL at all (for details on this, see their documentation). 
    1.35 +However, by default SDL will try to preload the d3dcompiler_46.dll to
    1.36 +comply with ANGLE's requirements. If you wish SDL to preload d3dcompiler_43.dll (to
    1.37 +support Windows XP) or to skip this step at all, you can use the 
    1.38 +SDL_VIDEO_WIN_D3DCOMPILER hint (see SDL_hints.h for more details).
    1.39 +
    1.40 +Known Bugs:
    1.41 +    
    1.42 +    * SDL_GL_SetSwapInterval is currently a no op when using ANGLE. It appears
    1.43 +      that there's a bug in the library which prevents the window contents from
    1.44 +      refreshing if this is set to anything other than the default value.
    1.45 +      
     2.1 --- a/VisualC/SDL/SDL_VS2008.vcproj	Fri Nov 22 10:26:28 2013 -0300
     2.2 +++ b/VisualC/SDL/SDL_VS2008.vcproj	Fri Nov 22 13:24:53 2013 -0300
     2.3 @@ -415,6 +415,18 @@
     2.4  				RelativePath="..\..\include\SDL_cpuinfo.h"
     2.5  				>
     2.6  			</File>
     2.7 +			<File 
     2.8 +				RelativePath="..\..\include\\SDL_egl.h" 
     2.9 +				>
    2.10 +			</File>
    2.11 +			<File 
    2.12 +				RelativePath="..\..\src\video\sdl_egl_c.h" 
    2.13 +				>
    2.14 +			</File>
    2.15 +			<File 
    2.16 +				RelativePath="..\..\src\video\windows\SDL_windowsopengles.h" 
    2.17 +				>
    2.18 +			</File>
    2.19  			<File
    2.20  				RelativePath="..\..\include\SDL_endian.h"
    2.21  				>
    2.22 @@ -1273,6 +1285,22 @@
    2.23  			>
    2.24  		</File>
    2.25  		<File
    2.26 +			RelativePath="..\..\src\render\opengles2\SDL_render_gles2.c" 
    2.27 +			>
    2.28 +		</File>
    2.29 +		<File 
    2.30 +			RelativePath="..\..\src\render\opengles2\SDL_shaders_gles2.c" 
    2.31 +			>
    2.32 +		</File>
    2.33 +		<File 
    2.34 +			RelativePath="..\..\src\video\SDL_egl.c" 
    2.35 +			>
    2.36 +		</File>
    2.37 +		<File 
    2.38 +			RelativePath="..\..\src\video\windows\SDL_windowsopengles.c" 
    2.39 +			>
    2.40 +		</File>
    2.41 +		<File
    2.42  			RelativePath="..\..\src\video\windows\SDL_windowsopengl.h"
    2.43  			>
    2.44  		</File>
     3.1 --- a/VisualC/SDL/SDL_VS2010.vcxproj	Fri Nov 22 10:26:28 2013 -0300
     3.2 +++ b/VisualC/SDL/SDL_VS2010.vcxproj	Fri Nov 22 13:24:53 2013 -0300
     3.3 @@ -553,6 +553,9 @@
     3.4      <ClInclude Include="..\..\src\events\SDL_windowevents_c.h" />
     3.5      <ClInclude Include="..\..\src\video\windows\wmmsg.h" />
     3.6      <ClInclude Include="resource.h" />
     3.7 +    <ClInclude Include="..\..\include\SDL_egl.h" />
     3.8 +    <ClInclude Include="..\..\src\video\sdl_egl_c.h" />
     3.9 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h" />
    3.10    </ItemGroup>
    3.11    <ItemGroup>
    3.12      <ClCompile Include="..\..\src\core\windows\SDL_windows.c" />
    3.13 @@ -669,6 +672,10 @@
    3.14      <ClCompile Include="..\..\src\video\windows\SDL_windowsvideo.c" />
    3.15      <ClCompile Include="..\..\src\video\windows\SDL_windowswindow.c" />
    3.16      <ClCompile Include="..\..\src\events\SDL_windowevents.c" />
    3.17 +    <ClCompile Include="..\..\src\render\opengles2\SDL_render_gles2.c" />
    3.18 +    <ClCompile Include="..\..\src\render\opengles2\SDL_shaders_gles2.c" />
    3.19 +    <ClCompile Include="..\..\src\video\SDL_egl.c" />
    3.20 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsopengles.c" />
    3.21    </ItemGroup>
    3.22    <ItemGroup>
    3.23      <ResourceCompile Include="..\..\src\main\windows\version.rc" />
     4.1 --- a/VisualC/SDL/SDL_VS2012.vcxproj	Fri Nov 22 10:26:28 2013 -0300
     4.2 +++ b/VisualC/SDL/SDL_VS2012.vcxproj	Fri Nov 22 13:24:53 2013 -0300
     4.3 @@ -344,6 +344,9 @@
     4.4      <ClInclude Include="..\..\src\events\SDL_windowevents_c.h" />
     4.5      <ClInclude Include="..\..\src\video\windows\wmmsg.h" />
     4.6      <ClInclude Include="resource.h" />
     4.7 +    <ClInclude Include="..\..\include\SDL_egl.h" />
     4.8 +    <ClInclude Include="..\..\src\video\sdl_egl_c.h" />
     4.9 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h" />
    4.10    </ItemGroup>
    4.11    <ItemGroup>
    4.12      <ClCompile Include="..\..\src\core\windows\SDL_windows.c" />
    4.13 @@ -460,6 +463,10 @@
    4.14      <ClCompile Include="..\..\src\video\windows\SDL_windowswindow.c" />
    4.15      <ClCompile Include="..\..\src\events\SDL_windowevents.c" />
    4.16      <ClCompile Include="..\..\src\joystick\SDL_gamecontroller.c" />
    4.17 +    <ClCompile Include="..\..\src\render\opengles2\SDL_render_gles2.c" />
    4.18 +    <ClCompile Include="..\..\src\render\opengles2\SDL_shaders_gles2.c" />
    4.19 +    <ClCompile Include="..\..\src\video\SDL_egl.c" />
    4.20 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsopengles.c" />
    4.21    </ItemGroup>
    4.22    <ItemGroup>
    4.23      <ResourceCompile Include="..\..\src\main\windows\version.rc" />
     5.1 --- a/VisualC/SDL/SDL_VS2013.vcxproj	Fri Nov 22 10:26:28 2013 -0300
     5.2 +++ b/VisualC/SDL/SDL_VS2013.vcxproj	Fri Nov 22 13:24:53 2013 -0300
     5.3 @@ -1,472 +1,479 @@
     5.4 -´╗┐<?xml version="1.0" encoding="utf-8"?>
     5.5 -<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     5.6 -  <ItemGroup Label="ProjectConfigurations">
     5.7 -    <ProjectConfiguration Include="Debug|Win32">
     5.8 -      <Configuration>Debug</Configuration>
     5.9 -      <Platform>Win32</Platform>
    5.10 -    </ProjectConfiguration>
    5.11 -    <ProjectConfiguration Include="Debug|x64">
    5.12 -      <Configuration>Debug</Configuration>
    5.13 -      <Platform>x64</Platform>
    5.14 -    </ProjectConfiguration>
    5.15 -    <ProjectConfiguration Include="Release|Win32">
    5.16 -      <Configuration>Release</Configuration>
    5.17 -      <Platform>Win32</Platform>
    5.18 -    </ProjectConfiguration>
    5.19 -    <ProjectConfiguration Include="Release|x64">
    5.20 -      <Configuration>Release</Configuration>
    5.21 -      <Platform>x64</Platform>
    5.22 -    </ProjectConfiguration>
    5.23 -  </ItemGroup>
    5.24 -  <PropertyGroup Label="Globals">
    5.25 -    <ProjectName>SDL2</ProjectName>
    5.26 -    <ProjectGuid>{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}</ProjectGuid>
    5.27 -    <RootNamespace>SDL</RootNamespace>
    5.28 -  </PropertyGroup>
    5.29 -  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
    5.30 -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    5.31 -    <ConfigurationType>DynamicLibrary</ConfigurationType>
    5.32 -    <UseOfMfc>false</UseOfMfc>
    5.33 -    <PlatformToolset>v120</PlatformToolset>
    5.34 -  </PropertyGroup>
    5.35 -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    5.36 -    <ConfigurationType>DynamicLibrary</ConfigurationType>
    5.37 -    <UseOfMfc>false</UseOfMfc>
    5.38 -    <PlatformToolset>v120</PlatformToolset>
    5.39 -  </PropertyGroup>
    5.40 -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    5.41 -    <ConfigurationType>DynamicLibrary</ConfigurationType>
    5.42 -    <UseOfMfc>false</UseOfMfc>
    5.43 -    <PlatformToolset>v120</PlatformToolset>
    5.44 -  </PropertyGroup>
    5.45 -  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    5.46 -    <ConfigurationType>DynamicLibrary</ConfigurationType>
    5.47 -    <UseOfMfc>false</UseOfMfc>
    5.48 -    <CharacterSet>MultiByte</CharacterSet>
    5.49 -    <PlatformToolset>v120</PlatformToolset>
    5.50 -  </PropertyGroup>
    5.51 -  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    5.52 -  <ImportGroup Label="ExtensionSettings">
    5.53 -  </ImportGroup>
    5.54 -  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
    5.55 -    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    5.56 -    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    5.57 -  </ImportGroup>
    5.58 -  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
    5.59 -    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    5.60 -    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    5.61 -  </ImportGroup>
    5.62 -  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
    5.63 -    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    5.64 -    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    5.65 -  </ImportGroup>
    5.66 -  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
    5.67 -    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    5.68 -    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    5.69 -  </ImportGroup>
    5.70 -  <PropertyGroup Label="UserMacros" />
    5.71 -  <PropertyGroup>
    5.72 -    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
    5.73 -    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</OutDir>
    5.74 -    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
    5.75 -    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir>
    5.76 -    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
    5.77 -    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</OutDir>
    5.78 -    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
    5.79 -    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</OutDir>
    5.80 -    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
    5.81 -  </PropertyGroup>
    5.82 -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    5.83 -    <PreBuildEvent />
    5.84 -    <Midl>
    5.85 -      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    5.86 -      <MkTypLibCompatible>true</MkTypLibCompatible>
    5.87 -      <SuppressStartupBanner>true</SuppressStartupBanner>
    5.88 -      <TargetEnvironment>Win32</TargetEnvironment>
    5.89 -    </Midl>
    5.90 -    <ClCompile>
    5.91 -      <Optimization>Disabled</Optimization>
    5.92 -      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include";</AdditionalIncludeDirectories>
    5.93 -      <PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    5.94 -      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
    5.95 -      <BufferSecurityCheck>false</BufferSecurityCheck>
    5.96 -      <PrecompiledHeader>
    5.97 -      </PrecompiledHeader>
    5.98 -      <WarningLevel>Level3</WarningLevel>
    5.99 -      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.100 -      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
   5.101 -      <CompileAs>Default</CompileAs>
   5.102 -      <ExceptionHandling>false</ExceptionHandling>
   5.103 -      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
   5.104 -    </ClCompile>
   5.105 -    <ResourceCompile>
   5.106 -      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.107 -      <Culture>0x0409</Culture>
   5.108 -    </ResourceCompile>
   5.109 -    <Link>
   5.110 -      <AdditionalDependencies>winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
   5.111 -      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
   5.112 -      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.113 -      <SubSystem>Windows</SubSystem>
   5.114 -      <CLRUnmanagedCodeCheck>false</CLRUnmanagedCodeCheck>
   5.115 -      <AdditionalLibraryDirectories>$(DXSDK_DIR)\lib\x86</AdditionalLibraryDirectories>
   5.116 -    </Link>
   5.117 -  </ItemDefinitionGroup>
   5.118 -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   5.119 -    <Midl>
   5.120 -      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.121 -      <MkTypLibCompatible>true</MkTypLibCompatible>
   5.122 -      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.123 -      <TargetEnvironment>X64</TargetEnvironment>
   5.124 -    </Midl>
   5.125 -    <ClCompile>
   5.126 -      <Optimization>Disabled</Optimization>
   5.127 -      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include";</AdditionalIncludeDirectories>
   5.128 -      <PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.129 -      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
   5.130 -      <BufferSecurityCheck>false</BufferSecurityCheck>
   5.131 -      <PrecompiledHeader>
   5.132 -      </PrecompiledHeader>
   5.133 -      <WarningLevel>Level3</WarningLevel>
   5.134 -      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
   5.135 -      <ExceptionHandling>false</ExceptionHandling>
   5.136 -    </ClCompile>
   5.137 -    <ResourceCompile>
   5.138 -      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.139 -      <Culture>0x0409</Culture>
   5.140 -    </ResourceCompile>
   5.141 -    <Link>
   5.142 -      <AdditionalDependencies>winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
   5.143 -      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
   5.144 -      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.145 -      <SubSystem>Windows</SubSystem>
   5.146 -      <CLRUnmanagedCodeCheck>false</CLRUnmanagedCodeCheck>
   5.147 -      <AdditionalLibraryDirectories>$(DXSDK_DIR)\lib\x64</AdditionalLibraryDirectories>
   5.148 -    </Link>
   5.149 -  </ItemDefinitionGroup>
   5.150 -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   5.151 -    <PreBuildEvent />
   5.152 -    <Midl>
   5.153 -      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.154 -      <MkTypLibCompatible>true</MkTypLibCompatible>
   5.155 -      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.156 -      <TargetEnvironment>Win32</TargetEnvironment>
   5.157 -    </Midl>
   5.158 -    <ClCompile>
   5.159 -      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
   5.160 -      <IntrinsicFunctions>false</IntrinsicFunctions>
   5.161 -      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include";</AdditionalIncludeDirectories>
   5.162 -      <PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.163 -      <StringPooling>true</StringPooling>
   5.164 -      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
   5.165 -      <BufferSecurityCheck>false</BufferSecurityCheck>
   5.166 -      <FunctionLevelLinking>true</FunctionLevelLinking>
   5.167 -      <PrecompiledHeader>
   5.168 -      </PrecompiledHeader>
   5.169 -      <WarningLevel>Level3</WarningLevel>
   5.170 -      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.171 -      <CompileAs>Default</CompileAs>
   5.172 -      <ExceptionHandling>false</ExceptionHandling>
   5.173 -      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
   5.174 -      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
   5.175 -    </ClCompile>
   5.176 -    <ResourceCompile>
   5.177 -      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.178 -      <Culture>0x0409</Culture>
   5.179 -    </ResourceCompile>
   5.180 -    <Link>
   5.181 -      <AdditionalDependencies>winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
   5.182 -      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
   5.183 -      <SubSystem>Windows</SubSystem>
   5.184 -      <AdditionalLibraryDirectories>$(DXSDK_DIR)\lib\x86</AdditionalLibraryDirectories>
   5.185 -      <OptimizeReferences>true</OptimizeReferences>
   5.186 -      <EnableCOMDATFolding>true</EnableCOMDATFolding>
   5.187 -      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.188 -    </Link>
   5.189 -  </ItemDefinitionGroup>
   5.190 -  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   5.191 -    <Midl>
   5.192 -      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.193 -      <MkTypLibCompatible>true</MkTypLibCompatible>
   5.194 -      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.195 -      <TargetEnvironment>X64</TargetEnvironment>
   5.196 -    </Midl>
   5.197 -    <ClCompile>
   5.198 -      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
   5.199 -      <IntrinsicFunctions>false</IntrinsicFunctions>
   5.200 -      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include";</AdditionalIncludeDirectories>
   5.201 -      <PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.202 -      <StringPooling>true</StringPooling>
   5.203 -      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
   5.204 -      <BufferSecurityCheck>false</BufferSecurityCheck>
   5.205 -      <FunctionLevelLinking>true</FunctionLevelLinking>
   5.206 -      <PrecompiledHeader>
   5.207 -      </PrecompiledHeader>
   5.208 -      <WarningLevel>Level3</WarningLevel>
   5.209 -      <ExceptionHandling>false</ExceptionHandling>
   5.210 -      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
   5.211 -    </ClCompile>
   5.212 -    <ResourceCompile>
   5.213 -      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.214 -      <Culture>0x0409</Culture>
   5.215 -    </ResourceCompile>
   5.216 -    <Link>
   5.217 -      <AdditionalDependencies>winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
   5.218 -      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
   5.219 -      <SubSystem>Windows</SubSystem>
   5.220 -      <AdditionalLibraryDirectories>$(DXSDK_DIR)\lib\x64</AdditionalLibraryDirectories>
   5.221 -      <OptimizeReferences>true</OptimizeReferences>
   5.222 -      <EnableCOMDATFolding>true</EnableCOMDATFolding>
   5.223 -      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.224 -    </Link>
   5.225 -  </ItemDefinitionGroup>
   5.226 -  <ItemGroup>
   5.227 -    <ClInclude Include="..\..\include\SDL.h" />
   5.228 -    <ClInclude Include="..\..\include\SDL_assert.h" />
   5.229 -    <ClInclude Include="..\..\include\SDL_atomic.h" />
   5.230 -    <ClInclude Include="..\..\include\SDL_audio.h" />
   5.231 -    <ClInclude Include="..\..\include\SDL_bits.h" />
   5.232 -    <ClInclude Include="..\..\include\SDL_blendmode.h" />
   5.233 -    <ClInclude Include="..\..\include\SDL_clipboard.h" />
   5.234 -    <ClInclude Include="..\..\include\SDL_config.h" />
   5.235 -    <ClInclude Include="..\..\include\SDL_config_windows.h" />
   5.236 -    <ClInclude Include="..\..\include\SDL_copying.h" />
   5.237 -    <ClInclude Include="..\..\include\SDL_cpuinfo.h" />
   5.238 -    <ClInclude Include="..\..\include\SDL_endian.h" />
   5.239 -    <ClInclude Include="..\..\include\SDL_error.h" />
   5.240 -    <ClInclude Include="..\..\include\SDL_events.h" />
   5.241 -    <ClInclude Include="..\..\include\SDL_filesystem.h" />
   5.242 -    <ClInclude Include="..\..\include\SDL_gesture.h" />
   5.243 -    <ClInclude Include="..\..\include\SDL_haptic.h" />
   5.244 -    <ClInclude Include="..\..\include\SDL_hints.h" />
   5.245 -    <ClInclude Include="..\..\include\SDL_joystick.h" />
   5.246 -    <ClInclude Include="..\..\include\SDL_keyboard.h" />
   5.247 -    <ClInclude Include="..\..\include\SDL_keycode.h" />
   5.248 -    <ClInclude Include="..\..\include\SDL_loadso.h" />
   5.249 -    <ClInclude Include="..\..\include\SDL_log.h" />
   5.250 -    <ClInclude Include="..\..\include\SDL_main.h" />
   5.251 -    <ClInclude Include="..\..\include\SDL_mouse.h" />
   5.252 -    <ClInclude Include="..\..\include\SDL_mutex.h" />
   5.253 -    <ClInclude Include="..\..\include\SDL_name.h" />
   5.254 -    <ClInclude Include="..\..\include\SDL_opengl.h" />
   5.255 -    <ClInclude Include="..\..\include\SDL_opengles.h" />
   5.256 -    <ClInclude Include="..\..\include\SDL_pixels.h" />
   5.257 -    <ClInclude Include="..\..\include\SDL_platform.h" />
   5.258 -    <ClInclude Include="..\..\include\SDL_power.h" />
   5.259 -    <ClInclude Include="..\..\include\SDL_quit.h" />
   5.260 -    <ClInclude Include="..\..\include\SDL_rect.h" />
   5.261 -    <ClInclude Include="..\..\include\SDL_render.h" />
   5.262 -    <ClInclude Include="..\..\include\SDL_revision.h" />
   5.263 -    <ClInclude Include="..\..\include\SDL_rwops.h" />
   5.264 -    <ClInclude Include="..\..\include\SDL_scancode.h" />
   5.265 -    <ClInclude Include="..\..\include\SDL_shape.h" />
   5.266 -    <ClInclude Include="..\..\include\SDL_stdinc.h" />
   5.267 -    <ClInclude Include="..\..\include\SDL_surface.h" />
   5.268 -    <ClInclude Include="..\..\include\SDL_system.h" />
   5.269 -    <ClInclude Include="..\..\include\SDL_syswm.h" />
   5.270 -    <ClInclude Include="..\..\include\SDL_thread.h" />
   5.271 -    <ClInclude Include="..\..\include\SDL_timer.h" />
   5.272 -    <ClInclude Include="..\..\include\SDL_touch.h" />
   5.273 -    <ClInclude Include="..\..\include\SDL_types.h" />
   5.274 -    <ClInclude Include="..\..\include\SDL_version.h" />
   5.275 -    <ClInclude Include="..\..\include\SDL_video.h" />
   5.276 -    <ClInclude Include="..\..\include\SDL_gamecontroller.h" />
   5.277 -    <ClInclude Include="..\..\src\core\windows\SDL_windows.h" />
   5.278 -    <ClInclude Include="..\..\src\events\blank_cursor.h" />
   5.279 -    <ClInclude Include="..\..\src\events\default_cursor.h" />
   5.280 -    <ClInclude Include="..\..\src\audio\directsound\directx.h" />
   5.281 -    <ClInclude Include="..\..\src\events\SDL_clipboardevents_c.h" />
   5.282 -    <ClInclude Include="..\..\src\events\SDL_gesture_c.h" />
   5.283 -    <ClInclude Include="..\..\src\events\SDL_touch_c.h" />
   5.284 -    <ClInclude Include="..\..\src\libm\math.h" />
   5.285 -    <ClInclude Include="..\..\src\libm\math_private.h" />
   5.286 -    <ClInclude Include="..\..\src\render\mmx.h" />
   5.287 -    <ClInclude Include="..\..\src\render\opengl\SDL_shaders_gl.h" />
   5.288 -    <ClInclude Include="..\..\src\render\SDL_sysrender.h" />
   5.289 -    <ClInclude Include="..\..\src\render\SDL_yuv_sw_c.h" />
   5.290 -    <ClInclude Include="..\..\src\audio\SDL_audio_c.h" />
   5.291 -    <ClInclude Include="..\..\src\audio\SDL_audiodev_c.h" />
   5.292 -    <ClInclude Include="..\..\src\audio\SDL_audiomem.h" />
   5.293 -    <ClInclude Include="..\..\src\render\software\SDL_blendfillrect.h" />
   5.294 -    <ClInclude Include="..\..\src\render\software\SDL_blendline.h" />
   5.295 -    <ClInclude Include="..\..\src\render\software\SDL_blendpoint.h" />
   5.296 -    <ClInclude Include="..\..\src\render\software\SDL_draw.h" />
   5.297 -    <ClInclude Include="..\..\src\render\software\SDL_drawline.h" />
   5.298 -    <ClInclude Include="..\..\src\render\software\SDL_drawpoint.h" />
   5.299 -    <ClInclude Include="..\..\src\events\SDL_dropevents_c.h" />
   5.300 -    <ClInclude Include="..\..\src\render\software\SDL_render_sw_c.h" />
   5.301 -    <ClInclude Include="..\..\src\render\software\SDL_rotate.h" />
   5.302 -    <ClInclude Include="..\..\src\video\dummy\SDL_nullframebuffer_c.h" />
   5.303 -    <ClInclude Include="..\..\src\video\SDL_blit.h" />
   5.304 -    <ClInclude Include="..\..\src\video\SDL_blit_auto.h" />
   5.305 -    <ClInclude Include="..\..\src\video\SDL_blit_copy.h" />
   5.306 -    <ClInclude Include="..\..\src\video\SDL_blit_slow.h" />
   5.307 -    <ClInclude Include="..\..\src\video\SDL_shape_internals.h" />
   5.308 -    <ClInclude Include="..\..\src\audio\winmm\SDL_winmm.h" />
   5.309 -    <ClInclude Include="..\..\src\audio\disk\SDL_diskaudio.h" />
   5.310 -    <ClInclude Include="..\..\src\audio\dummy\SDL_dummyaudio.h" />
   5.311 -    <ClInclude Include="..\..\src\audio\directsound\SDL_directsound.h" />
   5.312 -    <ClInclude Include="..\..\src\SDL_error_c.h" />
   5.313 -    <ClInclude Include="..\..\src\SDL_hints_c.h" />
   5.314 -    <ClInclude Include="..\..\src\events\SDL_events_c.h" />
   5.315 -    <ClInclude Include="..\..\src\video\SDL_glesfuncs.h" />
   5.316 -    <ClInclude Include="..\..\src\video\SDL_glfuncs.h" />
   5.317 -    <ClInclude Include="..\..\src\joystick\SDL_joystick_c.h" />
   5.318 -    <ClInclude Include="..\..\src\events\SDL_keyboard_c.h" />
   5.319 -    <ClInclude Include="..\..\src\events\SDL_mouse_c.h" />
   5.320 -    <ClInclude Include="..\..\src\video\dummy\SDL_nullevents_c.h" />
   5.321 -    <ClInclude Include="..\..\src\video\dummy\SDL_nullvideo.h" />
   5.322 -    <ClInclude Include="..\..\src\video\SDL_pixels_c.h" />
   5.323 -    <ClInclude Include="..\..\src\video\SDL_rect_c.h" />
   5.324 -    <ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
   5.325 -    <ClInclude Include="..\..\src\video\SDL_stretch_c.h" />
   5.326 -    <ClInclude Include="..\..\src\audio\SDL_sysaudio.h" />
   5.327 -    <ClInclude Include="..\..\src\events\SDL_sysevents.h" />
   5.328 -    <ClInclude Include="..\..\src\haptic\SDL_syshaptic.h" />
   5.329 -    <ClInclude Include="..\..\src\joystick\SDL_sysjoystick.h" />
   5.330 -    <ClInclude Include="..\..\src\thread\SDL_systhread.h" />
   5.331 -    <ClInclude Include="..\..\src\thread\windows\SDL_systhread_c.h" />
   5.332 -    <ClInclude Include="..\..\src\timer\SDL_systimer.h" />
   5.333 -    <ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
   5.334 -    <ClInclude Include="..\..\src\thread\SDL_thread_c.h" />
   5.335 -    <ClInclude Include="..\..\src\timer\SDL_timer_c.h" />
   5.336 -    <ClInclude Include="..\..\src\video\windows\SDL_vkeys.h" />
   5.337 -    <ClInclude Include="..\..\src\audio\SDL_wave.h" />
   5.338 -    <ClInclude Include="..\..\src\video\windows\SDL_windowsclipboard.h" />
   5.339 -    <ClInclude Include="..\..\src\video\windows\SDL_windowsevents.h" />
   5.340 -    <ClInclude Include="..\..\src\video\windows\SDL_windowsframebuffer.h" />
   5.341 -    <ClInclude Include="..\..\src\video\windows\SDL_windowskeyboard.h" />
   5.342 -    <ClInclude Include="..\..\src\video\windows\SDL_windowsmessagebox.h" />
   5.343 -    <ClInclude Include="..\..\src\video\windows\SDL_windowsmodes.h" />
   5.344 -    <ClInclude Include="..\..\src\video\windows\SDL_windowsmouse.h" />
   5.345 -    <ClInclude Include="..\..\src\video\windows\SDL_windowsopengl.h" />
   5.346 -    <ClInclude Include="..\..\src\video\windows\SDL_windowsshape.h" />
   5.347 -    <ClInclude Include="..\..\src\video\windows\SDL_windowsvideo.h" />
   5.348 -    <ClInclude Include="..\..\src\video\windows\SDL_windowswindow.h" />
   5.349 -    <ClInclude Include="..\..\src\events\SDL_windowevents_c.h" />
   5.350 -    <ClInclude Include="..\..\src\video\windows\wmmsg.h" />
   5.351 -    <ClInclude Include="resource.h" />
   5.352 -  </ItemGroup>
   5.353 -  <ItemGroup>
   5.354 -    <ClCompile Include="..\..\src\core\windows\SDL_windows.c" />
   5.355 -    <ClCompile Include="..\..\src\events\SDL_clipboardevents.c" />
   5.356 -    <ClCompile Include="..\..\src\events\SDL_gesture.c" />
   5.357 -    <ClCompile Include="..\..\src\events\SDL_touch.c" />
   5.358 -    <ClCompile Include="..\..\src\libm\e_atan2.c" />
   5.359 -    <ClCompile Include="..\..\src\libm\e_log.c" />
   5.360 -    <ClCompile Include="..\..\src\libm\e_pow.c" />
   5.361 -    <ClCompile Include="..\..\src\libm\e_rem_pio2.c" />
   5.362 -    <ClCompile Include="..\..\src\libm\e_sqrt.c" />
   5.363 -    <ClCompile Include="..\..\src\libm\k_cos.c" />
   5.364 -    <ClCompile Include="..\..\src\libm\k_rem_pio2.c" />
   5.365 -    <ClCompile Include="..\..\src\libm\k_sin.c" />
   5.366 -    <ClCompile Include="..\..\src\libm\s_atan.c" />
   5.367 -    <ClCompile Include="..\..\src\libm\s_copysign.c" />
   5.368 -    <ClCompile Include="..\..\src\libm\s_cos.c" />
   5.369 -    <ClCompile Include="..\..\src\libm\s_fabs.c" />
   5.370 -    <ClCompile Include="..\..\src\libm\s_floor.c" />
   5.371 -    <ClCompile Include="..\..\src\libm\s_scalbn.c" />
   5.372 -    <ClCompile Include="..\..\src\libm\s_sin.c" />
   5.373 -    <ClCompile Include="..\..\src\render\direct3d\SDL_render_d3d.c" />
   5.374 -    <ClCompile Include="..\..\src\render\opengl\SDL_render_gl.c" />
   5.375 -    <ClCompile Include="..\..\src\render\opengl\SDL_shaders_gl.c" />
   5.376 -    <ClCompile Include="..\..\src\render\SDL_render.c" />
   5.377 -    <ClCompile Include="..\..\src\render\SDL_yuv_mmx.c" />
   5.378 -    <ClCompile Include="..\..\src\render\SDL_yuv_sw.c" />
   5.379 -    <ClCompile Include="..\..\src\render\software\SDL_blendfillrect.c" />
   5.380 -    <ClCompile Include="..\..\src\render\software\SDL_blendline.c" />
   5.381 -    <ClCompile Include="..\..\src\render\software\SDL_blendpoint.c" />
   5.382 -    <ClCompile Include="..\..\src\render\software\SDL_drawline.c" />
   5.383 -    <ClCompile Include="..\..\src\render\software\SDL_drawpoint.c" />
   5.384 -    <ClCompile Include="..\..\src\render\software\SDL_render_sw.c" />
   5.385 -    <ClCompile Include="..\..\src\render\software\SDL_rotate.c" />
   5.386 -    <ClCompile Include="..\..\src\SDL.c" />
   5.387 -    <ClCompile Include="..\..\src\SDL_assert.c" />
   5.388 -    <ClCompile Include="..\..\src\atomic\SDL_atomic.c" />
   5.389 -    <ClCompile Include="..\..\src\atomic\SDL_spinlock.c" />
   5.390 -    <ClCompile Include="..\..\src\audio\SDL_audio.c" />
   5.391 -    <ClCompile Include="..\..\src\audio\SDL_audiocvt.c" />
   5.392 -    <ClCompile Include="..\..\src\audio\SDL_audiodev.c" />
   5.393 -    <ClCompile Include="..\..\src\audio\SDL_audiotypecvt.c" />
   5.394 -    <ClCompile Include="..\..\src\SDL_hints.c" />
   5.395 -    <ClCompile Include="..\..\src\SDL_log.c" />
   5.396 -    <ClCompile Include="..\..\src\video\dummy\SDL_nullframebuffer.c" />
   5.397 -    <ClCompile Include="..\..\src\video\SDL_blit.c" />
   5.398 -    <ClCompile Include="..\..\src\video\SDL_blit_0.c" />
   5.399 -    <ClCompile Include="..\..\src\video\SDL_blit_1.c" />
   5.400 -    <ClCompile Include="..\..\src\video\SDL_blit_A.c" />
   5.401 -    <ClCompile Include="..\..\src\video\SDL_blit_auto.c" />
   5.402 -    <ClCompile Include="..\..\src\video\SDL_blit_copy.c" />
   5.403 -    <ClCompile Include="..\..\src\video\SDL_blit_N.c" />
   5.404 -    <ClCompile Include="..\..\src\video\SDL_blit_slow.c" />
   5.405 -    <ClCompile Include="..\..\src\video\SDL_bmp.c" />
   5.406 -    <ClCompile Include="..\..\src\cpuinfo\SDL_cpuinfo.c" />
   5.407 -    <ClCompile Include="..\..\src\video\SDL_clipboard.c" />
   5.408 -    <ClCompile Include="..\..\src\video\SDL_shape.c" />
   5.409 -    <ClCompile Include="..\..\src\audio\winmm\SDL_winmm.c" />
   5.410 -    <ClCompile Include="..\..\src\audio\disk\SDL_diskaudio.c" />
   5.411 -    <ClCompile Include="..\..\src\audio\dummy\SDL_dummyaudio.c" />
   5.412 -    <ClCompile Include="..\..\src\audio\directsound\SDL_directsound.c" />
   5.413 -    <ClCompile Include="..\..\src\events\SDL_dropevents.c" />
   5.414 -    <ClCompile Include="..\..\src\audio\xaudio2\SDL_xaudio2.c" />
   5.415 -    <ClCompile Include="..\..\src\joystick\windows\SDL_dxjoystick.c" />
   5.416 -    <ClCompile Include="..\..\src\SDL_error.c" />
   5.417 -    <ClCompile Include="..\..\src\events\SDL_events.c" />
   5.418 -    <ClCompile Include="..\..\src\video\SDL_fillrect.c" />
   5.419 -    <ClCompile Include="..\..\src\stdlib\SDL_getenv.c" />
   5.420 -    <ClCompile Include="..\..\src\haptic\SDL_haptic.c" />
   5.421 -    <ClCompile Include="..\..\src\stdlib\SDL_iconv.c" />
   5.422 -    <ClCompile Include="..\..\src\joystick\SDL_joystick.c" />
   5.423 -    <ClCompile Include="..\..\src\events\SDL_keyboard.c" />
   5.424 -    <ClCompile Include="..\..\src\stdlib\SDL_malloc.c" />
   5.425 -    <ClCompile Include="..\..\src\audio\SDL_mixer.c" />
   5.426 -    <ClCompile Include="..\..\src\joystick\windows\SDL_mmjoystick.c" />
   5.427 -    <ClCompile Include="..\..\src\events\SDL_mouse.c" />
   5.428 -    <ClCompile Include="..\..\src\video\dummy\SDL_nullevents.c" />
   5.429 -    <ClCompile Include="..\..\src\video\dummy\SDL_nullvideo.c" />
   5.430 -    <ClCompile Include="..\..\src\video\SDL_pixels.c" />
   5.431 -    <ClCompile Include="..\..\src\power\SDL_power.c" />
   5.432 -    <ClCompile Include="..\..\src\stdlib\SDL_qsort.c" />
   5.433 -    <ClCompile Include="..\..\src\events\SDL_quit.c" />
   5.434 -    <ClCompile Include="..\..\src\video\SDL_rect.c" />
   5.435 -    <ClCompile Include="..\..\src\video\SDL_RLEaccel.c" />
   5.436 -    <ClCompile Include="..\..\src\file\SDL_rwops.c" />
   5.437 -    <ClCompile Include="..\..\src\stdlib\SDL_stdlib.c" />
   5.438 -    <ClCompile Include="..\..\src\video\SDL_stretch.c" />
   5.439 -    <ClCompile Include="..\..\src\stdlib\SDL_string.c" />
   5.440 -    <ClCompile Include="..\..\src\video\SDL_surface.c" />
   5.441 -    <ClCompile Include="..\..\src\thread\generic\SDL_syscond.c" />
   5.442 -    <ClCompile Include="..\..\src\filesystem\windows\SDL_sysfilesystem.c" />
   5.443 -    <ClCompile Include="..\..\src\haptic\windows\SDL_syshaptic.c" />
   5.444 -    <ClCompile Include="..\..\src\loadso\windows\SDL_sysloadso.c" />
   5.445 -    <ClCompile Include="..\..\src\thread\windows\SDL_sysmutex.c" />
   5.446 -    <ClCompile Include="..\..\src\power\windows\SDL_syspower.c" />
   5.447 -    <ClCompile Include="..\..\src\thread\windows\SDL_syssem.c" />
   5.448 -    <ClCompile Include="..\..\src\thread\windows\SDL_systhread.c" />
   5.449 -    <ClCompile Include="..\..\src\thread\windows\SDL_systls.c" />
   5.450 -    <ClCompile Include="..\..\src\timer\windows\SDL_systimer.c" />
   5.451 -    <ClCompile Include="..\..\src\thread\SDL_thread.c" />
   5.452 -    <ClCompile Include="..\..\src\timer\SDL_timer.c" />
   5.453 -    <ClCompile Include="..\..\src\video\SDL_video.c" />
   5.454 -    <ClCompile Include="..\..\src\audio\SDL_wave.c" />
   5.455 -    <ClCompile Include="..\..\src\video\windows\SDL_windowsclipboard.c" />
   5.456 -    <ClCompile Include="..\..\src\video\windows\SDL_windowsevents.c" />
   5.457 -    <ClCompile Include="..\..\src\video\windows\SDL_windowsframebuffer.c" />
   5.458 -    <ClCompile Include="..\..\src\video\windows\SDL_windowskeyboard.c" />
   5.459 -    <ClCompile Include="..\..\src\video\windows\SDL_windowsmessagebox.c" />
   5.460 -    <ClCompile Include="..\..\src\video\windows\SDL_windowsmodes.c" />
   5.461 -    <ClCompile Include="..\..\src\video\windows\SDL_windowsmouse.c" />
   5.462 -    <ClCompile Include="..\..\src\video\windows\SDL_windowsopengl.c" />
   5.463 -    <ClCompile Include="..\..\src\video\windows\SDL_windowsshape.c" />
   5.464 -    <ClCompile Include="..\..\src\video\windows\SDL_windowsvideo.c" />
   5.465 -    <ClCompile Include="..\..\src\video\windows\SDL_windowswindow.c" />
   5.466 -    <ClCompile Include="..\..\src\events\SDL_windowevents.c" />
   5.467 -    <ClCompile Include="..\..\src\joystick\SDL_gamecontroller.c" />
   5.468 -  </ItemGroup>
   5.469 -  <ItemGroup>
   5.470 -    <ResourceCompile Include="..\..\src\main\windows\version.rc" />
   5.471 -  </ItemGroup>
   5.472 -  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   5.473 -  <ImportGroup Label="ExtensionTargets">
   5.474 -  </ImportGroup>
   5.475 +<?xml version="1.0" encoding="utf-8"?>
   5.476 +<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   5.477 +  <ItemGroup Label="ProjectConfigurations">
   5.478 +    <ProjectConfiguration Include="Debug|Win32">
   5.479 +      <Configuration>Debug</Configuration>
   5.480 +      <Platform>Win32</Platform>
   5.481 +    </ProjectConfiguration>
   5.482 +    <ProjectConfiguration Include="Debug|x64">
   5.483 +      <Configuration>Debug</Configuration>
   5.484 +      <Platform>x64</Platform>
   5.485 +    </ProjectConfiguration>
   5.486 +    <ProjectConfiguration Include="Release|Win32">
   5.487 +      <Configuration>Release</Configuration>
   5.488 +      <Platform>Win32</Platform>
   5.489 +    </ProjectConfiguration>
   5.490 +    <ProjectConfiguration Include="Release|x64">
   5.491 +      <Configuration>Release</Configuration>
   5.492 +      <Platform>x64</Platform>
   5.493 +    </ProjectConfiguration>
   5.494 +  </ItemGroup>
   5.495 +  <PropertyGroup Label="Globals">
   5.496 +    <ProjectName>SDL2</ProjectName>
   5.497 +    <ProjectGuid>{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}</ProjectGuid>
   5.498 +    <RootNamespace>SDL</RootNamespace>
   5.499 +  </PropertyGroup>
   5.500 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   5.501 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   5.502 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
   5.503 +    <UseOfMfc>false</UseOfMfc>
   5.504 +    <PlatformToolset>v120</PlatformToolset>
   5.505 +  </PropertyGroup>
   5.506 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
   5.507 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
   5.508 +    <UseOfMfc>false</UseOfMfc>
   5.509 +    <PlatformToolset>v120</PlatformToolset>
   5.510 +  </PropertyGroup>
   5.511 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
   5.512 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
   5.513 +    <UseOfMfc>false</UseOfMfc>
   5.514 +    <PlatformToolset>v120</PlatformToolset>
   5.515 +  </PropertyGroup>
   5.516 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
   5.517 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
   5.518 +    <UseOfMfc>false</UseOfMfc>
   5.519 +    <CharacterSet>MultiByte</CharacterSet>
   5.520 +    <PlatformToolset>v120</PlatformToolset>
   5.521 +  </PropertyGroup>
   5.522 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   5.523 +  <ImportGroup Label="ExtensionSettings">
   5.524 +  </ImportGroup>
   5.525 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
   5.526 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   5.527 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
   5.528 +  </ImportGroup>
   5.529 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
   5.530 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   5.531 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
   5.532 +  </ImportGroup>
   5.533 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
   5.534 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   5.535 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
   5.536 +  </ImportGroup>
   5.537 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
   5.538 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   5.539 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
   5.540 +  </ImportGroup>
   5.541 +  <PropertyGroup Label="UserMacros" />
   5.542 +  <PropertyGroup>
   5.543 +    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
   5.544 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</OutDir>
   5.545 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
   5.546 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir>
   5.547 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
   5.548 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</OutDir>
   5.549 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
   5.550 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</OutDir>
   5.551 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
   5.552 +  </PropertyGroup>
   5.553 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   5.554 +    <PreBuildEvent />
   5.555 +    <Midl>
   5.556 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.557 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   5.558 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.559 +      <TargetEnvironment>Win32</TargetEnvironment>
   5.560 +    </Midl>
   5.561 +    <ClCompile>
   5.562 +      <Optimization>Disabled</Optimization>
   5.563 +      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include";</AdditionalIncludeDirectories>
   5.564 +      <PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.565 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
   5.566 +      <BufferSecurityCheck>false</BufferSecurityCheck>
   5.567 +      <PrecompiledHeader>
   5.568 +      </PrecompiledHeader>
   5.569 +      <WarningLevel>Level3</WarningLevel>
   5.570 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.571 +      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
   5.572 +      <CompileAs>Default</CompileAs>
   5.573 +      <ExceptionHandling>false</ExceptionHandling>
   5.574 +      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
   5.575 +    </ClCompile>
   5.576 +    <ResourceCompile>
   5.577 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.578 +      <Culture>0x0409</Culture>
   5.579 +    </ResourceCompile>
   5.580 +    <Link>
   5.581 +      <AdditionalDependencies>winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
   5.582 +      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
   5.583 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.584 +      <SubSystem>Windows</SubSystem>
   5.585 +      <CLRUnmanagedCodeCheck>false</CLRUnmanagedCodeCheck>
   5.586 +      <AdditionalLibraryDirectories>$(DXSDK_DIR)\lib\x86</AdditionalLibraryDirectories>
   5.587 +    </Link>
   5.588 +  </ItemDefinitionGroup>
   5.589 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   5.590 +    <Midl>
   5.591 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.592 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   5.593 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.594 +      <TargetEnvironment>X64</TargetEnvironment>
   5.595 +    </Midl>
   5.596 +    <ClCompile>
   5.597 +      <Optimization>Disabled</Optimization>
   5.598 +      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include";</AdditionalIncludeDirectories>
   5.599 +      <PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.600 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
   5.601 +      <BufferSecurityCheck>false</BufferSecurityCheck>
   5.602 +      <PrecompiledHeader>
   5.603 +      </PrecompiledHeader>
   5.604 +      <WarningLevel>Level3</WarningLevel>
   5.605 +      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
   5.606 +      <ExceptionHandling>false</ExceptionHandling>
   5.607 +    </ClCompile>
   5.608 +    <ResourceCompile>
   5.609 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.610 +      <Culture>0x0409</Culture>
   5.611 +    </ResourceCompile>
   5.612 +    <Link>
   5.613 +      <AdditionalDependencies>winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
   5.614 +      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
   5.615 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.616 +      <SubSystem>Windows</SubSystem>
   5.617 +      <CLRUnmanagedCodeCheck>false</CLRUnmanagedCodeCheck>
   5.618 +      <AdditionalLibraryDirectories>$(DXSDK_DIR)\lib\x64</AdditionalLibraryDirectories>
   5.619 +    </Link>
   5.620 +  </ItemDefinitionGroup>
   5.621 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   5.622 +    <PreBuildEvent />
   5.623 +    <Midl>
   5.624 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.625 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   5.626 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.627 +      <TargetEnvironment>Win32</TargetEnvironment>
   5.628 +    </Midl>
   5.629 +    <ClCompile>
   5.630 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
   5.631 +      <IntrinsicFunctions>false</IntrinsicFunctions>
   5.632 +      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include";</AdditionalIncludeDirectories>
   5.633 +      <PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.634 +      <StringPooling>true</StringPooling>
   5.635 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
   5.636 +      <BufferSecurityCheck>false</BufferSecurityCheck>
   5.637 +      <FunctionLevelLinking>true</FunctionLevelLinking>
   5.638 +      <PrecompiledHeader>
   5.639 +      </PrecompiledHeader>
   5.640 +      <WarningLevel>Level3</WarningLevel>
   5.641 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.642 +      <CompileAs>Default</CompileAs>
   5.643 +      <ExceptionHandling>false</ExceptionHandling>
   5.644 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
   5.645 +      <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
   5.646 +    </ClCompile>
   5.647 +    <ResourceCompile>
   5.648 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.649 +      <Culture>0x0409</Culture>
   5.650 +    </ResourceCompile>
   5.651 +    <Link>
   5.652 +      <AdditionalDependencies>winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
   5.653 +      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
   5.654 +      <SubSystem>Windows</SubSystem>
   5.655 +      <AdditionalLibraryDirectories>$(DXSDK_DIR)\lib\x86</AdditionalLibraryDirectories>
   5.656 +      <OptimizeReferences>true</OptimizeReferences>
   5.657 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
   5.658 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.659 +    </Link>
   5.660 +  </ItemDefinitionGroup>
   5.661 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   5.662 +    <Midl>
   5.663 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.664 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   5.665 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   5.666 +      <TargetEnvironment>X64</TargetEnvironment>
   5.667 +    </Midl>
   5.668 +    <ClCompile>
   5.669 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
   5.670 +      <IntrinsicFunctions>false</IntrinsicFunctions>
   5.671 +      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories);"$(DXSDK_DIR)\Include";</AdditionalIncludeDirectories>
   5.672 +      <PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.673 +      <StringPooling>true</StringPooling>
   5.674 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
   5.675 +      <BufferSecurityCheck>false</BufferSecurityCheck>
   5.676 +      <FunctionLevelLinking>true</FunctionLevelLinking>
   5.677 +      <PrecompiledHeader>
   5.678 +      </PrecompiledHeader>
   5.679 +      <WarningLevel>Level3</WarningLevel>
   5.680 +      <ExceptionHandling>false</ExceptionHandling>
   5.681 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
   5.682 +    </ClCompile>
   5.683 +    <ResourceCompile>
   5.684 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   5.685 +      <Culture>0x0409</Culture>
   5.686 +    </ResourceCompile>
   5.687 +    <Link>
   5.688 +      <AdditionalDependencies>winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
   5.689 +      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
   5.690 +      <SubSystem>Windows</SubSystem>
   5.691 +      <AdditionalLibraryDirectories>$(DXSDK_DIR)\lib\x64</AdditionalLibraryDirectories>
   5.692 +      <OptimizeReferences>true</OptimizeReferences>
   5.693 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
   5.694 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   5.695 +    </Link>
   5.696 +  </ItemDefinitionGroup>
   5.697 +  <ItemGroup>
   5.698 +    <ClInclude Include="..\..\include\SDL.h" />
   5.699 +    <ClInclude Include="..\..\include\SDL_assert.h" />
   5.700 +    <ClInclude Include="..\..\include\SDL_atomic.h" />
   5.701 +    <ClInclude Include="..\..\include\SDL_audio.h" />
   5.702 +    <ClInclude Include="..\..\include\SDL_bits.h" />
   5.703 +    <ClInclude Include="..\..\include\SDL_blendmode.h" />
   5.704 +    <ClInclude Include="..\..\include\SDL_clipboard.h" />
   5.705 +    <ClInclude Include="..\..\include\SDL_config.h" />
   5.706 +    <ClInclude Include="..\..\include\SDL_config_windows.h" />
   5.707 +    <ClInclude Include="..\..\include\SDL_copying.h" />
   5.708 +    <ClInclude Include="..\..\include\SDL_cpuinfo.h" />
   5.709 +    <ClInclude Include="..\..\include\SDL_egl.h" />
   5.710 +    <ClInclude Include="..\..\include\SDL_endian.h" />
   5.711 +    <ClInclude Include="..\..\include\SDL_error.h" />
   5.712 +    <ClInclude Include="..\..\include\SDL_events.h" />
   5.713 +    <ClInclude Include="..\..\include\SDL_filesystem.h" />
   5.714 +    <ClInclude Include="..\..\include\SDL_gesture.h" />
   5.715 +    <ClInclude Include="..\..\include\SDL_haptic.h" />
   5.716 +    <ClInclude Include="..\..\include\SDL_hints.h" />
   5.717 +    <ClInclude Include="..\..\include\SDL_joystick.h" />
   5.718 +    <ClInclude Include="..\..\include\SDL_keyboard.h" />
   5.719 +    <ClInclude Include="..\..\include\SDL_keycode.h" />
   5.720 +    <ClInclude Include="..\..\include\SDL_loadso.h" />
   5.721 +    <ClInclude Include="..\..\include\SDL_log.h" />
   5.722 +    <ClInclude Include="..\..\include\SDL_main.h" />
   5.723 +    <ClInclude Include="..\..\include\SDL_mouse.h" />
   5.724 +    <ClInclude Include="..\..\include\SDL_mutex.h" />
   5.725 +    <ClInclude Include="..\..\include\SDL_name.h" />
   5.726 +    <ClInclude Include="..\..\include\SDL_opengl.h" />
   5.727 +    <ClInclude Include="..\..\include\SDL_opengles.h" />
   5.728 +    <ClInclude Include="..\..\include\SDL_pixels.h" />
   5.729 +    <ClInclude Include="..\..\include\SDL_platform.h" />
   5.730 +    <ClInclude Include="..\..\include\SDL_power.h" />
   5.731 +    <ClInclude Include="..\..\include\SDL_quit.h" />
   5.732 +    <ClInclude Include="..\..\include\SDL_rect.h" />
   5.733 +    <ClInclude Include="..\..\include\SDL_render.h" />
   5.734 +    <ClInclude Include="..\..\include\SDL_revision.h" />
   5.735 +    <ClInclude Include="..\..\include\SDL_rwops.h" />
   5.736 +    <ClInclude Include="..\..\include\SDL_scancode.h" />
   5.737 +    <ClInclude Include="..\..\include\SDL_shape.h" />
   5.738 +    <ClInclude Include="..\..\include\SDL_stdinc.h" />
   5.739 +    <ClInclude Include="..\..\include\SDL_surface.h" />
   5.740 +    <ClInclude Include="..\..\include\SDL_system.h" />
   5.741 +    <ClInclude Include="..\..\include\SDL_syswm.h" />
   5.742 +    <ClInclude Include="..\..\include\SDL_thread.h" />
   5.743 +    <ClInclude Include="..\..\include\SDL_timer.h" />
   5.744 +    <ClInclude Include="..\..\include\SDL_touch.h" />
   5.745 +    <ClInclude Include="..\..\include\SDL_types.h" />
   5.746 +    <ClInclude Include="..\..\include\SDL_version.h" />
   5.747 +    <ClInclude Include="..\..\include\SDL_video.h" />
   5.748 +    <ClInclude Include="..\..\include\SDL_gamecontroller.h" />
   5.749 +    <ClInclude Include="..\..\src\core\windows\SDL_windows.h" />
   5.750 +    <ClInclude Include="..\..\src\events\blank_cursor.h" />
   5.751 +    <ClInclude Include="..\..\src\events\default_cursor.h" />
   5.752 +    <ClInclude Include="..\..\src\audio\directsound\directx.h" />
   5.753 +    <ClInclude Include="..\..\src\events\SDL_clipboardevents_c.h" />
   5.754 +    <ClInclude Include="..\..\src\events\SDL_gesture_c.h" />
   5.755 +    <ClInclude Include="..\..\src\events\SDL_touch_c.h" />
   5.756 +    <ClInclude Include="..\..\src\libm\math.h" />
   5.757 +    <ClInclude Include="..\..\src\libm\math_private.h" />
   5.758 +    <ClInclude Include="..\..\src\render\mmx.h" />
   5.759 +    <ClInclude Include="..\..\src\render\opengl\SDL_shaders_gl.h" />
   5.760 +    <ClInclude Include="..\..\src\render\SDL_sysrender.h" />
   5.761 +    <ClInclude Include="..\..\src\render\SDL_yuv_sw_c.h" />
   5.762 +    <ClInclude Include="..\..\src\audio\SDL_audio_c.h" />
   5.763 +    <ClInclude Include="..\..\src\audio\SDL_audiodev_c.h" />
   5.764 +    <ClInclude Include="..\..\src\audio\SDL_audiomem.h" />
   5.765 +    <ClInclude Include="..\..\src\render\software\SDL_blendfillrect.h" />
   5.766 +    <ClInclude Include="..\..\src\render\software\SDL_blendline.h" />
   5.767 +    <ClInclude Include="..\..\src\render\software\SDL_blendpoint.h" />
   5.768 +    <ClInclude Include="..\..\src\render\software\SDL_draw.h" />
   5.769 +    <ClInclude Include="..\..\src\render\software\SDL_drawline.h" />
   5.770 +    <ClInclude Include="..\..\src\render\software\SDL_drawpoint.h" />
   5.771 +    <ClInclude Include="..\..\src\events\SDL_dropevents_c.h" />
   5.772 +    <ClInclude Include="..\..\src\render\software\SDL_render_sw_c.h" />
   5.773 +    <ClInclude Include="..\..\src\render\software\SDL_rotate.h" />
   5.774 +    <ClInclude Include="..\..\src\video\dummy\SDL_nullframebuffer_c.h" />
   5.775 +    <ClInclude Include="..\..\src\video\SDL_blit.h" />
   5.776 +    <ClInclude Include="..\..\src\video\SDL_blit_auto.h" />
   5.777 +    <ClInclude Include="..\..\src\video\SDL_blit_copy.h" />
   5.778 +    <ClInclude Include="..\..\src\video\SDL_blit_slow.h" />
   5.779 +    <ClInclude Include="..\..\src\video\sdl_egl_c.h" />
   5.780 +    <ClInclude Include="..\..\src\video\SDL_shape_internals.h" />
   5.781 +    <ClInclude Include="..\..\src\audio\winmm\SDL_winmm.h" />
   5.782 +    <ClInclude Include="..\..\src\audio\disk\SDL_diskaudio.h" />
   5.783 +    <ClInclude Include="..\..\src\audio\dummy\SDL_dummyaudio.h" />
   5.784 +    <ClInclude Include="..\..\src\audio\directsound\SDL_directsound.h" />
   5.785 +    <ClInclude Include="..\..\src\SDL_error_c.h" />
   5.786 +    <ClInclude Include="..\..\src\SDL_hints_c.h" />
   5.787 +    <ClInclude Include="..\..\src\events\SDL_events_c.h" />
   5.788 +    <ClInclude Include="..\..\src\video\SDL_glesfuncs.h" />
   5.789 +    <ClInclude Include="..\..\src\video\SDL_glfuncs.h" />
   5.790 +    <ClInclude Include="..\..\src\joystick\SDL_joystick_c.h" />
   5.791 +    <ClInclude Include="..\..\src\events\SDL_keyboard_c.h" />
   5.792 +    <ClInclude Include="..\..\src\events\SDL_mouse_c.h" />
   5.793 +    <ClInclude Include="..\..\src\video\dummy\SDL_nullevents_c.h" />
   5.794 +    <ClInclude Include="..\..\src\video\dummy\SDL_nullvideo.h" />
   5.795 +    <ClInclude Include="..\..\src\video\SDL_pixels_c.h" />
   5.796 +    <ClInclude Include="..\..\src\video\SDL_rect_c.h" />
   5.797 +    <ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
   5.798 +    <ClInclude Include="..\..\src\video\SDL_stretch_c.h" />
   5.799 +    <ClInclude Include="..\..\src\audio\SDL_sysaudio.h" />
   5.800 +    <ClInclude Include="..\..\src\events\SDL_sysevents.h" />
   5.801 +    <ClInclude Include="..\..\src\haptic\SDL_syshaptic.h" />
   5.802 +    <ClInclude Include="..\..\src\joystick\SDL_sysjoystick.h" />
   5.803 +    <ClInclude Include="..\..\src\thread\SDL_systhread.h" />
   5.804 +    <ClInclude Include="..\..\src\thread\windows\SDL_systhread_c.h" />
   5.805 +    <ClInclude Include="..\..\src\timer\SDL_systimer.h" />
   5.806 +    <ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
   5.807 +    <ClInclude Include="..\..\src\thread\SDL_thread_c.h" />
   5.808 +    <ClInclude Include="..\..\src\timer\SDL_timer_c.h" />
   5.809 +    <ClInclude Include="..\..\src\video\windows\SDL_vkeys.h" />
   5.810 +    <ClInclude Include="..\..\src\audio\SDL_wave.h" />
   5.811 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsclipboard.h" />
   5.812 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsevents.h" />
   5.813 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsframebuffer.h" />
   5.814 +    <ClInclude Include="..\..\src\video\windows\SDL_windowskeyboard.h" />
   5.815 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsmessagebox.h" />
   5.816 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsmodes.h" />
   5.817 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsmouse.h" />
   5.818 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsopengl.h" />
   5.819 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsopengles.h" />
   5.820 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsshape.h" />
   5.821 +    <ClInclude Include="..\..\src\video\windows\SDL_windowsvideo.h" />
   5.822 +    <ClInclude Include="..\..\src\video\windows\SDL_windowswindow.h" />
   5.823 +    <ClInclude Include="..\..\src\events\SDL_windowevents_c.h" />
   5.824 +    <ClInclude Include="..\..\src\video\windows\wmmsg.h" />
   5.825 +    <ClInclude Include="resource.h" />
   5.826 +  </ItemGroup>
   5.827 +  <ItemGroup>
   5.828 +    <ClCompile Include="..\..\src\core\windows\SDL_windows.c" />
   5.829 +    <ClCompile Include="..\..\src\events\SDL_clipboardevents.c" />
   5.830 +    <ClCompile Include="..\..\src\events\SDL_gesture.c" />
   5.831 +    <ClCompile Include="..\..\src\events\SDL_touch.c" />
   5.832 +    <ClCompile Include="..\..\src\libm\e_atan2.c" />
   5.833 +    <ClCompile Include="..\..\src\libm\e_log.c" />
   5.834 +    <ClCompile Include="..\..\src\libm\e_pow.c" />
   5.835 +    <ClCompile Include="..\..\src\libm\e_rem_pio2.c" />
   5.836 +    <ClCompile Include="..\..\src\libm\e_sqrt.c" />
   5.837 +    <ClCompile Include="..\..\src\libm\k_cos.c" />
   5.838 +    <ClCompile Include="..\..\src\libm\k_rem_pio2.c" />
   5.839 +    <ClCompile Include="..\..\src\libm\k_sin.c" />
   5.840 +    <ClCompile Include="..\..\src\libm\s_atan.c" />
   5.841 +    <ClCompile Include="..\..\src\libm\s_copysign.c" />
   5.842 +    <ClCompile Include="..\..\src\libm\s_cos.c" />
   5.843 +    <ClCompile Include="..\..\src\libm\s_fabs.c" />
   5.844 +    <ClCompile Include="..\..\src\libm\s_floor.c" />
   5.845 +    <ClCompile Include="..\..\src\libm\s_scalbn.c" />
   5.846 +    <ClCompile Include="..\..\src\libm\s_sin.c" />
   5.847 +    <ClCompile Include="..\..\src\render\direct3d\SDL_render_d3d.c" />
   5.848 +    <ClCompile Include="..\..\src\render\opengles2\SDL_render_gles2.c" />
   5.849 +    <ClCompile Include="..\..\src\render\opengles2\SDL_shaders_gles2.c" />
   5.850 +    <ClCompile Include="..\..\src\render\opengl\SDL_render_gl.c" />
   5.851 +    <ClCompile Include="..\..\src\render\opengl\SDL_shaders_gl.c" />
   5.852 +    <ClCompile Include="..\..\src\render\SDL_render.c" />
   5.853 +    <ClCompile Include="..\..\src\render\SDL_yuv_mmx.c" />
   5.854 +    <ClCompile Include="..\..\src\render\SDL_yuv_sw.c" />
   5.855 +    <ClCompile Include="..\..\src\render\software\SDL_blendfillrect.c" />
   5.856 +    <ClCompile Include="..\..\src\render\software\SDL_blendline.c" />
   5.857 +    <ClCompile Include="..\..\src\render\software\SDL_blendpoint.c" />
   5.858 +    <ClCompile Include="..\..\src\render\software\SDL_drawline.c" />
   5.859 +    <ClCompile Include="..\..\src\render\software\SDL_drawpoint.c" />
   5.860 +    <ClCompile Include="..\..\src\render\software\SDL_render_sw.c" />
   5.861 +    <ClCompile Include="..\..\src\render\software\SDL_rotate.c" />
   5.862 +    <ClCompile Include="..\..\src\SDL.c" />
   5.863 +    <ClCompile Include="..\..\src\SDL_assert.c" />
   5.864 +    <ClCompile Include="..\..\src\atomic\SDL_atomic.c" />
   5.865 +    <ClCompile Include="..\..\src\atomic\SDL_spinlock.c" />
   5.866 +    <ClCompile Include="..\..\src\audio\SDL_audio.c" />
   5.867 +    <ClCompile Include="..\..\src\audio\SDL_audiocvt.c" />
   5.868 +    <ClCompile Include="..\..\src\audio\SDL_audiodev.c" />
   5.869 +    <ClCompile Include="..\..\src\audio\SDL_audiotypecvt.c" />
   5.870 +    <ClCompile Include="..\..\src\SDL_hints.c" />
   5.871 +    <ClCompile Include="..\..\src\SDL_log.c" />
   5.872 +    <ClCompile Include="..\..\src\video\dummy\SDL_nullframebuffer.c" />
   5.873 +    <ClCompile Include="..\..\src\video\SDL_blit.c" />
   5.874 +    <ClCompile Include="..\..\src\video\SDL_blit_0.c" />
   5.875 +    <ClCompile Include="..\..\src\video\SDL_blit_1.c" />
   5.876 +    <ClCompile Include="..\..\src\video\SDL_blit_A.c" />
   5.877 +    <ClCompile Include="..\..\src\video\SDL_blit_auto.c" />
   5.878 +    <ClCompile Include="..\..\src\video\SDL_blit_copy.c" />
   5.879 +    <ClCompile Include="..\..\src\video\SDL_blit_N.c" />
   5.880 +    <ClCompile Include="..\..\src\video\SDL_blit_slow.c" />
   5.881 +    <ClCompile Include="..\..\src\video\SDL_bmp.c" />
   5.882 +    <ClCompile Include="..\..\src\cpuinfo\SDL_cpuinfo.c" />
   5.883 +    <ClCompile Include="..\..\src\video\SDL_clipboard.c" />
   5.884 +    <ClCompile Include="..\..\src\video\SDL_egl.c" />
   5.885 +    <ClCompile Include="..\..\src\video\SDL_shape.c" />
   5.886 +    <ClCompile Include="..\..\src\audio\winmm\SDL_winmm.c" />
   5.887 +    <ClCompile Include="..\..\src\audio\disk\SDL_diskaudio.c" />
   5.888 +    <ClCompile Include="..\..\src\audio\dummy\SDL_dummyaudio.c" />
   5.889 +    <ClCompile Include="..\..\src\audio\directsound\SDL_directsound.c" />
   5.890 +    <ClCompile Include="..\..\src\events\SDL_dropevents.c" />
   5.891 +    <ClCompile Include="..\..\src\audio\xaudio2\SDL_xaudio2.c" />
   5.892 +    <ClCompile Include="..\..\src\joystick\windows\SDL_dxjoystick.c" />
   5.893 +    <ClCompile Include="..\..\src\SDL_error.c" />
   5.894 +    <ClCompile Include="..\..\src\events\SDL_events.c" />
   5.895 +    <ClCompile Include="..\..\src\video\SDL_fillrect.c" />
   5.896 +    <ClCompile Include="..\..\src\stdlib\SDL_getenv.c" />
   5.897 +    <ClCompile Include="..\..\src\haptic\SDL_haptic.c" />
   5.898 +    <ClCompile Include="..\..\src\stdlib\SDL_iconv.c" />
   5.899 +    <ClCompile Include="..\..\src\joystick\SDL_joystick.c" />
   5.900 +    <ClCompile Include="..\..\src\events\SDL_keyboard.c" />
   5.901 +    <ClCompile Include="..\..\src\stdlib\SDL_malloc.c" />
   5.902 +    <ClCompile Include="..\..\src\audio\SDL_mixer.c" />
   5.903 +    <ClCompile Include="..\..\src\joystick\windows\SDL_mmjoystick.c" />
   5.904 +    <ClCompile Include="..\..\src\events\SDL_mouse.c" />
   5.905 +    <ClCompile Include="..\..\src\video\dummy\SDL_nullevents.c" />
   5.906 +    <ClCompile Include="..\..\src\video\dummy\SDL_nullvideo.c" />
   5.907 +    <ClCompile Include="..\..\src\video\SDL_pixels.c" />
   5.908 +    <ClCompile Include="..\..\src\power\SDL_power.c" />
   5.909 +    <ClCompile Include="..\..\src\stdlib\SDL_qsort.c" />
   5.910 +    <ClCompile Include="..\..\src\events\SDL_quit.c" />
   5.911 +    <ClCompile Include="..\..\src\video\SDL_rect.c" />
   5.912 +    <ClCompile Include="..\..\src\video\SDL_RLEaccel.c" />
   5.913 +    <ClCompile Include="..\..\src\file\SDL_rwops.c" />
   5.914 +    <ClCompile Include="..\..\src\stdlib\SDL_stdlib.c" />
   5.915 +    <ClCompile Include="..\..\src\video\SDL_stretch.c" />
   5.916 +    <ClCompile Include="..\..\src\stdlib\SDL_string.c" />
   5.917 +    <ClCompile Include="..\..\src\video\SDL_surface.c" />
   5.918 +    <ClCompile Include="..\..\src\thread\generic\SDL_syscond.c" />
   5.919 +    <ClCompile Include="..\..\src\filesystem\windows\SDL_sysfilesystem.c" />
   5.920 +    <ClCompile Include="..\..\src\haptic\windows\SDL_syshaptic.c" />
   5.921 +    <ClCompile Include="..\..\src\loadso\windows\SDL_sysloadso.c" />
   5.922 +    <ClCompile Include="..\..\src\thread\windows\SDL_sysmutex.c" />
   5.923 +    <ClCompile Include="..\..\src\power\windows\SDL_syspower.c" />
   5.924 +    <ClCompile Include="..\..\src\thread\windows\SDL_syssem.c" />
   5.925 +    <ClCompile Include="..\..\src\thread\windows\SDL_systhread.c" />
   5.926 +    <ClCompile Include="..\..\src\thread\windows\SDL_systls.c" />
   5.927 +    <ClCompile Include="..\..\src\timer\windows\SDL_systimer.c" />
   5.928 +    <ClCompile Include="..\..\src\thread\SDL_thread.c" />
   5.929 +    <ClCompile Include="..\..\src\timer\SDL_timer.c" />
   5.930 +    <ClCompile Include="..\..\src\video\SDL_video.c" />
   5.931 +    <ClCompile Include="..\..\src\audio\SDL_wave.c" />
   5.932 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsclipboard.c" />
   5.933 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsevents.c" />
   5.934 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsframebuffer.c" />
   5.935 +    <ClCompile Include="..\..\src\video\windows\SDL_windowskeyboard.c" />
   5.936 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsmessagebox.c" />
   5.937 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsmodes.c" />
   5.938 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsmouse.c" />
   5.939 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsopengl.c" />
   5.940 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsopengles.c" />
   5.941 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsshape.c" />
   5.942 +    <ClCompile Include="..\..\src\video\windows\SDL_windowsvideo.c" />
   5.943 +    <ClCompile Include="..\..\src\video\windows\SDL_windowswindow.c" />
   5.944 +    <ClCompile Include="..\..\src\events\SDL_windowevents.c" />
   5.945 +    <ClCompile Include="..\..\src\joystick\SDL_gamecontroller.c" />
   5.946 +  </ItemGroup>
   5.947 +  <ItemGroup>
   5.948 +    <ResourceCompile Include="..\..\src\main\windows\version.rc" />
   5.949 +  </ItemGroup>
   5.950 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   5.951 +  <ImportGroup Label="ExtensionTargets">
   5.952 +  </ImportGroup>
   5.953  </Project>
   5.954 \ No newline at end of file
     6.1 --- a/VisualC/SDL_VS2013.sln	Fri Nov 22 10:26:28 2013 -0300
     6.2 +++ b/VisualC/SDL_VS2013.sln	Fri Nov 22 13:24:53 2013 -0300
     6.3 @@ -1,5 +1,8 @@
     6.4 -´╗┐Microsoft Visual Studio Solution File, Format Version 12.00
     6.5 +´╗┐
     6.6 +Microsoft Visual Studio Solution File, Format Version 12.00
     6.7  # Visual Studio 2013
     6.8 +VisualStudioVersion = 12.0.21005.1
     6.9 +MinimumVisualStudioVersion = 10.0.40219.1
    6.10  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL_VS2013.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
    6.11  EndProject
    6.12  Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDLmain\SDLmain_VS2013.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}"
    6.13 @@ -102,6 +105,8 @@
    6.14  		{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} = {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}
    6.15  	EndProjectSection
    6.16  EndProject
    6.17 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgles2", "tests\testgles2\testgles2_VS2013.vcxproj", "{E5287C64-0646-4BFA-A772-1DB5A649F35E}"
    6.18 +EndProject
    6.19  Global
    6.20  	GlobalSection(SolutionConfigurationPlatforms) = preSolution
    6.21  		Debug|Win32 = Debug|Win32
    6.22 @@ -252,6 +257,14 @@
    6.23  		{55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|Win32.Build.0 = Release|Win32
    6.24  		{55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|x64.ActiveCfg = Release|x64
    6.25  		{55812185-D13C-4022-9C81-32E0F4A08BCC}.Release|x64.Build.0 = Release|x64
    6.26 +		{E5287C64-0646-4BFA-A772-1DB5A649F35E}.Debug|Win32.ActiveCfg = Debug|Win32
    6.27 +		{E5287C64-0646-4BFA-A772-1DB5A649F35E}.Debug|Win32.Build.0 = Debug|Win32
    6.28 +		{E5287C64-0646-4BFA-A772-1DB5A649F35E}.Debug|x64.ActiveCfg = Debug|x64
    6.29 +		{E5287C64-0646-4BFA-A772-1DB5A649F35E}.Debug|x64.Build.0 = Debug|x64
    6.30 +		{E5287C64-0646-4BFA-A772-1DB5A649F35E}.Release|Win32.ActiveCfg = Release|Win32
    6.31 +		{E5287C64-0646-4BFA-A772-1DB5A649F35E}.Release|Win32.Build.0 = Release|Win32
    6.32 +		{E5287C64-0646-4BFA-A772-1DB5A649F35E}.Release|x64.ActiveCfg = Release|x64
    6.33 +		{E5287C64-0646-4BFA-A772-1DB5A649F35E}.Release|x64.Build.0 = Release|x64
    6.34  	EndGlobalSection
    6.35  	GlobalSection(SolutionProperties) = preSolution
    6.36  		HideSolutionNode = FALSE
    6.37 @@ -273,5 +286,6 @@
    6.38  		{55812185-D13C-4022-9C81-32E0F4A08336} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7}
    6.39  		{55812185-D13C-4022-9C81-32E0F4A08996} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7}
    6.40  		{55812185-D13C-4022-9C81-32E0F4A08BCC} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7}
    6.41 +		{E5287C64-0646-4BFA-A772-1DB5A649F35E} = {CE748C1F-3C21-4825-AA6A-F895A023F7E7}
    6.42  	EndGlobalSection
    6.43  EndGlobal
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/VisualC/tests/testgles2/testgles2_VS2008.vcproj	Fri Nov 22 13:24:53 2013 -0300
     7.3 @@ -0,0 +1,207 @@
     7.4 +<?xml version="1.0" encoding="Windows-1252"?>
     7.5 +<VisualStudioProject
     7.6 +	ProjectType="Visual C++"
     7.7 +	Version="9.00"
     7.8 +	Name="testgl2"
     7.9 +	ProjectGUID="{8B5CFB38-CCBA-40A8-AD7A-89C57B070884}"
    7.10 +	RootNamespace="testgl2"
    7.11 +	TargetFrameworkVersion="131072"
    7.12 +	>
    7.13 +	<Platforms>
    7.14 +		<Platform
    7.15 +			Name="Win32"
    7.16 +		/>
    7.17 +	</Platforms>
    7.18 +	<ToolFiles>
    7.19 +	</ToolFiles>
    7.20 +	<Configurations>
    7.21 +		<Configuration
    7.22 +			Name="Debug|Win32"
    7.23 +			OutputDirectory=".\Debug"
    7.24 +			IntermediateDirectory=".\Debug"
    7.25 +			ConfigurationType="1"
    7.26 +			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
    7.27 +			UseOfMFC="0"
    7.28 +			ATLMinimizesCRunTimeLibraryUsage="false"
    7.29 +			>
    7.30 +			<Tool
    7.31 +				Name="VCPreBuildEventTool"
    7.32 +			/>
    7.33 +			<Tool
    7.34 +				Name="VCCustomBuildTool"
    7.35 +			/>
    7.36 +			<Tool
    7.37 +				Name="VCXMLDataGeneratorTool"
    7.38 +			/>
    7.39 +			<Tool
    7.40 +				Name="VCWebServiceProxyGeneratorTool"
    7.41 +			/>
    7.42 +			<Tool
    7.43 +				Name="VCMIDLTool"
    7.44 +				PreprocessorDefinitions="_DEBUG"
    7.45 +				MkTypLibCompatible="true"
    7.46 +				SuppressStartupBanner="true"
    7.47 +				TargetEnvironment="1"
    7.48 +				TypeLibraryName=".\Debug/testgl2.tlb"
    7.49 +			/>
    7.50 +			<Tool
    7.51 +				Name="VCCLCompilerTool"
    7.52 +				Optimization="0"
    7.53 +				AdditionalIncludeDirectories="..\..\..\include"
    7.54 +				PreprocessorDefinitions="_DEBUG,WIN32,_WINDOWS,HAVE_OPENGL"
    7.55 +				RuntimeLibrary="3"
    7.56 +				UsePrecompiledHeader="0"
    7.57 +				PrecompiledHeaderFile=".\Debug/testgles2.pch"
    7.58 +				WarningLevel="3"
    7.59 +				SuppressStartupBanner="true"
    7.60 +				DebugInformationFormat="4"
    7.61 +				CompileAs="0"
    7.62 +			/>
    7.63 +			<Tool
    7.64 +				Name="VCManagedResourceCompilerTool"
    7.65 +			/>
    7.66 +			<Tool
    7.67 +				Name="VCResourceCompilerTool"
    7.68 +				PreprocessorDefinitions="_DEBUG"
    7.69 +				Culture="1033"
    7.70 +			/>
    7.71 +			<Tool
    7.72 +				Name="VCPreLinkEventTool"
    7.73 +			/>
    7.74 +			<Tool
    7.75 +				Name="VCLinkerTool"
    7.76 +				AdditionalOptions="/MACHINE:I386"
    7.77 +				AdditionalDependencies="opengl32.lib"
    7.78 +				LinkIncremental="2"
    7.79 +				SuppressStartupBanner="true"
    7.80 +				GenerateDebugInformation="true"
    7.81 +				ProgramDatabaseFile=".\Debug/testgles2.pdb"
    7.82 +				SubSystem="2"
    7.83 +				RandomizedBaseAddress="1"
    7.84 +				DataExecutionPrevention="0"
    7.85 +			/>
    7.86 +			<Tool
    7.87 +				Name="VCALinkTool"
    7.88 +			/>
    7.89 +			<Tool
    7.90 +				Name="VCManifestTool"
    7.91 +			/>
    7.92 +			<Tool
    7.93 +				Name="VCXDCMakeTool"
    7.94 +			/>
    7.95 +			<Tool
    7.96 +				Name="VCBscMakeTool"
    7.97 +			/>
    7.98 +			<Tool
    7.99 +				Name="VCFxCopTool"
   7.100 +			/>
   7.101 +			<Tool
   7.102 +				Name="VCAppVerifierTool"
   7.103 +			/>
   7.104 +			<Tool
   7.105 +				Name="VCPostBuildEventTool"
   7.106 +				Description="Copy SDL"
   7.107 +				CommandLine="copy &quot;$(SolutionDir)\SDL\$(ConfigurationName)\SDL2.dll&quot; &quot;$(TargetDir)\SDL2.dll&quot;"
   7.108 +			/>
   7.109 +		</Configuration>
   7.110 +		<Configuration
   7.111 +			Name="Release|Win32"
   7.112 +			OutputDirectory=".\Release"
   7.113 +			IntermediateDirectory=".\Release"
   7.114 +			ConfigurationType="1"
   7.115 +			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
   7.116 +			UseOfMFC="0"
   7.117 +			ATLMinimizesCRunTimeLibraryUsage="false"
   7.118 +			>
   7.119 +			<Tool
   7.120 +				Name="VCPreBuildEventTool"
   7.121 +			/>
   7.122 +			<Tool
   7.123 +				Name="VCCustomBuildTool"
   7.124 +			/>
   7.125 +			<Tool
   7.126 +				Name="VCXMLDataGeneratorTool"
   7.127 +			/>
   7.128 +			<Tool
   7.129 +				Name="VCWebServiceProxyGeneratorTool"
   7.130 +			/>
   7.131 +			<Tool
   7.132 +				Name="VCMIDLTool"
   7.133 +				PreprocessorDefinitions="NDEBUG"
   7.134 +				MkTypLibCompatible="true"
   7.135 +				SuppressStartupBanner="true"
   7.136 +				TargetEnvironment="1"
   7.137 +				TypeLibraryName=".\Release/testgles2.tlb"
   7.138 +			/>
   7.139 +			<Tool
   7.140 +				Name="VCCLCompilerTool"
   7.141 +				InlineFunctionExpansion="1"
   7.142 +				AdditionalIncludeDirectories="..\..\..\include"
   7.143 +				PreprocessorDefinitions="NDEBUG,WIN32,_WINDOWS,HAVE_OPENGL"
   7.144 +				StringPooling="true"
   7.145 +				RuntimeLibrary="2"
   7.146 +				EnableFunctionLevelLinking="true"
   7.147 +				UsePrecompiledHeader="0"
   7.148 +				PrecompiledHeaderFile=".\Release/testgles2.pch"
   7.149 +				WarningLevel="3"
   7.150 +				SuppressStartupBanner="true"
   7.151 +				CompileAs="0"
   7.152 +			/>
   7.153 +			<Tool
   7.154 +				Name="VCManagedResourceCompilerTool"
   7.155 +			/>
   7.156 +			<Tool
   7.157 +				Name="VCResourceCompilerTool"
   7.158 +				PreprocessorDefinitions="NDEBUG"
   7.159 +				Culture="1033"
   7.160 +			/>
   7.161 +			<Tool
   7.162 +				Name="VCPreLinkEventTool"
   7.163 +			/>
   7.164 +			<Tool
   7.165 +				Name="VCLinkerTool"
   7.166 +				AdditionalOptions="/MACHINE:I386"
   7.167 +				AdditionalDependencies="opengl32.lib"
   7.168 +				LinkIncremental="1"
   7.169 +				SuppressStartupBanner="true"
   7.170 +				ProgramDatabaseFile=".\Release/testgles2.pdb"
   7.171 +				SubSystem="2"
   7.172 +				RandomizedBaseAddress="1"
   7.173 +				DataExecutionPrevention="0"
   7.174 +			/>
   7.175 +			<Tool
   7.176 +				Name="VCALinkTool"
   7.177 +			/>
   7.178 +			<Tool
   7.179 +				Name="VCManifestTool"
   7.180 +			/>
   7.181 +			<Tool
   7.182 +				Name="VCXDCMakeTool"
   7.183 +			/>
   7.184 +			<Tool
   7.185 +				Name="VCBscMakeTool"
   7.186 +			/>
   7.187 +			<Tool
   7.188 +				Name="VCFxCopTool"
   7.189 +			/>
   7.190 +			<Tool
   7.191 +				Name="VCAppVerifierTool"
   7.192 +			/>
   7.193 +			<Tool
   7.194 +				Name="VCPostBuildEventTool"
   7.195 +				Description="Copy SDL"
   7.196 +				CommandLine="copy &quot;$(SolutionDir)\SDL\$(ConfigurationName)\SDL2.dll&quot; &quot;$(TargetDir)\SDL2.dll&quot;"
   7.197 +			/>
   7.198 +		</Configuration>
   7.199 +	</Configurations>
   7.200 +	<References>
   7.201 +	</References>
   7.202 +	<Files>
   7.203 +		<File
   7.204 +			RelativePath="..\..\..\test\testgles2.c"
   7.205 +			>
   7.206 +		</File>
   7.207 +	</Files>
   7.208 +	<Globals>
   7.209 +	</Globals>
   7.210 +</VisualStudioProject>
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/VisualC/tests/testgles2/testgles2_VS2010.vcxproj	Fri Nov 22 13:24:53 2013 -0300
     8.3 @@ -0,0 +1,238 @@
     8.4 +<?xml version="1.0" encoding="utf-8"?>
     8.5 +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     8.6 +  <ItemGroup Label="ProjectConfigurations">
     8.7 +    <ProjectConfiguration Include="Debug|Win32">
     8.8 +      <Configuration>Debug</Configuration>
     8.9 +      <Platform>Win32</Platform>
    8.10 +    </ProjectConfiguration>
    8.11 +    <ProjectConfiguration Include="Debug|x64">
    8.12 +      <Configuration>Debug</Configuration>
    8.13 +      <Platform>x64</Platform>
    8.14 +    </ProjectConfiguration>
    8.15 +    <ProjectConfiguration Include="Release|Win32">
    8.16 +      <Configuration>Release</Configuration>
    8.17 +      <Platform>Win32</Platform>
    8.18 +    </ProjectConfiguration>
    8.19 +    <ProjectConfiguration Include="Release|x64">
    8.20 +      <Configuration>Release</Configuration>
    8.21 +      <Platform>x64</Platform>
    8.22 +    </ProjectConfiguration>
    8.23 +  </ItemGroup>
    8.24 +  <PropertyGroup Label="Globals">
    8.25 +    <ProjectName>testgles2</ProjectName>
    8.26 +    <RootNamespace>testgles2</RootNamespace>
    8.27 +    <ProjectGuid>{8B5CFB38-CCBA-40A8-AD7A-89C57B070884}</ProjectGuid>
    8.28 +  </PropertyGroup>
    8.29 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
    8.30 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    8.31 +    <ConfigurationType>Application</ConfigurationType>
    8.32 +    <UseOfMfc>false</UseOfMfc>
    8.33 +  </PropertyGroup>
    8.34 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    8.35 +    <ConfigurationType>Application</ConfigurationType>
    8.36 +    <UseOfMfc>false</UseOfMfc>
    8.37 +  </PropertyGroup>
    8.38 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    8.39 +    <ConfigurationType>Application</ConfigurationType>
    8.40 +    <UseOfMfc>false</UseOfMfc>
    8.41 +  </PropertyGroup>
    8.42 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    8.43 +    <ConfigurationType>Application</ConfigurationType>
    8.44 +    <UseOfMfc>false</UseOfMfc>
    8.45 +    <CharacterSet>MultiByte</CharacterSet>
    8.46 +  </PropertyGroup>
    8.47 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    8.48 +  <ImportGroup Label="ExtensionSettings">
    8.49 +  </ImportGroup>
    8.50 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
    8.51 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    8.52 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    8.53 +  </ImportGroup>
    8.54 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
    8.55 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    8.56 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    8.57 +  </ImportGroup>
    8.58 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
    8.59 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    8.60 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    8.61 +  </ImportGroup>
    8.62 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
    8.63 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    8.64 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    8.65 +  </ImportGroup>
    8.66 +  <PropertyGroup Label="UserMacros" />
    8.67 +  <PropertyGroup>
    8.68 +    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
    8.69 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</OutDir>
    8.70 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir>
    8.71 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
    8.72 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
    8.73 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
    8.74 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
    8.75 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</OutDir>
    8.76 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</OutDir>
    8.77 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
    8.78 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
    8.79 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
    8.80 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
    8.81 +  </PropertyGroup>
    8.82 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    8.83 +    <Midl>
    8.84 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    8.85 +      <MkTypLibCompatible>true</MkTypLibCompatible>
    8.86 +      <SuppressStartupBanner>true</SuppressStartupBanner>
    8.87 +      <TargetEnvironment>Win32</TargetEnvironment>
    8.88 +    </Midl>
    8.89 +    <ClCompile>
    8.90 +      <Optimization>Disabled</Optimization>
    8.91 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    8.92 +      <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    8.93 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
    8.94 +      <PrecompiledHeader>
    8.95 +      </PrecompiledHeader>
    8.96 +      <WarningLevel>Level3</WarningLevel>
    8.97 +      <SuppressStartupBanner>true</SuppressStartupBanner>
    8.98 +      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
    8.99 +      <CompileAs>Default</CompileAs>
   8.100 +    </ClCompile>
   8.101 +    <ResourceCompile>
   8.102 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   8.103 +      <Culture>0x0409</Culture>
   8.104 +    </ResourceCompile>
   8.105 +    <Link>
   8.106 +      <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
   8.107 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   8.108 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   8.109 +      <SubSystem>Windows</SubSystem>
   8.110 +    </Link>
   8.111 +    <PostBuildEvent>
   8.112 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
   8.113 +    </PostBuildEvent>
   8.114 +    <PostBuildEvent>
   8.115 +      <Message>Copy SDL</Message>
   8.116 +    </PostBuildEvent>
   8.117 +  </ItemDefinitionGroup>
   8.118 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   8.119 +    <Midl>
   8.120 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   8.121 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   8.122 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   8.123 +    </Midl>
   8.124 +    <ClCompile>
   8.125 +      <Optimization>Disabled</Optimization>
   8.126 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   8.127 +      <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   8.128 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
   8.129 +      <PrecompiledHeader>
   8.130 +      </PrecompiledHeader>
   8.131 +      <WarningLevel>Level3</WarningLevel>
   8.132 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   8.133 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
   8.134 +      <CompileAs>Default</CompileAs>
   8.135 +    </ClCompile>
   8.136 +    <ResourceCompile>
   8.137 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   8.138 +      <Culture>0x0409</Culture>
   8.139 +    </ResourceCompile>
   8.140 +    <Link>
   8.141 +      <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
   8.142 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   8.143 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   8.144 +      <SubSystem>Windows</SubSystem>
   8.145 +    </Link>
   8.146 +    <PostBuildEvent>
   8.147 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
   8.148 +    </PostBuildEvent>
   8.149 +    <PostBuildEvent>
   8.150 +      <Message>Copy SDL</Message>
   8.151 +    </PostBuildEvent>
   8.152 +  </ItemDefinitionGroup>
   8.153 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   8.154 +    <Midl>
   8.155 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   8.156 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   8.157 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   8.158 +      <TargetEnvironment>Win32</TargetEnvironment>
   8.159 +    </Midl>
   8.160 +    <ClCompile>
   8.161 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
   8.162 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   8.163 +      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   8.164 +      <StringPooling>true</StringPooling>
   8.165 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
   8.166 +      <FunctionLevelLinking>true</FunctionLevelLinking>
   8.167 +      <PrecompiledHeader>
   8.168 +      </PrecompiledHeader>
   8.169 +      <WarningLevel>Level3</WarningLevel>
   8.170 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   8.171 +      <CompileAs>Default</CompileAs>
   8.172 +    </ClCompile>
   8.173 +    <ResourceCompile>
   8.174 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   8.175 +      <Culture>0x0409</Culture>
   8.176 +    </ResourceCompile>
   8.177 +    <Link>
   8.178 +      <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
   8.179 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   8.180 +      <SubSystem>Windows</SubSystem>
   8.181 +    </Link>
   8.182 +    <PostBuildEvent>
   8.183 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
   8.184 +    </PostBuildEvent>
   8.185 +    <PostBuildEvent>
   8.186 +      <Message>Copy SDL</Message>
   8.187 +    </PostBuildEvent>
   8.188 +  </ItemDefinitionGroup>
   8.189 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   8.190 +    <Midl>
   8.191 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   8.192 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   8.193 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   8.194 +    </Midl>
   8.195 +    <ClCompile>
   8.196 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
   8.197 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   8.198 +      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   8.199 +      <StringPooling>true</StringPooling>
   8.200 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
   8.201 +      <FunctionLevelLinking>true</FunctionLevelLinking>
   8.202 +      <PrecompiledHeader>
   8.203 +      </PrecompiledHeader>
   8.204 +      <WarningLevel>Level3</WarningLevel>
   8.205 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   8.206 +      <CompileAs>Default</CompileAs>
   8.207 +    </ClCompile>
   8.208 +    <ResourceCompile>
   8.209 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   8.210 +      <Culture>0x0409</Culture>
   8.211 +    </ResourceCompile>
   8.212 +    <Link>
   8.213 +      <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
   8.214 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   8.215 +      <SubSystem>Windows</SubSystem>
   8.216 +    </Link>
   8.217 +    <PostBuildEvent>
   8.218 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
   8.219 +    </PostBuildEvent>
   8.220 +    <PostBuildEvent>
   8.221 +      <Message>Copy SDL</Message>
   8.222 +    </PostBuildEvent>
   8.223 +  </ItemDefinitionGroup>
   8.224 +  <ItemGroup>
   8.225 +    <ClCompile Include="..\..\..\test\testgles2.c" />
   8.226 +  </ItemGroup>
   8.227 +  <ItemGroup>
   8.228 +    <ProjectReference Include="..\..\SDLmain\SDLmain_VS2010.vcxproj">
   8.229 +      <Project>{da956fd3-e142-46f2-9dd5-c78bebb56b7a}</Project>
   8.230 +    </ProjectReference>
   8.231 +    <ProjectReference Include="..\..\SDLtest\SDLtest_VS2010.vcxproj">
   8.232 +      <Project>{da956fd3-e143-46f2-9fe5-c77bebc56b1a}</Project>
   8.233 +    </ProjectReference>
   8.234 +    <ProjectReference Include="..\..\SDL\SDL_VS2010.vcxproj">
   8.235 +      <Project>{81ce8daf-ebb2-4761-8e45-b71abcca8c68}</Project>
   8.236 +    </ProjectReference>
   8.237 +  </ItemGroup>
   8.238 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   8.239 +  <ImportGroup Label="ExtensionTargets">
   8.240 +  </ImportGroup>
   8.241 +</Project>
   8.242 \ No newline at end of file
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/VisualC/tests/testgles2/testgles2_VS2012.vcxproj	Fri Nov 22 13:24:53 2013 -0300
     9.3 @@ -0,0 +1,236 @@
     9.4 +<?xml version="1.0" encoding="utf-8"?>
     9.5 +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     9.6 +  <ItemGroup Label="ProjectConfigurations">
     9.7 +    <ProjectConfiguration Include="Debug|Win32">
     9.8 +      <Configuration>Debug</Configuration>
     9.9 +      <Platform>Win32</Platform>
    9.10 +    </ProjectConfiguration>
    9.11 +    <ProjectConfiguration Include="Debug|x64">
    9.12 +      <Configuration>Debug</Configuration>
    9.13 +      <Platform>x64</Platform>
    9.14 +    </ProjectConfiguration>
    9.15 +    <ProjectConfiguration Include="Release|Win32">
    9.16 +      <Configuration>Release</Configuration>
    9.17 +      <Platform>Win32</Platform>
    9.18 +    </ProjectConfiguration>
    9.19 +    <ProjectConfiguration Include="Release|x64">
    9.20 +      <Configuration>Release</Configuration>
    9.21 +      <Platform>x64</Platform>
    9.22 +    </ProjectConfiguration>
    9.23 +  </ItemGroup>
    9.24 +  <PropertyGroup Label="Globals">
    9.25 +    <ProjectName>testgles2</ProjectName>
    9.26 +    <RootNamespace>testgles2</RootNamespace>
    9.27 +    <ProjectGuid>{8B5CFB38-CCBA-40A8-AD7A-89C57B070884}</ProjectGuid>
    9.28 +  </PropertyGroup>
    9.29 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
    9.30 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
    9.31 +    <ConfigurationType>Application</ConfigurationType>
    9.32 +    <UseOfMfc>false</UseOfMfc>
    9.33 +    <PlatformToolset>v110</PlatformToolset>
    9.34 +  </PropertyGroup>
    9.35 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    9.36 +    <ConfigurationType>Application</ConfigurationType>
    9.37 +    <UseOfMfc>false</UseOfMfc>
    9.38 +    <PlatformToolset>v110</PlatformToolset>
    9.39 +  </PropertyGroup>
    9.40 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
    9.41 +    <ConfigurationType>Application</ConfigurationType>
    9.42 +    <UseOfMfc>false</UseOfMfc>
    9.43 +    <PlatformToolset>v110</PlatformToolset>
    9.44 +  </PropertyGroup>
    9.45 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
    9.46 +    <ConfigurationType>Application</ConfigurationType>
    9.47 +    <UseOfMfc>false</UseOfMfc>
    9.48 +    <CharacterSet>MultiByte</CharacterSet>
    9.49 +    <PlatformToolset>v110</PlatformToolset>
    9.50 +  </PropertyGroup>
    9.51 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    9.52 +  <ImportGroup Label="ExtensionSettings">
    9.53 +  </ImportGroup>
    9.54 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
    9.55 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    9.56 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    9.57 +  </ImportGroup>
    9.58 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
    9.59 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    9.60 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    9.61 +  </ImportGroup>
    9.62 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
    9.63 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    9.64 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    9.65 +  </ImportGroup>
    9.66 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
    9.67 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
    9.68 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
    9.69 +  </ImportGroup>
    9.70 +  <PropertyGroup Label="UserMacros" />
    9.71 +  <PropertyGroup>
    9.72 +    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
    9.73 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</OutDir>
    9.74 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir>
    9.75 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
    9.76 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
    9.77 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
    9.78 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
    9.79 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</OutDir>
    9.80 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</OutDir>
    9.81 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
    9.82 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
    9.83 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
    9.84 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
    9.85 +  </PropertyGroup>
    9.86 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    9.87 +    <Midl>
    9.88 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    9.89 +      <MkTypLibCompatible>true</MkTypLibCompatible>
    9.90 +      <SuppressStartupBanner>true</SuppressStartupBanner>
    9.91 +      <TargetEnvironment>Win32</TargetEnvironment>
    9.92 +    </Midl>
    9.93 +    <ClCompile>
    9.94 +      <Optimization>Disabled</Optimization>
    9.95 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    9.96 +      <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    9.97 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
    9.98 +      <PrecompiledHeader>
    9.99 +      </PrecompiledHeader>
   9.100 +      <WarningLevel>Level3</WarningLevel>
   9.101 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.102 +      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
   9.103 +      <CompileAs>Default</CompileAs>
   9.104 +    </ClCompile>
   9.105 +    <ResourceCompile>
   9.106 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   9.107 +      <Culture>0x0409</Culture>
   9.108 +    </ResourceCompile>
   9.109 +    <Link>
   9.110 +      <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
   9.111 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.112 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   9.113 +      <SubSystem>Windows</SubSystem>
   9.114 +    </Link>
   9.115 +    <PostBuildEvent>
   9.116 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
   9.117 +    </PostBuildEvent>
   9.118 +    <PostBuildEvent>
   9.119 +      <Message>Copy SDL</Message>
   9.120 +    </PostBuildEvent>
   9.121 +  </ItemDefinitionGroup>
   9.122 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   9.123 +    <Midl>
   9.124 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   9.125 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   9.126 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.127 +    </Midl>
   9.128 +    <ClCompile>
   9.129 +      <Optimization>Disabled</Optimization>
   9.130 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   9.131 +      <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   9.132 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
   9.133 +      <PrecompiledHeader>
   9.134 +      </PrecompiledHeader>
   9.135 +      <WarningLevel>Level3</WarningLevel>
   9.136 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.137 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
   9.138 +      <CompileAs>Default</CompileAs>
   9.139 +    </ClCompile>
   9.140 +    <ResourceCompile>
   9.141 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   9.142 +      <Culture>0x0409</Culture>
   9.143 +    </ResourceCompile>
   9.144 +    <Link>
   9.145 +      <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
   9.146 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.147 +      <GenerateDebugInformation>true</GenerateDebugInformation>
   9.148 +      <SubSystem>Windows</SubSystem>
   9.149 +    </Link>
   9.150 +    <PostBuildEvent>
   9.151 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
   9.152 +    </PostBuildEvent>
   9.153 +    <PostBuildEvent>
   9.154 +      <Message>Copy SDL</Message>
   9.155 +    </PostBuildEvent>
   9.156 +  </ItemDefinitionGroup>
   9.157 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   9.158 +    <Midl>
   9.159 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   9.160 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   9.161 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.162 +      <TargetEnvironment>Win32</TargetEnvironment>
   9.163 +    </Midl>
   9.164 +    <ClCompile>
   9.165 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
   9.166 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   9.167 +      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   9.168 +      <StringPooling>true</StringPooling>
   9.169 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
   9.170 +      <FunctionLevelLinking>true</FunctionLevelLinking>
   9.171 +      <PrecompiledHeader>
   9.172 +      </PrecompiledHeader>
   9.173 +      <WarningLevel>Level3</WarningLevel>
   9.174 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.175 +      <CompileAs>Default</CompileAs>
   9.176 +    </ClCompile>
   9.177 +    <ResourceCompile>
   9.178 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   9.179 +      <Culture>0x0409</Culture>
   9.180 +    </ResourceCompile>
   9.181 +    <Link>
   9.182 +      <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
   9.183 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.184 +      <SubSystem>Windows</SubSystem>
   9.185 +    </Link>
   9.186 +    <PostBuildEvent>
   9.187 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
   9.188 +    </PostBuildEvent>
   9.189 +    <PostBuildEvent>
   9.190 +      <Message>Copy SDL</Message>
   9.191 +    </PostBuildEvent>
   9.192 +  </ItemDefinitionGroup>
   9.193 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   9.194 +    <Midl>
   9.195 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   9.196 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   9.197 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.198 +    </Midl>
   9.199 +    <ClCompile>
   9.200 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
   9.201 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   9.202 +      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   9.203 +      <StringPooling>true</StringPooling>
   9.204 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
   9.205 +      <FunctionLevelLinking>true</FunctionLevelLinking>
   9.206 +      <PrecompiledHeader>
   9.207 +      </PrecompiledHeader>
   9.208 +      <WarningLevel>Level3</WarningLevel>
   9.209 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.210 +      <CompileAs>Default</CompileAs>
   9.211 +    </ClCompile>
   9.212 +    <ResourceCompile>
   9.213 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   9.214 +      <Culture>0x0409</Culture>
   9.215 +    </ResourceCompile>
   9.216 +    <Link>
   9.217 +      <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
   9.218 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   9.219 +      <SubSystem>Windows</SubSystem>
   9.220 +    </Link>
   9.221 +    <PostBuildEvent>
   9.222 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
   9.223 +    </PostBuildEvent>
   9.224 +    <PostBuildEvent>
   9.225 +      <Message>Copy SDL</Message>
   9.226 +    </PostBuildEvent>
   9.227 +  </ItemDefinitionGroup>
   9.228 +  <ItemGroup>
   9.229 +    <ClCompile Include="..\..\..\test\testgles2.c" />
   9.230 +  </ItemGroup>
   9.231 +  <ItemGroup>
   9.232 +    <Library Include="..\..\SDL\$(Platform)\$(Configuration)\SDL2.lib" />
   9.233 +    <Library Include="..\..\SDLmain\$(Platform)\$(Configuration)\SDL2main.lib" />
   9.234 +    <Library Include="..\..\SDLtest\$(Platform)\$(Configuration)\SDL2test.lib" />
   9.235 +  </ItemGroup>
   9.236 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   9.237 +  <ImportGroup Label="ExtensionTargets">
   9.238 +  </ImportGroup>
   9.239 +</Project>
   9.240 \ No newline at end of file
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/VisualC/tests/testgles2/testgles2_VS2013.vcxproj	Fri Nov 22 13:24:53 2013 -0300
    10.3 @@ -0,0 +1,236 @@
    10.4 +<?xml version="1.0" encoding="utf-8"?>
    10.5 +<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    10.6 +  <ItemGroup Label="ProjectConfigurations">
    10.7 +    <ProjectConfiguration Include="Debug|Win32">
    10.8 +      <Configuration>Debug</Configuration>
    10.9 +      <Platform>Win32</Platform>
   10.10 +    </ProjectConfiguration>
   10.11 +    <ProjectConfiguration Include="Debug|x64">
   10.12 +      <Configuration>Debug</Configuration>
   10.13 +      <Platform>x64</Platform>
   10.14 +    </ProjectConfiguration>
   10.15 +    <ProjectConfiguration Include="Release|Win32">
   10.16 +      <Configuration>Release</Configuration>
   10.17 +      <Platform>Win32</Platform>
   10.18 +    </ProjectConfiguration>
   10.19 +    <ProjectConfiguration Include="Release|x64">
   10.20 +      <Configuration>Release</Configuration>
   10.21 +      <Platform>x64</Platform>
   10.22 +    </ProjectConfiguration>
   10.23 +  </ItemGroup>
   10.24 +  <PropertyGroup Label="Globals">
   10.25 +    <ProjectName>testgles2</ProjectName>
   10.26 +    <RootNamespace>testgles2</RootNamespace>
   10.27 +    <ProjectGuid>{E5287C64-0646-4BFA-A772-1DB5A649F35E}</ProjectGuid>
   10.28 +  </PropertyGroup>
   10.29 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   10.30 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   10.31 +    <ConfigurationType>Application</ConfigurationType>
   10.32 +    <UseOfMfc>false</UseOfMfc>
   10.33 +    <PlatformToolset>v120</PlatformToolset>
   10.34 +  </PropertyGroup>
   10.35 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
   10.36 +    <ConfigurationType>Application</ConfigurationType>
   10.37 +    <UseOfMfc>false</UseOfMfc>
   10.38 +    <PlatformToolset>v120</PlatformToolset>
   10.39 +  </PropertyGroup>
   10.40 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
   10.41 +    <ConfigurationType>Application</ConfigurationType>
   10.42 +    <UseOfMfc>false</UseOfMfc>
   10.43 +    <PlatformToolset>v120</PlatformToolset>
   10.44 +  </PropertyGroup>
   10.45 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
   10.46 +    <ConfigurationType>Application</ConfigurationType>
   10.47 +    <UseOfMfc>false</UseOfMfc>
   10.48 +    <CharacterSet>MultiByte</CharacterSet>
   10.49 +    <PlatformToolset>v120</PlatformToolset>
   10.50 +  </PropertyGroup>
   10.51 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   10.52 +  <ImportGroup Label="ExtensionSettings">
   10.53 +  </ImportGroup>
   10.54 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
   10.55 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   10.56 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
   10.57 +  </ImportGroup>
   10.58 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
   10.59 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   10.60 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
   10.61 +  </ImportGroup>
   10.62 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
   10.63 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   10.64 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
   10.65 +  </ImportGroup>
   10.66 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
   10.67 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   10.68 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
   10.69 +  </ImportGroup>
   10.70 +  <PropertyGroup Label="UserMacros" />
   10.71 +  <PropertyGroup>
   10.72 +    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
   10.73 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</OutDir>
   10.74 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir>
   10.75 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
   10.76 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
   10.77 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
   10.78 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
   10.79 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</OutDir>
   10.80 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</OutDir>
   10.81 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
   10.82 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
   10.83 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
   10.84 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
   10.85 +  </PropertyGroup>
   10.86 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   10.87 +    <Midl>
   10.88 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   10.89 +      <MkTypLibCompatible>true</MkTypLibCompatible>
   10.90 +      <SuppressStartupBanner>true</SuppressStartupBanner>
   10.91 +      <TargetEnvironment>Win32</TargetEnvironment>
   10.92 +    </Midl>
   10.93 +    <ClCompile>
   10.94 +      <Optimization>Disabled</Optimization>
   10.95 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   10.96 +      <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;HAVE_OPENGLES2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   10.97 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
   10.98 +      <PrecompiledHeader>
   10.99 +      </PrecompiledHeader>
  10.100 +      <WarningLevel>Level3</WarningLevel>
  10.101 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.102 +      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
  10.103 +      <CompileAs>Default</CompileAs>
  10.104 +    </ClCompile>
  10.105 +    <ResourceCompile>
  10.106 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  10.107 +      <Culture>0x0409</Culture>
  10.108 +    </ResourceCompile>
  10.109 +    <Link>
  10.110 +      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
  10.111 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.112 +      <GenerateDebugInformation>true</GenerateDebugInformation>
  10.113 +      <SubSystem>Windows</SubSystem>
  10.114 +    </Link>
  10.115 +    <PostBuildEvent>
  10.116 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
  10.117 +    </PostBuildEvent>
  10.118 +    <PostBuildEvent>
  10.119 +      <Message>Copy SDL</Message>
  10.120 +    </PostBuildEvent>
  10.121 +  </ItemDefinitionGroup>
  10.122 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
  10.123 +    <Midl>
  10.124 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  10.125 +      <MkTypLibCompatible>true</MkTypLibCompatible>
  10.126 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.127 +    </Midl>
  10.128 +    <ClCompile>
  10.129 +      <Optimization>Disabled</Optimization>
  10.130 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  10.131 +      <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;HAVE_OPENGLES2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  10.132 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
  10.133 +      <PrecompiledHeader>
  10.134 +      </PrecompiledHeader>
  10.135 +      <WarningLevel>Level3</WarningLevel>
  10.136 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.137 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
  10.138 +      <CompileAs>Default</CompileAs>
  10.139 +    </ClCompile>
  10.140 +    <ResourceCompile>
  10.141 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  10.142 +      <Culture>0x0409</Culture>
  10.143 +    </ResourceCompile>
  10.144 +    <Link>
  10.145 +      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
  10.146 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.147 +      <GenerateDebugInformation>true</GenerateDebugInformation>
  10.148 +      <SubSystem>Windows</SubSystem>
  10.149 +    </Link>
  10.150 +    <PostBuildEvent>
  10.151 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
  10.152 +    </PostBuildEvent>
  10.153 +    <PostBuildEvent>
  10.154 +      <Message>Copy SDL</Message>
  10.155 +    </PostBuildEvent>
  10.156 +  </ItemDefinitionGroup>
  10.157 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
  10.158 +    <Midl>
  10.159 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  10.160 +      <MkTypLibCompatible>true</MkTypLibCompatible>
  10.161 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.162 +      <TargetEnvironment>Win32</TargetEnvironment>
  10.163 +    </Midl>
  10.164 +    <ClCompile>
  10.165 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
  10.166 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  10.167 +      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;HAVE_OPENGLES2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  10.168 +      <StringPooling>true</StringPooling>
  10.169 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
  10.170 +      <FunctionLevelLinking>true</FunctionLevelLinking>
  10.171 +      <PrecompiledHeader>
  10.172 +      </PrecompiledHeader>
  10.173 +      <WarningLevel>Level3</WarningLevel>
  10.174 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.175 +      <CompileAs>Default</CompileAs>
  10.176 +    </ClCompile>
  10.177 +    <ResourceCompile>
  10.178 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  10.179 +      <Culture>0x0409</Culture>
  10.180 +    </ResourceCompile>
  10.181 +    <Link>
  10.182 +      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
  10.183 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.184 +      <SubSystem>Windows</SubSystem>
  10.185 +    </Link>
  10.186 +    <PostBuildEvent>
  10.187 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
  10.188 +    </PostBuildEvent>
  10.189 +    <PostBuildEvent>
  10.190 +      <Message>Copy SDL</Message>
  10.191 +    </PostBuildEvent>
  10.192 +  </ItemDefinitionGroup>
  10.193 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
  10.194 +    <Midl>
  10.195 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  10.196 +      <MkTypLibCompatible>true</MkTypLibCompatible>
  10.197 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.198 +    </Midl>
  10.199 +    <ClCompile>
  10.200 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
  10.201 +      <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  10.202 +      <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;HAVE_OPENGLES2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  10.203 +      <StringPooling>true</StringPooling>
  10.204 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
  10.205 +      <FunctionLevelLinking>true</FunctionLevelLinking>
  10.206 +      <PrecompiledHeader>
  10.207 +      </PrecompiledHeader>
  10.208 +      <WarningLevel>Level3</WarningLevel>
  10.209 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.210 +      <CompileAs>Default</CompileAs>
  10.211 +    </ClCompile>
  10.212 +    <ResourceCompile>
  10.213 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
  10.214 +      <Culture>0x0409</Culture>
  10.215 +    </ResourceCompile>
  10.216 +    <Link>
  10.217 +      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
  10.218 +      <SuppressStartupBanner>true</SuppressStartupBanner>
  10.219 +      <SubSystem>Windows</SubSystem>
  10.220 +    </Link>
  10.221 +    <PostBuildEvent>
  10.222 +      <Command>copy "$(SolutionDir)\SDL\$(Platform)\$(Configuration)\SDL2.dll" "$(TargetDir)\SDL2.dll"</Command>
  10.223 +    </PostBuildEvent>
  10.224 +    <PostBuildEvent>
  10.225 +      <Message>Copy SDL</Message>
  10.226 +    </PostBuildEvent>
  10.227 +  </ItemDefinitionGroup>
  10.228 +  <ItemGroup>
  10.229 +    <ClCompile Include="..\..\..\test\testgles2.c" />
  10.230 +  </ItemGroup>
  10.231 +  <ItemGroup>
  10.232 +    <Library Include="..\..\SDL\$(Platform)\$(Configuration)\SDL2.lib" />
  10.233 +    <Library Include="..\..\SDLmain\$(Platform)\$(Configuration)\SDL2main.lib" />
  10.234 +    <Library Include="..\..\SDLtest\$(Platform)\$(Configuration)\SDL2test.lib" />
  10.235 +  </ItemGroup>
  10.236 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  10.237 +  <ImportGroup Label="ExtensionTargets">
  10.238 +  </ImportGroup>
  10.239 +</Project>
  10.240 \ No newline at end of file
    11.1 --- a/include/SDL_config_windows.h	Fri Nov 22 10:26:28 2013 -0300
    11.2 +++ b/include/SDL_config_windows.h	Fri Nov 22 13:24:53 2013 -0300
    11.3 @@ -180,6 +180,16 @@
    11.4  #ifndef SDL_VIDEO_RENDER_OGL
    11.5  #define SDL_VIDEO_RENDER_OGL    1
    11.6  #endif
    11.7 +#ifndef SDL_VIDEO_RENDER_OGL_ES2
    11.8 +#define SDL_VIDEO_RENDER_OGL_ES2    1
    11.9 +#endif
   11.10 +#ifndef SDL_VIDEO_OPENGL_ES2
   11.11 +#define SDL_VIDEO_OPENGL_ES2    1
   11.12 +#endif
   11.13 +#ifndef SDL_VIDEO_OPENGL_EGL
   11.14 +#define SDL_VIDEO_OPENGL_EGL    1
   11.15 +#endif
   11.16 +
   11.17  
   11.18  /* Enable system power support */
   11.19  #define SDL_POWER_WINDOWS 1
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/include/SDL_egl.h	Fri Nov 22 13:24:53 2013 -0300
    12.3 @@ -0,0 +1,1389 @@
    12.4 +/*
    12.5 +  Simple DirectMedia Layer
    12.6 +  Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
    12.7 +
    12.8 +  This software is provided 'as-is', without any express or implied
    12.9 +  warranty.  In no event will the authors be held liable for any damages
   12.10 +  arising from the use of this software.
   12.11 +
   12.12 +  Permission is granted to anyone to use this software for any purpose,
   12.13 +  including commercial applications, and to alter it and redistribute it
   12.14 +  freely, subject to the following restrictions:
   12.15 +
   12.16 +  1. The origin of this software must not be misrepresented; you must not
   12.17 +     claim that you wrote the original software. If you use this software
   12.18 +     in a product, an acknowledgment in the product documentation would be
   12.19 +     appreciated but is not required.
   12.20 +  2. Altered source versions must be plainly marked as such, and must not be
   12.21 +     misrepresented as being the original software.
   12.22 +  3. This notice may not be removed or altered from any source distribution.
   12.23 +*/
   12.24 +
   12.25 +/**
   12.26 + *  \file SDL_opengles.h
   12.27 + *
   12.28 + *  This is a simple file to encapsulate the OpenGL ES 2.0 API headers.
   12.29 + */
   12.30 +#ifndef _MSC_VER
   12.31 +
   12.32 +#include <EGL/egl.h>
   12.33 +
   12.34 +#else /* _MSC_VER */
   12.35 +
   12.36 +/* EGL headers for Visual Studio */
   12.37 +
   12.38 +#ifndef __khrplatform_h_
   12.39 +#define __khrplatform_h_
   12.40 +
   12.41 +/*
   12.42 +** Copyright (c) 2008-2009 The Khronos Group Inc.
   12.43 +**
   12.44 +** Permission is hereby granted, free of charge, to any person obtaining a
   12.45 +** copy of this software and/or associated documentation files (the
   12.46 +** "Materials"), to deal in the Materials without restriction, including
   12.47 +** without limitation the rights to use, copy, modify, merge, publish,
   12.48 +** distribute, sublicense, and/or sell copies of the Materials, and to
   12.49 +** permit persons to whom the Materials are furnished to do so, subject to
   12.50 +** the following conditions:
   12.51 +**
   12.52 +** The above copyright notice and this permission notice shall be included
   12.53 +** in all copies or substantial portions of the Materials.
   12.54 +**
   12.55 +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
   12.56 +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   12.57 +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   12.58 +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   12.59 +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   12.60 +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   12.61 +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
   12.62 +*/
   12.63 +
   12.64 +/* Khronos platform-specific types and definitions.
   12.65 +*
   12.66 +* $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $
   12.67 +*
   12.68 +* Adopters may modify this file to suit their platform. Adopters are
   12.69 +* encouraged to submit platform specific modifications to the Khronos
   12.70 +* group so that they can be included in future versions of this file.
   12.71 +* Please submit changes by sending them to the public Khronos Bugzilla
   12.72 +* (http://khronos.org/bugzilla) by filing a bug against product
   12.73 +* "Khronos (general)" component "Registry".
   12.74 +*
   12.75 +* A predefined template which fills in some of the bug fields can be
   12.76 +* reached using http://tinyurl.com/khrplatform-h-bugreport, but you
   12.77 +* must create a Bugzilla login first.
   12.78 +*
   12.79 +*
   12.80 +* See the Implementer's Guidelines for information about where this file
   12.81 +* should be located on your system and for more details of its use:
   12.82 +*    http://www.khronos.org/registry/implementers_guide.pdf
   12.83 +*
   12.84 +* This file should be included as
   12.85 +*        #include <KHR/khrplatform.h>
   12.86 +* by Khronos client API header files that use its types and defines.
   12.87 +*
   12.88 +* The types in khrplatform.h should only be used to define API-specific types.
   12.89 +*
   12.90 +* Types defined in khrplatform.h:
   12.91 +*    khronos_int8_t              signed   8  bit
   12.92 +*    khronos_uint8_t             unsigned 8  bit
   12.93 +*    khronos_int16_t             signed   16 bit
   12.94 +*    khronos_uint16_t            unsigned 16 bit
   12.95 +*    khronos_int32_t             signed   32 bit
   12.96 +*    khronos_uint32_t            unsigned 32 bit
   12.97 +*    khronos_int64_t             signed   64 bit
   12.98 +*    khronos_uint64_t            unsigned 64 bit
   12.99 +*    khronos_intptr_t            signed   same number of bits as a pointer
  12.100 +*    khronos_uintptr_t           unsigned same number of bits as a pointer
  12.101 +*    khronos_ssize_t             signed   size
  12.102 +*    khronos_usize_t             unsigned size
  12.103 +*    khronos_float_t             signed   32 bit floating point
  12.104 +*    khronos_time_ns_t           unsigned 64 bit time in nanoseconds
  12.105 +*    khronos_utime_nanoseconds_t unsigned time interval or absolute time in
  12.106 +*                                         nanoseconds
  12.107 +*    khronos_stime_nanoseconds_t signed time interval in nanoseconds
  12.108 +*    khronos_boolean_enum_t      enumerated boolean type. This should
  12.109 +*      only be used as a base type when a client API's boolean type is
  12.110 +*      an enum. Client APIs which use an integer or other type for
  12.111 +*      booleans cannot use this as the base type for their boolean.
  12.112 +*
  12.113 +* Tokens defined in khrplatform.h:
  12.114 +*
  12.115 +*    KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
  12.116 +*
  12.117 +*    KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
  12.118 +*    KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
  12.119 +*
  12.120 +* Calling convention macros defined in this file:
  12.121 +*    KHRONOS_APICALL
  12.122 +*    KHRONOS_APIENTRY
  12.123 +*    KHRONOS_APIATTRIBUTES
  12.124 +*
  12.125 +* These may be used in function prototypes as:
  12.126 +*
  12.127 +*      KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
  12.128 +*                                  int arg1,
  12.129 +*                                  int arg2) KHRONOS_APIATTRIBUTES;
  12.130 +*/
  12.131 +
  12.132 +/*-------------------------------------------------------------------------
  12.133 +* Definition of KHRONOS_APICALL
  12.134 +*-------------------------------------------------------------------------
  12.135 +* This precedes the return type of the function in the function prototype.
  12.136 +*/
  12.137 +#if defined(_WIN32) && !defined(__SCITECH_SNAP__)
  12.138 +#   define KHRONOS_APICALL __declspec(dllimport)
  12.139 +#elif defined (__SYMBIAN32__)
  12.140 +#   define KHRONOS_APICALL IMPORT_C
  12.141 +#else
  12.142 +#   define KHRONOS_APICALL
  12.143 +#endif
  12.144 +
  12.145 +/*-------------------------------------------------------------------------
  12.146 +* Definition of KHRONOS_APIENTRY
  12.147 +*-------------------------------------------------------------------------
  12.148 +* This follows the return type of the function  and precedes the function
  12.149 +* name in the function prototype.
  12.150 +*/
  12.151 +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
  12.152 +/* Win32 but not WinCE */
  12.153 +#   define KHRONOS_APIENTRY __stdcall
  12.154 +#else
  12.155 +#   define KHRONOS_APIENTRY
  12.156 +#endif
  12.157 +
  12.158 +/*-------------------------------------------------------------------------
  12.159 +* Definition of KHRONOS_APIATTRIBUTES
  12.160 +*-------------------------------------------------------------------------
  12.161 +* This follows the closing parenthesis of the function prototype arguments.
  12.162 +*/
  12.163 +#if defined (__ARMCC_2__)
  12.164 +#define KHRONOS_APIATTRIBUTES __softfp
  12.165 +#else
  12.166 +#define KHRONOS_APIATTRIBUTES
  12.167 +#endif
  12.168 +
  12.169 +/*-------------------------------------------------------------------------
  12.170 +* basic type definitions
  12.171 +*-----------------------------------------------------------------------*/
  12.172 +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
  12.173 +
  12.174 +
  12.175 +/*
  12.176 +* Using <stdint.h>
  12.177 +*/
  12.178 +#include <stdint.h>
  12.179 +typedef int32_t                 khronos_int32_t;
  12.180 +typedef uint32_t                khronos_uint32_t;
  12.181 +typedef int64_t                 khronos_int64_t;
  12.182 +typedef uint64_t                khronos_uint64_t;
  12.183 +#define KHRONOS_SUPPORT_INT64   1
  12.184 +#define KHRONOS_SUPPORT_FLOAT   1
  12.185 +
  12.186 +#elif defined(__VMS ) || defined(__sgi)
  12.187 +
  12.188 +/*
  12.189 +* Using <inttypes.h>
  12.190 +*/
  12.191 +#include <inttypes.h>
  12.192 +typedef int32_t                 khronos_int32_t;
  12.193 +typedef uint32_t                khronos_uint32_t;
  12.194 +typedef int64_t                 khronos_int64_t;
  12.195 +typedef uint64_t                khronos_uint64_t;
  12.196 +#define KHRONOS_SUPPORT_INT64   1
  12.197 +#define KHRONOS_SUPPORT_FLOAT   1
  12.198 +
  12.199 +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
  12.200 +
  12.201 +/*
  12.202 +* Win32
  12.203 +*/
  12.204 +typedef __int32                 khronos_int32_t;
  12.205 +typedef unsigned __int32        khronos_uint32_t;
  12.206 +typedef __int64                 khronos_int64_t;
  12.207 +typedef unsigned __int64        khronos_uint64_t;
  12.208 +#define KHRONOS_SUPPORT_INT64   1
  12.209 +#define KHRONOS_SUPPORT_FLOAT   1
  12.210 +
  12.211 +#elif defined(__sun__) || defined(__digital__)
  12.212 +
  12.213 +/*
  12.214 +* Sun or Digital
  12.215 +*/
  12.216 +typedef int                     khronos_int32_t;
  12.217 +typedef unsigned int            khronos_uint32_t;
  12.218 +#if defined(__arch64__) || defined(_LP64)
  12.219 +typedef long int                khronos_int64_t;
  12.220 +typedef unsigned long int       khronos_uint64_t;
  12.221 +#else
  12.222 +typedef long long int           khronos_int64_t;
  12.223 +typedef unsigned long long int  khronos_uint64_t;
  12.224 +#endif /* __arch64__ */
  12.225 +#define KHRONOS_SUPPORT_INT64   1
  12.226 +#define KHRONOS_SUPPORT_FLOAT   1
  12.227 +
  12.228 +#elif 0
  12.229 +
  12.230 +/*
  12.231 +* Hypothetical platform with no float or int64 support
  12.232 +*/
  12.233 +typedef int                     khronos_int32_t;
  12.234 +typedef unsigned int            khronos_uint32_t;
  12.235 +#define KHRONOS_SUPPORT_INT64   0
  12.236 +#define KHRONOS_SUPPORT_FLOAT   0
  12.237 +
  12.238 +#else
  12.239 +
  12.240 +/*
  12.241 +* Generic fallback
  12.242 +*/
  12.243 +#include <stdint.h>
  12.244 +typedef int32_t                 khronos_int32_t;
  12.245 +typedef uint32_t                khronos_uint32_t;
  12.246 +typedef int64_t                 khronos_int64_t;
  12.247 +typedef uint64_t                khronos_uint64_t;
  12.248 +#define KHRONOS_SUPPORT_INT64   1
  12.249 +#define KHRONOS_SUPPORT_FLOAT   1
  12.250 +
  12.251 +#endif
  12.252 +
  12.253 +
  12.254 +/*
  12.255 +* Types that are (so far) the same on all platforms
  12.256 +*/
  12.257 +typedef signed   char          khronos_int8_t;
  12.258 +typedef unsigned char          khronos_uint8_t;
  12.259 +typedef signed   short int     khronos_int16_t;
  12.260 +typedef unsigned short int     khronos_uint16_t;
  12.261 +
  12.262 +/*
  12.263 +* Types that differ between LLP64 and LP64 architectures - in LLP64,
  12.264 +* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
  12.265 +* to be the only LLP64 architecture in current use.
  12.266 +*/
  12.267 +#ifdef _WIN64
  12.268 +typedef signed   long long int khronos_intptr_t;
  12.269 +typedef unsigned long long int khronos_uintptr_t;
  12.270 +typedef signed   long long int khronos_ssize_t;
  12.271 +typedef unsigned long long int khronos_usize_t;
  12.272 +#else
  12.273 +typedef signed   long  int     khronos_intptr_t;
  12.274 +typedef unsigned long  int     khronos_uintptr_t;
  12.275 +typedef signed   long  int     khronos_ssize_t;
  12.276 +typedef unsigned long  int     khronos_usize_t;
  12.277 +#endif
  12.278 +
  12.279 +#if KHRONOS_SUPPORT_FLOAT
  12.280 +/*
  12.281 +* Float type
  12.282 +*/
  12.283 +typedef          float         khronos_float_t;
  12.284 +#endif
  12.285 +
  12.286 +#if KHRONOS_SUPPORT_INT64
  12.287 +/* Time types
  12.288 +*
  12.289 +* These types can be used to represent a time interval in nanoseconds or
  12.290 +* an absolute Unadjusted System Time.  Unadjusted System Time is the number
  12.291 +* of nanoseconds since some arbitrary system event (e.g. since the last
  12.292 +* time the system booted).  The Unadjusted System Time is an unsigned
  12.293 +* 64 bit value that wraps back to 0 every 584 years.  Time intervals
  12.294 +* may be either signed or unsigned.
  12.295 +*/
  12.296 +typedef khronos_uint64_t       khronos_utime_nanoseconds_t;
  12.297 +typedef khronos_int64_t        khronos_stime_nanoseconds_t;
  12.298 +#endif
  12.299 +
  12.300 +/*
  12.301 +* Dummy value used to pad enum types to 32 bits.
  12.302 +*/
  12.303 +#ifndef KHRONOS_MAX_ENUM
  12.304 +#define KHRONOS_MAX_ENUM 0x7FFFFFFF
  12.305 +#endif
  12.306 +
  12.307 +/*
  12.308 +* Enumerated boolean type
  12.309 +*
  12.310 +* Values other than zero should be considered to be true.  Therefore
  12.311 +* comparisons should not be made against KHRONOS_TRUE.
  12.312 +*/
  12.313 +typedef enum {
  12.314 +    KHRONOS_FALSE = 0,
  12.315 +    KHRONOS_TRUE = 1,
  12.316 +    KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
  12.317 +} khronos_boolean_enum_t;
  12.318 +
  12.319 +#endif /* __khrplatform_h_ */
  12.320 +
  12.321 +
  12.322 +#ifndef __eglplatform_h_
  12.323 +#define __eglplatform_h_
  12.324 +
  12.325 +/*
  12.326 +** Copyright (c) 2007-2009 The Khronos Group Inc.
  12.327 +**
  12.328 +** Permission is hereby granted, free of charge, to any person obtaining a
  12.329 +** copy of this software and/or associated documentation files (the
  12.330 +** "Materials"), to deal in the Materials without restriction, including
  12.331 +** without limitation the rights to use, copy, modify, merge, publish,
  12.332 +** distribute, sublicense, and/or sell copies of the Materials, and to
  12.333 +** permit persons to whom the Materials are furnished to do so, subject to
  12.334 +** the following conditions:
  12.335 +**
  12.336 +** The above copyright notice and this permission notice shall be included
  12.337 +** in all copies or substantial portions of the Materials.
  12.338 +**
  12.339 +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  12.340 +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  12.341 +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  12.342 +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  12.343 +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  12.344 +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  12.345 +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
  12.346 +*/
  12.347 +
  12.348 +/* Platform-specific types and definitions for egl.h
  12.349 +* $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
  12.350 +*
  12.351 +* Adopters may modify khrplatform.h and this file to suit their platform.
  12.352 +* You are encouraged to submit all modifications to the Khronos group so that
  12.353 +* they can be included in future versions of this file.  Please submit changes
  12.354 +* by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
  12.355 +* by filing a bug against product "EGL" component "Registry".
  12.356 +*/
  12.357 +
  12.358 +/*#include <KHR/khrplatform.h>*/
  12.359 +
  12.360 +/* Macros used in EGL function prototype declarations.
  12.361 +*
  12.362 +* EGL functions should be prototyped as:
  12.363 +*
  12.364 +* EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
  12.365 +* typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
  12.366 +*
  12.367 +* KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
  12.368 +*/
  12.369 +
  12.370 +#ifndef EGLAPI
  12.371 +#define EGLAPI KHRONOS_APICALL
  12.372 +#endif
  12.373 +
  12.374 +#ifndef EGLAPIENTRY
  12.375 +#define EGLAPIENTRY  KHRONOS_APIENTRY
  12.376 +#endif
  12.377 +#define EGLAPIENTRYP EGLAPIENTRY*
  12.378 +
  12.379 +/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
  12.380 +* are aliases of window-system-dependent types, such as X Display * or
  12.381 +* Windows Device Context. They must be defined in platform-specific
  12.382 +* code below. The EGL-prefixed versions of Native*Type are the same
  12.383 +* types, renamed in EGL 1.3 so all types in the API start with "EGL".
  12.384 +*
  12.385 +* Khronos STRONGLY RECOMMENDS that you use the default definitions
  12.386 +* provided below, since these changes affect both binary and source
  12.387 +* portability of applications using EGL running on different EGL
  12.388 +* implementations.
  12.389 +*/
  12.390 +
  12.391 +#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
  12.392 +#ifndef WIN32_LEAN_AND_MEAN
  12.393 +#define WIN32_LEAN_AND_MEAN 1
  12.394 +#endif
  12.395 +#include <windows.h>
  12.396 +
  12.397 +typedef HDC     EGLNativeDisplayType;
  12.398 +typedef HBITMAP EGLNativePixmapType;
  12.399 +typedef HWND    EGLNativeWindowType;
  12.400 +
  12.401 +#elif defined(__WINSCW__) || defined(__SYMBIAN32__)  /* Symbian */
  12.402 +
  12.403 +typedef int   EGLNativeDisplayType;
  12.404 +typedef void *EGLNativeWindowType;
  12.405 +typedef void *EGLNativePixmapType;
  12.406 +
  12.407 +#elif defined(WL_EGL_PLATFORM)
  12.408 +
  12.409 +typedef struct wl_display     *EGLNativeDisplayType;
  12.410 +typedef struct wl_egl_pixmap  *EGLNativePixmapType;
  12.411 +typedef struct wl_egl_window  *EGLNativeWindowType;
  12.412 +
  12.413 +#elif defined(__GBM__)
  12.414 +
  12.415 +typedef struct gbm_device  *EGLNativeDisplayType;
  12.416 +typedef struct gbm_bo      *EGLNativePixmapType;
  12.417 +typedef void               *EGLNativeWindowType;
  12.418 +
  12.419 +#elif defined(ANDROID) /* Android */
  12.420 +
  12.421 +struct ANativeWindow;
  12.422 +struct egl_native_pixmap_t;
  12.423 +
  12.424 +typedef struct ANativeWindow        *EGLNativeWindowType;
  12.425 +typedef struct egl_native_pixmap_t  *EGLNativePixmapType;
  12.426 +typedef void                        *EGLNativeDisplayType;
  12.427 +
  12.428 +#elif defined(MIR_EGL_PLATFORM)
  12.429 +
  12.430 +#include <mir_toolkit/mir_client_library.h>
  12.431 +typedef MirEGLNativeDisplayType EGLNativeDisplayType;
  12.432 +typedef void                   *EGLNativePixmapType;
  12.433 +typedef MirEGLNativeWindowType  EGLNativeWindowType;
  12.434 +
  12.435 +#elif defined(__unix__)
  12.436 +
  12.437 +#ifdef MESA_EGL_NO_X11_HEADERS
  12.438 +
  12.439 +typedef void            *EGLNativeDisplayType;
  12.440 +typedef khronos_uintptr_t EGLNativePixmapType;
  12.441 +typedef khronos_uintptr_t EGLNativeWindowType;
  12.442 +
  12.443 +#else
  12.444 +
  12.445 +/* X11 (tentative)  */
  12.446 +#include <X11/Xlib.h>
  12.447 +#include <X11/Xutil.h>
  12.448 +
  12.449 +typedef Display *EGLNativeDisplayType;
  12.450 +typedef Pixmap   EGLNativePixmapType;
  12.451 +typedef Window   EGLNativeWindowType;
  12.452 +
  12.453 +#endif /* MESA_EGL_NO_X11_HEADERS */
  12.454 +
  12.455 +#else
  12.456 +#error "Platform not recognized"
  12.457 +#endif
  12.458 +
  12.459 +/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
  12.460 +typedef EGLNativeDisplayType NativeDisplayType;
  12.461 +typedef EGLNativePixmapType  NativePixmapType;
  12.462 +typedef EGLNativeWindowType  NativeWindowType;
  12.463 +
  12.464 +
  12.465 +/* Define EGLint. This must be a signed integral type large enough to contain
  12.466 +* all legal attribute names and values passed into and out of EGL, whether
  12.467 +* their type is boolean, bitmask, enumerant (symbolic constant), integer,
  12.468 +* handle, or other.  While in general a 32-bit integer will suffice, if
  12.469 +* handles are 64 bit types, then EGLint should be defined as a signed 64-bit
  12.470 +* integer type.
  12.471 +*/
  12.472 +typedef khronos_int32_t EGLint;
  12.473 +
  12.474 +#endif /* __eglplatform_h */
  12.475 +
  12.476 +/* -*- mode: c; tab-width: 8; -*- */
  12.477 +/* vi: set sw=4 ts=8: */
  12.478 +/* Reference version of egl.h for EGL 1.4.
  12.479 +* $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
  12.480 +*/
  12.481 +
  12.482 +/*
  12.483 +** Copyright (c) 2007-2009 The Khronos Group Inc.
  12.484 +**
  12.485 +** Permission is hereby granted, free of charge, to any person obtaining a
  12.486 +** copy of this software and/or associated documentation files (the
  12.487 +** "Materials"), to deal in the Materials without restriction, including
  12.488 +** without limitation the rights to use, copy, modify, merge, publish,
  12.489 +** distribute, sublicense, and/or sell copies of the Materials, and to
  12.490 +** permit persons to whom the Materials are furnished to do so, subject to
  12.491 +** the following conditions:
  12.492 +**
  12.493 +** The above copyright notice and this permission notice shall be included
  12.494 +** in all copies or substantial portions of the Materials.
  12.495 +**
  12.496 +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  12.497 +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  12.498 +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  12.499 +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  12.500 +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  12.501 +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  12.502 +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
  12.503 +*/
  12.504 +
  12.505 +#ifndef __egl_h_
  12.506 +#define __egl_h_
  12.507 +
  12.508 +/* All platform-dependent types and macro boilerplate (such as EGLAPI
  12.509 +* and EGLAPIENTRY) should go in eglplatform.h.
  12.510 +*/
  12.511 +/*#include <EGL/eglplatform.h>*/
  12.512 +
  12.513 +#ifdef __cplusplus
  12.514 +extern "C" {
  12.515 +#endif
  12.516 +
  12.517 +    /* EGL Types */
  12.518 +    /* EGLint is defined in eglplatform.h */
  12.519 +    typedef unsigned int EGLBoolean;
  12.520 +    typedef unsigned int EGLenum;
  12.521 +    typedef void *EGLConfig;
  12.522 +    typedef void *EGLContext;
  12.523 +    typedef void *EGLDisplay;
  12.524 +    typedef void *EGLSurface;
  12.525 +    typedef void *EGLClientBuffer;
  12.526 +
  12.527 +    /* EGL Versioning */
  12.528 +#define EGL_VERSION_1_0			1
  12.529 +#define EGL_VERSION_1_1			1
  12.530 +#define EGL_VERSION_1_2			1
  12.531 +#define EGL_VERSION_1_3			1
  12.532 +#define EGL_VERSION_1_4			1
  12.533 +
  12.534 +    /* EGL Enumerants. Bitmasks and other exceptional cases aside, most
  12.535 +    * enums are assigned unique values starting at 0x3000.
  12.536 +    */
  12.537 +
  12.538 +    /* EGL aliases */
  12.539 +#define EGL_FALSE			0
  12.540 +#define EGL_TRUE			1
  12.541 +
  12.542 +    /* Out-of-band handle values */
  12.543 +#define EGL_DEFAULT_DISPLAY		((EGLNativeDisplayType)0)
  12.544 +#define EGL_NO_CONTEXT			((EGLContext)0)
  12.545 +#define EGL_NO_DISPLAY			((EGLDisplay)0)
  12.546 +#define EGL_NO_SURFACE			((EGLSurface)0)
  12.547 +
  12.548 +    /* Out-of-band attribute value */
  12.549 +#define EGL_DONT_CARE			((EGLint)-1)
  12.550 +
  12.551 +    /* Errors / GetError return values */
  12.552 +#define EGL_SUCCESS			0x3000
  12.553 +#define EGL_NOT_INITIALIZED		0x3001
  12.554 +#define EGL_BAD_ACCESS			0x3002
  12.555 +#define EGL_BAD_ALLOC			0x3003
  12.556 +#define EGL_BAD_ATTRIBUTE		0x3004
  12.557 +#define EGL_BAD_CONFIG			0x3005
  12.558 +#define EGL_BAD_CONTEXT			0x3006
  12.559 +#define EGL_BAD_CURRENT_SURFACE		0x3007
  12.560 +#define EGL_BAD_DISPLAY			0x3008
  12.561 +#define EGL_BAD_MATCH			0x3009
  12.562 +#define EGL_BAD_NATIVE_PIXMAP		0x300A
  12.563 +#define EGL_BAD_NATIVE_WINDOW		0x300B
  12.564 +#define EGL_BAD_PARAMETER		0x300C
  12.565 +#define EGL_BAD_SURFACE			0x300D
  12.566 +#define EGL_CONTEXT_LOST		0x300E	/* EGL 1.1 - IMG_power_management */
  12.567 +
  12.568 +    /* Reserved 0x300F-0x301F for additional errors */
  12.569 +
  12.570 +    /* Config attributes */
  12.571 +#define EGL_BUFFER_SIZE			0x3020
  12.572 +#define EGL_ALPHA_SIZE			0x3021
  12.573 +#define EGL_BLUE_SIZE			0x3022
  12.574 +#define EGL_GREEN_SIZE			0x3023
  12.575 +#define EGL_RED_SIZE			0x3024
  12.576 +#define EGL_DEPTH_SIZE			0x3025
  12.577 +#define EGL_STENCIL_SIZE		0x3026
  12.578 +#define EGL_CONFIG_CAVEAT		0x3027
  12.579 +#define EGL_CONFIG_ID			0x3028
  12.580 +#define EGL_LEVEL			0x3029
  12.581 +#define EGL_MAX_PBUFFER_HEIGHT		0x302A
  12.582 +#define EGL_MAX_PBUFFER_PIXELS		0x302B
  12.583 +#define EGL_MAX_PBUFFER_WIDTH		0x302C
  12.584 +#define EGL_NATIVE_RENDERABLE		0x302D
  12.585 +#define EGL_NATIVE_VISUAL_ID		0x302E
  12.586 +#define EGL_NATIVE_VISUAL_TYPE		0x302F
  12.587 +#define EGL_SAMPLES			0x3031
  12.588 +#define EGL_SAMPLE_BUFFERS		0x3032
  12.589 +#define EGL_SURFACE_TYPE		0x3033
  12.590 +#define EGL_TRANSPARENT_TYPE		0x3034
  12.591 +#define EGL_TRANSPARENT_BLUE_VALUE	0x3035
  12.592 +#define EGL_TRANSPARENT_GREEN_VALUE	0x3036
  12.593 +#define EGL_TRANSPARENT_RED_VALUE	0x3037
  12.594 +#define EGL_NONE			0x3038	/* Attrib list terminator */
  12.595 +#define EGL_BIND_TO_TEXTURE_RGB		0x3039
  12.596 +#define EGL_BIND_TO_TEXTURE_RGBA	0x303A
  12.597 +#define EGL_MIN_SWAP_INTERVAL		0x303B
  12.598 +#define EGL_MAX_SWAP_INTERVAL		0x303C
  12.599 +#define EGL_LUMINANCE_SIZE		0x303D
  12.600 +#define EGL_ALPHA_MASK_SIZE		0x303E
  12.601 +#define EGL_COLOR_BUFFER_TYPE		0x303F
  12.602 +#define EGL_RENDERABLE_TYPE		0x3040
  12.603 +#define EGL_MATCH_NATIVE_PIXMAP		0x3041	/* Pseudo-attribute (not queryable) */
  12.604 +#define EGL_CONFORMANT			0x3042
  12.605 +
  12.606 +    /* Reserved 0x3041-0x304F for additional config attributes */
  12.607 +
  12.608 +    /* Config attribute values */
  12.609 +#define EGL_SLOW_CONFIG			0x3050	/* EGL_CONFIG_CAVEAT value */
  12.610 +#define EGL_NON_CONFORMANT_CONFIG	0x3051	/* EGL_CONFIG_CAVEAT value */
  12.611 +#define EGL_TRANSPARENT_RGB		0x3052	/* EGL_TRANSPARENT_TYPE value */
  12.612 +#define EGL_RGB_BUFFER			0x308E	/* EGL_COLOR_BUFFER_TYPE value */
  12.613 +#define EGL_LUMINANCE_BUFFER		0x308F	/* EGL_COLOR_BUFFER_TYPE value */
  12.614 +
  12.615 +    /* More config attribute values, for EGL_TEXTURE_FORMAT */
  12.616 +#define EGL_NO_TEXTURE			0x305C
  12.617 +#define EGL_TEXTURE_RGB			0x305D
  12.618 +#define EGL_TEXTURE_RGBA		0x305E
  12.619 +#define EGL_TEXTURE_2D			0x305F
  12.620 +
  12.621 +    /* Config attribute mask bits */
  12.622 +#define EGL_PBUFFER_BIT			0x0001	/* EGL_SURFACE_TYPE mask bits */
  12.623 +#define EGL_PIXMAP_BIT			0x0002	/* EGL_SURFACE_TYPE mask bits */
  12.624 +#define EGL_WINDOW_BIT			0x0004	/* EGL_SURFACE_TYPE mask bits */
  12.625 +#define EGL_VG_COLORSPACE_LINEAR_BIT	0x0020	/* EGL_SURFACE_TYPE mask bits */
  12.626 +#define EGL_VG_ALPHA_FORMAT_PRE_BIT	0x0040	/* EGL_SURFACE_TYPE mask bits */
  12.627 +#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200	/* EGL_SURFACE_TYPE mask bits */
  12.628 +#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400	/* EGL_SURFACE_TYPE mask bits */
  12.629 +
  12.630 +#define EGL_OPENGL_ES_BIT		0x0001	/* EGL_RENDERABLE_TYPE mask bits */
  12.631 +#define EGL_OPENVG_BIT			0x0002	/* EGL_RENDERABLE_TYPE mask bits */
  12.632 +#define EGL_OPENGL_ES2_BIT		0x0004	/* EGL_RENDERABLE_TYPE mask bits */
  12.633 +#define EGL_OPENGL_BIT			0x0008	/* EGL_RENDERABLE_TYPE mask bits */
  12.634 +
  12.635 +    /* QueryString targets */
  12.636 +#define EGL_VENDOR			0x3053
  12.637 +#define EGL_VERSION			0x3054
  12.638 +#define EGL_EXTENSIONS			0x3055
  12.639 +#define EGL_CLIENT_APIS			0x308D
  12.640 +
  12.641 +    /* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */
  12.642 +#define EGL_HEIGHT			0x3056
  12.643 +#define EGL_WIDTH			0x3057
  12.644 +#define EGL_LARGEST_PBUFFER		0x3058
  12.645 +#define EGL_TEXTURE_FORMAT		0x3080
  12.646 +#define EGL_TEXTURE_TARGET		0x3081
  12.647 +#define EGL_MIPMAP_TEXTURE		0x3082
  12.648 +#define EGL_MIPMAP_LEVEL		0x3083
  12.649 +#define EGL_RENDER_BUFFER		0x3086
  12.650 +#define EGL_VG_COLORSPACE		0x3087
  12.651 +#define EGL_VG_ALPHA_FORMAT		0x3088
  12.652 +#define EGL_HORIZONTAL_RESOLUTION	0x3090
  12.653 +#define EGL_VERTICAL_RESOLUTION		0x3091
  12.654 +#define EGL_PIXEL_ASPECT_RATIO		0x3092
  12.655 +#define EGL_SWAP_BEHAVIOR		0x3093
  12.656 +#define EGL_MULTISAMPLE_RESOLVE		0x3099
  12.657 +
  12.658 +    /* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
  12.659 +#define EGL_BACK_BUFFER			0x3084
  12.660 +#define EGL_SINGLE_BUFFER		0x3085
  12.661 +
  12.662 +    /* OpenVG color spaces */
  12.663 +#define EGL_VG_COLORSPACE_sRGB		0x3089	/* EGL_VG_COLORSPACE value */
  12.664 +#define EGL_VG_COLORSPACE_LINEAR	0x308A	/* EGL_VG_COLORSPACE value */
  12.665 +
  12.666 +    /* OpenVG alpha formats */
  12.667 +#define EGL_VG_ALPHA_FORMAT_NONPRE	0x308B	/* EGL_ALPHA_FORMAT value */
  12.668 +#define EGL_VG_ALPHA_FORMAT_PRE		0x308C	/* EGL_ALPHA_FORMAT value */
  12.669 +
  12.670 +    /* Constant scale factor by which fractional display resolutions &
  12.671 +    * aspect ratio are scaled when queried as integer values.
  12.672 +    */
  12.673 +#define EGL_DISPLAY_SCALING		10000
  12.674 +
  12.675 +    /* Unknown display resolution/aspect ratio */
  12.676 +#define EGL_UNKNOWN			((EGLint)-1)
  12.677 +
  12.678 +    /* Back buffer swap behaviors */
  12.679 +#define EGL_BUFFER_PRESERVED		0x3094	/* EGL_SWAP_BEHAVIOR value */
  12.680 +#define EGL_BUFFER_DESTROYED		0x3095	/* EGL_SWAP_BEHAVIOR value */
  12.681 +
  12.682 +    /* CreatePbufferFromClientBuffer buffer types */
  12.683 +#define EGL_OPENVG_IMAGE		0x3096
  12.684 +
  12.685 +    /* QueryContext targets */
  12.686 +#define EGL_CONTEXT_CLIENT_TYPE		0x3097
  12.687 +
  12.688 +    /* CreateContext attributes */
  12.689 +#define EGL_CONTEXT_CLIENT_VERSION	0x3098
  12.690 +
  12.691 +    /* Multisample resolution behaviors */
  12.692 +#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A	/* EGL_MULTISAMPLE_RESOLVE value */
  12.693 +#define EGL_MULTISAMPLE_RESOLVE_BOX	0x309B	/* EGL_MULTISAMPLE_RESOLVE value */
  12.694 +
  12.695 +    /* BindAPI/QueryAPI targets */
  12.696 +#define EGL_OPENGL_ES_API		0x30A0
  12.697 +#define EGL_OPENVG_API			0x30A1
  12.698 +#define EGL_OPENGL_API			0x30A2
  12.699 +
  12.700 +    /* GetCurrentSurface targets */
  12.701 +#define EGL_DRAW			0x3059
  12.702 +#define EGL_READ			0x305A
  12.703 +
  12.704 +    /* WaitNative engines */
  12.705 +#define EGL_CORE_NATIVE_ENGINE		0x305B
  12.706 +
  12.707 +    /* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
  12.708 +#define EGL_COLORSPACE			EGL_VG_COLORSPACE
  12.709 +#define EGL_ALPHA_FORMAT		EGL_VG_ALPHA_FORMAT
  12.710 +#define EGL_COLORSPACE_sRGB		EGL_VG_COLORSPACE_sRGB
  12.711 +#define EGL_COLORSPACE_LINEAR		EGL_VG_COLORSPACE_LINEAR
  12.712 +#define EGL_ALPHA_FORMAT_NONPRE		EGL_VG_ALPHA_FORMAT_NONPRE
  12.713 +#define EGL_ALPHA_FORMAT_PRE		EGL_VG_ALPHA_FORMAT_PRE
  12.714 +
  12.715 +    /* EGL extensions must request enum blocks from the Khronos
  12.716 +    * API Registrar, who maintains the enumerant registry. Submit
  12.717 +    * a bug in Khronos Bugzilla against task "Registry".
  12.718 +    */
  12.719 +
  12.720 +
  12.721 +
  12.722 +    /* EGL Functions */
  12.723 +
  12.724 +    EGLAPI EGLint EGLAPIENTRY eglGetError(void);
  12.725 +
  12.726 +    EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
  12.727 +    EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
  12.728 +    EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
  12.729 +
  12.730 +    EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
  12.731 +
  12.732 +    EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
  12.733 +        EGLint config_size, EGLint *num_config);
  12.734 +    EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
  12.735 +        EGLConfig *configs, EGLint config_size,
  12.736 +        EGLint *num_config);
  12.737 +    EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
  12.738 +        EGLint attribute, EGLint *value);
  12.739 +
  12.740 +    EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
  12.741 +        EGLNativeWindowType win,
  12.742 +        const EGLint *attrib_list);
  12.743 +    EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
  12.744 +        const EGLint *attrib_list);
  12.745 +    EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
  12.746 +        EGLNativePixmapType pixmap,
  12.747 +        const EGLint *attrib_list);
  12.748 +    EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
  12.749 +    EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
  12.750 +        EGLint attribute, EGLint *value);
  12.751 +
  12.752 +    EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
  12.753 +    EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
  12.754 +
  12.755 +    EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
  12.756 +
  12.757 +    EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
  12.758 +
  12.759 +    EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
  12.760 +        EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
  12.761 +        EGLConfig config, const EGLint *attrib_list);
  12.762 +
  12.763 +    EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
  12.764 +        EGLint attribute, EGLint value);
  12.765 +    EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
  12.766 +    EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
  12.767 +
  12.768 +
  12.769 +    EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
  12.770 +
  12.771 +
  12.772 +    EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
  12.773 +        EGLContext share_context,
  12.774 +        const EGLint *attrib_list);
  12.775 +    EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
  12.776 +    EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
  12.777 +        EGLSurface read, EGLContext ctx);
  12.778 +
  12.779 +    EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
  12.780 +    EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
  12.781 +    EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
  12.782 +    EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
  12.783 +        EGLint attribute, EGLint *value);
  12.784 +
  12.785 +    EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
  12.786 +    EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
  12.787 +    EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
  12.788 +    EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
  12.789 +        EGLNativePixmapType target);
  12.790 +
  12.791 +    /* This is a generic function pointer type, whose name indicates it must
  12.792 +    * be cast to the proper type *and calling convention* before use.
  12.793 +    */
  12.794 +    typedef void(*__eglMustCastToProperFunctionPointerType)(void);
  12.795 +
  12.796 +    /* Now, define eglGetProcAddress using the generic function ptr. type */
  12.797 +    EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
  12.798 +        eglGetProcAddress(const char *procname);
  12.799 +
  12.800 +#ifdef __cplusplus
  12.801 +}
  12.802 +#endif
  12.803 +
  12.804 +#endif /* __egl_h_ */
  12.805 +
  12.806 +
  12.807 +
  12.808 +
  12.809 +#ifndef __eglext_h_
  12.810 +#define __eglext_h_
  12.811 +
  12.812 +#ifdef __cplusplus
  12.813 +extern "C" {
  12.814 +#endif
  12.815 +
  12.816 +    /*
  12.817 +    ** Copyright (c) 2007-2013 The Khronos Group Inc.
  12.818 +    **
  12.819 +    ** Permission is hereby granted, free of charge, to any person obtaining a
  12.820 +    ** copy of this software and/or associated documentation files (the
  12.821 +    ** "Materials"), to deal in the Materials without restriction, including
  12.822 +    ** without limitation the rights to use, copy, modify, merge, publish,
  12.823 +    ** distribute, sublicense, and/or sell copies of the Materials, and to
  12.824 +    ** permit persons to whom the Materials are furnished to do so, subject to
  12.825 +    ** the following conditions:
  12.826 +    **
  12.827 +    ** The above copyright notice and this permission notice shall be included
  12.828 +    ** in all copies or substantial portions of the Materials.
  12.829 +    **
  12.830 +    ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  12.831 +    ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  12.832 +    ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  12.833 +    ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  12.834 +    ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  12.835 +    ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  12.836 +    ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
  12.837 +    */
  12.838 +
  12.839 +/* #include <EGL/eglplatform.h> */
  12.840 +
  12.841 +    /*************************************************************/
  12.842 +
  12.843 +    /* Header file version number */
  12.844 +    /* Current version at http://www.khronos.org/registry/egl/ */
  12.845 +    /* $Revision: 21254 $ on $Date: 2013-04-25 03:11:55 -0700 (Thu, 25 Apr 2013) $ */
  12.846 +#define EGL_EGLEXT_VERSION 16
  12.847 +
  12.848 +#ifndef EGL_KHR_config_attribs
  12.849 +#define EGL_KHR_config_attribs 1
  12.850 +#define EGL_CONFORMANT_KHR			0x3042	/* EGLConfig attribute */
  12.851 +#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR	0x0020	/* EGL_SURFACE_TYPE bitfield */
  12.852 +#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR		0x0040	/* EGL_SURFACE_TYPE bitfield */
  12.853 +#endif
  12.854 +
  12.855 +#ifndef EGL_KHR_lock_surface
  12.856 +#define EGL_KHR_lock_surface 1
  12.857 +#define EGL_READ_SURFACE_BIT_KHR		0x0001	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
  12.858 +#define EGL_WRITE_SURFACE_BIT_KHR		0x0002	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
  12.859 +#define EGL_LOCK_SURFACE_BIT_KHR		0x0080	/* EGL_SURFACE_TYPE bitfield */
  12.860 +#define EGL_OPTIMAL_FORMAT_BIT_KHR		0x0100	/* EGL_SURFACE_TYPE bitfield */
  12.861 +#define EGL_MATCH_FORMAT_KHR			0x3043	/* EGLConfig attribute */
  12.862 +#define EGL_FORMAT_RGB_565_EXACT_KHR		0x30C0	/* EGL_MATCH_FORMAT_KHR value */
  12.863 +#define EGL_FORMAT_RGB_565_KHR			0x30C1	/* EGL_MATCH_FORMAT_KHR value */
  12.864 +#define EGL_FORMAT_RGBA_8888_EXACT_KHR		0x30C2	/* EGL_MATCH_FORMAT_KHR value */
  12.865 +#define EGL_FORMAT_RGBA_8888_KHR		0x30C3	/* EGL_MATCH_FORMAT_KHR value */
  12.866 +#define EGL_MAP_PRESERVE_PIXELS_KHR		0x30C4	/* eglLockSurfaceKHR attribute */
  12.867 +#define EGL_LOCK_USAGE_HINT_KHR			0x30C5	/* eglLockSurfaceKHR attribute */
  12.868 +#define EGL_BITMAP_POINTER_KHR			0x30C6	/* eglQuerySurface attribute */
  12.869 +#define EGL_BITMAP_PITCH_KHR			0x30C7	/* eglQuerySurface attribute */
  12.870 +#define EGL_BITMAP_ORIGIN_KHR			0x30C8	/* eglQuerySurface attribute */
  12.871 +#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR		0x30C9	/* eglQuerySurface attribute */
  12.872 +#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR	0x30CA	/* eglQuerySurface attribute */
  12.873 +#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR	0x30CB	/* eglQuerySurface attribute */
  12.874 +#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR	0x30CC	/* eglQuerySurface attribute */
  12.875 +#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR	0x30CD	/* eglQuerySurface attribute */
  12.876 +#define EGL_LOWER_LEFT_KHR			0x30CE	/* EGL_BITMAP_ORIGIN_KHR value */
  12.877 +#define EGL_UPPER_LEFT_KHR			0x30CF	/* EGL_BITMAP_ORIGIN_KHR value */
  12.878 +#ifdef EGL_EGLEXT_PROTOTYPES
  12.879 +    EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
  12.880 +    EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface);
  12.881 +#endif /* EGL_EGLEXT_PROTOTYPES */
  12.882 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
  12.883 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
  12.884 +#endif
  12.885 +
  12.886 +#ifndef EGL_KHR_image
  12.887 +#define EGL_KHR_image 1
  12.888 +#define EGL_NATIVE_PIXMAP_KHR			0x30B0	/* eglCreateImageKHR target */
  12.889 +    typedef void *EGLImageKHR;
  12.890 +#define EGL_NO_IMAGE_KHR			((EGLImageKHR)0)
  12.891 +#ifdef EGL_EGLEXT_PROTOTYPES
  12.892 +    EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
  12.893 +    EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image);
  12.894 +#endif /* EGL_EGLEXT_PROTOTYPES */
  12.895 +    typedef EGLImageKHR(EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
  12.896 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
  12.897 +#endif
  12.898 +
  12.899 +#ifndef EGL_KHR_vg_parent_image
  12.900 +#define EGL_KHR_vg_parent_image 1
  12.901 +#define EGL_VG_PARENT_IMAGE_KHR			0x30BA	/* eglCreateImageKHR target */
  12.902 +#endif
  12.903 +
  12.904 +#ifndef EGL_KHR_gl_texture_2D_image
  12.905 +#define EGL_KHR_gl_texture_2D_image 1
  12.906 +#define EGL_GL_TEXTURE_2D_KHR			0x30B1	/* eglCreateImageKHR target */
  12.907 +#define EGL_GL_TEXTURE_LEVEL_KHR		0x30BC	/* eglCreateImageKHR attribute */
  12.908 +#endif
  12.909 +
  12.910 +#ifndef EGL_KHR_gl_texture_cubemap_image
  12.911 +#define EGL_KHR_gl_texture_cubemap_image 1
  12.912 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR	0x30B3	/* eglCreateImageKHR target */
  12.913 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR	0x30B4	/* eglCreateImageKHR target */
  12.914 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR	0x30B5	/* eglCreateImageKHR target */
  12.915 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR	0x30B6	/* eglCreateImageKHR target */
  12.916 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR	0x30B7	/* eglCreateImageKHR target */
  12.917 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR	0x30B8	/* eglCreateImageKHR target */
  12.918 +#endif
  12.919 +
  12.920 +#ifndef EGL_KHR_gl_texture_3D_image
  12.921 +#define EGL_KHR_gl_texture_3D_image 1
  12.922 +#define EGL_GL_TEXTURE_3D_KHR			0x30B2	/* eglCreateImageKHR target */
  12.923 +#define EGL_GL_TEXTURE_ZOFFSET_KHR		0x30BD	/* eglCreateImageKHR attribute */
  12.924 +#endif
  12.925 +
  12.926 +#ifndef EGL_KHR_gl_renderbuffer_image
  12.927 +#define EGL_KHR_gl_renderbuffer_image 1
  12.928 +#define EGL_GL_RENDERBUFFER_KHR			0x30B9	/* eglCreateImageKHR target */
  12.929 +#endif
  12.930 +
  12.931 +#if KHRONOS_SUPPORT_INT64   /* EGLTimeKHR requires 64-bit uint support */
  12.932 +#ifndef EGL_KHR_reusable_sync
  12.933 +#define EGL_KHR_reusable_sync 1
  12.934 +
  12.935 +    typedef void* EGLSyncKHR;
  12.936 +    typedef khronos_utime_nanoseconds_t EGLTimeKHR;
  12.937 +
  12.938 +#define EGL_SYNC_STATUS_KHR			0x30F1
  12.939 +#define EGL_SIGNALED_KHR			0x30F2
  12.940 +#define EGL_UNSIGNALED_KHR			0x30F3
  12.941 +#define EGL_TIMEOUT_EXPIRED_KHR			0x30F5
  12.942 +#define EGL_CONDITION_SATISFIED_KHR		0x30F6
  12.943 +#define EGL_SYNC_TYPE_KHR			0x30F7
  12.944 +#define EGL_SYNC_REUSABLE_KHR			0x30FA
  12.945 +#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR		0x0001	/* eglClientWaitSyncKHR <flags> bitfield */
  12.946 +#define EGL_FOREVER_KHR				0xFFFFFFFFFFFFFFFFull
  12.947 +#define EGL_NO_SYNC_KHR				((EGLSyncKHR)0)
  12.948 +#ifdef EGL_EGLEXT_PROTOTYPES
  12.949 +    EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
  12.950 +    EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync);
  12.951 +    EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
  12.952 +    EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
  12.953 +    EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
  12.954 +#endif /* EGL_EGLEXT_PROTOTYPES */
  12.955 +    typedef EGLSyncKHR(EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
  12.956 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
  12.957 +    typedef EGLint(EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
  12.958 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
  12.959 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
  12.960 +#endif
  12.961 +#endif
  12.962 +
  12.963 +#ifndef EGL_KHR_image_base
  12.964 +#define EGL_KHR_image_base 1
  12.965 +    /* Most interfaces defined by EGL_KHR_image_pixmap above */
  12.966 +#define EGL_IMAGE_PRESERVED_KHR			0x30D2	/* eglCreateImageKHR attribute */
  12.967 +#endif
  12.968 +
  12.969 +#ifndef EGL_KHR_image_pixmap
  12.970 +#define EGL_KHR_image_pixmap 1
  12.971 +    /* Interfaces defined by EGL_KHR_image above */
  12.972 +#endif
  12.973 +
  12.974 +#ifndef EGL_IMG_context_priority
  12.975 +#define EGL_IMG_context_priority 1
  12.976 +#define EGL_CONTEXT_PRIORITY_LEVEL_IMG		0x3100
  12.977 +#define EGL_CONTEXT_PRIORITY_HIGH_IMG		0x3101
  12.978 +#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG		0x3102
  12.979 +#define EGL_CONTEXT_PRIORITY_LOW_IMG		0x3103
  12.980 +#endif
  12.981 +
  12.982 +#ifndef EGL_KHR_lock_surface2
  12.983 +#define EGL_KHR_lock_surface2 1
  12.984 +#define EGL_BITMAP_PIXEL_SIZE_KHR		0x3110
  12.985 +#endif
  12.986 +
  12.987 +#ifndef EGL_NV_coverage_sample
  12.988 +#define EGL_NV_coverage_sample 1
  12.989 +#define EGL_COVERAGE_BUFFERS_NV			0x30E0
  12.990 +#define EGL_COVERAGE_SAMPLES_NV			0x30E1
  12.991 +#endif
  12.992 +
  12.993 +#ifndef EGL_NV_depth_nonlinear
  12.994 +#define EGL_NV_depth_nonlinear 1
  12.995 +#define EGL_DEPTH_ENCODING_NV			0x30E2
  12.996 +#define EGL_DEPTH_ENCODING_NONE_NV 0
  12.997 +#define EGL_DEPTH_ENCODING_NONLINEAR_NV		0x30E3
  12.998 +#endif
  12.999 +
 12.1000 +#if KHRONOS_SUPPORT_INT64   /* EGLTimeNV requires 64-bit uint support */
 12.1001 +#ifndef EGL_NV_sync
 12.1002 +#define EGL_NV_sync 1
 12.1003 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV	0x30E6
 12.1004 +#define EGL_SYNC_STATUS_NV			0x30E7
 12.1005 +#define EGL_SIGNALED_NV				0x30E8
 12.1006 +#define EGL_UNSIGNALED_NV			0x30E9
 12.1007 +#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV		0x0001
 12.1008 +#define EGL_FOREVER_NV				0xFFFFFFFFFFFFFFFFull
 12.1009 +#define EGL_ALREADY_SIGNALED_NV			0x30EA
 12.1010 +#define EGL_TIMEOUT_EXPIRED_NV			0x30EB
 12.1011 +#define EGL_CONDITION_SATISFIED_NV		0x30EC
 12.1012 +#define EGL_SYNC_TYPE_NV			0x30ED
 12.1013 +#define EGL_SYNC_CONDITION_NV			0x30EE
 12.1014 +#define EGL_SYNC_FENCE_NV			0x30EF
 12.1015 +#define EGL_NO_SYNC_NV				((EGLSyncNV)0)
 12.1016 +    typedef void* EGLSyncNV;
 12.1017 +    typedef khronos_utime_nanoseconds_t EGLTimeNV;
 12.1018 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1019 +    EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV(EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
 12.1020 +    EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV(EGLSyncNV sync);
 12.1021 +    EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV(EGLSyncNV sync);
 12.1022 +    EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV(EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
 12.1023 +    EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV(EGLSyncNV sync, EGLenum mode);
 12.1024 +    EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV(EGLSyncNV sync, EGLint attribute, EGLint *value);
 12.1025 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1026 +    typedef EGLSyncNV(EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
 12.1027 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
 12.1028 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
 12.1029 +    typedef EGLint(EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
 12.1030 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
 12.1031 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
 12.1032 +#endif
 12.1033 +#endif
 12.1034 +
 12.1035 +#if KHRONOS_SUPPORT_INT64   /* Dependent on EGL_KHR_reusable_sync which requires 64-bit uint support */
 12.1036 +#ifndef EGL_KHR_fence_sync
 12.1037 +#define EGL_KHR_fence_sync 1
 12.1038 +    /* Reuses most tokens and entry points from EGL_KHR_reusable_sync */
 12.1039 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR	0x30F0
 12.1040 +#define EGL_SYNC_CONDITION_KHR			0x30F8
 12.1041 +#define EGL_SYNC_FENCE_KHR			0x30F9
 12.1042 +#endif
 12.1043 +#endif
 12.1044 +
 12.1045 +#ifndef EGL_HI_clientpixmap
 12.1046 +#define EGL_HI_clientpixmap 1
 12.1047 +
 12.1048 +    /* Surface Attribute */
 12.1049 +#define EGL_CLIENT_PIXMAP_POINTER_HI		0x8F74
 12.1050 +    /*
 12.1051 +    * Structure representing a client pixmap
 12.1052 +    * (pixmap's data is in client-space memory).
 12.1053 +    */
 12.1054 +    struct EGLClientPixmapHI
 12.1055 +    {
 12.1056 +        void*		pData;
 12.1057 +        EGLint		iWidth;
 12.1058 +        EGLint		iHeight;
 12.1059 +        EGLint		iStride;
 12.1060 +    };
 12.1061 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1062 +    EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
 12.1063 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1064 +    typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI* pixmap);
 12.1065 +#endif	/* EGL_HI_clientpixmap */
 12.1066 +
 12.1067 +#ifndef EGL_HI_colorformats
 12.1068 +#define EGL_HI_colorformats 1
 12.1069 +    /* Config Attribute */
 12.1070 +#define EGL_COLOR_FORMAT_HI			0x8F70
 12.1071 +    /* Color Formats */
 12.1072 +#define EGL_COLOR_RGB_HI			0x8F71
 12.1073 +#define EGL_COLOR_RGBA_HI			0x8F72
 12.1074 +#define EGL_COLOR_ARGB_HI			0x8F73
 12.1075 +#endif /* EGL_HI_colorformats */
 12.1076 +
 12.1077 +#ifndef EGL_MESA_drm_image
 12.1078 +#define EGL_MESA_drm_image 1
 12.1079 +#define EGL_DRM_BUFFER_FORMAT_MESA		0x31D0	    /* CreateDRMImageMESA attribute */
 12.1080 +#define EGL_DRM_BUFFER_USE_MESA			0x31D1	    /* CreateDRMImageMESA attribute */
 12.1081 +#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA	0x31D2	    /* EGL_IMAGE_FORMAT_MESA attribute value */
 12.1082 +#define EGL_DRM_BUFFER_MESA			0x31D3	    /* eglCreateImageKHR target */
 12.1083 +#define EGL_DRM_BUFFER_STRIDE_MESA		0x31D4
 12.1084 +#define EGL_DRM_BUFFER_USE_SCANOUT_MESA		0x00000001  /* EGL_DRM_BUFFER_USE_MESA bits */
 12.1085 +#define EGL_DRM_BUFFER_USE_SHARE_MESA		0x00000002  /* EGL_DRM_BUFFER_USE_MESA bits */
 12.1086 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1087 +    EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attrib_list);
 12.1088 +    EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
 12.1089 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1090 +    typedef EGLImageKHR(EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list);
 12.1091 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
 12.1092 +#endif
 12.1093 +
 12.1094 +#ifndef EGL_NV_post_sub_buffer
 12.1095 +#define EGL_NV_post_sub_buffer 1
 12.1096 +#define EGL_POST_SUB_BUFFER_SUPPORTED_NV	0x30BE
 12.1097 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1098 +    EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
 12.1099 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1100 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
 12.1101 +#endif
 12.1102 +
 12.1103 +#ifndef EGL_ANGLE_query_surface_pointer
 12.1104 +#define EGL_ANGLE_query_surface_pointer 1
 12.1105 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1106 +    EGLAPI EGLBoolean eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
 12.1107 +#endif
 12.1108 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
 12.1109 +#endif
 12.1110 +
 12.1111 +#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle
 12.1112 +#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
 12.1113 +#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE	0x3200
 12.1114 +#endif
 12.1115 +
 12.1116 +#ifndef EGL_NV_coverage_sample_resolve
 12.1117 +#define EGL_NV_coverage_sample_resolve 1
 12.1118 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NV		0x3131
 12.1119 +#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV	0x3132
 12.1120 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV	0x3133
 12.1121 +#endif
 12.1122 +
 12.1123 +#if KHRONOS_SUPPORT_INT64   /* EGLuint64NV requires 64-bit uint support */
 12.1124 +#ifndef EGL_NV_system_time
 12.1125 +#define EGL_NV_system_time 1
 12.1126 +    typedef khronos_utime_nanoseconds_t EGLuint64NV;
 12.1127 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1128 +    EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV(void);
 12.1129 +    EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV(void);
 12.1130 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1131 +    typedef EGLuint64NV(EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
 12.1132 +    typedef EGLuint64NV(EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void);
 12.1133 +#endif
 12.1134 +#endif
 12.1135 +
 12.1136 +#if KHRONOS_SUPPORT_INT64 /* EGLuint64KHR requires 64-bit uint support */
 12.1137 +#ifndef EGL_KHR_stream
 12.1138 +#define EGL_KHR_stream 1
 12.1139 +    typedef void* EGLStreamKHR;
 12.1140 +    typedef khronos_uint64_t EGLuint64KHR;
 12.1141 +#define EGL_NO_STREAM_KHR			((EGLStreamKHR)0)
 12.1142 +#define EGL_CONSUMER_LATENCY_USEC_KHR		0x3210
 12.1143 +#define EGL_PRODUCER_FRAME_KHR			0x3212
 12.1144 +#define EGL_CONSUMER_FRAME_KHR			0x3213
 12.1145 +#define EGL_STREAM_STATE_KHR			0x3214
 12.1146 +#define EGL_STREAM_STATE_CREATED_KHR		0x3215
 12.1147 +#define EGL_STREAM_STATE_CONNECTING_KHR		0x3216
 12.1148 +#define EGL_STREAM_STATE_EMPTY_KHR		0x3217
 12.1149 +#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR    0x3218
 12.1150 +#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR    0x3219
 12.1151 +#define EGL_STREAM_STATE_DISCONNECTED_KHR	0x321A
 12.1152 +#define EGL_BAD_STREAM_KHR			0x321B
 12.1153 +#define EGL_BAD_STATE_KHR			0x321C
 12.1154 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1155 +    EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_list);
 12.1156 +    EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream);
 12.1157 +    EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
 12.1158 +    EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
 12.1159 +    EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
 12.1160 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1161 +    typedef EGLStreamKHR(EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC)(EGLDisplay dpy, const EGLint *attrib_list);
 12.1162 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
 12.1163 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
 12.1164 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value);
 12.1165 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value);
 12.1166 +#endif
 12.1167 +#endif
 12.1168 +
 12.1169 +#ifdef EGL_KHR_stream /* Requires KHR_stream extension */
 12.1170 +#ifndef EGL_KHR_stream_consumer_gltexture
 12.1171 +#define EGL_KHR_stream_consumer_gltexture 1
 12.1172 +#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR	0x321E
 12.1173 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1174 +    EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EGLStreamKHR stream);
 12.1175 +    EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream);
 12.1176 +    EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream);
 12.1177 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1178 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
 12.1179 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
 12.1180 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
 12.1181 +#endif
 12.1182 +#endif
 12.1183 +
 12.1184 +#ifdef EGL_KHR_stream /* Requires KHR_stream extension */
 12.1185 +#ifndef EGL_KHR_stream_producer_eglsurface
 12.1186 +#define EGL_KHR_stream_producer_eglsurface 1
 12.1187 +#define EGL_STREAM_BIT_KHR			0x0800
 12.1188 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1189 +    EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
 12.1190 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1191 +    typedef EGLSurface(EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
 12.1192 +#endif
 12.1193 +#endif
 12.1194 +
 12.1195 +#ifdef EGL_KHR_stream /* Requires KHR_stream extension */
 12.1196 +#ifndef EGL_KHR_stream_producer_aldatalocator
 12.1197 +#define EGL_KHR_stream_producer_aldatalocator 1
 12.1198 +#endif
 12.1199 +#endif
 12.1200 +
 12.1201 +#ifdef EGL_KHR_stream /* Requires KHR_stream extension */
 12.1202 +#ifndef EGL_KHR_stream_fifo
 12.1203 +#define EGL_KHR_stream_fifo 1
 12.1204 +    /* reuse EGLTimeKHR */
 12.1205 +#define EGL_STREAM_FIFO_LENGTH_KHR		0x31FC
 12.1206 +#define EGL_STREAM_TIME_NOW_KHR			0x31FD
 12.1207 +#define EGL_STREAM_TIME_CONSUMER_KHR		0x31FE
 12.1208 +#define EGL_STREAM_TIME_PRODUCER_KHR		0x31FF
 12.1209 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1210 +    EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
 12.1211 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1212 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value);
 12.1213 +#endif
 12.1214 +#endif
 12.1215 +
 12.1216 +#ifndef EGL_EXT_create_context_robustness
 12.1217 +#define EGL_EXT_create_context_robustness 1
 12.1218 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT	0x30BF
 12.1219 +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138
 12.1220 +#define EGL_NO_RESET_NOTIFICATION_EXT		0x31BE
 12.1221 +#define EGL_LOSE_CONTEXT_ON_RESET_EXT		0x31BF
 12.1222 +#endif
 12.1223 +
 12.1224 +#ifndef EGL_ANGLE_d3d_share_handle_client_buffer
 12.1225 +#define EGL_ANGLE_d3d_share_handle_client_buffer 1
 12.1226 +    /* reuse EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE */
 12.1227 +#endif
 12.1228 +
 12.1229 +#ifndef EGL_KHR_create_context
 12.1230 +#define EGL_KHR_create_context 1
 12.1231 +#define EGL_CONTEXT_MAJOR_VERSION_KHR			    EGL_CONTEXT_CLIENT_VERSION
 12.1232 +#define EGL_CONTEXT_MINOR_VERSION_KHR			    0x30FB
 12.1233 +#define EGL_CONTEXT_FLAGS_KHR				    0x30FC
 12.1234 +#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR		    0x30FD
 12.1235 +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR  0x31BD
 12.1236 +#define EGL_NO_RESET_NOTIFICATION_KHR			    0x31BE
 12.1237 +#define EGL_LOSE_CONTEXT_ON_RESET_KHR			    0x31BF
 12.1238 +#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR		    0x00000001
 12.1239 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR	    0x00000002
 12.1240 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR	    0x00000004
 12.1241 +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR		    0x00000001
 12.1242 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR    0x00000002
 12.1243 +#define EGL_OPENGL_ES3_BIT_KHR				    0x00000040
 12.1244 +#endif
 12.1245 +
 12.1246 +#ifndef EGL_KHR_surfaceless_context
 12.1247 +#define EGL_KHR_surfaceless_context 1
 12.1248 +    /* No tokens/entry points, just relaxes an error condition */
 12.1249 +#endif
 12.1250 +
 12.1251 +#ifdef EGL_KHR_stream /* Requires KHR_stream extension */
 12.1252 +#ifndef EGL_KHR_stream_cross_process_fd
 12.1253 +#define EGL_KHR_stream_cross_process_fd 1
 12.1254 +    typedef int EGLNativeFileDescriptorKHR;
 12.1255 +#define EGL_NO_FILE_DESCRIPTOR_KHR		((EGLNativeFileDescriptorKHR)(-1))
 12.1256 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1257 +    EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR(EGLDisplay dpy, EGLStreamKHR stream);
 12.1258 +    EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
 12.1259 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1260 +    typedef EGLNativeFileDescriptorKHR(EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
 12.1261 +    typedef EGLStreamKHR(EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
 12.1262 +#endif
 12.1263 +#endif
 12.1264 +
 12.1265 +#ifndef EGL_EXT_multiview_window
 12.1266 +#define EGL_EXT_multiview_window 1
 12.1267 +#define EGL_MULTIVIEW_VIEW_COUNT_EXT		0x3134
 12.1268 +#endif
 12.1269 +
 12.1270 +#ifndef EGL_KHR_wait_sync
 12.1271 +#define EGL_KHR_wait_sync 1
 12.1272 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1273 +    EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
 12.1274 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1275 +    typedef EGLint(EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
 12.1276 +#endif
 12.1277 +
 12.1278 +#ifndef EGL_NV_post_convert_rounding
 12.1279 +#define EGL_NV_post_convert_rounding 1
 12.1280 +    /* No tokens or entry points, just relaxes behavior of SwapBuffers */
 12.1281 +#endif
 12.1282 +
 12.1283 +#ifndef EGL_NV_native_query
 12.1284 +#define EGL_NV_native_query 1
 12.1285 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1286 +    EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV(EGLDisplay dpy, EGLNativeDisplayType* display_id);
 12.1287 +    EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV(EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType* window);
 12.1288 +    EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV(EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType* pixmap);
 12.1289 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1290 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC)(EGLDisplay dpy, EGLNativeDisplayType *display_id);
 12.1291 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window);
 12.1292 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap);
 12.1293 +#endif
 12.1294 +
 12.1295 +#ifndef EGL_NV_3dvision_surface
 12.1296 +#define EGL_NV_3dvision_surface 1
 12.1297 +#define EGL_AUTO_STEREO_NV			0x3136
 12.1298 +#endif
 12.1299 +
 12.1300 +#ifndef EGL_ANDROID_framebuffer_target
 12.1301 +#define EGL_ANDROID_framebuffer_target 1
 12.1302 +#define EGL_FRAMEBUFFER_TARGET_ANDROID		0x3147
 12.1303 +#endif
 12.1304 +
 12.1305 +#ifndef EGL_ANDROID_blob_cache
 12.1306 +#define EGL_ANDROID_blob_cache 1
 12.1307 +    typedef khronos_ssize_t EGLsizeiANDROID;
 12.1308 +    typedef void(*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
 12.1309 +    typedef EGLsizeiANDROID(*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
 12.1310 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1311 +    EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
 12.1312 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1313 +    typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC)(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
 12.1314 +#endif
 12.1315 +
 12.1316 +#ifndef EGL_ANDROID_image_native_buffer
 12.1317 +#define EGL_ANDROID_image_native_buffer 1
 12.1318 +#define EGL_NATIVE_BUFFER_ANDROID		0x3140
 12.1319 +#endif
 12.1320 +
 12.1321 +#ifndef EGL_ANDROID_native_fence_sync
 12.1322 +#define EGL_ANDROID_native_fence_sync 1
 12.1323 +#define EGL_SYNC_NATIVE_FENCE_ANDROID		0x3144
 12.1324 +#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID	0x3145
 12.1325 +#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID	0x3146
 12.1326 +#define EGL_NO_NATIVE_FENCE_FD_ANDROID		-1
 12.1327 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1328 +    EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR);
 12.1329 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1330 +    typedef EGLint(EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC)(EGLDisplay dpy, EGLSyncKHR);
 12.1331 +#endif
 12.1332 +
 12.1333 +#ifndef EGL_ANDROID_recordable
 12.1334 +#define EGL_ANDROID_recordable 1
 12.1335 +#define EGL_RECORDABLE_ANDROID			0x3142
 12.1336 +#endif
 12.1337 +
 12.1338 +#ifndef EGL_EXT_buffer_age
 12.1339 +#define EGL_EXT_buffer_age 1
 12.1340 +#define EGL_BUFFER_AGE_EXT			0x313D
 12.1341 +#endif
 12.1342 +
 12.1343 +#ifndef EGL_EXT_image_dma_buf_import
 12.1344 +#define EGL_EXT_image_dma_buf_import 1
 12.1345 +#define EGL_LINUX_DMA_BUF_EXT			0x3270
 12.1346 +#define EGL_LINUX_DRM_FOURCC_EXT		0x3271
 12.1347 +#define EGL_DMA_BUF_PLANE0_FD_EXT		0x3272
 12.1348 +#define EGL_DMA_BUF_PLANE0_OFFSET_EXT		0x3273
 12.1349 +#define EGL_DMA_BUF_PLANE0_PITCH_EXT		0x3274
 12.1350 +#define EGL_DMA_BUF_PLANE1_FD_EXT		0x3275
 12.1351 +#define EGL_DMA_BUF_PLANE1_OFFSET_EXT		0x3276
 12.1352 +#define EGL_DMA_BUF_PLANE1_PITCH_EXT		0x3277
 12.1353 +#define EGL_DMA_BUF_PLANE2_FD_EXT		0x3278
 12.1354 +#define EGL_DMA_BUF_PLANE2_OFFSET_EXT		0x3279
 12.1355 +#define EGL_DMA_BUF_PLANE2_PITCH_EXT		0x327A
 12.1356 +#define EGL_YUV_COLOR_SPACE_HINT_EXT		0x327B
 12.1357 +#define EGL_SAMPLE_RANGE_HINT_EXT		0x327C
 12.1358 +#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
 12.1359 +#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
 12.1360 +#define EGL_ITU_REC601_EXT			0x327F
 12.1361 +#define EGL_ITU_REC709_EXT			0x3280
 12.1362 +#define EGL_ITU_REC2020_EXT			0x3281
 12.1363 +#define EGL_YUV_FULL_RANGE_EXT			0x3282
 12.1364 +#define EGL_YUV_NARROW_RANGE_EXT		0x3283
 12.1365 +#define EGL_YUV_CHROMA_SITING_0_EXT		0x3284
 12.1366 +#define EGL_YUV_CHROMA_SITING_0_5_EXT		0x3285
 12.1367 +#endif
 12.1368 +
 12.1369 +#ifndef EGL_ARM_pixmap_multisample_discard
 12.1370 +#define EGL_ARM_pixmap_multisample_discard 1
 12.1371 +#define EGL_DISCARD_SAMPLES_ARM			0x3286
 12.1372 +#endif
 12.1373 +
 12.1374 +#ifndef EGL_EXT_swap_buffers_with_damage
 12.1375 +#define EGL_EXT_swap_buffers_with_damage 1
 12.1376 +#ifdef EGL_EGLEXT_PROTOTYPES
 12.1377 +    EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT(EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
 12.1378 +#endif /* EGL_EGLEXT_PROTOTYPES */
 12.1379 +    typedef EGLBoolean(EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)(EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
 12.1380 +#endif
 12.1381 +
 12.1382 +/* #include <EGL/eglmesaext.h> */
 12.1383 +
 12.1384 +#ifdef __cplusplus
 12.1385 +}
 12.1386 +#endif
 12.1387 +
 12.1388 +#endif /* __eglext_h_ */
 12.1389 +
 12.1390 +
 12.1391 +
 12.1392 +#endif /* _MSC_VER */
 12.1393 \ No newline at end of file
    13.1 --- a/include/SDL_hints.h	Fri Nov 22 10:26:28 2013 -0300
    13.2 +++ b/include/SDL_hints.h	Fri Nov 22 13:24:53 2013 -0300
    13.3 @@ -301,6 +301,21 @@
    13.4   */
    13.5  #define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"
    13.6  
    13.7 +/**
    13.8 +*  \brief  A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries
    13.9 +*
   13.10 +*  SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It
   13.11 +*  can use two different sets of binaries, those compiled by the user from source
   13.12 +*  or those provided by the Chrome browser. In the later case, these binaries require
   13.13 +*  that SDL loads 
   13.14 +*
   13.15 +*  This variable can be set to the following values:
   13.16 +*    "d3dcompiler_46.dll" - default, best for Vista or later.
   13.17 +*    "d3dcompiler_43.dll" - for XP support.
   13.18 +*    "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries.
   13.19 +*
   13.20 +*/
   13.21 +#define SDL_HINT_VIDEO_WIN_D3DCOMPILER              "SDL_VIDEO_WIN_D3DCOMPILER"
   13.22  
   13.23  /**
   13.24   *  \brief  An enumeration of hint priorities
    14.1 --- a/include/SDL_opengles2.h	Fri Nov 22 10:26:28 2013 -0300
    14.2 +++ b/include/SDL_opengles2.h	Fri Nov 22 13:24:53 2013 -0300
    14.3 @@ -24,7 +24,7 @@
    14.4   *
    14.5   *  This is a simple file to encapsulate the OpenGL ES 2.0 API headers.
    14.6   */
    14.7 -
    14.8 +#ifndef _MSC_VER
    14.9  #ifdef __IPHONEOS__
   14.10  #include <OpenGLES/ES2/gl.h>
   14.11  #include <OpenGLES/ES2/glext.h>
   14.12 @@ -33,6 +33,2758 @@
   14.13  #include <GLES2/gl2ext.h>
   14.14  #endif
   14.15  
   14.16 +#else /* _MSC_VER */
   14.17 +
   14.18 +/* OpenGL ES2 headers for Visual Studio */
   14.19 +
   14.20 +#ifndef __khrplatform_h_
   14.21 +#define __khrplatform_h_
   14.22 +
   14.23 +/*
   14.24 +** Copyright (c) 2008-2009 The Khronos Group Inc.
   14.25 +**
   14.26 +** Permission is hereby granted, free of charge, to any person obtaining a
   14.27 +** copy of this software and/or associated documentation files (the
   14.28 +** "Materials"), to deal in the Materials without restriction, including
   14.29 +** without limitation the rights to use, copy, modify, merge, publish,
   14.30 +** distribute, sublicense, and/or sell copies of the Materials, and to
   14.31 +** permit persons to whom the Materials are furnished to do so, subject to
   14.32 +** the following conditions:
   14.33 +**
   14.34 +** The above copyright notice and this permission notice shall be included
   14.35 +** in all copies or substantial portions of the Materials.
   14.36 +**
   14.37 +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
   14.38 +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   14.39 +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   14.40 +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   14.41 +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   14.42 +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   14.43 +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
   14.44 +*/
   14.45 +
   14.46 +/* Khronos platform-specific types and definitions.
   14.47 +*
   14.48 +* $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $
   14.49 +*
   14.50 +* Adopters may modify this file to suit their platform. Adopters are
   14.51 +* encouraged to submit platform specific modifications to the Khronos
   14.52 +* group so that they can be included in future versions of this file.
   14.53 +* Please submit changes by sending them to the public Khronos Bugzilla
   14.54 +* (http://khronos.org/bugzilla) by filing a bug against product
   14.55 +* "Khronos (general)" component "Registry".
   14.56 +*
   14.57 +* A predefined template which fills in some of the bug fields can be
   14.58 +* reached using http://tinyurl.com/khrplatform-h-bugreport, but you
   14.59 +* must create a Bugzilla login first.
   14.60 +*
   14.61 +*
   14.62 +* See the Implementer's Guidelines for information about where this file
   14.63 +* should be located on your system and for more details of its use:
   14.64 +*    http://www.khronos.org/registry/implementers_guide.pdf
   14.65 +*
   14.66 +* This file should be included as
   14.67 +*        #include <KHR/khrplatform.h>
   14.68 +* by Khronos client API header files that use its types and defines.
   14.69 +*
   14.70 +* The types in khrplatform.h should only be used to define API-specific types.
   14.71 +*
   14.72 +* Types defined in khrplatform.h:
   14.73 +*    khronos_int8_t              signed   8  bit
   14.74 +*    khronos_uint8_t             unsigned 8  bit
   14.75 +*    khronos_int16_t             signed   16 bit
   14.76 +*    khronos_uint16_t            unsigned 16 bit
   14.77 +*    khronos_int32_t             signed   32 bit
   14.78 +*    khronos_uint32_t            unsigned 32 bit
   14.79 +*    khronos_int64_t             signed   64 bit
   14.80 +*    khronos_uint64_t            unsigned 64 bit
   14.81 +*    khronos_intptr_t            signed   same number of bits as a pointer
   14.82 +*    khronos_uintptr_t           unsigned same number of bits as a pointer
   14.83 +*    khronos_ssize_t             signed   size
   14.84 +*    khronos_usize_t             unsigned size
   14.85 +*    khronos_float_t             signed   32 bit floating point
   14.86 +*    khronos_time_ns_t           unsigned 64 bit time in nanoseconds
   14.87 +*    khronos_utime_nanoseconds_t unsigned time interval or absolute time in
   14.88 +*                                         nanoseconds
   14.89 +*    khronos_stime_nanoseconds_t signed time interval in nanoseconds
   14.90 +*    khronos_boolean_enum_t      enumerated boolean type. This should
   14.91 +*      only be used as a base type when a client API's boolean type is
   14.92 +*      an enum. Client APIs which use an integer or other type for
   14.93 +*      booleans cannot use this as the base type for their boolean.
   14.94 +*
   14.95 +* Tokens defined in khrplatform.h:
   14.96 +*
   14.97 +*    KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
   14.98 +*
   14.99 +*    KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
  14.100 +*    KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
  14.101 +*
  14.102 +* Calling convention macros defined in this file:
  14.103 +*    KHRONOS_APICALL
  14.104 +*    KHRONOS_APIENTRY
  14.105 +*    KHRONOS_APIATTRIBUTES
  14.106 +*
  14.107 +* These may be used in function prototypes as:
  14.108 +*
  14.109 +*      KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
  14.110 +*                                  int arg1,
  14.111 +*                                  int arg2) KHRONOS_APIATTRIBUTES;
  14.112 +*/
  14.113 +
  14.114 +/*-------------------------------------------------------------------------
  14.115 +* Definition of KHRONOS_APICALL
  14.116 +*-------------------------------------------------------------------------
  14.117 +* This precedes the return type of the function in the function prototype.
  14.118 +*/
  14.119 +#if defined(_WIN32) && !defined(__SCITECH_SNAP__)
  14.120 +#   define KHRONOS_APICALL __declspec(dllimport)
  14.121 +#elif defined (__SYMBIAN32__)
  14.122 +#   define KHRONOS_APICALL IMPORT_C
  14.123 +#else
  14.124 +#   define KHRONOS_APICALL
  14.125 +#endif
  14.126 +
  14.127 +/*-------------------------------------------------------------------------
  14.128 +* Definition of KHRONOS_APIENTRY
  14.129 +*-------------------------------------------------------------------------
  14.130 +* This follows the return type of the function  and precedes the function
  14.131 +* name in the function prototype.
  14.132 +*/
  14.133 +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
  14.134 +/* Win32 but not WinCE */
  14.135 +#   define KHRONOS_APIENTRY __stdcall
  14.136 +#else
  14.137 +#   define KHRONOS_APIENTRY
  14.138 +#endif
  14.139 +
  14.140 +/*-------------------------------------------------------------------------
  14.141 +* Definition of KHRONOS_APIATTRIBUTES
  14.142 +*-------------------------------------------------------------------------
  14.143 +* This follows the closing parenthesis of the function prototype arguments.
  14.144 +*/
  14.145 +#if defined (__ARMCC_2__)
  14.146 +#define KHRONOS_APIATTRIBUTES __softfp
  14.147 +#else
  14.148 +#define KHRONOS_APIATTRIBUTES
  14.149 +#endif
  14.150 +
  14.151 +/*-------------------------------------------------------------------------
  14.152 +* basic type definitions
  14.153 +*-----------------------------------------------------------------------*/
  14.154 +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
  14.155 +
  14.156 +
  14.157 +/*
  14.158 +* Using <stdint.h>
  14.159 +*/
  14.160 +#include <stdint.h>
  14.161 +typedef int32_t                 khronos_int32_t;
  14.162 +typedef uint32_t                khronos_uint32_t;
  14.163 +typedef int64_t                 khronos_int64_t;
  14.164 +typedef uint64_t                khronos_uint64_t;
  14.165 +#define KHRONOS_SUPPORT_INT64   1
  14.166 +#define KHRONOS_SUPPORT_FLOAT   1
  14.167 +
  14.168 +#elif defined(__VMS ) || defined(__sgi)
  14.169 +
  14.170 +/*
  14.171 +* Using <inttypes.h>
  14.172 +*/
  14.173 +#include <inttypes.h>
  14.174 +typedef int32_t                 khronos_int32_t;
  14.175 +typedef uint32_t                khronos_uint32_t;
  14.176 +typedef int64_t                 khronos_int64_t;
  14.177 +typedef uint64_t                khronos_uint64_t;
  14.178 +#define KHRONOS_SUPPORT_INT64   1
  14.179 +#define KHRONOS_SUPPORT_FLOAT   1
  14.180 +
  14.181 +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
  14.182 +
  14.183 +/*
  14.184 +* Win32
  14.185 +*/
  14.186 +typedef __int32                 khronos_int32_t;
  14.187 +typedef unsigned __int32        khronos_uint32_t;
  14.188 +typedef __int64                 khronos_int64_t;
  14.189 +typedef unsigned __int64        khronos_uint64_t;
  14.190 +#define KHRONOS_SUPPORT_INT64   1
  14.191 +#define KHRONOS_SUPPORT_FLOAT   1
  14.192 +
  14.193 +#elif defined(__sun__) || defined(__digital__)
  14.194 +
  14.195 +/*
  14.196 +* Sun or Digital
  14.197 +*/
  14.198 +typedef int                     khronos_int32_t;
  14.199 +typedef unsigned int            khronos_uint32_t;
  14.200 +#if defined(__arch64__) || defined(_LP64)
  14.201 +typedef long int                khronos_int64_t;
  14.202 +typedef unsigned long int       khronos_uint64_t;
  14.203 +#else
  14.204 +typedef long long int           khronos_int64_t;
  14.205 +typedef unsigned long long int  khronos_uint64_t;
  14.206 +#endif /* __arch64__ */
  14.207 +#define KHRONOS_SUPPORT_INT64   1
  14.208 +#define KHRONOS_SUPPORT_FLOAT   1
  14.209 +
  14.210 +#elif 0
  14.211 +
  14.212 +/*
  14.213 +* Hypothetical platform with no float or int64 support
  14.214 +*/
  14.215 +typedef int                     khronos_int32_t;
  14.216 +typedef unsigned int            khronos_uint32_t;
  14.217 +#define KHRONOS_SUPPORT_INT64   0
  14.218 +#define KHRONOS_SUPPORT_FLOAT   0
  14.219 +
  14.220 +#else
  14.221 +
  14.222 +/*
  14.223 +* Generic fallback
  14.224 +*/
  14.225 +#include <stdint.h>
  14.226 +typedef int32_t                 khronos_int32_t;
  14.227 +typedef uint32_t                khronos_uint32_t;
  14.228 +typedef int64_t                 khronos_int64_t;
  14.229 +typedef uint64_t                khronos_uint64_t;
  14.230 +#define KHRONOS_SUPPORT_INT64   1
  14.231 +#define KHRONOS_SUPPORT_FLOAT   1
  14.232 +
  14.233 +#endif
  14.234 +
  14.235 +
  14.236 +/*
  14.237 +* Types that are (so far) the same on all platforms
  14.238 +*/
  14.239 +typedef signed   char          khronos_int8_t;
  14.240 +typedef unsigned char          khronos_uint8_t;
  14.241 +typedef signed   short int     khronos_int16_t;
  14.242 +typedef unsigned short int     khronos_uint16_t;
  14.243 +
  14.244 +/*
  14.245 +* Types that differ between LLP64 and LP64 architectures - in LLP64,
  14.246 +* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
  14.247 +* to be the only LLP64 architecture in current use.
  14.248 +*/
  14.249 +#ifdef _WIN64
  14.250 +typedef signed   long long int khronos_intptr_t;
  14.251 +typedef unsigned long long int khronos_uintptr_t;
  14.252 +typedef signed   long long int khronos_ssize_t;
  14.253 +typedef unsigned long long int khronos_usize_t;
  14.254 +#else
  14.255 +typedef signed   long  int     khronos_intptr_t;
  14.256 +typedef unsigned long  int     khronos_uintptr_t;
  14.257 +typedef signed   long  int     khronos_ssize_t;
  14.258 +typedef unsigned long  int     khronos_usize_t;
  14.259 +#endif
  14.260 +
  14.261 +#if KHRONOS_SUPPORT_FLOAT
  14.262 +/*
  14.263 +* Float type
  14.264 +*/
  14.265 +typedef          float         khronos_float_t;
  14.266 +#endif
  14.267 +
  14.268 +#if KHRONOS_SUPPORT_INT64
  14.269 +/* Time types
  14.270 +*
  14.271 +* These types can be used to represent a time interval in nanoseconds or
  14.272 +* an absolute Unadjusted System Time.  Unadjusted System Time is the number
  14.273 +* of nanoseconds since some arbitrary system event (e.g. since the last
  14.274 +* time the system booted).  The Unadjusted System Time is an unsigned
  14.275 +* 64 bit value that wraps back to 0 every 584 years.  Time intervals
  14.276 +* may be either signed or unsigned.
  14.277 +*/
  14.278 +typedef khronos_uint64_t       khronos_utime_nanoseconds_t;
  14.279 +typedef khronos_int64_t        khronos_stime_nanoseconds_t;
  14.280 +#endif
  14.281 +
  14.282 +/*
  14.283 +* Dummy value used to pad enum types to 32 bits.
  14.284 +*/
  14.285 +#ifndef KHRONOS_MAX_ENUM
  14.286 +#define KHRONOS_MAX_ENUM 0x7FFFFFFF
  14.287 +#endif
  14.288 +
  14.289 +/*
  14.290 +* Enumerated boolean type
  14.291 +*
  14.292 +* Values other than zero should be considered to be true.  Therefore
  14.293 +* comparisons should not be made against KHRONOS_TRUE.
  14.294 +*/
  14.295 +typedef enum {
  14.296 +    KHRONOS_FALSE = 0,
  14.297 +    KHRONOS_TRUE = 1,
  14.298 +    KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
  14.299 +} khronos_boolean_enum_t;
  14.300 +
  14.301 +#endif /* __khrplatform_h_ */
  14.302 +
  14.303 +
  14.304 +#ifndef __gl2platform_h_
  14.305 +#define __gl2platform_h_
  14.306 +
  14.307 +/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */
  14.308 +
  14.309 +/*
  14.310 + * This document is licensed under the SGI Free Software B License Version
  14.311 + * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
  14.312 + */
  14.313 +
  14.314 +/* Platform-specific types and definitions for OpenGL ES 2.X  gl2.h
  14.315 + *
  14.316 + * Adopters may modify khrplatform.h and this file to suit their platform.
  14.317 + * You are encouraged to submit all modifications to the Khronos group so that
  14.318 + * they can be included in future versions of this file.  Please submit changes
  14.319 + * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
  14.320 + * by filing a bug against product "OpenGL-ES" component "Registry".
  14.321 + */
  14.322 +
  14.323 +/*#include <KHR/khrplatform.h>*/
  14.324 +
  14.325 +#ifndef GL_APICALL
  14.326 +#define GL_APICALL  KHRONOS_APICALL
  14.327 +#endif
  14.328 +
  14.329 +#ifndef GL_APIENTRY
  14.330 +#define GL_APIENTRY KHRONOS_APIENTRY
  14.331 +#endif
  14.332 +
  14.333 +#endif /* __gl2platform_h_ */
  14.334 +
  14.335 +#ifndef __gl2_h_
  14.336 +#define __gl2_h_
  14.337 +
  14.338 +/* $Revision: 16803 $ on $Date:: 2012-02-02 09:49:18 -0800 #$ */
  14.339 +
  14.340 +/*#include <GLES2/gl2platform.h>*/
  14.341 +
  14.342 +#ifdef __cplusplus
  14.343 +extern "C" {
  14.344 +#endif
  14.345 +
  14.346 +/*
  14.347 + * This document is licensed under the SGI Free Software B License Version
  14.348 + * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
  14.349 + */
  14.350 +
  14.351 +/*-------------------------------------------------------------------------
  14.352 + * Data type definitions
  14.353 + *-----------------------------------------------------------------------*/
  14.354 +
  14.355 +typedef void             GLvoid;
  14.356 +typedef char             GLchar;
  14.357 +typedef unsigned int     GLenum;
  14.358 +typedef unsigned char    GLboolean;
  14.359 +typedef unsigned int     GLbitfield;
  14.360 +typedef khronos_int8_t   GLbyte;
  14.361 +typedef short            GLshort;
  14.362 +typedef int              GLint;
  14.363 +typedef int              GLsizei;
  14.364 +typedef khronos_uint8_t  GLubyte;
  14.365 +typedef unsigned short   GLushort;
  14.366 +typedef unsigned int     GLuint;
  14.367 +typedef khronos_float_t  GLfloat;
  14.368 +typedef khronos_float_t  GLclampf;
  14.369 +typedef khronos_int32_t  GLfixed;
  14.370 +
  14.371 +/* GL types for handling large vertex buffer objects */
  14.372 +typedef khronos_intptr_t GLintptr;
  14.373 +typedef khronos_ssize_t  GLsizeiptr;
  14.374 +
  14.375 +/* OpenGL ES core versions */
  14.376 +#define GL_ES_VERSION_2_0                 1
  14.377 +
  14.378 +/* ClearBufferMask */
  14.379 +#define GL_DEPTH_BUFFER_BIT               0x00000100
  14.380 +#define GL_STENCIL_BUFFER_BIT             0x00000400
  14.381 +#define GL_COLOR_BUFFER_BIT               0x00004000
  14.382 +
  14.383 +/* Boolean */
  14.384 +#define GL_FALSE                          0
  14.385 +#define GL_TRUE                           1
  14.386 +
  14.387 +/* BeginMode */
  14.388 +#define GL_POINTS                         0x0000
  14.389 +#define GL_LINES                          0x0001
  14.390 +#define GL_LINE_LOOP                      0x0002
  14.391 +#define GL_LINE_STRIP                     0x0003
  14.392 +#define GL_TRIANGLES                      0x0004
  14.393 +#define GL_TRIANGLE_STRIP                 0x0005
  14.394 +#define GL_TRIANGLE_FAN                   0x0006
  14.395 +
  14.396 +/* AlphaFunction (not supported in ES20) */
  14.397 +/*      GL_NEVER */
  14.398 +/*      GL_LESS */
  14.399 +/*      GL_EQUAL */
  14.400 +/*      GL_LEQUAL */
  14.401 +/*      GL_GREATER */
  14.402 +/*      GL_NOTEQUAL */
  14.403 +/*      GL_GEQUAL */
  14.404 +/*      GL_ALWAYS */
  14.405 +
  14.406 +/* BlendingFactorDest */
  14.407 +#define GL_ZERO                           0
  14.408 +#define GL_ONE                            1
  14.409 +#define GL_SRC_COLOR                      0x0300
  14.410 +#define GL_ONE_MINUS_SRC_COLOR            0x0301
  14.411 +#define GL_SRC_ALPHA                      0x0302
  14.412 +#define GL_ONE_MINUS_SRC_ALPHA            0x0303
  14.413 +#define GL_DST_ALPHA                      0x0304
  14.414 +#define GL_ONE_MINUS_DST_ALPHA            0x0305
  14.415 +
  14.416 +/* BlendingFactorSrc */
  14.417 +/*      GL_ZERO */
  14.418 +/*      GL_ONE */
  14.419 +#define GL_DST_COLOR                      0x0306
  14.420 +#define GL_ONE_MINUS_DST_COLOR            0x0307
  14.421 +#define GL_SRC_ALPHA_SATURATE             0x0308
  14.422 +/*      GL_SRC_ALPHA */
  14.423 +/*      GL_ONE_MINUS_SRC_ALPHA */
  14.424 +/*      GL_DST_ALPHA */
  14.425 +/*      GL_ONE_MINUS_DST_ALPHA */
  14.426 +
  14.427 +/* BlendEquationSeparate */
  14.428 +#define GL_FUNC_ADD                       0x8006
  14.429 +#define GL_BLEND_EQUATION                 0x8009
  14.430 +#define GL_BLEND_EQUATION_RGB             0x8009    /* same as BLEND_EQUATION */
  14.431 +#define GL_BLEND_EQUATION_ALPHA           0x883D
  14.432 +
  14.433 +/* BlendSubtract */
  14.434 +#define GL_FUNC_SUBTRACT                  0x800A
  14.435 +#define GL_FUNC_REVERSE_SUBTRACT          0x800B
  14.436 +
  14.437 +/* Separate Blend Functions */
  14.438 +#define GL_BLEND_DST_RGB                  0x80C8
  14.439 +#define GL_BLEND_SRC_RGB                  0x80C9
  14.440 +#define GL_BLEND_DST_ALPHA                0x80CA
  14.441 +#define GL_BLEND_SRC_ALPHA                0x80CB
  14.442 +#define GL_CONSTANT_COLOR                 0x8001
  14.443 +#define GL_ONE_MINUS_CONSTANT_COLOR       0x8002
  14.444 +#define GL_CONSTANT_ALPHA                 0x8003
  14.445 +#define GL_ONE_MINUS_CONSTANT_ALPHA       0x8004
  14.446 +#define GL_BLEND_COLOR                    0x8005
  14.447 +
  14.448 +/* Buffer Objects */
  14.449 +#define GL_ARRAY_BUFFER                   0x8892
  14.450 +#define GL_ELEMENT_ARRAY_BUFFER           0x8893
  14.451 +#define GL_ARRAY_BUFFER_BINDING           0x8894
  14.452 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING   0x8895
  14.453 +
  14.454 +#define GL_STREAM_DRAW                    0x88E0
  14.455 +#define GL_STATIC_DRAW                    0x88E4
  14.456 +#define GL_DYNAMIC_DRAW                   0x88E8
  14.457 +
  14.458 +#define GL_BUFFER_SIZE                    0x8764
  14.459 +#define GL_BUFFER_USAGE                   0x8765
  14.460 +
  14.461 +#define GL_CURRENT_VERTEX_ATTRIB          0x8626
  14.462 +
  14.463 +/* CullFaceMode */
  14.464 +#define GL_FRONT                          0x0404
  14.465 +#define GL_BACK                           0x0405
  14.466 +#define GL_FRONT_AND_BACK                 0x0408
  14.467 +
  14.468 +/* DepthFunction */
  14.469 +/*      GL_NEVER */
  14.470 +/*      GL_LESS */
  14.471 +/*      GL_EQUAL */
  14.472 +/*      GL_LEQUAL */
  14.473 +/*      GL_GREATER */
  14.474 +/*      GL_NOTEQUAL */
  14.475 +/*      GL_GEQUAL */
  14.476 +/*      GL_ALWAYS */
  14.477 +
  14.478 +/* EnableCap */
  14.479 +#define GL_TEXTURE_2D                     0x0DE1
  14.480 +#define GL_CULL_FACE                      0x0B44
  14.481 +#define GL_BLEND                          0x0BE2
  14.482 +#define GL_DITHER                         0x0BD0
  14.483 +#define GL_STENCIL_TEST                   0x0B90
  14.484 +#define GL_DEPTH_TEST                     0x0B71
  14.485 +#define GL_SCISSOR_TEST                   0x0C11
  14.486 +#define GL_POLYGON_OFFSET_FILL            0x8037
  14.487 +#define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
  14.488 +#define GL_SAMPLE_COVERAGE                0x80A0
  14.489 +
  14.490 +/* ErrorCode */
  14.491 +#define GL_NO_ERROR                       0
  14.492 +#define GL_INVALID_ENUM                   0x0500
  14.493 +#define GL_INVALID_VALUE                  0x0501
  14.494 +#define GL_INVALID_OPERATION              0x0502
  14.495 +#define GL_OUT_OF_MEMORY                  0x0505
  14.496 +
  14.497 +/* FrontFaceDirection */
  14.498 +#define GL_CW                             0x0900
  14.499 +#define GL_CCW                            0x0901
  14.500 +
  14.501 +/* GetPName */
  14.502 +#define GL_LINE_WIDTH                     0x0B21
  14.503 +#define GL_ALIASED_POINT_SIZE_RANGE       0x846D
  14.504 +#define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
  14.505 +#define GL_CULL_FACE_MODE                 0x0B45
  14.506 +#define GL_FRONT_FACE                     0x0B46
  14.507 +#define GL_DEPTH_RANGE                    0x0B70
  14.508 +#define GL_DEPTH_WRITEMASK                0x0B72
  14.509 +#define GL_DEPTH_CLEAR_VALUE              0x0B73
  14.510 +#define GL_DEPTH_FUNC                     0x0B74
  14.511 +#define GL_STENCIL_CLEAR_VALUE            0x0B91
  14.512 +#define GL_STENCIL_FUNC                   0x0B92
  14.513 +#define GL_STENCIL_FAIL                   0x0B94
  14.514 +#define GL_STENCIL_PASS_DEPTH_FAIL        0x0B95
  14.515 +#define GL_STENCIL_PASS_DEPTH_PASS        0x0B96
  14.516 +#define GL_STENCIL_REF                    0x0B97
  14.517 +#define GL_STENCIL_VALUE_MASK             0x0B93
  14.518 +#define GL_STENCIL_WRITEMASK              0x0B98
  14.519 +#define GL_STENCIL_BACK_FUNC              0x8800
  14.520 +#define GL_STENCIL_BACK_FAIL              0x8801
  14.521 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL   0x8802
  14.522 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS   0x8803
  14.523 +#define GL_STENCIL_BACK_REF               0x8CA3
  14.524 +#define GL_STENCIL_BACK_VALUE_MASK        0x8CA4
  14.525 +#define GL_STENCIL_BACK_WRITEMASK         0x8CA5
  14.526 +#define GL_VIEWPORT                       0x0BA2
  14.527 +#define GL_SCISSOR_BOX                    0x0C10
  14.528 +/*      GL_SCISSOR_TEST */
  14.529 +#define GL_COLOR_CLEAR_VALUE              0x0C22
  14.530 +#define GL_COLOR_WRITEMASK                0x0C23
  14.531 +#define GL_UNPACK_ALIGNMENT               0x0CF5
  14.532 +#define GL_PACK_ALIGNMENT                 0x0D05
  14.533 +#define GL_MAX_TEXTURE_SIZE               0x0D33
  14.534 +#define GL_MAX_VIEWPORT_DIMS              0x0D3A
  14.535 +#define GL_SUBPIXEL_BITS                  0x0D50
  14.536 +#define GL_RED_BITS                       0x0D52
  14.537 +#define GL_GREEN_BITS                     0x0D53
  14.538 +#define GL_BLUE_BITS                      0x0D54
  14.539 +#define GL_ALPHA_BITS                     0x0D55
  14.540 +#define GL_DEPTH_BITS                     0x0D56
  14.541 +#define GL_STENCIL_BITS                   0x0D57
  14.542 +#define GL_POLYGON_OFFSET_UNITS           0x2A00
  14.543 +/*      GL_POLYGON_OFFSET_FILL */
  14.544 +#define GL_POLYGON_OFFSET_FACTOR          0x8038
  14.545 +#define GL_TEXTURE_BINDING_2D             0x8069
  14.546 +#define GL_SAMPLE_BUFFERS                 0x80A8
  14.547 +#define GL_SAMPLES                        0x80A9
  14.548 +#define GL_SAMPLE_COVERAGE_VALUE          0x80AA
  14.549 +#define GL_SAMPLE_COVERAGE_INVERT         0x80AB
  14.550 +
  14.551 +/* GetTextureParameter */
  14.552 +/*      GL_TEXTURE_MAG_FILTER */
  14.553 +/*      GL_TEXTURE_MIN_FILTER */
  14.554 +/*      GL_TEXTURE_WRAP_S */
  14.555 +/*      GL_TEXTURE_WRAP_T */
  14.556 +
  14.557 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
  14.558 +#define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
  14.559 +
  14.560 +/* HintMode */
  14.561 +#define GL_DONT_CARE                      0x1100
  14.562 +#define GL_FASTEST                        0x1101
  14.563 +#define GL_NICEST                         0x1102
  14.564 +
  14.565 +/* HintTarget */
  14.566 +#define GL_GENERATE_MIPMAP_HINT            0x8192
  14.567 +
  14.568 +/* DataType */
  14.569 +#define GL_BYTE                           0x1400
  14.570 +#define GL_UNSIGNED_BYTE                  0x1401
  14.571 +#define GL_SHORT                          0x1402
  14.572 +#define GL_UNSIGNED_SHORT                 0x1403
  14.573 +#define GL_INT                            0x1404
  14.574 +#define GL_UNSIGNED_INT                   0x1405
  14.575 +#define GL_FLOAT                          0x1406
  14.576 +#define GL_FIXED                          0x140C
  14.577 +
  14.578 +/* PixelFormat */
  14.579 +#define GL_DEPTH_COMPONENT                0x1902
  14.580 +#define GL_ALPHA                          0x1906
  14.581 +#define GL_RGB                            0x1907
  14.582 +#define GL_RGBA                           0x1908
  14.583 +#define GL_LUMINANCE                      0x1909
  14.584 +#define GL_LUMINANCE_ALPHA                0x190A
  14.585 +
  14.586 +/* PixelType */
  14.587 +/*      GL_UNSIGNED_BYTE */
  14.588 +#define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
  14.589 +#define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
  14.590 +#define GL_UNSIGNED_SHORT_5_6_5           0x8363
  14.591 +
  14.592 +/* Shaders */
  14.593 +#define GL_FRAGMENT_SHADER                  0x8B30
  14.594 +#define GL_VERTEX_SHADER                    0x8B31
  14.595 +#define GL_MAX_VERTEX_ATTRIBS               0x8869
  14.596 +#define GL_MAX_VERTEX_UNIFORM_VECTORS       0x8DFB
  14.597 +#define GL_MAX_VARYING_VECTORS              0x8DFC
  14.598 +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
  14.599 +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS   0x8B4C
  14.600 +#define GL_MAX_TEXTURE_IMAGE_UNITS          0x8872
  14.601 +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS     0x8DFD
  14.602 +#define GL_SHADER_TYPE                      0x8B4F
  14.603 +#define GL_DELETE_STATUS                    0x8B80
  14.604 +#define GL_LINK_STATUS                      0x8B82
  14.605 +#define GL_VALIDATE_STATUS                  0x8B83
  14.606 +#define GL_ATTACHED_SHADERS                 0x8B85
  14.607 +#define GL_ACTIVE_UNIFORMS                  0x8B86
  14.608 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH        0x8B87
  14.609 +#define GL_ACTIVE_ATTRIBUTES                0x8B89
  14.610 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH      0x8B8A
  14.611 +#define GL_SHADING_LANGUAGE_VERSION         0x8B8C
  14.612 +#define GL_CURRENT_PROGRAM                  0x8B8D
  14.613 +
  14.614 +/* StencilFunction */
  14.615 +#define GL_NEVER                          0x0200
  14.616 +#define GL_LESS                           0x0201
  14.617 +#define GL_EQUAL                          0x0202
  14.618 +#define GL_LEQUAL                         0x0203
  14.619 +#define GL_GREATER                        0x0204
  14.620 +#define GL_NOTEQUAL                       0x0205
  14.621 +#define GL_GEQUAL                         0x0206
  14.622 +#define GL_ALWAYS                         0x0207
  14.623 +
  14.624 +/* StencilOp */
  14.625 +/*      GL_ZERO */
  14.626 +#define GL_KEEP                           0x1E00
  14.627 +#define GL_REPLACE                        0x1E01
  14.628 +#define GL_INCR                           0x1E02
  14.629 +#define GL_DECR                           0x1E03
  14.630 +#define GL_INVERT                         0x150A
  14.631 +#define GL_INCR_WRAP                      0x8507
  14.632 +#define GL_DECR_WRAP                      0x8508
  14.633 +
  14.634 +/* StringName */
  14.635 +#define GL_VENDOR                         0x1F00
  14.636 +#define GL_RENDERER                       0x1F01
  14.637 +#define GL_VERSION                        0x1F02
  14.638 +#define GL_EXTENSIONS                     0x1F03
  14.639 +
  14.640 +/* TextureMagFilter */
  14.641 +#define GL_NEAREST                        0x2600
  14.642 +#define GL_LINEAR                         0x2601
  14.643 +
  14.644 +/* TextureMinFilter */
  14.645 +/*      GL_NEAREST */
  14.646 +/*      GL_LINEAR */
  14.647 +#define GL_NEAREST_MIPMAP_NEAREST         0x2700
  14.648 +#define GL_LINEAR_MIPMAP_NEAREST          0x2701
  14.649 +#define GL_NEAREST_MIPMAP_LINEAR          0x2702
  14.650 +#define GL_LINEAR_MIPMAP_LINEAR           0x2703
  14.651 +
  14.652 +/* TextureParameterName */
  14.653 +#define GL_TEXTURE_MAG_FILTER             0x2800
  14.654 +#define GL_TEXTURE_MIN_FILTER             0x2801
  14.655 +#define GL_TEXTURE_WRAP_S                 0x2802
  14.656 +#define GL_TEXTURE_WRAP_T                 0x2803
  14.657 +
  14.658 +/* TextureTarget */
  14.659 +/*      GL_TEXTURE_2D */
  14.660 +#define GL_TEXTURE                        0x1702
  14.661 +
  14.662 +#define GL_TEXTURE_CUBE_MAP               0x8513
  14.663 +#define GL_TEXTURE_BINDING_CUBE_MAP       0x8514
  14.664 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515
  14.665 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X    0x8516
  14.666 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y    0x8517
  14.667 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    0x8518
  14.668 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519
  14.669 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851A
  14.670 +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851C
  14.671 +
  14.672 +/* TextureUnit */
  14.673 +#define GL_TEXTURE0                       0x84C0
  14.674 +#define GL_TEXTURE1                       0x84C1
  14.675 +#define GL_TEXTURE2                       0x84C2
  14.676 +#define GL_TEXTURE3                       0x84C3
  14.677 +#define GL_TEXTURE4                       0x84C4
  14.678 +#define GL_TEXTURE5                       0x84C5
  14.679 +#define GL_TEXTURE6                       0x84C6
  14.680 +#define GL_TEXTURE7                       0x84C7
  14.681 +#define GL_TEXTURE8                       0x84C8
  14.682 +#define GL_TEXTURE9                       0x84C9
  14.683 +#define GL_TEXTURE10                      0x84CA
  14.684 +#define GL_TEXTURE11                      0x84CB
  14.685 +#define GL_TEXTURE12                      0x84CC
  14.686 +#define GL_TEXTURE13                      0x84CD
  14.687 +#define GL_TEXTURE14                      0x84CE
  14.688 +#define GL_TEXTURE15                      0x84CF
  14.689 +#define GL_TEXTURE16                      0x84D0
  14.690 +#define GL_TEXTURE17                      0x84D1
  14.691 +#define GL_TEXTURE18                      0x84D2
  14.692 +#define GL_TEXTURE19                      0x84D3
  14.693 +#define GL_TEXTURE20                      0x84D4
  14.694 +#define GL_TEXTURE21                      0x84D5
  14.695 +#define GL_TEXTURE22                      0x84D6
  14.696 +#define GL_TEXTURE23                      0x84D7
  14.697 +#define GL_TEXTURE24                      0x84D8
  14.698 +#define GL_TEXTURE25                      0x84D9
  14.699 +#define GL_TEXTURE26                      0x84DA
  14.700 +#define GL_TEXTURE27                      0x84DB
  14.701 +#define GL_TEXTURE28                      0x84DC
  14.702 +#define GL_TEXTURE29                      0x84DD
  14.703 +#define GL_TEXTURE30                      0x84DE
  14.704 +#define GL_TEXTURE31                      0x84DF
  14.705 +#define GL_ACTIVE_TEXTURE                 0x84E0
  14.706 +
  14.707 +/* TextureWrapMode */
  14.708 +#define GL_REPEAT                         0x2901
  14.709 +#define GL_CLAMP_TO_EDGE                  0x812F
  14.710 +#define GL_MIRRORED_REPEAT                0x8370
  14.711 +
  14.712 +/* Uniform Types */
  14.713 +#define GL_FLOAT_VEC2                     0x8B50
  14.714 +#define GL_FLOAT_VEC3                     0x8B51
  14.715 +#define GL_FLOAT_VEC4                     0x8B52
  14.716 +#define GL_INT_VEC2                       0x8B53
  14.717 +#define GL_INT_VEC3                       0x8B54
  14.718 +#define GL_INT_VEC4                       0x8B55
  14.719 +#define GL_BOOL                           0x8B56
  14.720 +#define GL_BOOL_VEC2                      0x8B57
  14.721 +#define GL_BOOL_VEC3                      0x8B58
  14.722 +#define GL_BOOL_VEC4                      0x8B59
  14.723 +#define GL_FLOAT_MAT2                     0x8B5A
  14.724 +#define GL_FLOAT_MAT3                     0x8B5B
  14.725 +#define GL_FLOAT_MAT4                     0x8B5C
  14.726 +#define GL_SAMPLER_2D                     0x8B5E
  14.727 +#define GL_SAMPLER_CUBE                   0x8B60
  14.728 +
  14.729 +/* Vertex Arrays */
  14.730 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED        0x8622
  14.731 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE           0x8623
  14.732 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE         0x8624
  14.733 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE           0x8625
  14.734 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED     0x886A
  14.735 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER        0x8645
  14.736 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
  14.737 +
  14.738 +/* Read Format */
  14.739 +#define GL_IMPLEMENTATION_COLOR_READ_TYPE   0x8B9A
  14.740 +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
  14.741 +
  14.742 +/* Shader Source */
  14.743 +#define GL_COMPILE_STATUS                 0x8B81
  14.744 +#define GL_INFO_LOG_LENGTH                0x8B84
  14.745 +#define GL_SHADER_SOURCE_LENGTH           0x8B88
  14.746 +#define GL_SHADER_COMPILER                0x8DFA
  14.747 +
  14.748 +/* Shader Binary */
  14.749 +#define GL_SHADER_BINARY_FORMATS          0x8DF8
  14.750 +#define GL_NUM_SHADER_BINARY_FORMATS      0x8DF9
  14.751 +
  14.752 +/* Shader Precision-Specified Types */
  14.753 +#define GL_LOW_FLOAT                      0x8DF0
  14.754 +#define GL_MEDIUM_FLOAT                   0x8DF1
  14.755 +#define GL_HIGH_FLOAT                     0x8DF2
  14.756 +#define GL_LOW_INT                        0x8DF3
  14.757 +#define GL_MEDIUM_INT                     0x8DF4
  14.758 +#define GL_HIGH_INT                       0x8DF5
  14.759 +
  14.760 +/* Framebuffer Object. */
  14.761 +#define GL_FRAMEBUFFER                    0x8D40
  14.762 +#define GL_RENDERBUFFER                   0x8D41
  14.763 +
  14.764 +#define GL_RGBA4                          0x8056
  14.765 +#define GL_RGB5_A1                        0x8057
  14.766 +#define GL_RGB565                         0x8D62
  14.767 +#define GL_DEPTH_COMPONENT16              0x81A5
  14.768 +#define GL_STENCIL_INDEX8                 0x8D48
  14.769 +
  14.770 +#define GL_RENDERBUFFER_WIDTH             0x8D42
  14.771 +#define GL_RENDERBUFFER_HEIGHT            0x8D43
  14.772 +#define GL_RENDERBUFFER_INTERNAL_FORMAT   0x8D44
  14.773 +#define GL_RENDERBUFFER_RED_SIZE          0x8D50
  14.774 +#define GL_RENDERBUFFER_GREEN_SIZE        0x8D51
  14.775 +#define GL_RENDERBUFFER_BLUE_SIZE         0x8D52
  14.776 +#define GL_RENDERBUFFER_ALPHA_SIZE        0x8D53
  14.777 +#define GL_RENDERBUFFER_DEPTH_SIZE        0x8D54
  14.778 +#define GL_RENDERBUFFER_STENCIL_SIZE      0x8D55
  14.779 +
  14.780 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           0x8CD0
  14.781 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           0x8CD1
  14.782 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         0x8CD2
  14.783 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
  14.784 +
  14.785 +#define GL_COLOR_ATTACHMENT0              0x8CE0
  14.786 +#define GL_DEPTH_ATTACHMENT               0x8D00
  14.787 +#define GL_STENCIL_ATTACHMENT             0x8D20
  14.788 +
  14.789 +#define GL_NONE                           0
  14.790 +
  14.791 +#define GL_FRAMEBUFFER_COMPLETE                      0x8CD5
  14.792 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT         0x8CD6
  14.793 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
  14.794 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS         0x8CD9
  14.795 +#define GL_FRAMEBUFFER_UNSUPPORTED                   0x8CDD
  14.796 +
  14.797 +#define GL_FRAMEBUFFER_BINDING            0x8CA6
  14.798 +#define GL_RENDERBUFFER_BINDING           0x8CA7
  14.799 +#define GL_MAX_RENDERBUFFER_SIZE          0x84E8
  14.800 +
  14.801 +#define GL_INVALID_FRAMEBUFFER_OPERATION  0x0506
  14.802 +
  14.803 +/*-------------------------------------------------------------------------
  14.804 + * GL core functions.
  14.805 + *-----------------------------------------------------------------------*/
  14.806 +
  14.807 +GL_APICALL void         GL_APIENTRY glActiveTexture (GLenum texture);
  14.808 +GL_APICALL void         GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
  14.809 +GL_APICALL void         GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name);
  14.810 +GL_APICALL void         GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
  14.811 +GL_APICALL void         GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
  14.812 +GL_APICALL void         GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
  14.813 +GL_APICALL void         GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
  14.814 +GL_APICALL void         GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
  14.815 +GL_APICALL void         GL_APIENTRY glBlendEquation ( GLenum mode );
  14.816 +GL_APICALL void         GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
  14.817 +GL_APICALL void         GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
  14.818 +GL_APICALL void         GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
  14.819 +GL_APICALL void         GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
  14.820 +GL_APICALL void         GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
  14.821 +GL_APICALL GLenum       GL_APIENTRY glCheckFramebufferStatus (GLenum target);
  14.822 +GL_APICALL void         GL_APIENTRY glClear (GLbitfield mask);
  14.823 +GL_APICALL void         GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
  14.824 +GL_APICALL void         GL_APIENTRY glClearDepthf (GLclampf depth);
  14.825 +GL_APICALL void         GL_APIENTRY glClearStencil (GLint s);
  14.826 +GL_APICALL void         GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
  14.827 +GL_APICALL void         GL_APIENTRY glCompileShader (GLuint shader);
  14.828 +GL_APICALL void         GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
  14.829 +GL_APICALL void         GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
  14.830 +GL_APICALL void         GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
  14.831 +GL_APICALL void         GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
  14.832 +GL_APICALL GLuint       GL_APIENTRY glCreateProgram (void);
  14.833 +GL_APICALL GLuint       GL_APIENTRY glCreateShader (GLenum type);
  14.834 +GL_APICALL void         GL_APIENTRY glCullFace (GLenum mode);
  14.835 +GL_APICALL void         GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers);
  14.836 +GL_APICALL void         GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers);
  14.837 +GL_APICALL void         GL_APIENTRY glDeleteProgram (GLuint program);
  14.838 +GL_APICALL void         GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers);
  14.839 +GL_APICALL void         GL_APIENTRY glDeleteShader (GLuint shader);
  14.840 +GL_APICALL void         GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures);
  14.841 +GL_APICALL void         GL_APIENTRY glDepthFunc (GLenum func);
  14.842 +GL_APICALL void         GL_APIENTRY glDepthMask (GLboolean flag);
  14.843 +GL_APICALL void         GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar);
  14.844 +GL_APICALL void         GL_APIENTRY glDetachShader (GLuint program, GLuint shader);
  14.845 +GL_APICALL void         GL_APIENTRY glDisable (GLenum cap);
  14.846 +GL_APICALL void         GL_APIENTRY glDisableVertexAttribArray (GLuint index);
  14.847 +GL_APICALL void         GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
  14.848 +GL_APICALL void         GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
  14.849 +GL_APICALL void         GL_APIENTRY glEnable (GLenum cap);
  14.850 +GL_APICALL void         GL_APIENTRY glEnableVertexAttribArray (GLuint index);
  14.851 +GL_APICALL void         GL_APIENTRY glFinish (void);
  14.852 +GL_APICALL void         GL_APIENTRY glFlush (void);
  14.853 +GL_APICALL void         GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
  14.854 +GL_APICALL void         GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
  14.855 +GL_APICALL void         GL_APIENTRY glFrontFace (GLenum mode);
  14.856 +GL_APICALL void         GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers);
  14.857 +GL_APICALL void         GL_APIENTRY glGenerateMipmap (GLenum target);
  14.858 +GL_APICALL void         GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers);
  14.859 +GL_APICALL void         GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers);
  14.860 +GL_APICALL void         GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures);
  14.861 +GL_APICALL void         GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
  14.862 +GL_APICALL void         GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
  14.863 +GL_APICALL void         GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
  14.864 +GL_APICALL int          GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
  14.865 +GL_APICALL void         GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params);
  14.866 +GL_APICALL void         GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
  14.867 +GL_APICALL GLenum       GL_APIENTRY glGetError (void);
  14.868 +GL_APICALL void         GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params);
  14.869 +GL_APICALL void         GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params);
  14.870 +GL_APICALL void         GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params);
  14.871 +GL_APICALL void         GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params);
  14.872 +GL_APICALL void         GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
  14.873 +GL_APICALL void         GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params);
  14.874 +GL_APICALL void         GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params);
  14.875 +GL_APICALL void         GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
  14.876 +GL_APICALL void         GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
  14.877 +GL_APICALL void         GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
  14.878 +GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name);
  14.879 +GL_APICALL void         GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params);
  14.880 +GL_APICALL void         GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
  14.881 +GL_APICALL void         GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params);
  14.882 +GL_APICALL void         GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params);
  14.883 +GL_APICALL int          GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
  14.884 +GL_APICALL void         GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
  14.885 +GL_APICALL void         GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
  14.886 +GL_APICALL void         GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
  14.887 +GL_APICALL void         GL_APIENTRY glHint (GLenum target, GLenum mode);
  14.888 +GL_APICALL GLboolean    GL_APIENTRY glIsBuffer (GLuint buffer);
  14.889 +GL_APICALL GLboolean    GL_APIENTRY glIsEnabled (GLenum cap);
  14.890 +GL_APICALL GLboolean    GL_APIENTRY glIsFramebuffer (GLuint framebuffer);
  14.891 +GL_APICALL GLboolean    GL_APIENTRY glIsProgram (GLuint program);
  14.892 +GL_APICALL GLboolean    GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer);
  14.893 +GL_APICALL GLboolean    GL_APIENTRY glIsShader (GLuint shader);
  14.894 +GL_APICALL GLboolean    GL_APIENTRY glIsTexture (GLuint texture);
  14.895 +GL_APICALL void         GL_APIENTRY glLineWidth (GLfloat width);
  14.896 +GL_APICALL void         GL_APIENTRY glLinkProgram (GLuint program);
  14.897 +GL_APICALL void         GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
  14.898 +GL_APICALL void         GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
  14.899 +GL_APICALL void         GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
  14.900 +GL_APICALL void         GL_APIENTRY glReleaseShaderCompiler (void);
  14.901 +GL_APICALL void         GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
  14.902 +GL_APICALL void         GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
  14.903 +GL_APICALL void         GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
  14.904 +GL_APICALL void         GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
  14.905 +GL_APICALL void         GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
  14.906 +GL_APICALL void         GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
  14.907 +GL_APICALL void         GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
  14.908 +GL_APICALL void         GL_APIENTRY glStencilMask (GLuint mask);
  14.909 +GL_APICALL void         GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
  14.910 +GL_APICALL void         GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
  14.911 +GL_APICALL void         GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
  14.912 +GL_APICALL void         GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
  14.913 +GL_APICALL void         GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
  14.914 +GL_APICALL void         GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params);
  14.915 +GL_APICALL void         GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
  14.916 +GL_APICALL void         GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params);
  14.917 +GL_APICALL void         GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
  14.918 +GL_APICALL void         GL_APIENTRY glUniform1f (GLint location, GLfloat x);
  14.919 +GL_APICALL void         GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v);
  14.920 +GL_APICALL void         GL_APIENTRY glUniform1i (GLint location, GLint x);
  14.921 +GL_APICALL void         GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v);
  14.922 +GL_APICALL void         GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y);
  14.923 +GL_APICALL void         GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v);
  14.924 +GL_APICALL void         GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y);
  14.925 +GL_APICALL void         GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v);
  14.926 +GL_APICALL void         GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z);
  14.927 +GL_APICALL void         GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v);
  14.928 +GL_APICALL void         GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z);
  14.929 +GL_APICALL void         GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v);
  14.930 +GL_APICALL void         GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  14.931 +GL_APICALL void         GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v);
  14.932 +GL_APICALL void         GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w);
  14.933 +GL_APICALL void         GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v);
  14.934 +GL_APICALL void         GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
  14.935 +GL_APICALL void         GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
  14.936 +GL_APICALL void         GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
  14.937 +GL_APICALL void         GL_APIENTRY glUseProgram (GLuint program);
  14.938 +GL_APICALL void         GL_APIENTRY glValidateProgram (GLuint program);
  14.939 +GL_APICALL void         GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x);
  14.940 +GL_APICALL void         GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values);
  14.941 +GL_APICALL void         GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y);
  14.942 +GL_APICALL void         GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values);
  14.943 +GL_APICALL void         GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z);
  14.944 +GL_APICALL void         GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values);
  14.945 +GL_APICALL void         GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  14.946 +GL_APICALL void         GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values);
  14.947 +GL_APICALL void         GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
  14.948 +GL_APICALL void         GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
  14.949 +
  14.950 +#ifdef __cplusplus
  14.951 +}
  14.952 +#endif
  14.953 +
  14.954 +#endif /* __gl2_h_ */
  14.955 +
  14.956 +
  14.957 +#ifndef __gl2ext_h_
  14.958 +#define __gl2ext_h_
  14.959 +
  14.960 +/* $Revision: 19436 $ on $Date:: 2012-10-10 10:37:04 -0700 #$ */
  14.961 +
  14.962 +#ifdef __cplusplus
  14.963 +extern "C" {
  14.964 +#endif
  14.965 +
  14.966 +/*
  14.967 + * This document is licensed under the SGI Free Software B License Version
  14.968 + * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
  14.969 + */
  14.970 +
  14.971 +#ifndef GL_APIENTRYP
  14.972 +#   define GL_APIENTRYP GL_APIENTRY*
  14.973 +#endif
  14.974 +
  14.975 +/*------------------------------------------------------------------------*
  14.976 + * OES extension tokens
  14.977 + *------------------------------------------------------------------------*/
  14.978 +
  14.979 +/* GL_OES_compressed_ETC1_RGB8_texture */
  14.980 +#ifndef GL_OES_compressed_ETC1_RGB8_texture
  14.981 +#define GL_ETC1_RGB8_OES                                        0x8D64
  14.982 +#endif
  14.983 +
  14.984 +/* GL_OES_compressed_paletted_texture */
  14.985 +#ifndef GL_OES_compressed_paletted_texture
  14.986 +#define GL_PALETTE4_RGB8_OES                                    0x8B90
  14.987 +#define GL_PALETTE4_RGBA8_OES                                   0x8B91
  14.988 +#define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
  14.989 +#define GL_PALETTE4_RGBA4_OES                                   0x8B93
  14.990 +#define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
  14.991 +#define GL_PALETTE8_RGB8_OES                                    0x8B95
  14.992 +#define GL_PALETTE8_RGBA8_OES                                   0x8B96
  14.993 +#define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
  14.994 +#define GL_PALETTE8_RGBA4_OES                                   0x8B98
  14.995 +#define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
  14.996 +#endif
  14.997 +
  14.998 +/* GL_OES_depth24 */
  14.999 +#ifndef GL_OES_depth24
 14.1000 +#define GL_DEPTH_COMPONENT24_OES                                0x81A6
 14.1001 +#endif
 14.1002 +
 14.1003 +/* GL_OES_depth32 */
 14.1004 +#ifndef GL_OES_depth32
 14.1005 +#define GL_DEPTH_COMPONENT32_OES                                0x81A7
 14.1006 +#endif
 14.1007 +
 14.1008 +/* GL_OES_depth_texture */
 14.1009 +/* No new tokens introduced by this extension. */
 14.1010 +
 14.1011 +/* GL_OES_EGL_image */
 14.1012 +#ifndef GL_OES_EGL_image
 14.1013 +typedef void* GLeglImageOES;
 14.1014 +#endif
 14.1015 +
 14.1016 +/* GL_OES_EGL_image_external */
 14.1017 +#ifndef GL_OES_EGL_image_external
 14.1018 +/* GLeglImageOES defined in GL_OES_EGL_image already. */
 14.1019 +#define GL_TEXTURE_EXTERNAL_OES                                 0x8D65
 14.1020 +#define GL_SAMPLER_EXTERNAL_OES                                 0x8D66
 14.1021 +#define GL_TEXTURE_BINDING_EXTERNAL_OES                         0x8D67
 14.1022 +#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES                     0x8D68
 14.1023 +#endif
 14.1024 +
 14.1025 +/* GL_OES_element_index_uint */
 14.1026 +#ifndef GL_OES_element_index_uint
 14.1027 +#define GL_UNSIGNED_INT                                         0x1405
 14.1028 +#endif
 14.1029 +
 14.1030 +/* GL_OES_get_program_binary */
 14.1031 +#ifndef GL_OES_get_program_binary
 14.1032 +#define GL_PROGRAM_BINARY_LENGTH_OES                            0x8741
 14.1033 +#define GL_NUM_PROGRAM_BINARY_FORMATS_OES                       0x87FE
 14.1034 +#define GL_PROGRAM_BINARY_FORMATS_OES                           0x87FF
 14.1035 +#endif
 14.1036 +
 14.1037 +/* GL_OES_mapbuffer */
 14.1038 +#ifndef GL_OES_mapbuffer
 14.1039 +#define GL_WRITE_ONLY_OES                                       0x88B9
 14.1040 +#define GL_BUFFER_ACCESS_OES                                    0x88BB
 14.1041 +#define GL_BUFFER_MAPPED_OES                                    0x88BC
 14.1042 +#define GL_BUFFER_MAP_POINTER_OES                               0x88BD
 14.1043 +#endif
 14.1044 +
 14.1045 +/* GL_OES_packed_depth_stencil */
 14.1046 +#ifndef GL_OES_packed_depth_stencil
 14.1047 +#define GL_DEPTH_STENCIL_OES                                    0x84F9
 14.1048 +#define GL_UNSIGNED_INT_24_8_OES                                0x84FA
 14.1049 +#define GL_DEPTH24_STENCIL8_OES                                 0x88F0
 14.1050 +#endif
 14.1051 +
 14.1052 +/* GL_OES_required_internalformat */
 14.1053 +#ifndef GL_OES_required_internalformat 
 14.1054 +#define GL_ALPHA8_OES                                           0x803C
 14.1055 +#define GL_DEPTH_COMPONENT16_OES                                0x81A5
 14.1056 +/* reuse GL_DEPTH_COMPONENT24_OES */                            
 14.1057 +/* reuse GL_DEPTH24_STENCIL8_OES */                             
 14.1058 +/* reuse GL_DEPTH_COMPONENT32_OES */                            
 14.1059 +#define GL_LUMINANCE4_ALPHA4_OES                                0x8043
 14.1060 +#define GL_LUMINANCE8_ALPHA8_OES                                0x8045
 14.1061 +#define GL_LUMINANCE8_OES                                       0x8040
 14.1062 +#define GL_RGBA4_OES                                            0x8056
 14.1063 +#define GL_RGB5_A1_OES                                          0x8057
 14.1064 +#define GL_RGB565_OES                                           0x8D62
 14.1065 +/* reuse GL_RGB8_OES */                              
 14.1066 +/* reuse GL_RGBA8_OES */  
 14.1067 +/* reuse GL_RGB10_EXT */
 14.1068 +/* reuse GL_RGB10_A2_EXT */
 14.1069 +#endif 
 14.1070 +
 14.1071 +/* GL_OES_rgb8_rgba8 */
 14.1072 +#ifndef GL_OES_rgb8_rgba8
 14.1073 +#define GL_RGB8_OES                                             0x8051
 14.1074 +#define GL_RGBA8_OES                                            0x8058
 14.1075 +#endif
 14.1076 +
 14.1077 +/* GL_OES_standard_derivatives */
 14.1078 +#ifndef GL_OES_standard_derivatives
 14.1079 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES                  0x8B8B
 14.1080 +#endif
 14.1081 +
 14.1082 +/* GL_OES_stencil1 */
 14.1083 +#ifndef GL_OES_stencil1
 14.1084 +#define GL_STENCIL_INDEX1_OES                                   0x8D46
 14.1085 +#endif
 14.1086 +
 14.1087 +/* GL_OES_stencil4 */
 14.1088 +#ifndef GL_OES_stencil4
 14.1089 +#define GL_STENCIL_INDEX4_OES                                   0x8D47
 14.1090 +#endif
 14.1091 +
 14.1092 +#ifndef GL_OES_surfaceless_context
 14.1093 +#define GL_FRAMEBUFFER_UNDEFINED_OES                            0x8219
 14.1094 +#endif
 14.1095 +
 14.1096 +/* GL_OES_texture_3D */
 14.1097 +#ifndef GL_OES_texture_3D
 14.1098 +#define GL_TEXTURE_WRAP_R_OES                                   0x8072
 14.1099 +#define GL_TEXTURE_3D_OES                                       0x806F
 14.1100 +#define GL_TEXTURE_BINDING_3D_OES                               0x806A
 14.1101 +#define GL_MAX_3D_TEXTURE_SIZE_OES                              0x8073
 14.1102 +#define GL_SAMPLER_3D_OES                                       0x8B5F
 14.1103 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES        0x8CD4
 14.1104 +#endif
 14.1105 +
 14.1106 +/* GL_OES_texture_float */
 14.1107 +/* No new tokens introduced by this extension. */
 14.1108 +
 14.1109 +/* GL_OES_texture_float_linear */
 14.1110 +/* No new tokens introduced by this extension. */
 14.1111 +
 14.1112 +/* GL_OES_texture_half_float */
 14.1113 +#ifndef GL_OES_texture_half_float
 14.1114 +#define GL_HALF_FLOAT_OES                                       0x8D61
 14.1115 +#endif
 14.1116 +
 14.1117 +/* GL_OES_texture_half_float_linear */
 14.1118 +/* No new tokens introduced by this extension. */
 14.1119 +
 14.1120 +/* GL_OES_texture_npot */
 14.1121 +/* No new tokens introduced by this extension. */
 14.1122 +
 14.1123 +/* GL_OES_vertex_array_object */
 14.1124 +#ifndef GL_OES_vertex_array_object
 14.1125 +#define GL_VERTEX_ARRAY_BINDING_OES                             0x85B5
 14.1126 +#endif
 14.1127 +
 14.1128 +/* GL_OES_vertex_half_float */
 14.1129 +/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
 14.1130 +
 14.1131 +/* GL_OES_vertex_type_10_10_10_2 */
 14.1132 +#ifndef GL_OES_vertex_type_10_10_10_2
 14.1133 +#define GL_UNSIGNED_INT_10_10_10_2_OES                          0x8DF6
 14.1134 +#define GL_INT_10_10_10_2_OES                                   0x8DF7
 14.1135 +#endif
 14.1136 +
 14.1137 +/*------------------------------------------------------------------------*
 14.1138 + * KHR extension tokens
 14.1139 + *------------------------------------------------------------------------*/
 14.1140 +
 14.1141 +#ifndef GL_KHR_debug
 14.1142 +typedef void (GL_APIENTRYP GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
 14.1143 +#define GL_DEBUG_OUTPUT_SYNCHRONOUS                             0x8242
 14.1144 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH                     0x8243
 14.1145 +#define GL_DEBUG_CALLBACK_FUNCTION                              0x8244
 14.1146 +#define GL_DEBUG_CALLBACK_USER_PARAM                            0x8245
 14.1147 +#define GL_DEBUG_SOURCE_API                                     0x8246
 14.1148 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM                           0x8247
 14.1149 +#define GL_DEBUG_SOURCE_SHADER_COMPILER                         0x8248
 14.1150 +#define GL_DEBUG_SOURCE_THIRD_PARTY                             0x8249
 14.1151 +#define GL_DEBUG_SOURCE_APPLICATION                             0x824A
 14.1152 +#define GL_DEBUG_SOURCE_OTHER                                   0x824B
 14.1153 +#define GL_DEBUG_TYPE_ERROR                                     0x824C
 14.1154 +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR                       0x824D
 14.1155 +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR                        0x824E
 14.1156 +#define GL_DEBUG_TYPE_PORTABILITY                               0x824F
 14.1157 +#define GL_DEBUG_TYPE_PERFORMANCE                               0x8250
 14.1158 +#define GL_DEBUG_TYPE_OTHER                                     0x8251
 14.1159 +#define GL_DEBUG_TYPE_MARKER                                    0x8268
 14.1160 +#define GL_DEBUG_TYPE_PUSH_GROUP                                0x8269
 14.1161 +#define GL_DEBUG_TYPE_POP_GROUP                                 0x826A
 14.1162 +#define GL_DEBUG_SEVERITY_NOTIFICATION                          0x826B
 14.1163 +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH                          0x826C
 14.1164 +#define GL_DEBUG_GROUP_STACK_DEPTH                              0x826D
 14.1165 +#define GL_BUFFER                                               0x82E0
 14.1166 +#define GL_SHADER                                               0x82E1
 14.1167 +#define GL_PROGRAM                                              0x82E2
 14.1168 +#define GL_QUERY                                                0x82E3
 14.1169 +/* PROGRAM_PIPELINE only in GL */                               
 14.1170 +#define GL_SAMPLER                                              0x82E6
 14.1171 +/* DISPLAY_LIST only in GL */                                   
 14.1172 +#define GL_MAX_LABEL_LENGTH                                     0x82E8
 14.1173 +#define GL_MAX_DEBUG_MESSAGE_LENGTH                             0x9143
 14.1174 +#define GL_MAX_DEBUG_LOGGED_MESSAGES                            0x9144
 14.1175 +#define GL_DEBUG_LOGGED_MESSAGES                                0x9145
 14.1176 +#define GL_DEBUG_SEVERITY_HIGH                                  0x9146
 14.1177 +#define GL_DEBUG_SEVERITY_MEDIUM                                0x9147
 14.1178 +#define GL_DEBUG_SEVERITY_LOW                                   0x9148
 14.1179 +#define GL_DEBUG_OUTPUT                                         0x92E0
 14.1180 +#define GL_CONTEXT_FLAG_DEBUG_BIT                               0x00000002
 14.1181 +#define GL_STACK_OVERFLOW                                       0x0503
 14.1182 +#define GL_STACK_UNDERFLOW                                      0x0504
 14.1183 +#endif
 14.1184 +
 14.1185 +#ifndef GL_KHR_texture_compression_astc_ldr
 14.1186 +#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR                         0x93B0
 14.1187 +#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR                         0x93B1
 14.1188 +#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR                         0x93B2
 14.1189 +#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR                         0x93B3
 14.1190 +#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR                         0x93B4
 14.1191 +#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR                         0x93B5
 14.1192 +#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR                         0x93B6
 14.1193 +#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR                         0x93B7
 14.1194 +#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR                        0x93B8
 14.1195 +#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR                        0x93B9
 14.1196 +#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR                        0x93BA
 14.1197 +#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR                       0x93BB
 14.1198 +#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR                       0x93BC
 14.1199 +#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR                       0x93BD
 14.1200 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR                 0x93D0
 14.1201 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR                 0x93D1
 14.1202 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR                 0x93D2
 14.1203 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR                 0x93D3
 14.1204 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR                 0x93D4
 14.1205 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR                 0x93D5
 14.1206 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR                 0x93D6
 14.1207 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR                 0x93D7
 14.1208 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR                0x93D8
 14.1209 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR                0x93D9
 14.1210 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR                0x93DA
 14.1211 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR               0x93DB
 14.1212 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR               0x93DC
 14.1213 +#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR               0x93DD
 14.1214 +#endif
 14.1215 +
 14.1216 +/*------------------------------------------------------------------------*
 14.1217 + * AMD extension tokens
 14.1218 + *------------------------------------------------------------------------*/
 14.1219 +
 14.1220 +/* GL_AMD_compressed_3DC_texture */
 14.1221 +#ifndef GL_AMD_compressed_3DC_texture
 14.1222 +#define GL_3DC_X_AMD                                            0x87F9
 14.1223 +#define GL_3DC_XY_AMD                                           0x87FA
 14.1224 +#endif
 14.1225 +
 14.1226 +/* GL_AMD_compressed_ATC_texture */
 14.1227 +#ifndef GL_AMD_compressed_ATC_texture
 14.1228 +#define GL_ATC_RGB_AMD                                          0x8C92
 14.1229 +#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                          0x8C93
 14.1230 +#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                      0x87EE
 14.1231 +#endif
 14.1232 +
 14.1233 +/* GL_AMD_performance_monitor */
 14.1234 +#ifndef GL_AMD_performance_monitor
 14.1235 +#define GL_COUNTER_TYPE_AMD                                     0x8BC0
 14.1236 +#define GL_COUNTER_RANGE_AMD                                    0x8BC1
 14.1237 +#define GL_UNSIGNED_INT64_AMD                                   0x8BC2
 14.1238 +#define GL_PERCENTAGE_AMD                                       0x8BC3
 14.1239 +#define GL_PERFMON_RESULT_AVAILABLE_AMD                         0x8BC4
 14.1240 +#define GL_PERFMON_RESULT_SIZE_AMD                              0x8BC5
 14.1241 +#define GL_PERFMON_RESULT_AMD                                   0x8BC6
 14.1242 +#endif
 14.1243 +
 14.1244 +/* GL_AMD_program_binary_Z400 */
 14.1245 +#ifndef GL_AMD_program_binary_Z400
 14.1246 +#define GL_Z400_BINARY_AMD                                      0x8740
 14.1247 +#endif
 14.1248 +
 14.1249 +/*------------------------------------------------------------------------*
 14.1250 + * ANGLE extension tokens
 14.1251 + *------------------------------------------------------------------------*/
 14.1252 +
 14.1253 +/* GL_ANGLE_framebuffer_blit */
 14.1254 +#ifndef GL_ANGLE_framebuffer_blit
 14.1255 +#define GL_READ_FRAMEBUFFER_ANGLE                               0x8CA8
 14.1256 +#define GL_DRAW_FRAMEBUFFER_ANGLE                               0x8CA9
 14.1257 +#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE                       0x8CA6
 14.1258 +#define GL_READ_FRAMEBUFFER_BINDING_ANGLE                       0x8CAA
 14.1259 +#endif
 14.1260 +
 14.1261 +/* GL_ANGLE_framebuffer_multisample */
 14.1262 +#ifndef GL_ANGLE_framebuffer_multisample
 14.1263 +#define GL_RENDERBUFFER_SAMPLES_ANGLE                           0x8CAB
 14.1264 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE             0x8D56
 14.1265 +#define GL_MAX_SAMPLES_ANGLE                                    0x8D57
 14.1266 +#endif
 14.1267 +
 14.1268 +/* GL_ANGLE_instanced_arrays */
 14.1269 +#ifndef GL_ANGLE_instanced_arrays 
 14.1270 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE                    0x88FE
 14.1271 +#endif
 14.1272 +
 14.1273 +/* GL_ANGLE_pack_reverse_row_order */
 14.1274 +#ifndef GL_ANGLE_pack_reverse_row_order 
 14.1275 +#define GL_PACK_REVERSE_ROW_ORDER_ANGLE                         0x93A4
 14.1276 +#endif
 14.1277 +
 14.1278 +/* GL_ANGLE_texture_compression_dxt3 */
 14.1279 +#ifndef GL_ANGLE_texture_compression_dxt3 
 14.1280 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE                      0x83F2
 14.1281 +#endif
 14.1282 +
 14.1283 +/* GL_ANGLE_texture_compression_dxt5 */
 14.1284 +#ifndef GL_ANGLE_texture_compression_dxt5 
 14.1285 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE                      0x83F3
 14.1286 +#endif
 14.1287 +
 14.1288 +/* GL_ANGLE_texture_usage */
 14.1289 +#ifndef GL_ANGLE_texture_usage 
 14.1290 +#define GL_TEXTURE_USAGE_ANGLE                                  0x93A2
 14.1291 +#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE                         0x93A3
 14.1292 +#endif
 14.1293 +
 14.1294 +/* GL_ANGLE_translated_shader_source */
 14.1295 +#ifndef GL_ANGLE_translated_shader_source 
 14.1296 +#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE                0x93A0
 14.1297 +#endif
 14.1298 +
 14.1299 +/*------------------------------------------------------------------------*
 14.1300 + * APPLE extension tokens
 14.1301 + *------------------------------------------------------------------------*/
 14.1302 +
 14.1303 +/* GL_APPLE_copy_texture_levels */
 14.1304 +/* No new tokens introduced by this extension. */
 14.1305 +    
 14.1306 +/* GL_APPLE_framebuffer_multisample */
 14.1307 +#ifndef GL_APPLE_framebuffer_multisample
 14.1308 +#define GL_RENDERBUFFER_SAMPLES_APPLE                           0x8CAB
 14.1309 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE             0x8D56
 14.1310 +#define GL_MAX_SAMPLES_APPLE                                    0x8D57
 14.1311 +#define GL_READ_FRAMEBUFFER_APPLE                               0x8CA8
 14.1312 +#define GL_DRAW_FRAMEBUFFER_APPLE                               0x8CA9
 14.1313 +#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE                       0x8CA6
 14.1314 +#define GL_READ_FRAMEBUFFER_BINDING_APPLE                       0x8CAA
 14.1315 +#endif
 14.1316 +
 14.1317 +/* GL_APPLE_rgb_422 */
 14.1318 +#ifndef GL_APPLE_rgb_422
 14.1319 +#define GL_RGB_422_APPLE                                        0x8A1F
 14.1320 +#define GL_UNSIGNED_SHORT_8_8_APPLE                             0x85BA
 14.1321 +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE                         0x85BB
 14.1322 +#endif
 14.1323 +
 14.1324 +/* GL_APPLE_sync */
 14.1325 +#ifndef GL_APPLE_sync
 14.1326 +
 14.1327 +#ifndef __gl3_h_
 14.1328 +/* These types are defined with reference to <inttypes.h>
 14.1329 + * in the Apple extension spec, but here we use the Khronos
 14.1330 + * portable types in khrplatform.h, and assume those types 
 14.1331 + * are always defined.
 14.1332 + * If any other extensions using these types are defined, 
 14.1333 + * the typedefs must move out of this block and be shared.
 14.1334 + */
 14.1335 +typedef khronos_int64_t GLint64;
 14.1336 +typedef khronos_uint64_t GLuint64;
 14.1337 +typedef struct __GLsync *GLsync;
 14.1338 +#endif
 14.1339 +
 14.1340 +#define GL_SYNC_OBJECT_APPLE                                    0x8A53
 14.1341 +#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE                        0x9111
 14.1342 +#define GL_OBJECT_TYPE_APPLE                                    0x9112
 14.1343 +#define GL_SYNC_CONDITION_APPLE                                 0x9113
 14.1344 +#define GL_SYNC_STATUS_APPLE                                    0x9114
 14.1345 +#define GL_SYNC_FLAGS_APPLE                                     0x9115
 14.1346 +#define GL_SYNC_FENCE_APPLE                                     0x9116
 14.1347 +#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE                     0x9117
 14.1348 +#define GL_UNSIGNALED_APPLE                                     0x9118
 14.1349 +#define GL_SIGNALED_APPLE                                       0x9119
 14.1350 +#define GL_ALREADY_SIGNALED_APPLE                               0x911A
 14.1351 +#define GL_TIMEOUT_EXPIRED_APPLE                                0x911B
 14.1352 +#define GL_CONDITION_SATISFIED_APPLE                            0x911C
 14.1353 +#define GL_WAIT_FAILED_APPLE                                    0x911D
 14.1354 +#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE                        0x00000001
 14.1355 +#define GL_TIMEOUT_IGNORED_APPLE                                0xFFFFFFFFFFFFFFFFull
 14.1356 +#endif
 14.1357 +
 14.1358 +/* GL_APPLE_texture_format_BGRA8888 */
 14.1359 +#ifndef GL_APPLE_texture_format_BGRA8888
 14.1360 +#define GL_BGRA_EXT                                             0x80E1
 14.1361 +#endif
 14.1362 +
 14.1363 +/* GL_APPLE_texture_max_level */
 14.1364 +#ifndef GL_APPLE_texture_max_level
 14.1365 +#define GL_TEXTURE_MAX_LEVEL_APPLE                              0x813D
 14.1366 +#endif
 14.1367 +
 14.1368 +/*------------------------------------------------------------------------*
 14.1369 + * ARM extension tokens
 14.1370 + *------------------------------------------------------------------------*/
 14.1371 +
 14.1372 +/* GL_ARM_mali_program_binary */
 14.1373 +#ifndef GL_ARM_mali_program_binary
 14.1374 +#define GL_MALI_PROGRAM_BINARY_ARM                              0x8F61
 14.1375 +#endif
 14.1376 +
 14.1377 +/* GL_ARM_mali_shader_binary */
 14.1378 +#ifndef GL_ARM_mali_shader_binary
 14.1379 +#define GL_MALI_SHADER_BINARY_ARM                               0x8F60
 14.1380 +#endif
 14.1381 +
 14.1382 +/* GL_ARM_rgba8 */
 14.1383 +/* No new tokens introduced by this extension. */
 14.1384 +
 14.1385 +/*------------------------------------------------------------------------*
 14.1386 + * EXT extension tokens
 14.1387 + *------------------------------------------------------------------------*/
 14.1388 +
 14.1389 +/* GL_EXT_blend_minmax */
 14.1390 +#ifndef GL_EXT_blend_minmax
 14.1391 +#define GL_MIN_EXT                                              0x8007
 14.1392 +#define GL_MAX_EXT                                              0x8008
 14.1393 +#endif
 14.1394 +
 14.1395 +/* GL_EXT_color_buffer_half_float */
 14.1396 +#ifndef GL_EXT_color_buffer_half_float
 14.1397 +#define GL_RGBA16F_EXT                                          0x881A
 14.1398 +#define GL_RGB16F_EXT                                           0x881B
 14.1399 +#define GL_RG16F_EXT                                            0x822F
 14.1400 +#define GL_R16F_EXT                                             0x822D
 14.1401 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT            0x8211
 14.1402 +#define GL_UNSIGNED_NORMALIZED_EXT                              0x8C17
 14.1403 +#endif
 14.1404 +
 14.1405 +/* GL_EXT_debug_label */
 14.1406 +#ifndef GL_EXT_debug_label
 14.1407 +#define GL_PROGRAM_PIPELINE_OBJECT_EXT                          0x8A4F
 14.1408 +#define GL_PROGRAM_OBJECT_EXT                                   0x8B40
 14.1409 +#define GL_SHADER_OBJECT_EXT                                    0x8B48
 14.1410 +#define GL_BUFFER_OBJECT_EXT                                    0x9151
 14.1411 +#define GL_QUERY_OBJECT_EXT                                     0x9153
 14.1412 +#define GL_VERTEX_ARRAY_OBJECT_EXT                              0x9154
 14.1413 +#endif
 14.1414 +
 14.1415 +/* GL_EXT_debug_marker */
 14.1416 +/* No new tokens introduced by this extension. */
 14.1417 +
 14.1418 +/* GL_EXT_discard_framebuffer */
 14.1419 +#ifndef GL_EXT_discard_framebuffer
 14.1420 +#define GL_COLOR_EXT                                            0x1800
 14.1421 +#define GL_DEPTH_EXT                                            0x1801
 14.1422 +#define GL_STENCIL_EXT                                          0x1802
 14.1423 +#endif
 14.1424 +
 14.1425 +/* GL_EXT_map_buffer_range */
 14.1426 +#ifndef GL_EXT_map_buffer_range
 14.1427 +#define GL_MAP_READ_BIT_EXT                                     0x0001
 14.1428 +#define GL_MAP_WRITE_BIT_EXT                                    0x0002
 14.1429 +#define GL_MAP_INVALIDATE_RANGE_BIT_EXT                         0x0004
 14.1430 +#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT                        0x0008
 14.1431 +#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT                           0x0010
 14.1432 +#define GL_MAP_UNSYNCHRONIZED_BIT_EXT                           0x0020
 14.1433 +#endif
 14.1434 +
 14.1435 +/* GL_EXT_multisampled_render_to_texture */
 14.1436 +#ifndef GL_EXT_multisampled_render_to_texture
 14.1437 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT           0x8D6C
 14.1438 +/* reuse values from GL_EXT_framebuffer_multisample (desktop extension) */ 
 14.1439 +#define GL_RENDERBUFFER_SAMPLES_EXT                             0x8CAB
 14.1440 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT               0x8D56
 14.1441 +#define GL_MAX_SAMPLES_EXT                                      0x8D57
 14.1442 +#endif
 14.1443 +
 14.1444 +/* GL_EXT_multiview_draw_buffers */
 14.1445 +#ifndef GL_EXT_multiview_draw_buffers
 14.1446 +#define GL_COLOR_ATTACHMENT_EXT                                 0x90F0
 14.1447 +#define GL_MULTIVIEW_EXT                                        0x90F1
 14.1448 +#define GL_DRAW_BUFFER_EXT                                      0x0C01
 14.1449 +#define GL_READ_BUFFER_EXT                                      0x0C02
 14.1450 +#define GL_MAX_MULTIVIEW_BUFFERS_EXT                            0x90F2
 14.1451 +#endif
 14.1452 +
 14.1453 +/* GL_EXT_multi_draw_arrays */
 14.1454 +/* No new tokens introduced by this extension. */
 14.1455 +
 14.1456 +/* GL_EXT_occlusion_query_boolean */
 14.1457 +#ifndef GL_EXT_occlusion_query_boolean
 14.1458 +#define GL_ANY_SAMPLES_PASSED_EXT                               0x8C2F
 14.1459 +#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT                  0x8D6A
 14.1460 +#define GL_CURRENT_QUERY_EXT                                    0x8865
 14.1461 +#define GL_QUERY_RESULT_EXT                                     0x8866
 14.1462 +#define GL_QUERY_RESULT_AVAILABLE_EXT                           0x8867
 14.1463 +#endif
 14.1464 +
 14.1465 +/* GL_EXT_read_format_bgra */
 14.1466 +#ifndef GL_EXT_read_format_bgra
 14.1467 +#define GL_BGRA_EXT                                             0x80E1
 14.1468 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                       0x8365
 14.1469 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                       0x8366
 14.1470 +#endif
 14.1471 +
 14.1472 +/* GL_EXT_robustness */
 14.1473 +#ifndef GL_EXT_robustness
 14.1474 +/* reuse GL_NO_ERROR */
 14.1475 +#define GL_GUILTY_CONTEXT_RESET_EXT                             0x8253
 14.1476 +#define GL_INNOCENT_CONTEXT_RESET_EXT                           0x8254
 14.1477 +#define GL_UNKNOWN_CONTEXT_RESET_EXT                            0x8255
 14.1478 +#define GL_CONTEXT_ROBUST_ACCESS_EXT                            0x90F3
 14.1479 +#define GL_RESET_NOTIFICATION_STRATEGY_EXT                      0x8256
 14.1480 +#define GL_LOSE_CONTEXT_ON_RESET_EXT                            0x8252
 14.1481 +#define GL_NO_RESET_NOTIFICATION_EXT                            0x8261
 14.1482 +#endif
 14.1483 +
 14.1484 +/* GL_EXT_separate_shader_objects */
 14.1485 +#ifndef GL_EXT_separate_shader_objects
 14.1486 +#define GL_VERTEX_SHADER_BIT_EXT                                0x00000001
 14.1487 +#define GL_FRAGMENT_SHADER_BIT_EXT                              0x00000002
 14.1488 +#define GL_ALL_SHADER_BITS_EXT                                  0xFFFFFFFF
 14.1489 +#define GL_PROGRAM_SEPARABLE_EXT                                0x8258
 14.1490 +#define GL_ACTIVE_PROGRAM_EXT                                   0x8259
 14.1491 +#define GL_PROGRAM_PIPELINE_BINDING_EXT                         0x825A
 14.1492 +#endif
 14.1493 +
 14.1494 +/* GL_EXT_shader_framebuffer_fetch */
 14.1495 +#ifndef GL_EXT_shader_framebuffer_fetch
 14.1496 +#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT                 0x8A52
 14.1497 +#endif
 14.1498 +
 14.1499 +/* GL_EXT_shader_texture_lod */
 14.1500 +/* No new tokens introduced by this extension. */
 14.1501 +
 14.1502 +/* GL_EXT_shadow_samplers */
 14.1503 +#ifndef GL_EXT_shadow_samplers
 14.1504 +#define GL_TEXTURE_COMPARE_MODE_EXT                             0x884C
 14.1505 +#define GL_TEXTURE_COMPARE_FUNC_EXT                             0x884D
 14.1506 +#define GL_COMPARE_REF_TO_TEXTURE_EXT                           0x884E
 14.1507 +#define GL_SAMPLER_2D_SHADOW_EXT                                0x8B62
 14.1508 +#endif
 14.1509 +
 14.1510 +/* GL_EXT_sRGB */
 14.1511 +#ifndef GL_EXT_sRGB
 14.1512 +#define GL_SRGB_EXT                                             0x8C40
 14.1513 +#define GL_SRGB_ALPHA_EXT                                       0x8C42
 14.1514 +#define GL_SRGB8_ALPHA8_EXT                                     0x8C43
 14.1515 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT            0x8210
 14.1516 +#endif
 14.1517 +
 14.1518 +/* GL_EXT_texture_compression_dxt1 */
 14.1519 +#ifndef GL_EXT_texture_compression_dxt1
 14.1520 +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT                         0x83F0
 14.1521 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT                        0x83F1
 14.1522 +#endif
 14.1523 +
 14.1524 +/* GL_EXT_texture_filter_anisotropic */
 14.1525 +#ifndef GL_EXT_texture_filter_anisotropic
 14.1526 +#define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
 14.1527 +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
 14.1528 +#endif
 14.1529 +
 14.1530 +/* GL_EXT_texture_format_BGRA8888 */
 14.1531 +#ifndef GL_EXT_texture_format_BGRA8888
 14.1532 +#define GL_BGRA_EXT                                             0x80E1
 14.1533 +#endif
 14.1534 +
 14.1535 +/* GL_EXT_texture_rg */
 14.1536 +#ifndef GL_EXT_texture_rg
 14.1537 +#define GL_RED_EXT                                              0x1903
 14.1538 +#define GL_RG_EXT                                               0x8227
 14.1539 +#define GL_R8_EXT                                               0x8229
 14.1540 +#define GL_RG8_EXT                                              0x822B
 14.1541 +#endif
 14.1542 +
 14.1543 +/* GL_EXT_texture_storage */
 14.1544 +#ifndef GL_EXT_texture_storage
 14.1545 +#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT                         0x912F
 14.1546 +#define GL_ALPHA8_EXT                                           0x803C  
 14.1547 +#define GL_LUMINANCE8_EXT                                       0x8040
 14.1548 +#define GL_LUMINANCE8_ALPHA8_EXT                                0x8045
 14.1549 +#define GL_RGBA32F_EXT                                          0x8814  
 14.1550 +#define GL_RGB32F_EXT                                           0x8815
 14.1551 +#define GL_ALPHA32F_EXT                                         0x8816
 14.1552 +#define GL_LUMINANCE32F_EXT                                     0x8818
 14.1553 +#define GL_LUMINANCE_ALPHA32F_EXT                               0x8819
 14.1554 +/* reuse GL_RGBA16F_EXT */
 14.1555 +/* reuse GL_RGB16F_EXT */
 14.1556 +#define GL_ALPHA16F_EXT                                         0x881C
 14.1557 +#define GL_LUMINANCE16F_EXT                                     0x881E
 14.1558 +#define GL_LUMINANCE_ALPHA16F_EXT                               0x881F
 14.1559 +#define GL_RGB10_A2_EXT                                         0x8059  
 14.1560 +#define GL_RGB10_EXT                                            0x8052
 14.1561 +#define GL_BGRA8_EXT                                            0x93A1
 14.1562 +#define GL_R8_EXT                                               0x8229
 14.1563 +#define GL_RG8_EXT                                              0x822B
 14.1564 +#define GL_R32F_EXT                                             0x822E  
 14.1565 +#define GL_RG32F_EXT                                            0x8230
 14.1566 +#define GL_R16F_EXT                                             0x822D
 14.1567 +#define GL_RG16F_EXT                                            0x822F
 14.1568 +#endif
 14.1569 +
 14.1570 +/* GL_EXT_texture_type_2_10_10_10_REV */
 14.1571 +#ifndef GL_EXT_texture_type_2_10_10_10_REV
 14.1572 +#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT                      0x8368
 14.1573 +#endif
 14.1574 +
 14.1575 +/* GL_EXT_unpack_subimage */
 14.1576 +#ifndef GL_EXT_unpack_subimage
 14.1577 +#define GL_UNPACK_ROW_LENGTH                                    0x0CF2
 14.1578 +#define GL_UNPACK_SKIP_ROWS                                     0x0CF3
 14.1579 +#define GL_UNPACK_SKIP_PIXELS                                   0x0CF4
 14.1580 +#endif
 14.1581 +
 14.1582 +/*------------------------------------------------------------------------*
 14.1583 + * DMP extension tokens
 14.1584 + *------------------------------------------------------------------------*/
 14.1585 +
 14.1586 +/* GL_DMP_shader_binary */
 14.1587 +#ifndef GL_DMP_shader_binary
 14.1588 +#define GL_SHADER_BINARY_DMP                                    0x9250
 14.1589 +#endif
 14.1590 +
 14.1591 +/*------------------------------------------------------------------------*
 14.1592 + * FJ extension tokens
 14.1593 + *------------------------------------------------------------------------*/
 14.1594 +
 14.1595 +/* GL_FJ_shader_binary_GCCSO */
 14.1596 +#ifndef GL_FJ_shader_binary_GCCSO
 14.1597 +#define GCCSO_SHADER_BINARY_FJ                                  0x9260
 14.1598 +#endif
 14.1599 +
 14.1600 +/*------------------------------------------------------------------------*
 14.1601 + * IMG extension tokens
 14.1602 + *------------------------------------------------------------------------*/
 14.1603 +
 14.1604 +/* GL_IMG_program_binary */
 14.1605 +#ifndef GL_IMG_program_binary
 14.1606 +#define GL_SGX_PROGRAM_BINARY_IMG                               0x9130
 14.1607 +#endif
 14.1608 +
 14.1609 +/* GL_IMG_read_format */
 14.1610 +#ifndef GL_IMG_read_format
 14.1611 +#define GL_BGRA_IMG                                             0x80E1
 14.1612 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                       0x8365
 14.1613 +#endif
 14.1614 +
 14.1615 +/* GL_IMG_shader_binary */
 14.1616 +#ifndef GL_IMG_shader_binary
 14.1617 +#define GL_SGX_BINARY_IMG                                       0x8C0A
 14.1618 +#endif
 14.1619 +
 14.1620 +/* GL_IMG_texture_compression_pvrtc */
 14.1621 +#ifndef GL_IMG_texture_compression_pvrtc
 14.1622 +#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                      0x8C00
 14.1623 +#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                      0x8C01
 14.1624 +#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                     0x8C02
 14.1625 +#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                     0x8C03
 14.1626 +#endif
 14.1627 +
 14.1628 +/* GL_IMG_multisampled_render_to_texture */
 14.1629 +#ifndef GL_IMG_multisampled_render_to_texture
 14.1630 +#define GL_RENDERBUFFER_SAMPLES_IMG                             0x9133
 14.1631 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG               0x9134
 14.1632 +#define GL_MAX_SAMPLES_IMG                                      0x9135
 14.1633 +#define GL_TEXTURE_SAMPLES_IMG                                  0x9136
 14.1634 +#endif
 14.1635 +
 14.1636 +/*------------------------------------------------------------------------*
 14.1637 + * NV extension tokens
 14.1638 + *------------------------------------------------------------------------*/
 14.1639 +
 14.1640 +/* GL_NV_coverage_sample */
 14.1641 +#ifndef GL_NV_coverage_sample
 14.1642 +#define GL_COVERAGE_COMPONENT_NV                                0x8ED0
 14.1643 +#define GL_COVERAGE_COMPONENT4_NV                               0x8ED1
 14.1644 +#define GL_COVERAGE_ATTACHMENT_NV                               0x8ED2
 14.1645 +#define GL_COVERAGE_BUFFERS_NV                                  0x8ED3
 14.1646 +#define GL_COVERAGE_SAMPLES_NV                                  0x8ED4
 14.1647 +#define GL_COVERAGE_ALL_FRAGMENTS_NV                            0x8ED5
 14.1648 +#define GL_COVERAGE_EDGE_FRAGMENTS_NV                           0x8ED6
 14.1649 +#define GL_COVERAGE_AUTOMATIC_NV                                0x8ED7
 14.1650 +#define GL_COVERAGE_BUFFER_BIT_NV                               0x8000
 14.1651 +#endif
 14.1652 +
 14.1653 +/* GL_NV_depth_nonlinear */
 14.1654 +#ifndef GL_NV_depth_nonlinear
 14.1655 +#define GL_DEPTH_COMPONENT16_NONLINEAR_NV                       0x8E2C
 14.1656 +#endif
 14.1657 +
 14.1658 +/* GL_NV_draw_buffers */
 14.1659 +#ifndef GL_NV_draw_buffers
 14.1660 +#define GL_MAX_DRAW_BUFFERS_NV                                  0x8824
 14.1661 +#define GL_DRAW_BUFFER0_NV                                      0x8825
 14.1662 +#define GL_DRAW_BUFFER1_NV                                      0x8826
 14.1663 +#define GL_DRAW_BUFFER2_NV                                      0x8827
 14.1664 +#define GL_DRAW_BUFFER3_NV                                      0x8828
 14.1665 +#define GL_DRAW_BUFFER4_NV                                      0x8829
 14.1666 +#define GL_DRAW_BUFFER5_NV                                      0x882A
 14.1667 +#define GL_DRAW_BUFFER6_NV                                      0x882B
 14.1668 +#define GL_DRAW_BUFFER7_NV                                      0x882C
 14.1669 +#define GL_DRAW_BUFFER8_NV                                      0x882D
 14.1670 +#define GL_DRAW_BUFFER9_NV                                      0x882E
 14.1671 +#define GL_DRAW_BUFFER10_NV                                     0x882F
 14.1672 +#define GL_DRAW_BUFFER11_NV                                     0x8830
 14.1673 +#define GL_DRAW_BUFFER12_NV                                     0x8831
 14.1674 +#define GL_DRAW_BUFFER13_NV                                     0x8832
 14.1675 +#define GL_DRAW_BUFFER14_NV                                     0x8833
 14.1676 +#define GL_DRAW_BUFFER15_NV                                     0x8834
 14.1677 +#define GL_COLOR_ATTACHMENT0_NV                                 0x8CE0
 14.1678 +#define GL_COLOR_ATTACHMENT1_NV                                 0x8CE1
 14.1679 +#define GL_COLOR_ATTACHMENT2_NV                                 0x8CE2
 14.1680 +#define GL_COLOR_ATTACHMENT3_NV                                 0x8CE3
 14.1681 +#define GL_COLOR_ATTACHMENT4_NV                                 0x8CE4
 14.1682 +#define GL_COLOR_ATTACHMENT5_NV                                 0x8CE5
 14.1683 +#define GL_COLOR_ATTACHMENT6_NV                                 0x8CE6
 14.1684 +#define GL_COLOR_ATTACHMENT7_NV                                 0x8CE7
 14.1685 +#define GL_COLOR_ATTACHMENT8_NV                                 0x8CE8
 14.1686 +#define GL_COLOR_ATTACHMENT9_NV                                 0x8CE9
 14.1687 +#define GL_COLOR_ATTACHMENT10_NV                                0x8CEA
 14.1688 +#define GL_COLOR_ATTACHMENT11_NV                                0x8CEB
 14.1689 +#define GL_COLOR_ATTACHMENT12_NV                                0x8CEC
 14.1690 +#define GL_COLOR_ATTACHMENT13_NV                                0x8CED
 14.1691 +#define GL_COLOR_ATTACHMENT14_NV                                0x8CEE
 14.1692 +#define GL_COLOR_ATTACHMENT15_NV                                0x8CEF
 14.1693 +#endif
 14.1694 +
 14.1695 +/* GL_NV_fbo_color_attachments */
 14.1696 +#ifndef GL_NV_fbo_color_attachments
 14.1697 +#define GL_MAX_COLOR_ATTACHMENTS_NV                             0x8CDF
 14.1698 +/* GL_COLOR_ATTACHMENT{0-15}_NV defined in GL_NV_draw_buffers already. */
 14.1699 +#endif
 14.1700 +
 14.1701 +/* GL_NV_fence */
 14.1702 +#ifndef GL_NV_fence
 14.1703 +#define GL_ALL_COMPLETED_NV                                     0x84F2
 14.1704 +#define GL_FENCE_STATUS_NV                                      0x84F3
 14.1705 +#define GL_FENCE_CONDITION_NV                                   0x84F4
 14.1706 +#endif
 14.1707 +
 14.1708 +/* GL_NV_read_buffer */
 14.1709 +#ifndef GL_NV_read_buffer
 14.1710 +#define GL_READ_BUFFER_NV                                       0x0C02
 14.1711 +#endif
 14.1712 +
 14.1713 +/* GL_NV_read_buffer_front */
 14.1714 +/* No new tokens introduced by this extension. */
 14.1715 +
 14.1716 +/* GL_NV_read_depth */
 14.1717 +/* No new tokens introduced by this extension. */
 14.1718 +
 14.1719 +/* GL_NV_read_depth_stencil */
 14.1720 +/* No new tokens introduced by this extension. */
 14.1721 +
 14.1722 +/* GL_NV_read_stencil */
 14.1723 +/* No new tokens introduced by this extension. */
 14.1724 +
 14.1725 +/* GL_NV_texture_compression_s3tc_update */
 14.1726 +/* No new tokens introduced by this extension. */
 14.1727 +
 14.1728 +/* GL_NV_texture_npot_2D_mipmap */
 14.1729 +/* No new tokens introduced by this extension. */
 14.1730 +
 14.1731 +/*------------------------------------------------------------------------*
 14.1732 + * QCOM extension tokens
 14.1733 + *------------------------------------------------------------------------*/
 14.1734 +
 14.1735 +/* GL_QCOM_alpha_test */
 14.1736 +#ifndef GL_QCOM_alpha_test
 14.1737 +#define GL_ALPHA_TEST_QCOM                                      0x0BC0
 14.1738 +#define GL_ALPHA_TEST_FUNC_QCOM                                 0x0BC1
 14.1739 +#define GL_ALPHA_TEST_REF_QCOM                                  0x0BC2
 14.1740 +#endif
 14.1741 +
 14.1742 +/* GL_QCOM_binning_control */
 14.1743 +#ifndef GL_QCOM_binning_control
 14.1744 +#define GL_BINNING_CONTROL_HINT_QCOM                            0x8FB0
 14.1745 +#define GL_CPU_OPTIMIZED_QCOM                                   0x8FB1
 14.1746 +#define GL_GPU_OPTIMIZED_QCOM                                   0x8FB2
 14.1747 +#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM                    0x8FB3
 14.1748 +#endif
 14.1749 +
 14.1750 +/* GL_QCOM_driver_control */
 14.1751 +/* No new tokens introduced by this extension. */
 14.1752 +
 14.1753 +/* GL_QCOM_extended_get */
 14.1754 +#ifndef GL_QCOM_extended_get
 14.1755 +#define GL_TEXTURE_WIDTH_QCOM                                   0x8BD2
 14.1756 +#define GL_TEXTURE_HEIGHT_QCOM                                  0x8BD3
 14.1757 +#define GL_TEXTURE_DEPTH_QCOM                                   0x8BD4
 14.1758 +#define GL_TEXTURE_INTERNAL_FORMAT_QCOM                         0x8BD5
 14.1759 +#define GL_TEXTURE_FORMAT_QCOM                                  0x8BD6
 14.1760 +#define GL_TEXTURE_TYPE_QCOM                                    0x8BD7
 14.1761 +#define GL_TEXTURE_IMAGE_VALID_QCOM                             0x8BD8
 14.1762 +#define GL_TEXTURE_NUM_LEVELS_QCOM                              0x8BD9
 14.1763 +#define GL_TEXTURE_TARGET_QCOM                                  0x8BDA
 14.1764 +#define GL_TEXTURE_OBJECT_VALID_QCOM                            0x8BDB
 14.1765 +#define GL_STATE_RESTORE                                        0x8BDC
 14.1766 +#endif
 14.1767 +
 14.1768 +/* GL_QCOM_extended_get2 */
 14.1769 +/* No new tokens introduced by this extension. */
 14.1770 +
 14.1771 +/* GL_QCOM_perfmon_global_mode */
 14.1772 +#ifndef GL_QCOM_perfmon_global_mode
 14.1773 +#define GL_PERFMON_GLOBAL_MODE_QCOM                             0x8FA0
 14.1774 +#endif
 14.1775 +
 14.1776 +/* GL_QCOM_writeonly_rendering */
 14.1777 +#ifndef GL_QCOM_writeonly_rendering
 14.1778 +#define GL_WRITEONLY_RENDERING_QCOM                             0x8823
 14.1779 +#endif
 14.1780 +
 14.1781 +/* GL_QCOM_tiled_rendering */
 14.1782 +#ifndef GL_QCOM_tiled_rendering
 14.1783 +#define GL_COLOR_BUFFER_BIT0_QCOM                               0x00000001
 14.1784 +#define GL_COLOR_BUFFER_BIT1_QCOM                               0x00000002
 14.1785 +#define GL_COLOR_BUFFER_BIT2_QCOM                               0x00000004
 14.1786 +#define GL_COLOR_BUFFER_BIT3_QCOM                               0x00000008
 14.1787 +#define GL_COLOR_BUFFER_BIT4_QCOM                               0x00000010
 14.1788 +#define GL_COLOR_BUFFER_BIT5_QCOM                               0x00000020
 14.1789 +#define GL_COLOR_BUFFER_BIT6_QCOM                               0x00000040
 14.1790 +#define GL_COLOR_BUFFER_BIT7_QCOM                               0x00000080
 14.1791 +#define GL_DEPTH_BUFFER_BIT0_QCOM                               0x00000100
 14.1792 +#define GL_DEPTH_BUFFER_BIT1_QCOM                               0x00000200
 14.1793 +#define GL_DEPTH_BUFFER_BIT2_QCOM                               0x00000400
 14.1794 +#define GL_DEPTH_BUFFER_BIT3_QCOM                               0x00000800
 14.1795 +#define GL_DEPTH_BUFFER_BIT4_QCOM                               0x00001000
 14.1796 +#define GL_DEPTH_BUFFER_BIT5_QCOM                               0x00002000
 14.1797 +#define GL_DEPTH_BUFFER_BIT6_QCOM                               0x00004000
 14.1798 +#define GL_DEPTH_BUFFER_BIT7_QCOM                               0x00008000
 14.1799 +#define GL_STENCIL_BUFFER_BIT0_QCOM                             0x00010000
 14.1800 +#define GL_STENCIL_BUFFER_BIT1_QCOM                             0x00020000
 14.1801 +#define GL_STENCIL_BUFFER_BIT2_QCOM                             0x00040000
 14.1802 +#define GL_STENCIL_BUFFER_BIT3_QCOM                             0x00080000
 14.1803 +#define GL_STENCIL_BUFFER_BIT4_QCOM                             0x00100000
 14.1804 +#define GL_STENCIL_BUFFER_BIT5_QCOM                             0x00200000
 14.1805 +#define GL_STENCIL_BUFFER_BIT6_QCOM                             0x00400000
 14.1806 +#define GL_STENCIL_BUFFER_BIT7_QCOM                             0x00800000
 14.1807 +#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM                         0x01000000
 14.1808 +#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM                         0x02000000
 14.1809 +#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM                         0x04000000
 14.1810 +#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM                         0x08000000
 14.1811 +#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM                         0x10000000
 14.1812 +#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM                         0x20000000
 14.1813 +#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM                         0x40000000
 14.1814 +#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM                         0x80000000
 14.1815 +#endif
 14.1816 +
 14.1817 +/*------------------------------------------------------------------------*
 14.1818 + * VIV extension tokens
 14.1819 + *------------------------------------------------------------------------*/
 14.1820 +
 14.1821 +/* GL_VIV_shader_binary */
 14.1822 +#ifndef GL_VIV_shader_binary
 14.1823 +#define GL_SHADER_BINARY_VIV                                    0x8FC4
 14.1824 +#endif
 14.1825 +
 14.1826 +/*------------------------------------------------------------------------*
 14.1827 + * End of extension tokens, start of corresponding extension functions
 14.1828 + *------------------------------------------------------------------------*/
 14.1829 +
 14.1830 +/*------------------------------------------------------------------------*
 14.1831 + * OES extension functions
 14.1832 + *------------------------------------------------------------------------*/
 14.1833 +
 14.1834 +/* GL_OES_compressed_ETC1_RGB8_texture */
 14.1835 +#ifndef GL_OES_compressed_ETC1_RGB8_texture
 14.1836 +#define GL_OES_compressed_ETC1_RGB8_texture 1
 14.1837 +#endif
 14.1838 +
 14.1839 +/* GL_OES_compressed_paletted_texture */
 14.1840 +#ifndef GL_OES_compressed_paletted_texture
 14.1841 +#define GL_OES_compressed_paletted_texture 1
 14.1842 +#endif
 14.1843 +
 14.1844 +/* GL_OES_depth24 */
 14.1845 +#ifndef GL_OES_depth24
 14.1846 +#define GL_OES_depth24 1
 14.1847 +#endif
 14.1848 +
 14.1849 +/* GL_OES_depth32 */
 14.1850 +#ifndef GL_OES_depth32
 14.1851 +#define GL_OES_depth32 1
 14.1852 +#endif
 14.1853 +
 14.1854 +/* GL_OES_depth_texture */
 14.1855 +#ifndef GL_OES_depth_texture
 14.1856 +#define GL_OES_depth_texture 1
 14.1857 +#endif
 14.1858 +
 14.1859 +/* GL_OES_EGL_image */
 14.1860 +#ifndef GL_OES_EGL_image
 14.1861 +#define GL_OES_EGL_image 1
 14.1862 +#ifdef GL_GLEXT_PROTOTYPES
 14.1863 +GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
 14.1864 +GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
 14.1865 +#endif
 14.1866 +typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
 14.1867 +typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
 14.1868 +#endif
 14.1869 +
 14.1870 +/* GL_OES_EGL_image_external */
 14.1871 +#ifndef GL_OES_EGL_image_external
 14.1872 +#define GL_OES_EGL_image_external 1
 14.1873 +/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
 14.1874 +#endif
 14.1875 +
 14.1876 +/* GL_OES_element_index_uint */
 14.1877 +#ifndef GL_OES_element_index_uint
 14.1878 +#define GL_OES_element_index_uint 1
 14.1879 +#endif
 14.1880 +
 14.1881 +/* GL_OES_fbo_render_mipmap */
 14.1882 +#ifndef GL_OES_fbo_render_mipmap
 14.1883 +#define GL_OES_fbo_render_mipmap 1
 14.1884 +#endif
 14.1885 +
 14.1886 +/* GL_OES_fragment_precision_high */
 14.1887 +#ifndef GL_OES_fragment_precision_high
 14.1888 +#define GL_OES_fragment_precision_high 1
 14.1889 +#endif
 14.1890 +
 14.1891 +/* GL_OES_get_program_binary */
 14.1892 +#ifndef GL_OES_get_program_binary
 14.1893 +#define GL_OES_get_program_binary 1
 14.1894 +#ifdef GL_GLEXT_PROTOTYPES
 14.1895 +GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
 14.1896 +GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
 14.1897 +#endif
 14.1898 +typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
 14.1899 +typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
 14.1900 +#endif
 14.1901 +
 14.1902 +/* GL_OES_mapbuffer */
 14.1903 +#ifndef GL_OES_mapbuffer
 14.1904 +#define GL_OES_mapbuffer 1
 14.1905 +#ifdef GL_GLEXT_PROTOTYPES
 14.1906 +GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
 14.1907 +GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
 14.1908 +GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
 14.1909 +#endif
 14.1910 +typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
 14.1911 +typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
 14.1912 +typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params);
 14.1913 +#endif
 14.1914 +
 14.1915 +/* GL_OES_packed_depth_stencil */
 14.1916 +#ifndef GL_OES_packed_depth_stencil
 14.1917 +#define GL_OES_packed_depth_stencil 1
 14.1918 +#endif
 14.1919 +
 14.1920 +/* GL_OES_required_internalformat */
 14.1921 +#ifndef GL_OES_required_internalformat
 14.1922 +#define GL_OES_required_internalformat 1
 14.1923 +#endif
 14.1924 +
 14.1925 +/* GL_OES_rgb8_rgba8 */
 14.1926 +#ifndef GL_OES_rgb8_rgba8
 14.1927 +#define GL_OES_rgb8_rgba8 1
 14.1928 +#endif
 14.1929 +
 14.1930 +/* GL_OES_standard_derivatives */
 14.1931 +#ifndef GL_OES_standard_derivatives
 14.1932 +#define GL_OES_standard_derivatives 1
 14.1933 +#endif
 14.1934 +
 14.1935 +/* GL_OES_stencil1 */
 14.1936 +#ifndef GL_OES_stencil1
 14.1937 +#define GL_OES_stencil1 1
 14.1938 +#endif
 14.1939 +
 14.1940 +/* GL_OES_stencil4 */
 14.1941 +#ifndef GL_OES_stencil4
 14.1942 +#define GL_OES_stencil4 1
 14.1943 +#endif
 14.1944 +
 14.1945 +#ifndef GL_OES_surfaceless_context
 14.1946 +#define GL_OES_surfaceless_context 1
 14.1947 +#endif
 14.1948 +
 14.1949 +/* GL_OES_texture_3D */
 14.1950 +#ifndef GL_OES_texture_3D
 14.1951 +#define GL_OES_texture_3D 1
 14.1952 +#ifdef GL_GLEXT_PROTOTYPES
 14.1953 +GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
 14.1954 +GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
 14.1955 +GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 14.1956 +GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
 14.1957 +GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
 14.1958 +GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
 14.1959 +#endif
 14.1960 +typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
 14.1961 +typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
 14.1962 +typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
 14.1963 +typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
 14.1964 +typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
 14.1965 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
 14.1966 +#endif
 14.1967 +
 14.1968 +/* GL_OES_texture_float */
 14.1969 +#ifndef GL_OES_texture_float
 14.1970 +#define GL_OES_texture_float 1
 14.1971 +#endif
 14.1972 +
 14.1973 +/* GL_OES_texture_float_linear */
 14.1974 +#ifndef GL_OES_texture_float_linear
 14.1975 +#define GL_OES_texture_float_linear 1
 14.1976 +#endif
 14.1977 +
 14.1978 +/* GL_OES_texture_half_float */
 14.1979 +#ifndef GL_OES_texture_half_float
 14.1980 +#define GL_OES_texture_half_float 1
 14.1981 +#endif
 14.1982 +
 14.1983 +/* GL_OES_texture_half_float_linear */
 14.1984 +#ifndef GL_OES_texture_half_float_linear
 14.1985 +#define GL_OES_texture_half_float_linear 1
 14.1986 +#endif
 14.1987 +
 14.1988 +/* GL_OES_texture_npot */
 14.1989 +#ifndef GL_OES_texture_npot
 14.1990 +#define GL_OES_texture_npot 1
 14.1991 +#endif
 14.1992 +
 14.1993 +/* GL_OES_vertex_array_object */
 14.1994 +#ifndef GL_OES_vertex_array_object
 14.1995 +#define GL_OES_vertex_array_object 1
 14.1996 +#ifdef GL_GLEXT_PROTOTYPES
 14.1997 +GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
 14.1998 +GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
 14.1999 +GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
 14.2000 +GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
 14.2001 +#endif
 14.2002 +typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
 14.2003 +typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
 14.2004 +typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
 14.2005 +typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
 14.2006 +#endif
 14.2007 +
 14.2008 +/* GL_OES_vertex_half_float */
 14.2009 +#ifndef GL_OES_vertex_half_float
 14.2010 +#define GL_OES_vertex_half_float 1
 14.2011 +#endif
 14.2012 +
 14.2013 +/* GL_OES_vertex_type_10_10_10_2 */
 14.2014 +#ifndef GL_OES_vertex_type_10_10_10_2
 14.2015 +#define GL_OES_vertex_type_10_10_10_2 1
 14.2016 +#endif
 14.2017 +
 14.2018 +/*------------------------------------------------------------------------*
 14.2019 + * KHR extension functions
 14.2020 + *------------------------------------------------------------------------*/
 14.2021 +
 14.2022 +#ifndef GL_KHR_debug
 14.2023 +#define GL_KHR_debug 1
 14.2024 +#ifdef GL_GLEXT_PROTOTYPES
 14.2025 +GL_APICALL void GL_APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
 14.2026 +GL_APICALL void GL_APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
 14.2027 +GL_APICALL void GL_APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam);
 14.2028 +GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
 14.2029 +GL_APICALL void GL_APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message);
 14.2030 +GL_APICALL void GL_APIENTRY glPopDebugGroup (void);
 14.2031 +GL_APICALL void GL_APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
 14.2032 +GL_APICALL void GL_APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
 14.2033 +GL_APICALL void GL_APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label);
 14.2034 +GL_APICALL void GL_APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
 14.2035 +GL_APICALL void GL_APIENTRY glGetPointerv (GLenum pname, void **params);
 14.2036 +#endif 
 14.2037 +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
 14.2038 +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
 14.2039 +typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam);
 14.2040 +typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
 14.2041 +typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message);
 14.2042 +typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void);
 14.2043 +typedef void (GL_APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
 14.2044 +typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
 14.2045 +typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label);
 14.2046 +typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
 14.2047 +typedef void (GL_APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, void **params);
 14.2048 +#endif
 14.2049 +
 14.2050 +#ifndef GL_KHR_texture_compression_astc_ldr
 14.2051 +#define GL_KHR_texture_compression_astc_ldr 1
 14.2052 +#endif
 14.2053 +
 14.2054 +
 14.2055 +/*------------------------------------------------------------------------*
 14.2056 + * AMD extension functions
 14.2057 + *------------------------------------------------------------------------*/
 14.2058 +
 14.2059 +/* GL_AMD_compressed_3DC_texture */
 14.2060 +#ifndef GL_AMD_compressed_3DC_texture
 14.2061 +#define GL_AMD_compressed_3DC_texture 1
 14.2062 +#endif
 14.2063 +
 14.2064 +/* GL_AMD_compressed_ATC_texture */
 14.2065 +#ifndef GL_AMD_compressed_ATC_texture
 14.2066 +#define GL_AMD_compressed_ATC_texture 1
 14.2067 +#endif
 14.2068 +
 14.2069 +/* AMD_performance_monitor */
 14.2070 +#ifndef GL_AMD_performance_monitor
 14.2071 +#define GL_AMD_performance_monitor 1
 14.2072 +#ifdef GL_GLEXT_PROTOTYPES
 14.2073 +GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
 14.2074 +GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
 14.2075 +GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
 14.2076 +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
 14.2077 +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
 14.2078 +GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
 14.2079 +GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
 14.2080 +GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
 14.2081 +GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
 14.2082 +GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
 14.2083 +GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
 14.2084 +#endif
 14.2085 +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
 14.2086 +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
 14.2087 +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
 14.2088 +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
 14.2089 +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
 14.2090 +typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
 14.2091 +typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
 14.2092 +typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
 14.2093 +typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
 14.2094 +typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
 14.2095 +typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
 14.2096 +#endif
 14.2097 +
 14.2098 +/* GL_AMD_program_binary_Z400 */
 14.2099 +#ifndef GL_AMD_program_binary_Z400
 14.2100 +#define GL_AMD_program_binary_Z400 1
 14.2101 +#endif
 14.2102 +
 14.2103 +/*------------------------------------------------------------------------*
 14.2104 + * ANGLE extension functions
 14.2105 + *------------------------------------------------------------------------*/
 14.2106 +
 14.2107 +/* GL_ANGLE_framebuffer_blit */
 14.2108 +#ifndef GL_ANGLE_framebuffer_blit
 14.2109 +#define GL_ANGLE_framebuffer_blit 1
 14.2110 +#ifdef GL_GLEXT_PROTOTYPES
 14.2111 +GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
 14.2112 +#endif
 14.2113 +typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
 14.2114 +#endif
 14.2115 +
 14.2116 +/* GL_ANGLE_framebuffer_multisample */
 14.2117 +#ifndef GL_ANGLE_framebuffer_multisample
 14.2118 +#define GL_ANGLE_framebuffer_multisample 1
 14.2119 +#ifdef GL_GLEXT_PROTOTYPES
 14.2120 +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
 14.2121 +#endif
 14.2122 +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
 14.2123 +#endif
 14.2124 +
 14.2125 +#ifndef GL_ANGLE_instanced_arrays 
 14.2126 +#ifdef GL_GLEXT_PROTOTYPES
 14.2127 +GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
 14.2128 +GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
 14.2129 +GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor);
 14.2130 +#endif
 14.2131 +typedef void (GL_APIENTRYP PFLGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
 14.2132 +typedef void (GL_APIENTRYP PFLGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
 14.2133 +typedef void (GL_APIENTRYP PFLGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor);
 14.2134 +#endif
 14.2135 +
 14.2136 +/* GL_ANGLE_pack_reverse_row_order */
 14.2137 +#ifndef GL_ANGLE_pack_reverse_row_order 
 14.2138 +#define GL_ANGLE_pack_reverse_row_order 1
 14.2139 +#endif
 14.2140 +
 14.2141 +/* GL_ANGLE_texture_compression_dxt3 */
 14.2142 +#ifndef GL_ANGLE_texture_compression_dxt3 
 14.2143 +#define GL_ANGLE_texture_compression_dxt3 1
 14.2144 +#endif
 14.2145 +
 14.2146 +/* GL_ANGLE_texture_compression_dxt5 */
 14.2147 +#ifndef GL_ANGLE_texture_compression_dxt5 
 14.2148 +#define GL_ANGLE_texture_compression_dxt5 1
 14.2149 +#endif
 14.2150 +
 14.2151 +/* GL_ANGLE_texture_usage */
 14.2152 +#ifndef GL_ANGLE_texture_usage 
 14.2153 +#define GL_ANGLE_texture_usage 1
 14.2154 +#endif
 14.2155 +
 14.2156 +#ifndef GL_ANGLE_translated_shader_source 
 14.2157 +#define GL_ANGLE_translated_shader_source 1
 14.2158 +#ifdef GL_GLEXT_PROTOTYPES
 14.2159 +GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
 14.2160 +#endif
 14.2161 +typedef void (GL_APIENTRYP PFLGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
 14.2162 +#endif
 14.2163 +
 14.2164 +/*------------------------------------------------------------------------*
 14.2165 + * APPLE extension functions
 14.2166 + *------------------------------------------------------------------------*/
 14.2167 +
 14.2168 +/* GL_APPLE_copy_texture_levels */
 14.2169 +#ifndef GL_APPLE_copy_texture_levels
 14.2170 +#define GL_APPLE_copy_texture_levels 1
 14.2171 +#ifdef GL_GLEXT_PROTOTYPES
 14.2172 +GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
 14.2173 +#endif
 14.2174 +typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
 14.2175 +#endif
 14.2176 +
 14.2177 +/* GL_APPLE_framebuffer_multisample */
 14.2178 +#ifndef GL_APPLE_framebuffer_multisample
 14.2179 +#define GL_APPLE_framebuffer_multisample 1
 14.2180 +#ifdef GL_GLEXT_PROTOTYPES
 14.2181 +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
 14.2182 +GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
 14.2183 +#endif /* GL_GLEXT_PROTOTYPES */
 14.2184 +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
 14.2185 +typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
 14.2186 +#endif
 14.2187 +
 14.2188 +/* GL_APPLE_rgb_422 */
 14.2189 +#ifndef GL_APPLE_rgb_422
 14.2190 +#define GL_APPLE_rgb_422 1
 14.2191 +#endif
 14.2192 +
 14.2193 +/* GL_APPLE_sync */
 14.2194 +#ifndef GL_APPLE_sync
 14.2195 +#define GL_APPLE_sync 1
 14.2196 +#ifdef GL_GLEXT_PROTOTYPES
 14.2197 +GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags);
 14.2198 +GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync);
 14.2199 +GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync);
 14.2200 +GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout);
 14.2201 +GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout);
 14.2202 +GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params);
 14.2203 +GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
 14.2204 +#endif
 14.2205 +typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags);
 14.2206 +typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync);
 14.2207 +typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync);
 14.2208 +typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
 14.2209 +typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
 14.2210 +typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params);
 14.2211 +typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
 14.2212 +#endif
 14.2213 +
 14.2214 +/* GL_APPLE_texture_format_BGRA8888 */
 14.2215 +#ifndef GL_APPLE_texture_format_BGRA8888
 14.2216 +#define GL_APPLE_texture_format_BGRA8888 1
 14.2217 +#endif
 14.2218 +
 14.2219 +/* GL_APPLE_texture_max_level */
 14.2220 +#ifndef GL_APPLE_texture_max_level
 14.2221 +#define GL_APPLE_texture_max_level 1
 14.2222 +#endif
 14.2223 +
 14.2224 +/*------------------------------------------------------------------------*
 14.2225 + * ARM extension functions
 14.2226 + *------------------------------------------------------------------------*/
 14.2227 +
 14.2228 +/* GL_ARM_mali_program_binary */
 14.2229 +#ifndef GL_ARM_mali_program_binary
 14.2230 +#define GL_ARM_mali_program_binary 1
 14.2231 +#endif
 14.2232 +
 14.2233 +/* GL_ARM_mali_shader_binary */
 14.2234 +#ifndef GL_ARM_mali_shader_binary
 14.2235 +#define GL_ARM_mali_shader_binary 1
 14.2236 +#endif
 14.2237 +
 14.2238 +/* GL_ARM_rgba8 */
 14.2239 +#ifndef GL_ARM_rgba8
 14.2240 +#define GL_ARM_rgba8 1
 14.2241 +#endif
 14.2242 +
 14.2243 +/*------------------------------------------------------------------------*
 14.2244 + * EXT extension functions
 14.2245 + *------------------------------------------------------------------------*/
 14.2246 +
 14.2247 +/* GL_EXT_blend_minmax */
 14.2248 +#ifndef GL_EXT_blend_minmax
 14.2249 +#define GL_EXT_blend_minmax 1
 14.2250 +#endif
 14.2251 +
 14.2252 +/* GL_EXT_color_buffer_half_float */
 14.2253 +#ifndef GL_EXT_color_buffer_half_float
 14.2254 +#define GL_EXT_color_buffer_half_float 1
 14.2255 +#endif
 14.2256 +
 14.2257 +/* GL_EXT_debug_label */
 14.2258 +#ifndef GL_EXT_debug_label
 14.2259 +#define GL_EXT_debug_label 1
 14.2260 +#ifdef GL_GLEXT_PROTOTYPES
 14.2261 +GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label);
 14.2262 +GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
 14.2263 +#endif
 14.2264 +typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label);
 14.2265 +typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
 14.2266 +#endif
 14.2267 +
 14.2268 +/* GL_EXT_debug_marker */
 14.2269 +#ifndef GL_EXT_debug_marker
 14.2270 +#define GL_EXT_debug_marker 1
 14.2271 +#ifdef GL_GLEXT_PROTOTYPES
 14.2272 +GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
 14.2273 +GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
 14.2274 +GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void);
 14.2275 +#endif
 14.2276 +typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
 14.2277 +typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
 14.2278 +typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void);
 14.2279 +#endif
 14.2280 +
 14.2281 +/* GL_EXT_discard_framebuffer */
 14.2282 +#ifndef GL_EXT_discard_framebuffer
 14.2283 +#define GL_EXT_discard_framebuffer 1
 14.2284 +#ifdef GL_GLEXT_PROTOTYPES
 14.2285 +GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
 14.2286 +#endif
 14.2287 +typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
 14.2288 +#endif
 14.2289 +
 14.2290 +/* GL_EXT_map_buffer_range */
 14.2291 +#ifndef GL_EXT_map_buffer_range
 14.2292 +#define GL_EXT_map_buffer_range 1
 14.2293 +#ifdef GL_GLEXT_PROTOTYPES
 14.2294 +GL_APICALL void* GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
 14.2295 +GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length);
 14.2296 +#endif
 14.2297 +typedef void* (GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
 14.2298 +typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
 14.2299 +#endif
 14.2300 +
 14.2301 +/* GL_EXT_multisampled_render_to_texture */
 14.2302 +#ifndef GL_EXT_multisampled_render_to_texture
 14.2303 +#define GL_EXT_multisampled_render_to_texture 1
 14.2304 +#ifdef GL_GLEXT_PROTOTYPES
 14.2305 +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
 14.2306 +GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
 14.2307 +#endif
 14.2308 +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
 14.2309 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
 14.2310 +#endif
 14.2311 +
 14.2312 +/* GL_EXT_multiview_draw_buffers */
 14.2313 +#ifndef GL_EXT_multiview_draw_buffers
 14.2314 +#define GL_EXT_multiview_draw_buffers 1
 14.2315 +#ifdef GL_GLEXT_PROTOTYPES
 14.2316 +GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index);
 14.2317 +GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices);
 14.2318 +GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data);
 14.2319 +#endif
 14.2320 +typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index);
 14.2321 +typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices);
 14.2322 +typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data);
 14.2323 +#endif
 14.2324 +
 14.2325 +#ifndef GL_EXT_multi_draw_arrays
 14.2326 +#define GL_EXT_multi_draw_arrays 1
 14.2327 +#ifdef GL_GLEXT_PROTOTYPES
 14.2328 +GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
 14.2329 +GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
 14.2330 +#endif /* GL_GLEXT_PROTOTYPES */
 14.2331 +typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
 14.2332 +typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
 14.2333 +#endif
 14.2334 +
 14.2335 +/* GL_EXT_occlusion_query_boolean */
 14.2336 +#ifndef GL_EXT_occlusion_query_boolean
 14.2337 +#define GL_EXT_occlusion_query_boolean 1
 14.2338 +#ifdef GL_GLEXT_PROTOTYPES
 14.2339 +GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids);
 14.2340 +GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids);
 14.2341 +GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id);
 14.2342 +GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id);
 14.2343 +GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target);
 14.2344 +GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params);
 14.2345 +GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params);
 14.2346 +#endif
 14.2347 +typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids);
 14.2348 +typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids);
 14.2349 +typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id);
 14.2350 +typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id);
 14.2351 +typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target);
 14.2352 +typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
 14.2353 +typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params);
 14.2354 +#endif
 14.2355 +
 14.2356 +/* GL_EXT_read_format_bgra */
 14.2357 +#ifndef GL_EXT_read_format_bgra
 14.2358 +#define GL_EXT_read_format_bgra 1
 14.2359 +#endif
 14.2360 +
 14.2361 +/* GL_EXT_robustness */
 14.2362 +#ifndef GL_EXT_robustness
 14.2363 +#define GL_EXT_robustness 1
 14.2364 +#ifdef GL_GLEXT_PROTOTYPES
 14.2365 +GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void);
 14.2366 +GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
 14.2367 +GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, float *params);
 14.2368 +GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params);
 14.2369 +#endif
 14.2370 +typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void);
 14.2371 +typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
 14.2372 +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, float *params);
 14.2373 +typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
 14.2374 +#endif
 14.2375 +
 14.2376 +/* GL_EXT_separate_shader_objects */
 14.2377 +#ifndef GL_EXT_separate_shader_objects
 14.2378 +#define GL_EXT_separate_shader_objects 1
 14.2379 +#ifdef GL_GLEXT_PROTOTYPES
 14.2380 +GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program);
 14.2381 +GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program);
 14.2382 +GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar **strings);
 14.2383 +GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline);
 14.2384 +GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines);
 14.2385 +GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines);
 14.2386 +GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline);
 14.2387 +GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value);
 14.2388 +GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params);
 14.2389 +GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint x);
 14.2390 +GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint x, GLint y);
 14.2391 +GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z);
 14.2392 +GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
 14.2393 +GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat x);
 14.2394 +GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat x, GLfloat y);
 14.2395 +GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
 14.2396 +GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
 14.2397 +GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
 14.2398 +GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
 14.2399 +GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
 14.2400 +GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
 14.2401 +GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 14.2402 +GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 14.2403 +GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 14.2404 +GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 14.2405 +GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 14.2406 +GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 14.2407 +GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 14.2408 +GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline);
 14.2409 +GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
 14.2410 +#endif
 14.2411 +typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
 14.2412 +typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program);
 14.2413 +typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar **strings);
 14.2414 +typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
 14.2415 +typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines);
 14.2416 +typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines);
 14.2417 +typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
 14.2418 +typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
 14.2419 +typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params);
 14.2420 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint x);
 14.2421 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint x, GLint y);
 14.2422 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z);
 14.2423 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
 14.2424 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat x);
 14.2425 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y);
 14.2426 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
 14.2427 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
 14.2428 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
 14.2429 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
 14.2430 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
 14.2431 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
 14.2432 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 14.2433 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 14.2434 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 14.2435 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
 14.2436 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 14.2437 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 14.2438 +typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
 14.2439 +typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline);
 14.2440 +typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
 14.2441 +#endif
 14.2442 +
 14.2443 +/* GL_EXT_shader_framebuffer_fetch */
 14.2444 +#ifndef GL_EXT_shader_framebuffer_fetch
 14.2445 +#define GL_EXT_shader_framebuffer_fetch 1
 14.2446 +#endif
 14.2447 +
 14.2448 +/* GL_EXT_shader_texture_lod */
 14.2449 +#ifndef GL_EXT_shader_texture_lod
 14.2450 +#define GL_EXT_shader_texture_lod 1
 14.2451 +#endif
 14.2452 +
 14.2453 +/* GL_EXT_shadow_samplers */
 14.2454 +#ifndef GL_EXT_shadow_samplers
 14.2455 +#define GL_EXT_shadow_samplers 1
 14.2456 +#endif
 14.2457 +
 14.2458 +/* GL_EXT_sRGB */
 14.2459 +#ifndef GL_EXT_sRGB
 14.2460 +#define GL_EXT_sRGB 1
 14.2461 +#endif
 14.2462 +
 14.2463 +/* GL_EXT_texture_compression_dxt1 */
 14.2464 +#ifndef GL_EXT_texture_compression_dxt1
 14.2465 +#define GL_EXT_texture_compression_dxt1 1
 14.2466 +#endif
 14.2467 +
 14.2468 +/* GL_EXT_texture_filter_anisotropic */
 14.2469 +#ifndef GL_EXT_texture_filter_anisotropic
 14.2470 +#define GL_EXT_texture_filter_anisotropic 1
 14.2471 +#endif
 14.2472 +
 14.2473 +/* GL_EXT_texture_format_BGRA8888 */
 14.2474 +#ifndef GL_EXT_texture_format_BGRA8888
 14.2475 +#define GL_EXT_texture_format_BGRA8888 1
 14.2476 +#endif
 14.2477 +
 14.2478 +/* GL_EXT_texture_rg */
 14.2479 +#ifndef GL_EXT_texture_rg
 14.2480 +#define GL_EXT_texture_rg 1
 14.2481 +#endif
 14.2482 +
 14.2483 +/* GL_EXT_texture_storage */
 14.2484 +#ifndef GL_EXT_texture_storage
 14.2485 +#define GL_EXT_texture_storage 1
 14.2486 +#ifdef GL_GLEXT_PROTOTYPES
 14.2487 +GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
 14.2488 +GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
 14.2489 +GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
 14.2490 +GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
 14.2491 +GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
 14.2492 +GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
 14.2493 +#endif
 14.2494 +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
 14.2495 +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
 14.2496 +typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
 14.2497 +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
 14.2498 +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
 14.2499 +typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
 14.2500 +#endif
 14.2501 +
 14.2502 +/* GL_EXT_texture_type_2_10_10_10_REV */
 14.2503 +#ifndef GL_EXT_texture_type_2_10_10_10_REV
 14.2504 +#define GL_EXT_texture_type_2_10_10_10_REV 1
 14.2505 +#endif
 14.2506 +
 14.2507 +/* GL_EXT_unpack_subimage */
 14.2508 +#ifndef GL_EXT_unpack_subimage
 14.2509 +#define GL_EXT_unpack_subimage 1
 14.2510 +#endif
 14.2511 +
 14.2512 +/*------------------------------------------------------------------------*
 14.2513 + * DMP extension functions
 14.2514 + *------------------------------------------------------------------------*/
 14.2515 +
 14.2516 +/* GL_DMP_shader_binary */
 14.2517 +#ifndef GL_DMP_shader_binary
 14.2518 +#define GL_DMP_shader_binary 1
 14.2519 +#endif
 14.2520 +
 14.2521 +/*------------------------------------------------------------------------*
 14.2522 + * FJ extension functions
 14.2523 + *------------------------------------------------------------------------*/
 14.2524 +
 14.2525 +/* GL_FJ_shader_binary_GCCSO */
 14.2526 +#ifndef GL_FJ_shader_binary_GCCSO
 14.2527 +#define GL_FJ_shader_binary_GCCSO 1
 14.2528 +#endif
 14.2529 +
 14.2530 +/*------------------------------------------------------------------------*
 14.2531 + * IMG extension functions
 14.2532 + *------------------------------------------------------------------------*/
 14.2533 +
 14.2534 +/* GL_IMG_program_binary */
 14.2535 +#ifndef GL_IMG_program_binary
 14.2536 +#define GL_IMG_program_binary 1
 14.2537 +#endif
 14.2538 +
 14.2539 +/* GL_IMG_read_format */
 14.2540 +#ifndef GL_IMG_read_format
 14.2541 +#define GL_IMG_read_format 1
 14.2542 +#endif
 14.2543 +
 14.2544 +/* GL_IMG_shader_binary */
 14.2545 +#ifndef GL_IMG_shader_binary
 14.2546 +#define GL_IMG_shader_binary 1
 14.2547 +#endif
 14.2548 +
 14.2549 +/* GL_IMG_texture_compression_pvrtc */
 14.2550 +#ifndef GL_IMG_texture_compression_pvrtc
 14.2551 +#define GL_IMG_texture_compression_pvrtc 1
 14.2552 +#endif
 14.2553 +
 14.2554 +/* GL_IMG_multisampled_render_to_texture */
 14.2555 +#ifndef GL_IMG_multisampled_render_to_texture
 14.2556 +#define GL_IMG_multisampled_render_to_texture 1
 14.2557 +#ifdef GL_GLEXT_PROTOTYPES
 14.2558 +GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
 14.2559 +GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
 14.2560 +#endif
 14.2561 +typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
 14.2562 +typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
 14.2563 +#endif
 14.2564 +
 14.2565 +/*------------------------------------------------------------------------*
 14.2566 + * NV extension functions
 14.2567 + *------------------------------------------------------------------------*/
 14.2568 +
 14.2569 +/* GL_NV_coverage_sample */
 14.2570 +#ifndef GL_NV_coverage_sample
 14.2571 +#define GL_NV_coverage_sample 1
 14.2572 +#ifdef GL_GLEXT_PROTOTYPES
 14.2573 +GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
 14.2574 +GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
 14.2575 +#endif
 14.2576 +typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
 14.2577 +typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
 14.2578 +#endif
 14.2579 +
 14.2580 +/* GL_NV_depth_nonlinear */
 14.2581 +#ifndef GL_NV_depth_nonlinear
 14.2582 +#define GL_NV_depth_nonlinear 1
 14.2583 +#endif
 14.2584 +
 14.2585 +/* GL_NV_draw_buffers */
 14.2586 +#ifndef GL_NV_draw_buffers
 14.2587 +#define GL_NV_draw_buffers 1
 14.2588 +#ifdef GL_GLEXT_PROTOTYPES
 14.2589 +GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs);
 14.2590 +#endif
 14.2591 +typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs);
 14.2592 +#endif
 14.2593 +
 14.2594 +/* GL_NV_fbo_color_attachments */
 14.2595 +#ifndef GL_NV_fbo_color_attachments
 14.2596 +#define GL_NV_fbo_color_attachments 1
 14.2597 +#endif
 14.2598 +
 14.2599 +/* GL_NV_fence */
 14.2600 +#ifndef GL_NV_fence
 14.2601 +#define GL_NV_fence 1
 14.2602 +#ifdef GL_GLEXT_PROTOTYPES
 14.2603 +GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
 14.2604 +GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
 14.2605 +GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
 14.2606 +GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
 14.2607 +GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
 14.2608 +GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
 14.2609 +GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
 14.2610 +#endif
 14.2611 +typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
 14.2612 +typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
 14.2613 +typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
 14.2614 +typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
 14.2615 +typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
 14.2616 +typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
 14.2617 +typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
 14.2618 +#endif
 14.2619 +
 14.2620 +/* GL_NV_read_buffer */
 14.2621 +#ifndef GL_NV_read_buffer
 14.2622 +#define GL_NV_read_buffer 1
 14.2623 +#ifdef GL_GLEXT_PROTOTYPES
 14.2624 +GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode);
 14.2625 +#endif
 14.2626 +typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode);
 14.2627 +#endif
 14.2628 +
 14.2629 +/* GL_NV_read_buffer_front */
 14.2630 +#ifndef GL_NV_read_buffer_front
 14.2631 +#define GL_NV_read_buffer_front 1
 14.2632 +#endif
 14.2633 +
 14.2634 +/* GL_NV_read_depth */
 14.2635 +#ifndef GL_NV_read_depth
 14.2636 +#define GL_NV_read_depth 1
 14.2637 +#endif
 14.2638 +
 14.2639 +/* GL_NV_read_depth_stencil */
 14.2640 +#ifndef GL_NV_read_depth_stencil
 14.2641 +#define GL_NV_read_depth_stencil 1
 14.2642 +#endif
 14.2643 +
 14.2644 +/* GL_NV_read_stencil */
 14.2645 +#ifndef GL_NV_read_stencil
 14.2646 +#define GL_NV_read_stencil 1
 14.2647 +#endif
 14.2648 +
 14.2649 +/* GL_NV_texture_compression_s3tc_update */
 14.2650 +#ifndef GL_NV_texture_compression_s3tc_update
 14.2651 +#define GL_NV_texture_compression_s3tc_update 1
 14.2652 +#endif
 14.2653 +
 14.2654 +/* GL_NV_texture_npot_2D_mipmap */
 14.2655 +#ifndef GL_NV_texture_npot_2D_mipmap
 14.2656 +#define GL_NV_texture_npot_2D_mipmap 1
 14.2657 +#endif
 14.2658 +
 14.2659 +/*------------------------------------------------------------------------*
 14.2660 + * QCOM extension functions
 14.2661 + *------------------------------------------------------------------------*/
 14.2662 +
 14.2663 +/* GL_QCOM_alpha_test */
 14.2664 +#ifndef GL_QCOM_alpha_test
 14.2665 +#define GL_QCOM_alpha_test 1
 14.2666 +#ifdef GL_GLEXT_PROTOTYPES
 14.2667 +GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref);
 14.2668 +#endif
 14.2669 +typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref);
 14.2670 +#endif
 14.2671 +
 14.2672 +/* GL_QCOM_binning_control */
 14.2673 +#ifndef GL_QCOM_binning_control
 14.2674 +#define GL_QCOM_binning_control 1
 14.2675 +#endif
 14.2676 +
 14.2677 +/* GL_QCOM_driver_control */
 14.2678 +#ifndef GL_QCOM_driver_control
 14.2679 +#define GL_QCOM_driver_control 1
 14.2680 +#ifdef GL_GLEXT_PROTOTYPES
 14.2681 +GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
 14.2682 +GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
 14.2683 +GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
 14.2684 +GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
 14.2685 +#endif
 14.2686 +typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
 14.2687 +typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
 14.2688 +typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
 14.2689 +typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
 14.2690 +#endif
 14.2691 +
 14.2692 +/* GL_QCOM_extended_get */
 14.2693 +#ifndef GL_QCOM_extended_get
 14.2694 +#define GL_QCOM_extended_get 1
 14.2695 +#ifdef GL_GLEXT_PROTOTYPES
 14.2696 +GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
 14.2697 +GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
 14.2698 +GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
 14.2699 +GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
 14.2700 +GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
 14.2701 +GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
 14.2702 +GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
 14.2703 +GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
 14.2704 +#endif
 14.2705 +typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
 14.2706 +typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
 14.2707 +typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
 14.2708 +typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
 14.2709 +typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
 14.2710 +typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
 14.2711 +typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
 14.2712 +typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
 14.2713 +#endif
 14.2714 +
 14.2715 +/* GL_QCOM_extended_get2 */
 14.2716 +#ifndef GL_QCOM_extended_get2
 14.2717 +#define GL_QCOM_extended_get2 1
 14.2718 +#ifdef GL_GLEXT_PROTOTYPES
 14.2719 +GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
 14.2720 +GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
 14.2721 +GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
 14.2722 +GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
 14.2723 +#endif
 14.2724 +typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
 14.2725 +typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
 14.2726 +typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
 14.2727 +typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
 14.2728 +#endif
 14.2729 +
 14.2730 +/* GL_QCOM_perfmon_global_mode */
 14.2731 +#ifndef GL_QCOM_perfmon_global_mode
 14.2732 +#define GL_QCOM_perfmon_global_mode 1
 14.2733 +#endif
 14.2734 +
 14.2735 +/* GL_QCOM_writeonly_rendering */
 14.2736 +#ifndef GL_QCOM_writeonly_rendering
 14.2737 +#define GL_QCOM_writeonly_rendering 1
 14.2738 +#endif
 14.2739 +
 14.2740 +/* GL_QCOM_tiled_rendering */
 14.2741 +#ifndef GL_QCOM_tiled_rendering
 14.2742 +#define GL_QCOM_tiled_rendering 1
 14.2743 +#ifdef GL_GLEXT_PROTOTYPES
 14.2744 +GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
 14.2745 +GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
 14.2746 +#endif
 14.2747 +typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
 14.2748 +typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
 14.2749 +#endif
 14.2750 +
 14.2751 +/*------------------------------------------------------------------------*
 14.2752 + * VIV extension tokens
 14.2753 + *------------------------------------------------------------------------*/
 14.2754 +
 14.2755 +/* GL_VIV_shader_binary */
 14.2756 +#ifndef GL_VIV_shader_binary
 14.2757 +#define GL_VIV_shader_binary 1
 14.2758 +#endif
 14.2759 +
 14.2760 +#ifdef __cplusplus
 14.2761 +}
 14.2762 +#endif
 14.2763 +
 14.2764 +#endif /* __gl2ext_h_ */
 14.2765 +
 14.2766 +#endif /* _MSC_VER */
 14.2767 +
 14.2768  #ifndef APIENTRY
 14.2769 -#define APIENTRY
 14.2770 -#endif
 14.2771 +#define APIENTRY GL_APIENTRY
 14.2772 +#endif
 14.2773 \ No newline at end of file
    15.1 --- a/src/render/opengles2/SDL_gles2funcs.h	Fri Nov 22 10:26:28 2013 -0300
    15.2 +++ b/src/render/opengles2/SDL_gles2funcs.h	Fri Nov 22 13:24:53 2013 -0300
    15.3 @@ -46,3 +46,5 @@
    15.4  SDL_PROC(void, glFramebufferTexture2D, (GLenum, GLenum, GLenum, GLuint, GLint))
    15.5  SDL_PROC(GLenum, glCheckFramebufferStatus, (GLenum))
    15.6  SDL_PROC(void, glDeleteFramebuffers, (GLsizei, const GLuint *))
    15.7 +SDL_PROC(GLint, glGetAttribLocation, (GLuint, const GLchar *))
    15.8 + 
    15.9 \ No newline at end of file
    16.1 --- a/src/video/SDL_egl.c	Fri Nov 22 10:26:28 2013 -0300
    16.2 +++ b/src/video/SDL_egl.c	Fri Nov 22 13:24:53 2013 -0300
    16.3 @@ -23,8 +23,9 @@
    16.4  #if SDL_VIDEO_OPENGL_EGL
    16.5  
    16.6  #include "SDL_sysvideo.h"
    16.7 -#include "SDL_egl.h"
    16.8 -
    16.9 +#include "SDL_egl_c.h"
   16.10 +#include "SDL_loadso.h"
   16.11 +#include "SDL_hints.h"
   16.12  
   16.13  #if SDL_VIDEO_DRIVER_RPI
   16.14  /* Raspbian places the OpenGL ES/EGL binaries in a non standard path */
   16.15 @@ -40,6 +41,13 @@
   16.16  #define DEFAULT_OGL_ES_PVR "libGLES_CM.so"
   16.17  #define DEFAULT_OGL_ES "libGLESv1_CM.so"
   16.18  
   16.19 +#elif SDL_VIDEO_DRIVER_WINDOWS
   16.20 +/* EGL AND OpenGL ES support via ANGLE */
   16.21 +#define DEFAULT_EGL "libEGL.dll"
   16.22 +#define DEFAULT_OGL_ES2 "libGLESv2.dll"
   16.23 +#define DEFAULT_OGL_ES_PVR "libGLES_CM.dll"
   16.24 +#define DEFAULT_OGL_ES "libGLESv1_CM.dll"
   16.25 +
   16.26  #else
   16.27  /* Desktop Linux */
   16.28  #define DEFAULT_EGL "libEGL.so.1"
   16.29 @@ -49,7 +57,7 @@
   16.30  #endif /* SDL_VIDEO_DRIVER_RPI */
   16.31  
   16.32  #define LOAD_FUNC(NAME) \
   16.33 -*((void**)&_this->egl_data->NAME) = dlsym(dll_handle, #NAME); \
   16.34 +*((void**)&_this->egl_data->NAME) = SDL_LoadFunction(_this->egl_data->dll_handle, #NAME); \
   16.35  if (!_this->egl_data->NAME) \
   16.36  { \
   16.37      return SDL_SetError("Could not retrieve EGL function " #NAME); \
   16.38 @@ -61,12 +69,10 @@
   16.39  SDL_EGL_GetProcAddress(_THIS, const char *proc)
   16.40  {
   16.41      static char procname[1024];
   16.42 -    void *handle;
   16.43      void *retval;
   16.44      
   16.45      /* eglGetProcAddress is busted on Android http://code.google.com/p/android/issues/detail?id=7681 */
   16.46 -#if !defined(SDL_VIDEO_DRIVER_ANDROID)
   16.47 -    handle = _this->egl_data->egl_dll_handle;
   16.48 +#if !defined(SDL_VIDEO_DRIVER_ANDROID) 
   16.49      if (_this->egl_data->eglGetProcAddress) {
   16.50          retval = _this->egl_data->eglGetProcAddress(proc);
   16.51          if (retval) {
   16.52 @@ -75,15 +81,11 @@
   16.53      }
   16.54  #endif
   16.55      
   16.56 -    handle = _this->gl_config.dll_handle;
   16.57 -    #if defined(__OpenBSD__) && !defined(__ELF__)
   16.58 -    #undef dlsym(x,y);
   16.59 -    #endif
   16.60 -    retval = dlsym(handle, proc);
   16.61 -    if (!retval && strlen(proc) <= 1022) {
   16.62 +    retval = SDL_LoadFunction(_this->egl_data->egl_dll_handle, proc);
   16.63 +    if (!retval && SDL_strlen(proc) <= 1022) {
   16.64          procname[0] = '_';
   16.65 -        strcpy(procname + 1, proc);
   16.66 -        retval = dlsym(handle, procname);
   16.67 +        SDL_strlcpy(procname + 1, proc, 1022);
   16.68 +        retval = SDL_LoadFunction(_this->egl_data->egl_dll_handle, procname);
   16.69      }
   16.70      return retval;
   16.71  }
   16.72 @@ -97,12 +99,12 @@
   16.73              _this->egl_data->egl_display = NULL;
   16.74          }
   16.75  
   16.76 -        if (_this->gl_config.dll_handle) {
   16.77 -            dlclose(_this->gl_config.dll_handle);
   16.78 -            _this->gl_config.dll_handle = NULL;
   16.79 +        if (_this->egl_data->dll_handle) {
   16.80 +            SDL_UnloadObject(_this->egl_data->dll_handle);
   16.81 +            _this->egl_data->dll_handle = NULL;
   16.82          }
   16.83          if (_this->egl_data->egl_dll_handle) {
   16.84 -            dlclose(_this->egl_data->egl_dll_handle);
   16.85 +            SDL_UnloadObject(_this->egl_data->egl_dll_handle);
   16.86              _this->egl_data->egl_dll_handle = NULL;
   16.87          }
   16.88          
   16.89 @@ -114,10 +116,12 @@
   16.90  int
   16.91  SDL_EGL_LoadLibrary(_THIS, const char *egl_path, NativeDisplayType native_display)
   16.92  {
   16.93 -    void *dll_handle, *egl_dll_handle; /* The naming is counter intuitive, but hey, I just work here -- Gabriel */
   16.94 -    char *path;
   16.95 -    int dlopen_flags;
   16.96 -    
   16.97 +    void *dll_handle = NULL, *egl_dll_handle = NULL; /* The naming is counter intuitive, but hey, I just work here -- Gabriel */
   16.98 +    char *path = NULL;
   16.99 +#if SDL_VIDEO_DRIVER_WINDOWS
  16.100 +    const char *d3dcompiler;
  16.101 +#endif
  16.102 +
  16.103      if (_this->egl_data) {
  16.104          return SDL_SetError("OpenGL ES context already created");
  16.105      }
  16.106 @@ -127,50 +131,63 @@
  16.107          return SDL_OutOfMemory();
  16.108      }
  16.109  
  16.110 -#ifdef RTLD_GLOBAL
  16.111 -    dlopen_flags = RTLD_LAZY | RTLD_GLOBAL;
  16.112 -#else
  16.113 -    dlopen_flags = RTLD_LAZY;
  16.114 +#if SDL_VIDEO_DRIVER_WINDOWS
  16.115 +    d3dcompiler = SDL_GetHint(SDL_HINT_VIDEO_WIN_D3DCOMPILER);
  16.116 +    if (!d3dcompiler) {
  16.117 +        /* By default we load the Vista+ compatible compiler */
  16.118 +        d3dcompiler = "d3dcompiler_46.dll";
  16.119 +    }
  16.120 +    if (SDL_strcasecmp(d3dcompiler, "none") != 0) {
  16.121 +        SDL_LoadObject(d3dcompiler);
  16.122 +    }
  16.123  #endif
  16.124  
  16.125      /* A funny thing, loading EGL.so first does not work on the Raspberry, so we load libGL* first */
  16.126 -    path = getenv("SDL_VIDEO_GL_DRIVER");
  16.127 -    egl_dll_handle = dlopen(path, dlopen_flags);
  16.128 -    if ((path == NULL) | (egl_dll_handle == NULL)) {
  16.129 +    path = SDL_getenv("SDL_VIDEO_GL_DRIVER");
  16.130 +    if (path != NULL) {
  16.131 +        egl_dll_handle = SDL_LoadObject(path);
  16.132 +    }
  16.133 +
  16.134 +    if (egl_dll_handle == NULL) {
  16.135          if (_this->gl_config.major_version > 1) {
  16.136              path = DEFAULT_OGL_ES2;
  16.137 -            egl_dll_handle = dlopen(path, dlopen_flags);
  16.138 -        } else {
  16.139 +            egl_dll_handle = SDL_LoadObject(path);
  16.140 +        }
  16.141 +        else {
  16.142              path = DEFAULT_OGL_ES;
  16.143 -            egl_dll_handle = dlopen(path, dlopen_flags);
  16.144 +            egl_dll_handle = SDL_LoadObject(path);
  16.145              if (egl_dll_handle == NULL) {
  16.146                  path = DEFAULT_OGL_ES_PVR;
  16.147 -                egl_dll_handle = dlopen(path, dlopen_flags);
  16.148 +                egl_dll_handle = SDL_LoadObject(path);
  16.149              }
  16.150          }
  16.151      }
  16.152      _this->egl_data->egl_dll_handle = egl_dll_handle;
  16.153  
  16.154      if (egl_dll_handle == NULL) {
  16.155 -        return SDL_SetError("Could not initialize OpenGL ES library: %s", dlerror());
  16.156 +        return SDL_SetError("Could not initialize OpenGL ES library");
  16.157      }
  16.158 -    
  16.159 +
  16.160      /* Loading libGL* in the previous step took care of loading libEGL.so, but we future proof by double checking */
  16.161 -    dll_handle = dlopen(egl_path, dlopen_flags);
  16.162 +    if (egl_path != NULL) {
  16.163 +        dll_handle = SDL_LoadObject(egl_path);
  16.164 +    }   
  16.165      /* Catch the case where the application isn't linked with EGL */
  16.166 -    if ((dlsym(dll_handle, "eglChooseConfig") == NULL) && (egl_path == NULL)) {
  16.167 -        dlclose(dll_handle);
  16.168 -        path = getenv("SDL_VIDEO_EGL_DRIVER");
  16.169 +    if ((SDL_LoadFunction(dll_handle, "eglChooseConfig") == NULL) && (egl_path == NULL)) {
  16.170 +        if (dll_handle != NULL) {
  16.171 +            SDL_UnloadObject(dll_handle);
  16.172 +        }
  16.173 +        path = SDL_getenv("SDL_VIDEO_EGL_DRIVER");
  16.174          if (path == NULL) {
  16.175              path = DEFAULT_EGL;
  16.176          }
  16.177 -        dll_handle = dlopen(path, dlopen_flags);
  16.178 +        dll_handle = SDL_LoadObject(path);
  16.179 +        if (dll_handle == NULL) {
  16.180 +            return SDL_SetError("Could not load EGL library");
  16.181 +        }
  16.182      }
  16.183 -    _this->gl_config.dll_handle = dll_handle;
  16.184  
  16.185 -    if (dll_handle == NULL) {
  16.186 -        return SDL_SetError("Could not load EGL library: %s", dlerror());
  16.187 -    }
  16.188 +    _this->egl_data->dll_handle = dll_handle;
  16.189  
  16.190      /* Load new function pointers */
  16.191      LOAD_FUNC(eglGetDisplay);
  16.192 @@ -198,14 +215,14 @@
  16.193          return SDL_SetError("Could not initialize EGL");
  16.194      }
  16.195  
  16.196 -    _this->gl_config.dll_handle = dll_handle;
  16.197 +    _this->egl_data->dll_handle = dll_handle;
  16.198      _this->egl_data->egl_dll_handle = egl_dll_handle;
  16.199      _this->gl_config.driver_loaded = 1;
  16.200  
  16.201      if (path) {
  16.202 -        strncpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1);
  16.203 +        SDL_strlcpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1);
  16.204      } else {
  16.205 -        strcpy(_this->gl_config.driver_path, "");
  16.206 +        *_this->gl_config.driver_path = '\0';
  16.207      }
  16.208      
  16.209      /* We need to select a config here to satisfy some video backends such as X11 */
  16.210 @@ -217,10 +234,10 @@
  16.211  {
  16.212      /* 64 seems nice. */
  16.213      EGLint attribs[64];
  16.214 -    EGLint found_configs = 0;
  16.215 +    EGLint found_configs = 0, value;
  16.216      /* 128 seems even nicer here */
  16.217      EGLConfig configs[128];
  16.218 -    int i, j, best_bitdiff = -1, bitdiff, value;
  16.219 +    int i, j, best_bitdiff = -1, bitdiff;
  16.220      
  16.221      if (!_this->egl_data) {
  16.222          /* The EGL library wasn't loaded, SDL_GetError() should have info */
  16.223 @@ -283,10 +300,10 @@
  16.224      
  16.225      /* eglChooseConfig returns a number of configurations that match or exceed the requested attribs. */
  16.226      /* From those, we select the one that matches our requirements more closely via a makeshift algorithm */
  16.227 -    
  16.228 +
  16.229      for ( i=0; i<found_configs; i++ ) {
  16.230          bitdiff = 0;
  16.231 -        for (j = 0; ; j += 2) {
  16.232 +        for (j = 0; j < SDL_arraysize(attribs) - 1; j += 2) {
  16.233              if (attribs[j] == EGL_NONE) {
  16.234                 break;
  16.235              }
  16.236 @@ -298,7 +315,6 @@
  16.237                  attribs[j] == EGL_ALPHA_SIZE ||
  16.238                  attribs[j] == EGL_DEPTH_SIZE ||
  16.239                  attribs[j] == EGL_STENCIL_SIZE)) {
  16.240 -                
  16.241                  _this->egl_data->eglGetConfigAttrib(_this->egl_data->egl_display, configs[i], attribs[j], &value);
  16.242                  bitdiff += value - attribs[j + 1]; /* value is always >= attrib */
  16.243              }
    17.1 --- a/src/video/SDL_egl.h	Fri Nov 22 10:26:28 2013 -0300
    17.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.3 @@ -1,132 +0,0 @@
    17.4 -/*
    17.5 -  Simple DirectMedia Layer
    17.6 -  Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
    17.7 -
    17.8 -  This software is provided 'as-is', without any express or implied
    17.9 -  warranty.  In no event will the authors be held liable for any damages
   17.10 -  arising from the use of this software.
   17.11 -
   17.12 -  Permission is granted to anyone to use this software for any purpose,
   17.13 -  including commercial applications, and to alter it and redistribute it
   17.14 -  freely, subject to the following restrictions:
   17.15 -
   17.16 -  1. The origin of this software must not be misrepresented; you must not
   17.17 -     claim that you wrote the original software. If you use this software
   17.18 -     in a product, an acknowledgment in the product documentation would be
   17.19 -     appreciated but is not required.
   17.20 -  2. Altered source versions must be plainly marked as such, and must not be
   17.21 -     misrepresented as being the original software.
   17.22 -  3. This notice may not be removed or altered from any source distribution.
   17.23 -*/
   17.24 -#include "SDL_config.h"
   17.25 -
   17.26 -#ifndef _SDL_egl_h
   17.27 -#define _SDL_egl_h
   17.28 -
   17.29 -#if SDL_VIDEO_OPENGL_EGL
   17.30 -
   17.31 -#include <EGL/egl.h>
   17.32 -
   17.33 -#include <dlfcn.h>
   17.34 -#if defined(__OpenBSD__) && !defined(__ELF__)
   17.35 -#define dlsym(x,y) dlsym(x, "_" y)
   17.36 -#endif
   17.37 -
   17.38 -#include "SDL_sysvideo.h"
   17.39 -
   17.40 -typedef struct SDL_EGL_VideoData
   17.41 -{
   17.42 -    void *egl_dll_handle;
   17.43 -    EGLDisplay egl_display;
   17.44 -    EGLConfig egl_config;
   17.45 -    int egl_swapinterval;
   17.46 -    
   17.47 -    EGLDisplay(*eglGetDisplay) (NativeDisplayType display);
   17.48 -    EGLBoolean(*eglInitialize) (EGLDisplay dpy, EGLint * major,
   17.49 -                                EGLint * minor);
   17.50 -    EGLBoolean(*eglTerminate) (EGLDisplay dpy);
   17.51 -    
   17.52 -    void *(*eglGetProcAddress) (const char * procName);
   17.53 -    
   17.54 -    EGLBoolean(*eglChooseConfig) (EGLDisplay dpy,
   17.55 -                                  const EGLint * attrib_list,
   17.56 -                                  EGLConfig * configs,
   17.57 -                                  EGLint config_size, EGLint * num_config);
   17.58 -    
   17.59 -    EGLContext(*eglCreateContext) (EGLDisplay dpy,
   17.60 -                                   EGLConfig config,
   17.61 -                                   EGLContext share_list,
   17.62 -                                   const EGLint * attrib_list);
   17.63 -    
   17.64 -    EGLBoolean(*eglDestroyContext) (EGLDisplay dpy, EGLContext ctx);
   17.65 -    
   17.66 -    EGLSurface(*eglCreateWindowSurface) (EGLDisplay dpy,
   17.67 -                                         EGLConfig config,
   17.68 -                                         NativeWindowType window,
   17.69 -                                         const EGLint * attrib_list);
   17.70 -    EGLBoolean(*eglDestroySurface) (EGLDisplay dpy, EGLSurface surface);
   17.71 -    
   17.72 -    EGLBoolean(*eglMakeCurrent) (EGLDisplay dpy, EGLSurface draw,
   17.73 -                                 EGLSurface read, EGLContext ctx);
   17.74 -    
   17.75 -    EGLBoolean(*eglSwapBuffers) (EGLDisplay dpy, EGLSurface draw);
   17.76 -    
   17.77 -    EGLBoolean(*eglSwapInterval) (EGLDisplay dpy, EGLint interval);
   17.78 -    
   17.79 -    const char *(*eglQueryString) (EGLDisplay dpy, EGLint name);
   17.80 -    
   17.81 -    EGLBoolean(*eglGetConfigAttrib) (EGLDisplay dpy, EGLConfig config,
   17.82 -                                     EGLint attribute, EGLint * value);
   17.83 -    
   17.84 -    EGLBoolean(*eglWaitNative) (EGLint  engine);
   17.85 -
   17.86 -    EGLBoolean(*eglWaitGL)(void);   
   17.87 -} SDL_EGL_VideoData;
   17.88 -
   17.89 -/* OpenGLES functions */
   17.90 -extern int SDL_EGL_GetAttribute(_THIS, SDL_GLattr attrib, int *value);
   17.91 -extern int SDL_EGL_LoadLibrary(_THIS, const char *path, NativeDisplayType native_display);
   17.92 -extern void *SDL_EGL_GetProcAddress(_THIS, const char *proc);
   17.93 -extern void SDL_EGL_UnloadLibrary(_THIS);
   17.94 -extern int SDL_EGL_ChooseConfig(_THIS);
   17.95 -extern int SDL_EGL_SetSwapInterval(_THIS, int interval);
   17.96 -extern int SDL_EGL_GetSwapInterval(_THIS);
   17.97 -extern void SDL_EGL_DeleteContext(_THIS, SDL_GLContext context);
   17.98 -extern EGLSurface *SDL_EGL_CreateSurface(_THIS, NativeWindowType nw);
   17.99 -extern void SDL_EGL_DestroySurface(_THIS, EGLSurface egl_surface);
  17.100 -
  17.101 -/* These need to be wrapped to get the surface for the window by the platform GLES implementation */
  17.102 -extern SDL_GLContext SDL_EGL_CreateContext(_THIS, EGLSurface egl_surface);
  17.103 -extern int SDL_EGL_MakeCurrent(_THIS, EGLSurface egl_surface, SDL_GLContext context);
  17.104 -extern void SDL_EGL_SwapBuffers(_THIS, EGLSurface egl_surface);
  17.105 -
  17.106 -/* A few of useful macros */
  17.107 -
  17.108 -#define SDL_EGL_SwapWindow_impl(BACKEND) void \
  17.109 -BACKEND ## _GLES_SwapWindow(_THIS, SDL_Window * window) \
  17.110 -{\
  17.111 -    SDL_EGL_SwapBuffers(_this, ((SDL_WindowData *) window->driverdata)->egl_surface);\
  17.112 -}
  17.113 -
  17.114 -#define SDL_EGL_MakeCurrent_impl(BACKEND) int \
  17.115 -BACKEND ## _GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context) \
  17.116 -{\
  17.117 -    if (window && context) { \
  17.118 -        return SDL_EGL_MakeCurrent(_this, ((SDL_WindowData *) window->driverdata)->egl_surface, context); \
  17.119 -    }\
  17.120 -    else {\
  17.121 -        return SDL_EGL_MakeCurrent(_this, NULL, NULL);\
  17.122 -    }\
  17.123 -}
  17.124 -
  17.125 -#define SDL_EGL_CreateContext_impl(BACKEND) SDL_GLContext \
  17.126 -BACKEND ## _GLES_CreateContext(_THIS, SDL_Window * window) \
  17.127 -{\
  17.128 -    return SDL_EGL_CreateContext(_this, ((SDL_WindowData *) window->driverdata)->egl_surface);\
  17.129 -}
  17.130 -
  17.131 -#endif /* SDL_VIDEO_OPENGL_EGL */
  17.132 -
  17.133 -#endif /* _SDL_egl_h */
  17.134 -
  17.135 -/* vi: set ts=4 sw=4 expandtab: */
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/src/video/SDL_egl_c.h	Fri Nov 22 13:24:53 2013 -0300
    18.3 @@ -0,0 +1,127 @@
    18.4 +/*
    18.5 +  Simple DirectMedia Layer
    18.6 +  Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
    18.7 +
    18.8 +  This software is provided 'as-is', without any express or implied
    18.9 +  warranty.  In no event will the authors be held liable for any damages
   18.10 +  arising from the use of this software.
   18.11 +
   18.12 +  Permission is granted to anyone to use this software for any purpose,
   18.13 +  including commercial applications, and to alter it and redistribute it
   18.14 +  freely, subject to the following restrictions:
   18.15 +
   18.16 +  1. The origin of this software must not be misrepresented; you must not
   18.17 +     claim that you wrote the original software. If you use this software
   18.18 +     in a product, an acknowledgment in the product documentation would be
   18.19 +     appreciated but is not required.
   18.20 +  2. Altered source versions must be plainly marked as such, and must not be
   18.21 +     misrepresented as being the original software.
   18.22 +  3. This notice may not be removed or altered from any source distribution.
   18.23 +*/
   18.24 +#include "SDL_config.h"
   18.25 +
   18.26 +#ifndef _SDL_egl_h
   18.27 +#define _SDL_egl_h
   18.28 +
   18.29 +#if SDL_VIDEO_OPENGL_EGL
   18.30 +
   18.31 +#include "SDL_egl.h"
   18.32 +
   18.33 +#include "SDL_sysvideo.h"
   18.34 +
   18.35 +typedef struct SDL_EGL_VideoData
   18.36 +{
   18.37 +    void *egl_dll_handle, *dll_handle;
   18.38 +    EGLDisplay egl_display;
   18.39 +    EGLConfig egl_config;
   18.40 +    int egl_swapinterval;
   18.41 +    
   18.42 +    EGLDisplay(EGLAPIENTRY *eglGetDisplay) (NativeDisplayType display);
   18.43 +    EGLBoolean(EGLAPIENTRY *eglInitialize) (EGLDisplay dpy, EGLint * major,
   18.44 +                                EGLint * minor);
   18.45 +    EGLBoolean(EGLAPIENTRY  *eglTerminate) (EGLDisplay dpy);
   18.46 +    
   18.47 +    void *(EGLAPIENTRY *eglGetProcAddress) (const char * procName);
   18.48 +    
   18.49 +    EGLBoolean(EGLAPIENTRY *eglChooseConfig) (EGLDisplay dpy,
   18.50 +                                  const EGLint * attrib_list,
   18.51 +                                  EGLConfig * configs,
   18.52 +                                  EGLint config_size, EGLint * num_config);
   18.53 +    
   18.54 +    EGLContext(EGLAPIENTRY *eglCreateContext) (EGLDisplay dpy,
   18.55 +                                   EGLConfig config,
   18.56 +                                   EGLContext share_list,
   18.57 +                                   const EGLint * attrib_list);
   18.58 +    
   18.59 +    EGLBoolean(EGLAPIENTRY *eglDestroyContext) (EGLDisplay dpy, EGLContext ctx);
   18.60 +    
   18.61 +    EGLSurface(EGLAPIENTRY *eglCreateWindowSurface) (EGLDisplay dpy,
   18.62 +                                         EGLConfig config,
   18.63 +                                         NativeWindowType window,
   18.64 +                                         const EGLint * attrib_list);
   18.65 +    EGLBoolean(EGLAPIENTRY *eglDestroySurface) (EGLDisplay dpy, EGLSurface surface);
   18.66 +    
   18.67 +    EGLBoolean(EGLAPIENTRY *eglMakeCurrent) (EGLDisplay dpy, EGLSurface draw,
   18.68 +                                 EGLSurface read, EGLContext ctx);
   18.69 +    
   18.70 +    EGLBoolean(EGLAPIENTRY *eglSwapBuffers) (EGLDisplay dpy, EGLSurface draw);
   18.71 +    
   18.72 +    EGLBoolean(EGLAPIENTRY *eglSwapInterval) (EGLDisplay dpy, EGLint interval);
   18.73 +    
   18.74 +    const char *(EGLAPIENTRY *eglQueryString) (EGLDisplay dpy, EGLint name);
   18.75 +    
   18.76 +    EGLBoolean(EGLAPIENTRY  *eglGetConfigAttrib) (EGLDisplay dpy, EGLConfig config,
   18.77 +                                     EGLint attribute, EGLint * value);
   18.78 +    
   18.79 +    EGLBoolean(EGLAPIENTRY *eglWaitNative) (EGLint  engine);
   18.80 +
   18.81 +    EGLBoolean(EGLAPIENTRY *eglWaitGL)(void);
   18.82 +} SDL_EGL_VideoData;
   18.83 +
   18.84 +/* OpenGLES functions */
   18.85 +extern int SDL_EGL_GetAttribute(_THIS, SDL_GLattr attrib, int *value);
   18.86 +extern int SDL_EGL_LoadLibrary(_THIS, const char *path, NativeDisplayType native_display);
   18.87 +extern void *SDL_EGL_GetProcAddress(_THIS, const char *proc);
   18.88 +extern void SDL_EGL_UnloadLibrary(_THIS);
   18.89 +extern int SDL_EGL_ChooseConfig(_THIS);
   18.90 +extern int SDL_EGL_SetSwapInterval(_THIS, int interval);
   18.91 +extern int SDL_EGL_GetSwapInterval(_THIS);
   18.92 +extern void SDL_EGL_DeleteContext(_THIS, SDL_GLContext context);
   18.93 +extern EGLSurface *SDL_EGL_CreateSurface(_THIS, NativeWindowType nw);
   18.94 +extern void SDL_EGL_DestroySurface(_THIS, EGLSurface egl_surface);
   18.95 +
   18.96 +/* These need to be wrapped to get the surface for the window by the platform GLES implementation */
   18.97 +extern SDL_GLContext SDL_EGL_CreateContext(_THIS, EGLSurface egl_surface);
   18.98 +extern int SDL_EGL_MakeCurrent(_THIS, EGLSurface egl_surface, SDL_GLContext context);
   18.99 +extern void SDL_EGL_SwapBuffers(_THIS, EGLSurface egl_surface);
  18.100 +
  18.101 +/* A few of useful macros */
  18.102 +
  18.103 +#define SDL_EGL_SwapWindow_impl(BACKEND) void \
  18.104 +BACKEND ## _GLES_SwapWindow(_THIS, SDL_Window * window) \
  18.105 +{\
  18.106 +    SDL_EGL_SwapBuffers(_this, ((SDL_WindowData *) window->driverdata)->egl_surface);\
  18.107 +}
  18.108 +
  18.109 +#define SDL_EGL_MakeCurrent_impl(BACKEND) int \
  18.110 +BACKEND ## _GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context) \
  18.111 +{\
  18.112 +    if (window && context) { \
  18.113 +        return SDL_EGL_MakeCurrent(_this, ((SDL_WindowData *) window->driverdata)->egl_surface, context); \
  18.114 +    }\
  18.115 +    else {\
  18.116 +        return SDL_EGL_MakeCurrent(_this, NULL, NULL);\
  18.117 +    }\
  18.118 +}
  18.119 +
  18.120 +#define SDL_EGL_CreateContext_impl(BACKEND) SDL_GLContext \
  18.121 +BACKEND ## _GLES_CreateContext(_THIS, SDL_Window * window) \
  18.122 +{\
  18.123 +    return SDL_EGL_CreateContext(_this, ((SDL_WindowData *) window->driverdata)->egl_surface);\
  18.124 +}
  18.125 +
  18.126 +#endif /* SDL_VIDEO_OPENGL_EGL */
  18.127 +
  18.128 +#endif /* _SDL_egl_h */
  18.129 +
  18.130 +/* vi: set ts=4 sw=4 expandtab: */
    19.1 --- a/src/video/android/SDL_androidgl.c	Fri Nov 22 10:26:28 2013 -0300
    19.2 +++ b/src/video/android/SDL_androidgl.c	Fri Nov 22 13:24:53 2013 -0300
    19.3 @@ -25,7 +25,7 @@
    19.4  /* Android SDL video driver implementation */
    19.5  
    19.6  #include "SDL_video.h"
    19.7 -#include "../SDL_egl.h"
    19.8 +#include "../SDL_egl_c.h"
    19.9  #include "SDL_androidwindow.h"
   19.10  
   19.11  #include "SDL_androidvideo.h"
    20.1 --- a/src/video/android/SDL_androidvideo.c	Fri Nov 22 10:26:28 2013 -0300
    20.2 +++ b/src/video/android/SDL_androidvideo.c	Fri Nov 22 13:24:53 2013 -0300
    20.3 @@ -45,7 +45,7 @@
    20.4  static int Android_VideoInit(_THIS);
    20.5  static void Android_VideoQuit(_THIS);
    20.6  
    20.7 -#include "../SDL_egl.h"
    20.8 +#include "../SDL_egl_c.h"
    20.9  /* GL functions (SDL_androidgl.c) */
   20.10  extern SDL_GLContext Android_GLES_CreateContext(_THIS, SDL_Window * window);
   20.11  extern int Android_GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context);
    21.1 --- a/src/video/android/SDL_androidwindow.h	Fri Nov 22 10:26:28 2013 -0300
    21.2 +++ b/src/video/android/SDL_androidwindow.h	Fri Nov 22 13:24:53 2013 -0300
    21.3 @@ -24,7 +24,7 @@
    21.4  #define _SDL_androidwindow_h
    21.5  
    21.6  #include "../../core/android/SDL_android.h"
    21.7 -#include "../SDL_egl.h"
    21.8 +#include "../SDL_egl_c.h"
    21.9  
   21.10  extern int Android_CreateWindow(_THIS, SDL_Window * window);
   21.11  extern void Android_SetWindowTitle(_THIS, SDL_Window * window);
    22.1 --- a/src/video/raspberry/SDL_rpiopengles.h	Fri Nov 22 10:26:28 2013 -0300
    22.2 +++ b/src/video/raspberry/SDL_rpiopengles.h	Fri Nov 22 13:24:53 2013 -0300
    22.3 @@ -26,7 +26,7 @@
    22.4  #if SDL_VIDEO_DRIVER_RPI && SDL_VIDEO_OPENGL_EGL
    22.5  
    22.6  #include "../SDL_sysvideo.h"
    22.7 -#include "../SDL_egl.h"
    22.8 +#include "../SDL_egl_c.h"
    22.9  
   22.10  /* OpenGLES functions */
   22.11  #define RPI_GLES_GetAttribute SDL_EGL_GetAttribute
    23.1 --- a/src/video/windows/SDL_windowsopengl.c	Fri Nov 22 10:26:28 2013 -0300
    23.2 +++ b/src/video/windows/SDL_windowsopengl.c	Fri Nov 22 13:24:53 2013 -0300
    23.3 @@ -25,6 +25,7 @@
    23.4  #include "SDL_assert.h"
    23.5  #include "SDL_loadso.h"
    23.6  #include "SDL_windowsvideo.h"
    23.7 +#include "SDL_windowsopengles.h"
    23.8  
    23.9  /* WGL implementation of SDL OpenGL support */
   23.10  
   23.11 @@ -323,11 +324,35 @@
   23.12      return SDL_FALSE;
   23.13  }
   23.14  
   23.15 -static void
   23.16 -WIN_GL_InitExtensions(_THIS, HDC hdc)
   23.17 +void
   23.18 +WIN_GL_InitExtensions(_THIS)
   23.19  {
   23.20      const char *(WINAPI * wglGetExtensionsStringARB) (HDC) = 0;
   23.21      const char *extensions;
   23.22 +    HWND hwnd;
   23.23 +    HDC hdc;
   23.24 +    HGLRC hglrc;
   23.25 +    PIXELFORMATDESCRIPTOR pfd;
   23.26 +
   23.27 +    hwnd =
   23.28 +        CreateWindow(SDL_Appname, SDL_Appname, (WS_POPUP | WS_DISABLED), 0, 0,
   23.29 +        10, 10, NULL, NULL, SDL_Instance, NULL);
   23.30 +    if (!hwnd) {
   23.31 +        return;
   23.32 +    }
   23.33 +    WIN_PumpEvents(_this);
   23.34 +
   23.35 +    hdc = GetDC(hwnd);
   23.36 +
   23.37 +    WIN_GL_SetupPixelFormat(_this, &pfd);
   23.38 +
   23.39 +    SetPixelFormat(hdc, ChoosePixelFormat(hdc, &pfd), &pfd);
   23.40 +
   23.41 +    hglrc = _this->gl_data->wglCreateContext(hdc);
   23.42 +    if (!hglrc) {
   23.43 +        return;
   23.44 +    }
   23.45 +    _this->gl_data->wglMakeCurrent(hdc, hglrc);
   23.46  
   23.47      wglGetExtensionsStringARB = (const char *(WINAPI *) (HDC))
   23.48          _this->gl_data->wglGetProcAddress("wglGetExtensionsStringARB");
   23.49 @@ -369,6 +394,18 @@
   23.50          _this->gl_data->wglSwapIntervalEXT = NULL;
   23.51          _this->gl_data->wglGetSwapIntervalEXT = NULL;
   23.52      }
   23.53 +
   23.54 +    /* Check for WGL_EXT_create_context_es2_profile */
   23.55 +    _this->gl_data->HAS_WGL_EXT_create_context_es2_profile = SDL_FALSE;
   23.56 +    if (HasExtension("WGL_EXT_create_context_es2_profile", extensions)) {
   23.57 +        _this->gl_data->HAS_WGL_EXT_create_context_es2_profile = SDL_TRUE;
   23.58 +    }
   23.59 +
   23.60 +    _this->gl_data->wglMakeCurrent(hdc, NULL);
   23.61 +    _this->gl_data->wglDeleteContext(hglrc);
   23.62 +    ReleaseDC(hwnd, hdc);
   23.63 +    DestroyWindow(hwnd);
   23.64 +    WIN_PumpEvents(_this);
   23.65  }
   23.66  
   23.67  static int
   23.68 @@ -396,8 +433,6 @@
   23.69      if (hglrc) {
   23.70          _this->gl_data->wglMakeCurrent(hdc, hglrc);
   23.71  
   23.72 -        WIN_GL_InitExtensions(_this, hdc);
   23.73 -
   23.74          if (_this->gl_data->HAS_WGL_ARB_pixel_format) {
   23.75              _this->gl_data->wglChoosePixelFormatARB(hdc, iAttribs, fAttribs,
   23.76                                                      1, &pixel_format,
   23.77 @@ -548,6 +583,27 @@
   23.78      HDC hdc = ((SDL_WindowData *) window->driverdata)->hdc;
   23.79      HGLRC context, share_context;
   23.80  
   23.81 +    if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES &&
   23.82 +        !_this->gl_data->HAS_WGL_EXT_create_context_es2_profile) {
   23.83 +        /* Switch to EGL based functions */
   23.84 +        WIN_GL_UnloadLibrary(_this);
   23.85 +        _this->GL_LoadLibrary = WIN_GLES_LoadLibrary;
   23.86 +        _this->GL_GetProcAddress = WIN_GLES_GetProcAddress;
   23.87 +        _this->GL_UnloadLibrary = WIN_GLES_UnloadLibrary;
   23.88 +        _this->GL_CreateContext = WIN_GLES_CreateContext;
   23.89 +        _this->GL_MakeCurrent = WIN_GLES_MakeCurrent;
   23.90 +        _this->GL_SetSwapInterval = WIN_GLES_SetSwapInterval;
   23.91 +        _this->GL_GetSwapInterval = WIN_GLES_GetSwapInterval;
   23.92 +        _this->GL_SwapWindow = WIN_GLES_SwapWindow;
   23.93 +        _this->GL_DeleteContext = WIN_GLES_DeleteContext;
   23.94 +        
   23.95 +        if (WIN_GLES_LoadLibrary(_this, NULL) != 0) {
   23.96 +            return NULL;
   23.97 +        }
   23.98 +        
   23.99 +        return WIN_GLES_CreateContext(_this, window);
  23.100 +    }
  23.101 +
  23.102      if (_this->gl_config.share_with_current_context) {
  23.103          share_context = (HGLRC)SDL_GL_GetCurrentContext();
  23.104      } else {
  23.105 @@ -622,8 +678,6 @@
  23.106          return NULL;
  23.107      }
  23.108  
  23.109 -    WIN_GL_InitExtensions(_this, hdc);
  23.110 -
  23.111      return context;
  23.112  }
  23.113  
    24.1 --- a/src/video/windows/SDL_windowsopengl.h	Fri Nov 22 10:26:28 2013 -0300
    24.2 +++ b/src/video/windows/SDL_windowsopengl.h	Fri Nov 22 13:24:53 2013 -0300
    24.3 @@ -29,6 +29,7 @@
    24.4  {
    24.5      SDL_bool HAS_WGL_ARB_pixel_format;
    24.6      SDL_bool HAS_WGL_EXT_swap_control_tear;
    24.7 +    SDL_bool HAS_WGL_EXT_create_context_es2_profile;
    24.8  
    24.9      void *(WINAPI * wglGetProcAddress) (const char *proc);
   24.10        HGLRC(WINAPI * wglCreateContext) (HDC hdc);
   24.11 @@ -62,6 +63,7 @@
   24.12  extern int WIN_GL_GetSwapInterval(_THIS);
   24.13  extern void WIN_GL_SwapWindow(_THIS, SDL_Window * window);
   24.14  extern void WIN_GL_DeleteContext(_THIS, SDL_GLContext context);
   24.15 +extern void WIN_GL_InitExtensions(_THIS);
   24.16  
   24.17  #ifndef WGL_ARB_pixel_format
   24.18  #define WGL_NUMBER_PIXEL_FORMATS_ARB   0x2000
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/src/video/windows/SDL_windowsopengles.c	Fri Nov 22 13:24:53 2013 -0300
    25.3 @@ -0,0 +1,141 @@
    25.4 +/*
    25.5 +Simple DirectMedia Layer
    25.6 +Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
    25.7 +
    25.8 +This software is provided 'as-is', without any express or implied
    25.9 +warranty.  In no event will the authors be held liable for any damages
   25.10 +arising from the use of this software.
   25.11 +
   25.12 +Permission is granted to anyone to use this software for any purpose,
   25.13 +including commercial applications, and to alter it and redistribute it
   25.14 +freely, subject to the following restrictions:
   25.15 +
   25.16 +1. The origin of this software must not be misrepresented; you must not
   25.17 +claim that you wrote the original software. If you use this software
   25.18 +in a product, an acknowledgment in the product documentation would be
   25.19 +appreciated but is not required.
   25.20 +2. Altered source versions must be plainly marked as such, and must not be
   25.21 +misrepresented as being the original software.
   25.22 +3. This notice may not be removed or altered from any source distribution.
   25.23 +*/
   25.24 +#include "SDL_config.h"
   25.25 +
   25.26 +#if SDL_VIDEO_DRIVER_WINDOWS && SDL_VIDEO_OPENGL_EGL
   25.27 +
   25.28 +#include "SDL_windowsvideo.h"
   25.29 +#include "SDL_windowsopengles.h"
   25.30 +#include "SDL_windowsopengl.h"
   25.31 +#include "SDL_log.h"
   25.32 +
   25.33 +/* EGL implementation of SDL OpenGL support */
   25.34 +
   25.35 +int
   25.36 +WIN_GLES_LoadLibrary(_THIS, const char *path) {
   25.37 +
   25.38 +    SDL_VideoData *data = (SDL_VideoData *)_this->driverdata;
   25.39 +
   25.40 +    /* If the profile requested is not GL ES, switch over to WIN_GL functions  */
   25.41 +    if (_this->gl_config.profile_mask != SDL_GL_CONTEXT_PROFILE_ES) {
   25.42 +#if SDL_VIDEO_OPENGL_WGL
   25.43 +        WIN_GLES_UnloadLibrary(_this);
   25.44 +        _this->GL_LoadLibrary = WIN_GL_LoadLibrary;
   25.45 +        _this->GL_GetProcAddress = WIN_GL_GetProcAddress;
   25.46 +        _this->GL_UnloadLibrary = WIN_GL_UnloadLibrary;
   25.47 +        _this->GL_CreateContext = WIN_GL_CreateContext;
   25.48 +        _this->GL_MakeCurrent = WIN_GL_MakeCurrent;
   25.49 +        _this->GL_SetSwapInterval = WIN_GL_SetSwapInterval;
   25.50 +        _this->GL_GetSwapInterval = WIN_GL_GetSwapInterval;
   25.51 +        _this->GL_SwapWindow = WIN_GL_SwapWindow;
   25.52 +        _this->GL_DeleteContext = WIN_GL_DeleteContext;
   25.53 +        return WIN_GL_LoadLibrary(_this, path);
   25.54 +#else
   25.55 +        return SDL_SetError("SDL not configured with OpenGL/WGL support");
   25.56 +#endif
   25.57 +    }
   25.58 +    
   25.59 +    if (_this->egl_data == NULL) {
   25.60 +        return SDL_EGL_LoadLibrary(_this, NULL, EGL_DEFAULT_DISPLAY);
   25.61 +    }
   25.62 +
   25.63 +    return 0;
   25.64 +}
   25.65 +
   25.66 +SDL_GLContext
   25.67 +WIN_GLES_CreateContext(_THIS, SDL_Window * window)
   25.68 +{
   25.69 +    SDL_GLContext context;
   25.70 +    SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
   25.71 +
   25.72 +    if (_this->gl_config.profile_mask != SDL_GL_CONTEXT_PROFILE_ES) {
   25.73 +        /* Switch to WGL based functions */
   25.74 +        WIN_GLES_UnloadLibrary(_this);
   25.75 +        _this->GL_LoadLibrary = WIN_GL_LoadLibrary;
   25.76 +        _this->GL_GetProcAddress = WIN_GL_GetProcAddress;
   25.77 +        _this->GL_UnloadLibrary = WIN_GL_UnloadLibrary;
   25.78 +        _this->GL_CreateContext = WIN_GL_CreateContext;
   25.79 +        _this->GL_MakeCurrent = WIN_GL_MakeCurrent;
   25.80 +        _this->GL_SetSwapInterval = WIN_GL_SetSwapInterval;
   25.81 +        _this->GL_GetSwapInterval = WIN_GL_GetSwapInterval;
   25.82 +        _this->GL_SwapWindow = WIN_GL_SwapWindow;
   25.83 +        _this->GL_DeleteContext = WIN_GL_DeleteContext;
   25.84 +
   25.85 +        if (WIN_GL_LoadLibrary(_this, NULL) != 0) {
   25.86 +            return NULL;
   25.87 +        }
   25.88 +
   25.89 +        return WIN_GL_CreateContext(_this, window);
   25.90 +    }
   25.91 +
   25.92 +    context = SDL_EGL_CreateContext(_this, data->egl_surface);
   25.93 +    return context;
   25.94 +}
   25.95 +
   25.96 +void
   25.97 +WIN_GLES_DeleteContext(_THIS, SDL_GLContext context)
   25.98 +{
   25.99 +    SDL_EGL_DeleteContext(_this, context);
  25.100 +    WIN_GLES_UnloadLibrary(_this);
  25.101 +}
  25.102 +
  25.103 +SDL_EGL_SwapWindow_impl(WIN)
  25.104 +SDL_EGL_MakeCurrent_impl(WIN)
  25.105 +
  25.106 +int
  25.107 +WIN_GLES_SetupWindow(_THIS, SDL_Window * window)
  25.108 +{
  25.109 +    /* The current context is lost in here; save it and reset it. */
  25.110 +    SDL_WindowData *windowdata = (SDL_WindowData *) window->driverdata;
  25.111 +    SDL_Wind