docs/README-windows.md
author Ryan C. Gordon
Mon, 23 Jan 2017 12:06:10 -0500
changeset 10837 c2f241c2f6ad
parent 10486 5bf595c48fd4
child 11365 a9bd2625fa01
permissions -rw-r--r--
audio: Fix same bug as last commit, but for _mm_bslli_si128 vs _mm_slli_si128.
slouken@10486
     1
Windows
slouken@10486
     2
================================================================================
slouken@10486
     3
slouken@10486
     4
================================================================================
slouken@10486
     5
OpenGL ES 2.x support
slouken@10486
     6
================================================================================
slouken@10486
     7
slouken@10486
     8
SDL has support for OpenGL ES 2.x under Windows via two alternative 
slouken@10486
     9
implementations. 
slouken@10486
    10
The most straightforward method consists in running your app in a system with 
slouken@10486
    11
a graphic card paired with a relatively recent (as of November of 2013) driver 
slouken@10486
    12
which supports the WGL_EXT_create_context_es2_profile extension. Vendors known 
slouken@10486
    13
to ship said extension on Windows currently include nVidia and Intel.
slouken@10486
    14
slouken@10486
    15
The other method involves using the ANGLE library (https://code.google.com/p/angleproject/)
slouken@10486
    16
If an OpenGL ES 2.x context is requested and no WGL_EXT_create_context_es2_profile
slouken@10486
    17
extension is found, SDL will try to load the libEGL.dll library provided by
slouken@10486
    18
ANGLE.
slouken@10486
    19
To obtain the ANGLE binaries, you can either compile from source from
slouken@10486
    20
https://chromium.googlesource.com/angle/angle or copy the relevant binaries from
slouken@10486
    21
a recent Chrome/Chromium install for Windows. The files you need are:
slouken@10486
    22
    
slouken@10486
    23
    * libEGL.dll
slouken@10486
    24
    * libGLESv2.dll
slouken@10486
    25
    * d3dcompiler_46.dll (supports Windows Vista or later, better shader compiler)
slouken@10486
    26
    or...
slouken@10486
    27
    * d3dcompiler_43.dll (supports Windows XP or later)
slouken@10486
    28
    
slouken@10486
    29
If you compile ANGLE from source, you can configure it so it does not need the
slouken@10486
    30
d3dcompiler_* DLL at all (for details on this, see their documentation). 
slouken@10486
    31
However, by default SDL will try to preload the d3dcompiler_46.dll to
slouken@10486
    32
comply with ANGLE's requirements. If you wish SDL to preload d3dcompiler_43.dll (to
slouken@10486
    33
support Windows XP) or to skip this step at all, you can use the 
slouken@10486
    34
SDL_HINT_VIDEO_WIN_D3DCOMPILER hint (see SDL_hints.h for more details).
slouken@10486
    35
slouken@10486
    36
Known Bugs:
slouken@10486
    37
    
slouken@10486
    38
    * SDL_GL_SetSwapInterval is currently a no op when using ANGLE. It appears
slouken@10486
    39
      that there's a bug in the library which prevents the window contents from
slouken@10486
    40
      refreshing if this is set to anything other than the default value.
slouken@10486
    41