src/video/raspberry/SDL_rpiopengles.h
author Ryan C. Gordon <icculus@icculus.org>
Sat, 02 Sep 2017 19:35:32 -0400
changeset 11444 38f181f81476
parent 11382 2c50e79b19e0
child 11811 5d94cb6b24d3
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
slouken@11382
    23
#ifndef SDL_rpiopengles_h_
slouken@11382
    24
#define SDL_rpiopengles_h_
gabomdq@7753
    25
gabomdq@7753
    26
#if SDL_VIDEO_DRIVER_RPI && SDL_VIDEO_OPENGL_EGL
gabomdq@7753
    27
gabomdq@7753
    28
#include "../SDL_sysvideo.h"
gabomdq@8021
    29
#include "../SDL_egl_c.h"
gabomdq@7753
    30
gabomdq@7753
    31
/* OpenGLES functions */
gabomdq@7753
    32
#define RPI_GLES_GetAttribute SDL_EGL_GetAttribute
gabomdq@7753
    33
#define RPI_GLES_GetProcAddress SDL_EGL_GetProcAddress
gabomdq@7753
    34
#define RPI_GLES_UnloadLibrary SDL_EGL_UnloadLibrary
gabomdq@7753
    35
#define RPI_GLES_SetSwapInterval SDL_EGL_SetSwapInterval
gabomdq@7753
    36
#define RPI_GLES_GetSwapInterval SDL_EGL_GetSwapInterval
gabomdq@7753
    37
#define RPI_GLES_DeleteContext SDL_EGL_DeleteContext
gabomdq@7753
    38
gabomdq@7753
    39
extern int RPI_GLES_LoadLibrary(_THIS, const char *path);
gabomdq@7753
    40
extern SDL_GLContext RPI_GLES_CreateContext(_THIS, SDL_Window * window);
slouken@10695
    41
extern int RPI_GLES_SwapWindow(_THIS, SDL_Window * window);
gabomdq@7753
    42
extern int RPI_GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context);
icculus@11444
    43
extern void RPI_GLES_DefaultProfileConfig(_THIS, int *mask, int *major, int *minor);
gabomdq@7753
    44
gabomdq@7753
    45
#endif /* SDL_VIDEO_DRIVER_RPI && SDL_VIDEO_OPENGL_EGL */
gabomdq@7753
    46
slouken@11382
    47
#endif /* SDL_rpiopengles_h_ */
gabomdq@7753
    48
gabomdq@7753
    49
/* vi: set ts=4 sw=4 expandtab: */