Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Mesa 3-D graphics library
  3.  *
  4.  * Copyright (C) 2009-2010 Chia-I Wu <olv@0xlab.org>
  5.  *
  6.  * Permission is hereby granted, free of charge, to any person obtaining a
  7.  * copy of this software and associated documentation files (the "Software"),
  8.  * to deal in the Software without restriction, including without limitation
  9.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  10.  * and/or sell copies of the Software, and to permit persons to whom the
  11.  * Software is furnished to do so, subject to the following conditions:
  12.  *
  13.  * The above copyright notice and this permission notice shall be included
  14.  * in all copies or substantial portions of the Software.
  15.  *
  16.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  17.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  19.  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  20.  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  21.  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  22.  * DEALINGS IN THE SOFTWARE.
  23.  */
  24.  
  25. #include "util/u_debug.h"
  26. #include "util/u_memory.h"
  27. #include "util/u_string.h"
  28. #include "egllog.h"
  29.  
  30. #include "native_x11.h"
  31.  
  32. static const struct native_event_handler *x11_event_handler;
  33.  
  34. static struct native_display *
  35. native_create_display(void *dpy, boolean use_sw)
  36. {
  37.    struct native_display *ndpy = NULL;
  38.    boolean force_sw;
  39.  
  40.    force_sw = debug_get_bool_option("EGL_SOFTWARE", FALSE);
  41.  
  42.    if (force_sw || use_sw) {
  43.       _eglLog(_EGL_INFO, "use software fallback");
  44.       ndpy = x11_create_ximage_display((Display *) dpy, x11_event_handler);
  45.    }
  46.    else {
  47.       ndpy = x11_create_dri2_display((Display *) dpy, x11_event_handler);
  48.    }
  49.  
  50.    return ndpy;
  51. }
  52.  
  53. static const struct native_platform x11_platform = {
  54.    "X11", /* name */
  55.    native_create_display
  56. };
  57.  
  58. const struct native_platform *
  59. native_get_x11_platform(const struct native_event_handler *event_handler)
  60. {
  61.    x11_event_handler = event_handler;
  62.    return &x11_platform;
  63. }
  64.