egl_common.c revision e52adb7b
1e52adb7bSmrg/*
2e52adb7bSmrg * Copyright © 2013 Intel Corporation
3e52adb7bSmrg *
4e52adb7bSmrg * Permission is hereby granted, free of charge, to any person obtaining a
5e52adb7bSmrg * copy of this software and associated documentation files (the "Software"),
6e52adb7bSmrg * to deal in the Software without restriction, including without limitation
7e52adb7bSmrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8e52adb7bSmrg * and/or sell copies of the Software, and to permit persons to whom the
9e52adb7bSmrg * Software is furnished to do so, subject to the following conditions:
10e52adb7bSmrg *
11e52adb7bSmrg * The above copyright notice and this permission notice (including the next
12e52adb7bSmrg * paragraph) shall be included in all copies or substantial portions of the
13e52adb7bSmrg * Software.
14e52adb7bSmrg *
15e52adb7bSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16e52adb7bSmrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17e52adb7bSmrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18e52adb7bSmrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19e52adb7bSmrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20e52adb7bSmrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21e52adb7bSmrg * IN THE SOFTWARE.
22e52adb7bSmrg */
23e52adb7bSmrg
24e52adb7bSmrg#include <err.h>
25e52adb7bSmrg#include <epoxy/egl.h>
26e52adb7bSmrg#include "egl_common.h"
27e52adb7bSmrg
28e52adb7bSmrg/**
29e52adb7bSmrg * Do whatever it takes to get us an EGL display for the system.
30e52adb7bSmrg *
31e52adb7bSmrg * This needs to be ported to other window systems.
32e52adb7bSmrg */
33e52adb7bSmrgEGLDisplay *
34e52adb7bSmrgget_egl_display_or_skip(void)
35e52adb7bSmrg{
36e52adb7bSmrg    Display *dpy = XOpenDisplay(NULL);
37e52adb7bSmrg    EGLint major, minor;
38e52adb7bSmrg    EGLDisplay *edpy;
39e52adb7bSmrg    bool ok;
40e52adb7bSmrg
41e52adb7bSmrg    if (!dpy)
42e52adb7bSmrg        errx(77, "couldn't open display\n");
43e52adb7bSmrg
44e52adb7bSmrg    edpy = eglGetDisplay(dpy);
45e52adb7bSmrg    if (!edpy)
46e52adb7bSmrg        errx(1, "Couldn't get EGL display for X11 Display.\n");
47e52adb7bSmrg
48e52adb7bSmrg    ok = eglInitialize(edpy, &major, &minor);
49e52adb7bSmrg    if (!ok)
50e52adb7bSmrg        errx(1, "eglInitialize() failed\n");
51e52adb7bSmrg
52e52adb7bSmrg    return edpy;
53e52adb7bSmrg}
54