summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2010-01-25 10:44:55 -0500
committerKristian Høgsberg <krh@bitplanet.net>2010-01-25 10:45:01 -0500
commit2b2f8dc764044a40784590e098d4de97b59ea73f (patch)
treebe8b5741b954f136e9b951a51619b54e8365feee
parent0bdc1f71b7706f0139e835e205551f6e31beb9b3 (diff)
Implement eglGetDisplay(EGL_DEFAULT_DISPLAY);HEADmaster
-rw-r--r--eagle.c15
-rw-r--r--eagle.h4
-rw-r--r--test/setup.c6
3 files changed, 20 insertions, 5 deletions
diff --git a/eagle.c b/eagle.c
index 3ab498f..3f3e424 100644
--- a/eagle.c
+++ b/eagle.c
@@ -310,6 +310,21 @@ eglCreateDisplayNative(struct udev_device *device)
return NULL;
}
+EAGLE_EXPORT EGLDisplay
+eglGetDisplay (EGLNativeDisplayType display_id)
+{
+ EGLDisplay egl_display;
+ struct udev *udev;
+ struct udev_device *device;
+
+ udev = udev_new();
+ device = udev_device_new_from_syspath(udev, "/sys/class/drm/card0");
+ egl_display = eglGetDisplay(device);
+ udev_device_unref(device);
+ udev_unref(udev);
+
+ return egl_display;
+}
EAGLE_EXPORT int
eglGetDisplayFD(EGLDisplay display)
diff --git a/eagle.h b/eagle.h
index 240c137..1f25071 100644
--- a/eagle.h
+++ b/eagle.h
@@ -194,7 +194,11 @@ typedef int EGLenum; /* FIXME: is this part of EGL? */
extern EGLint eglGetError(void);
+typedef void *EGLNativeDisplayType;
+#define EGL_DEFAULT_DISPLAY ((void *) 0)
+
extern EGLDisplay eglCreateDisplayNative(struct udev_device *device);
+extern EGLDisplay eglGetDisplay (EGLNativeDisplayType display_id);
extern int eglGetDisplayFD(EGLDisplay display);
diff --git a/test/setup.c b/test/setup.c
index a39868c..cdd8d7f 100644
--- a/test/setup.c
+++ b/test/setup.c
@@ -115,8 +115,6 @@ page_flip_handler(int fd, unsigned int frame,
static void run_native(int x, int y, int width, int height, init_func_t init, render_func_t render)
{
EGLint major, minor;
- struct udev *udev;
- struct udev_device *device;
struct state state;
drmModeConnector *connector;
drmModeRes *resources;
@@ -131,11 +129,9 @@ static void run_native(int x, int y, int width, int height, init_func_t init, re
GLuint rb;
} b[2];
- udev = udev_new();
- device = udev_device_new_from_syspath(udev, "/sys/class/drm/card0");
state.width = width;
state.height = height;
- state.display = eglCreateDisplayNative(device);
+ state.display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
if (state.display == NULL)
die("failed to create display\n");