src/video/raspberry/SDL_rpiopengles.c
author Ryan C. Gordon <icculus@icculus.org>
Sat, 02 Sep 2017 19:35:32 -0400
changeset 11444 38f181f81476
parent 11175 cbc6a8a5b701
child 11694 2ce56475ad57
permissions -rw-r--r--
video: Let video targets optionally decide their default OpenGL configs.

This is necessary because the Raspberry Pi is a strange beast, that believes
it has OpenGL support (through glX?) but generally has GLES2 support.

So when using the raspberry video target, we need to force this to default
to a GLES2 context, or by default SDL_CreateWindow() will fail, deep down
when it tries to load the proper GL library.

Fixes testsprite2 (and basically everything else that wasn't testgles2) when
run on a Raspberry Pi without a X server.

Please note that other targets might also need this filled in, the Raspberry
Pi is just the most prominent and readily-available System-On-A-Chip style
thing on my desk. :)
gabomdq@7753
     1
/*
gabomdq@7753
     2
  Simple DirectMedia Layer
slouken@10737
     3
  Copyright (C) 1997-2017 Sam Lantinga <slouken@libsdl.org>
gabomdq@7753
     4
gabomdq@7753
     5
  This software is provided 'as-is', without any express or implied
gabomdq@7753
     6
  warranty.  In no event will the authors be held liable for any damages
gabomdq@7753
     7
  arising from the use of this software.
gabomdq@7753
     8
gabomdq@7753
     9
  Permission is granted to anyone to use this software for any purpose,
gabomdq@7753
    10
  including commercial applications, and to alter it and redistribute it
gabomdq@7753
    11
  freely, subject to the following restrictions:
gabomdq@7753
    12
gabomdq@7753
    13
  1. The origin of this software must not be misrepresented; you must not
gabomdq@7753
    14
     claim that you wrote the original software. If you use this software
gabomdq@7753
    15
     in a product, an acknowledgment in the product documentation would be
gabomdq@7753
    16
     appreciated but is not required.
gabomdq@7753
    17
  2. Altered source versions must be plainly marked as such, and must not be
gabomdq@7753
    18
     misrepresented as being the original software.
gabomdq@7753
    19
  3. This notice may not be removed or altered from any source distribution.
gabomdq@7753
    20
*/
icculus@8093
    21
#include "../../SDL_internal.h"
gabomdq@7753
    22
gabomdq@7753
    23
#if SDL_VIDEO_DRIVER_RPI && SDL_VIDEO_OPENGL_EGL
gabomdq@7753
    24
gabomdq@7753
    25
#include "SDL_rpivideo.h"
gabomdq@7753
    26
#include "SDL_rpiopengles.h"
gabomdq@7753
    27
gabomdq@7753
    28
/* EGL implementation of SDL OpenGL support */
gabomdq@7753
    29
icculus@11444
    30
void
icculus@11444
    31
RPI_GLES_DefaultProfileConfig(_THIS, int *mask, int *major, int *minor)
icculus@11444
    32
{
icculus@11444
    33
    *mask = SDL_GL_CONTEXT_PROFILE_ES;
icculus@11444
    34
    *major = 2;
icculus@11444
    35
    *minor = 0;
icculus@11444
    36
}
icculus@11444
    37
gabomdq@7753
    38
int
gabomdq@7753
    39
RPI_GLES_LoadLibrary(_THIS, const char *path) {
slouken@11175
    40
    return SDL_EGL_LoadLibrary(_this, path, EGL_DEFAULT_DISPLAY, 0);
gabomdq@7753
    41
}
gabomdq@7753
    42
gabomdq@7753
    43
SDL_EGL_CreateContext_impl(RPI)
gabomdq@7753
    44
SDL_EGL_SwapWindow_impl(RPI)
gabomdq@7753
    45
SDL_EGL_MakeCurrent_impl(RPI)
gabomdq@7753
    46
gabomdq@7753
    47
#endif /* SDL_VIDEO_DRIVER_RPI && SDL_VIDEO_OPENGL_EGL */
gabomdq@7753
    48
gabomdq@7753
    49
/* vi: set ts=4 sw=4 expandtab: */
gabomdq@7753
    50