summaryrefslogtreecommitdiff
path: root/src/glamor_egl.c
diff options
context:
space:
mode:
authorZhigang Gong <zhigang.gong@linux.intel.com>2012-01-20 12:10:06 +0800
committerZhigang Gong <zhigang.gong@linux.intel.com>2012-01-29 16:40:49 +0800
commitf9b4bd8ab5643bbf82eb896c0ded381fb3b0c423 (patch)
tree33a4efbc5134141b0fb406b1f1b0c4c8f7b801a8 /src/glamor_egl.c
parentf9bcc8909dae77e3936b98afba79a3618c629e1c (diff)
glamor_egl: Add support for the platform doesn't have gbm.
Maybe we should use eglGetDisplayDRM to get display, but current PVR's driver is using eglGetDisplay. Signed-off-by: Peng Li <peng.li@intel.com> Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Diffstat (limited to 'src/glamor_egl.c')
-rw-r--r--src/glamor_egl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/glamor_egl.c b/src/glamor_egl.c
index 1b18c4c..c273e8a 100644
--- a/src/glamor_egl.c
+++ b/src/glamor_egl.c
@@ -46,7 +46,9 @@
#define EGL_EGLEXT_PROTOTYPES
#define EGL_DISPLAY_NO_X_MESA
+#ifdef GLAMOR_HAS_GBM
#include <gbm.h>
+#endif
#if GLAMOR_GLES2
#include <GLES2/gl2.h>
@@ -84,7 +86,9 @@ struct glamor_egl_screen_private {
int fd;
int front_buffer_handle;
int cpp;
+#ifdef GLAMOR_HAS_GBM
struct gbm_device *gbm;
+#endif
PFNEGLCREATEIMAGEKHRPROC egl_create_image_khr;
PFNEGLDESTROYIMAGEKHRPROC egl_destroy_image_khr;
@@ -297,12 +301,16 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
scrn->privates[xf86GlamorEGLPrivateIndex].ptr = glamor_egl;
glamor_egl->fd = fd;
+#ifdef GLAMOR_HAS_GBM
glamor_egl->gbm = gbm_create_device(glamor_egl->fd);
if (glamor_egl->gbm == NULL) {
ErrorF("couldn't get display device\n");
return FALSE;
}
glamor_egl->display = eglGetDisplay(glamor_egl->gbm);
+#else
+ glamor_egl->display = eglGetDisplay((EGLNativeDisplayType)fd);
+#endif
#ifndef GLAMOR_GLES2
eglBindAPI(EGL_OPENGL_API);