Makefile.minimal
author Sam Lantinga <slouken@libsdl.org>
Wed, 18 Oct 2017 08:52:04 -0700
changeset 11630 ad4b5d85edee
parent 7667 be1cc6f55840
child 12130 24142c5073a4
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@1484
     1
# Makefile to build the SDL library
slouken@1484
     2
slouken@1484
     3
INCLUDE = -I./include
slouken@1484
     4
CFLAGS  = -g -O2 $(INCLUDE)
slouken@1484
     5
AR	= ar
slouken@1484
     6
RANLIB	= ranlib
slouken@1484
     7
slouken@1484
     8
TARGET  = libSDL.a
slouken@1484
     9
SOURCES = \
slouken@1484
    10
	src/*.c \
slouken@1484
    11
	src/audio/*.c \
slouken@5310
    12
	src/audio/dummy/*.c \
slouken@1484
    13
	src/cpuinfo/*.c \
slouken@1484
    14
	src/events/*.c \
slouken@1484
    15
	src/file/*.c \
slouken@5310
    16
	src/haptic/*.c \
slouken@5310
    17
	src/haptic/dummy/*.c \
slouken@1484
    18
	src/joystick/*.c \
slouken@5310
    19
	src/joystick/dummy/*.c \
slouken@5310
    20
	src/loadso/dummy/*.c \
slouken@5310
    21
	src/power/*.c \
icculus@7667
    22
	src/filesystem/dummy/*.c \
slouken@5310
    23
	src/render/*.c \
slouken@5310
    24
	src/render/software/*.c \
slouken@1484
    25
	src/stdlib/*.c \
slouken@1484
    26
	src/thread/*.c \
slouken@5310
    27
	src/thread/generic/*.c \
slouken@1484
    28
	src/timer/*.c \
slouken@5310
    29
	src/timer/dummy/*.c \
slouken@1484
    30
	src/video/*.c \
slouken@1484
    31
	src/video/dummy/*.c \
slouken@1484
    32
slouken@1484
    33
OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g')
slouken@1484
    34
slouken@1484
    35
all: $(TARGET)
slouken@1484
    36
slouken@5310
    37
$(TARGET): $(OBJECTS)
slouken@1484
    38
	$(AR) crv $@ $^
slouken@1484
    39
	$(RANLIB) $@
slouken@1484
    40
slouken@1484
    41
clean:
slouken@1484
    42
	rm -f $(TARGET) $(OBJECTS)