include/SDL_config_wiz.h
author Sam Lantinga <slouken@libsdl.org>
Wed, 18 Oct 2017 08:52:04 -0700
changeset 11630 ad4b5d85edee
parent 11610 6dea196ecbcb
child 11684 eccdf37f8996
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.
slouken@3438
     1
/*
slouken@5535
     2
  Simple DirectMedia Layer
slouken@10737
     3
  Copyright (C) 1997-2017 Sam Lantinga <slouken@libsdl.org>
slouken@3438
     4
slouken@5535
     5
  This software is provided 'as-is', without any express or implied
slouken@5535
     6
  warranty.  In no event will the authors be held liable for any damages
slouken@5535
     7
  arising from the use of this software.
slouken@3438
     8
slouken@5535
     9
  Permission is granted to anyone to use this software for any purpose,
slouken@5535
    10
  including commercial applications, and to alter it and redistribute it
slouken@5535
    11
  freely, subject to the following restrictions:
slouken@3438
    12
slouken@5535
    13
  1. The origin of this software must not be misrepresented; you must not
slouken@5535
    14
     claim that you wrote the original software. If you use this software
slouken@5535
    15
     in a product, an acknowledgment in the product documentation would be
slouken@5535
    16
     appreciated but is not required.
slouken@5535
    17
  2. Altered source versions must be plainly marked as such, and must not be
slouken@5535
    18
     misrepresented as being the original software.
slouken@5535
    19
  3. This notice may not be removed or altered from any source distribution.
slouken@3438
    20
*/
slouken@3438
    21
slouken@10903
    22
#ifndef SDL_config_wiz_h_
slouken@10903
    23
#define SDL_config_wiz_h_
slouken@10638
    24
#define SDL_config_h_
slouken@3438
    25
slouken@3438
    26
/* This is a set of defines to configure the SDL features */
slouken@3438
    27
slouken@3438
    28
/* General platform specific identifiers */
slouken@3438
    29
#include "SDL_platform.h"
slouken@3438
    30
slouken@3438
    31
#define SDL_BYTEORDER 1234
slouken@3438
    32
slouken@11480
    33
#define STDC_HEADERS 1
slouken@3438
    34
#define HAVE_ALLOCA_H 1
slouken@11480
    35
#define HAVE_CTYPE_H 1
slouken@11480
    36
#define HAVE_ICONV_H 1
slouken@11480
    37
#define HAVE_INTTYPES_H 1
slouken@11480
    38
#define HAVE_LIMITS_H 1
slouken@11480
    39
#define HAVE_MALLOC_H 1
slouken@11480
    40
#define HAVE_MATH_H 1
slouken@11480
    41
#define HAVE_MEMORY_H 1
slouken@11480
    42
#define HAVE_SIGNAL_H 1
slouken@11480
    43
#define HAVE_STDARG_H 1
slouken@11480
    44
#define HAVE_STDINT_H 1
slouken@11480
    45
#define HAVE_STDIO_H 1
slouken@11480
    46
#define HAVE_STDLIB_H 1
slouken@11480
    47
#define HAVE_STRINGS_H 1
slouken@11480
    48
#define HAVE_STRING_H 1
slouken@3438
    49
#define HAVE_SYS_TYPES_H 1
slouken@11480
    50
slouken@3438
    51
#define HAVE_MALLOC 1
slouken@3438
    52
#define HAVE_CALLOC 1
slouken@3438
    53
#define HAVE_REALLOC 1
slouken@3438
    54
#define HAVE_FREE 1
slouken@3438
    55
#define HAVE_ALLOCA 1
slouken@3438
    56
#define HAVE_GETENV 1
slouken@7191
    57
#define HAVE_SETENV 1
slouken@3438
    58
#define HAVE_PUTENV 1
slouken@3438
    59
#define HAVE_UNSETENV 1
slouken@3438
    60
#define HAVE_QSORT 1
slouken@3438
    61
#define HAVE_ABS 1
slouken@3438
    62
#define HAVE_BCOPY 1
slouken@3438
    63
#define HAVE_MEMSET 1
slouken@3438
    64
#define HAVE_MEMCPY 1
slouken@3438
    65
#define HAVE_MEMMOVE 1
slouken@3438
    66
#define HAVE_STRLEN 1
slouken@3438
    67
#define HAVE_STRCHR 1
slouken@3438
    68
#define HAVE_STRRCHR 1
slouken@3438
    69
#define HAVE_STRSTR 1
slouken@3438
    70
#define HAVE_STRTOL 1
slouken@3438
    71
#define HAVE_STRTOUL 1
slouken@3438
    72
#define HAVE_STRTOLL 1
slouken@3438
    73
#define HAVE_STRTOULL 1
slouken@3438
    74
#define HAVE_ATOI 1
slouken@3438
    75
#define HAVE_ATOF 1
slouken@3438
    76
#define HAVE_STRCMP 1
slouken@3438
    77
#define HAVE_STRNCMP 1
slouken@3438
    78
#define HAVE_STRCASECMP 1
slouken@3438
    79
#define HAVE_STRNCASECMP 1
icculus@8089
    80
#define HAVE_VSSCANF 1
slouken@3438
    81
#define HAVE_VSNPRINTF 1
slouken@3438
    82
#define HAVE_M_PI 1
slouken@3438
    83
#define HAVE_CEIL 1
slouken@3438
    84
#define HAVE_COPYSIGN 1
slouken@3438
    85
#define HAVE_COS 1
slouken@3438
    86
#define HAVE_COSF 1
slouken@3438
    87
#define HAVE_FABS 1
slouken@3438
    88
#define HAVE_FLOOR 1
slouken@3438
    89
#define HAVE_LOG 1
slouken@3438
    90
#define HAVE_SCALBN 1
slouken@3438
    91
#define HAVE_SIN 1
slouken@3438
    92
#define HAVE_SINF 1
slouken@3438
    93
#define HAVE_SQRT 1
slouken@8840
    94
#define HAVE_SQRTF 1
slouken@8840
    95
#define HAVE_TAN 1
slouken@8840
    96
#define HAVE_TANF 1
slouken@3438
    97
#define HAVE_SIGACTION 1
slouken@3438
    98
#define HAVE_SETJMP 1
slouken@3438
    99
#define HAVE_NANOSLEEP 1
slouken@3438
   100
#define HAVE_POW 1
slouken@3438
   101
slouken@3438
   102
#define SDL_AUDIO_DRIVER_DUMMY 1
slouken@3438
   103
#define SDL_AUDIO_DRIVER_OSS 1
slouken@3438
   104
slouken@3438
   105
#define SDL_INPUT_LINUXEV 1
slouken@3438
   106
#define SDL_INPUT_TSLIB 1
slouken@3438
   107
#define SDL_JOYSTICK_LINUX 1
slouken@3438
   108
#define SDL_HAPTIC_LINUX 1
slouken@3438
   109
slouken@3438
   110
#define SDL_LOADSO_DLOPEN 1
slouken@3438
   111
slouken@3438
   112
#define SDL_THREAD_PTHREAD 1
slouken@3438
   113
#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP 1
slouken@3438
   114
slouken@3438
   115
#define SDL_TIMER_UNIX 1
slouken@3438
   116
slouken@3438
   117
#define SDL_VIDEO_DRIVER_DUMMY 1
slouken@3438
   118
#define SDL_VIDEO_DRIVER_PANDORA 1
slouken@3438
   119
#define SDL_VIDEO_RENDER_OGL_ES 1
slouken@3438
   120
#define SDL_VIDEO_OPENGL_ES 1
slouken@3438
   121
slouken@10903
   122
#endif /* SDL_config_wiz_h_ */