egl: Remove st/egl probe code.
[mesa.git] / src / gallium / state_trackers / egl / gdi / native_gdi.c
index 29e89bcae804c2d0071952cb06957bdfa7cb7c9c..06e3edfc391c6a95647aa2f84dcd04478dc593f2 100644 (file)
@@ -32,9 +32,6 @@
 #include "util/u_memory.h"
 #include "util/u_format.h"
 #include "util/u_inlines.h"
-#include "target-helpers/wrap_screen.h"
-#include "llvmpipe/lp_public.h"
-#include "softpipe/sp_public.h"
 #include "gdi/gdi_sw_winsys.h"
 
 #include "common/native_helper.h"
@@ -346,10 +343,11 @@ gdi_display_destroy(struct native_display *ndpy)
 }
 
 static struct native_display *
-gdi_create_display(HDC hDC, struct pipe_screen *screen,
-                   struct native_event_handler *event_handler)
+gdi_create_display(HDC hDC, struct native_event_handler *event_handler,
+                   void *user_data)
 {
    struct gdi_display *gdpy;
+   struct sw_winsys *winsys;
 
    gdpy = CALLOC_STRUCT(gdi_display);
    if (!gdpy)
@@ -357,71 +355,45 @@ gdi_create_display(HDC hDC, struct pipe_screen *screen,
 
    gdpy->hDC = hDC;
    gdpy->event_handler = event_handler;
-
-   gdpy->base.screen = screen;
-
-   gdpy->base.destroy = gdi_display_destroy;
-   gdpy->base.get_param = gdi_display_get_param;
-
-   gdpy->base.get_configs = gdi_display_get_configs;
-   gdpy->base.create_window_surface = gdi_display_create_window_surface;
-
-   return &gdpy->base;
-}
-
-static struct pipe_screen *
-gdi_create_screen(void)
-{
-   struct sw_winsys *winsys;
-   struct pipe_screen *screen = NULL;
+   gdpy->base.user_data = user_data;
 
    winsys = gdi_create_sw_winsys();
-   if (!winsys)
+   if (!winsys) {
+      FREE(gdpy);
       return NULL;
+   }
 
-#if defined(GALLIUM_LLVMPIPE)
-   if (!screen && !debug_get_bool_option("GALLIUM_NO_LLVM", FALSE))
-      screen = llvmpipe_create_screen(winsys);
-#endif
-   if (!screen)
-      screen = softpipe_create_screen(winsys);
-
-   if (!screen) {
+   gdpy->base.screen = gdpy->event_handler->create_sw_screen(winsys);
+   if (!gdpy->base.screen) {
       if (winsys->destroy)
          winsys->destroy(winsys);
+      FREE(gdpy);
       return NULL;
    }
 
-   return gallium_wrap_screen(screen);
-}
+   gdpy->base.destroy = gdi_display_destroy;
+   gdpy->base.get_param = gdi_display_get_param;
 
-struct native_probe *
-native_create_probe(EGLNativeDisplayType dpy)
-{
-   return NULL;
-}
+   gdpy->base.get_configs = gdi_display_get_configs;
+   gdpy->base.create_window_surface = gdi_display_create_window_surface;
 
-enum native_probe_result
-native_get_probe_result(struct native_probe *nprobe)
-{
-   return NATIVE_PROBE_UNKNOWN;
+   return &gdpy->base;
 }
 
-const char *
-native_get_name(void)
+static struct native_display *
+native_create_display(void *dpy, struct native_event_handler *event_handler,
+                      void *user_data)
 {
-   return "GDI";
+   return gdi_create_display((HDC) dpy, event_handler, user_data);
 }
 
-struct native_display *
-native_create_display(EGLNativeDisplayType dpy,
-                      struct native_event_handler *event_handler)
-{
-   struct pipe_screen *screen;
-
-   screen = gdi_create_screen();
-   if (!screen)
-      return NULL;
+static const struct native_platform gdi_platform = {
+   "GDI", /* name */
+   native_create_display
+};
 
-   return gdi_create_display((HDC) dpy, screen, event_handler);
+const struct native_platform *
+native_get_gdi_platform(void)
+{
+   return &gdi_platform;
 }