docs/README.md
author Sam Lantinga <slouken@libsdl.org>
Wed, 18 Oct 2017 08:52:04 -0700
changeset 11630 ad4b5d85edee
parent 10811 8dd0da2a25b6
permissions -rw-r--r--
Fixed bug 3821 - Allow SDL_CreateWindow and SDL_CreateRenderer with OpenGL ES 3.0 (GLES3) for Angle (Windows)

Carlos

Angle supports GLES3 but when using these functions (SDL_CreateWindow and SDL_CreateRenderer), defaults again to GLES2.0.

A current workaround (hack) to retrieve a GLES3.0 context with Angle is:

1) set

SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);

after InitSDL AND after calling SDL_CreateWindow (before SDL_CreateRenderer)

2) Comment lines 2032-2044 in SDL_render_gles2.c, funtion GLES2_CreateRenderer

window_flags = SDL_GetWindowFlags(window);
if (!(window_flags & SDL_WINDOW_OPENGL) ||
profile_mask != SDL_GL_CONTEXT_PROFILE_ES || major != RENDERER_CONTEXT_MAJOR || minor != RENDERER_CONTEXT_MINOR) {

changed_window = SDL_TRUE;
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, RENDERER_CONTEXT_MAJOR);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, RENDERER_CONTEXT_MINOR);

if (SDL_RecreateWindow(window, window_flags | SDL_WINDOW_OPENGL) < 0) {
goto error;
}
}

This retrives a GLES3 context as confirmed using glGetString(GL_VERSION). This should be fixed by modifying a few if's.
     1 Simple DirectMedia Layer {#mainpage}
     2 ========================
     3 
     4                                   (SDL)
     5 
     6                                 Version 2.0
     7 
     8 ---
     9 http://www.libsdl.org/
    10 
    11 Simple DirectMedia Layer is a cross-platform development library designed
    12 to provide low level access to audio, keyboard, mouse, joystick, and graphics
    13 hardware via OpenGL and Direct3D. It is used by video playback software,
    14 emulators, and popular games including Valve's award winning catalog
    15 and many Humble Bundle games.
    16 
    17 SDL officially supports Windows, Mac OS X, Linux, iOS, and Android.
    18 Support for other platforms may be found in the source code.
    19 
    20 SDL is written in C, works natively with C++, and there are bindings 
    21 available for several other languages, including C# and Python.
    22 
    23 This library is distributed under the zlib license, which can be found
    24 in the file "COPYING.txt".
    25 
    26 The best way to learn how to use SDL is to check out the header files in
    27 the "include" subdirectory and the programs in the "test" subdirectory.
    28 The header files and test programs are well commented and always up to date.
    29 
    30 More documentation and FAQs are available online at [the wiki](http://wiki.libsdl.org/)
    31 
    32 - [Android](README-android.md)
    33 - [CMake](README-cmake.md)
    34 - [DirectFB](README-directfb.md)
    35 - [DynAPI](README-dynapi.md)
    36 - [Emscripten](README-emscripten.md)
    37 - [Gesture](README-gesture.md)
    38 - [Mercurial](README-hg.md)
    39 - [iOS](README-ios.md)
    40 - [Linux](README-linux.md)
    41 - [OS X](README-macosx.md)
    42 - [Native Client](README-nacl.md)
    43 - [Pandora](README-pandora.md)
    44 - [Supported Platforms](README-platforms.md)
    45 - [Porting information](README-porting.md)
    46 - [PSP](README-psp.md)
    47 - [Raspberry Pi](README-raspberrypi.md)
    48 - [Touch](README-touch.md)
    49 - [WinCE](README-wince.md)
    50 - [Windows](README-windows.md)
    51 - [WinRT](README-winrt.md)
    52 
    53 If you need help with the library, or just want to discuss SDL related
    54 issues, you can join the [developers mailing list](http://www.libsdl.org/mailing-list.php)
    55 
    56 If you want to report bugs or contribute patches, please submit them to
    57 [bugzilla](https://bugzilla.libsdl.org/)
    58 
    59 Enjoy!
    60 
    61 
    62 Sam Lantinga <mailto:slouken@libsdl.org>
    63