egl: Native Display autodetection
authorBenjamin Franzke <benjaminfranzke@googlemail.com>
Tue, 9 Aug 2011 12:23:18 +0000 (14:23 +0200)
committerBenjamin Franzke <benjaminfranzke@googlemail.com>
Mon, 15 Aug 2011 07:42:16 +0000 (09:42 +0200)
commit85fe9484945cb57ffd49df248b0e5057eba6af04
treec41d0a8191d087b1b3c1d0d274929fb7f8b376a5
parentf5e757ea60d9abb848d98af01e1986be3e35e236
egl: Native Display autodetection

EGL doesnt define howto manage different native platforms.
So mesa has a builtime configurable default platform,
whith non-standard envvar (EGL_PLATFORM) overwrites.
This caused unneeded bugreports, when EGL_PLATFORM was forgotten.

Detection is grouped into basic types of NativeDisplays (which itself
needs to be detected).  The final decision is based on characteristcs
of these basic types:

  File Desciptor based platforms (fbdev):
    - fstat(2) to check for being a fd that belongs to a character device
    - check kernel subsystem (todo)

  Pointer to structuctures (x11, wayland, drm/gbm):
    - mincore(2) to check whether its valid pointer to some memory.
    - magic elements (e.g. pointers to exported symbols):
      o wayland display stores interface type pointer (first elm.)
      o gbm stores pointer to its constructor (first elm.)
      o x11 as a fallback (FIXME?)

Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
configure.ac
src/egl/main/Makefile
src/egl/main/eglapi.c
src/egl/main/egldisplay.c
src/egl/main/egldisplay.h