Revert "egl: move alloc & init out of _eglBuiltInDriver{DRI2,Haiku}"
[mesa.git] / src / egl / drivers / haiku / egl_haiku.cpp
index 590e43f00fb96b051fb4d610e4761280425fe058..237cebf056e8945d724e937807ea01f8805c8e27 100644 (file)
@@ -305,14 +305,21 @@ haiku_swap_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
 
 /**
  * This is the main entrypoint into the driver, called by libEGL.
- * Gets an _EGLDriver object and init its dispatch table.
+ * Create a new _EGLDriver object and init its dispatch table.
  */
 extern "C"
-void
-_eglInitDriver(_EGLDriver *driver)
+_EGLDriver*
+_eglBuiltInDriver(void)
 {
        CALLED();
 
+       _EGLDriver* driver = calloc(1, sizeof(*driver));
+       if (!driver) {
+               _eglError(EGL_BAD_ALLOC, "_eglBuiltInDriverHaiku");
+               return NULL;
+       }
+
+       _eglInitDriverFallbacks(driver);
        driver->API.Initialize = init_haiku;
        driver->API.Terminate = haiku_terminate;
        driver->API.CreateContext = haiku_create_context;
@@ -328,4 +335,6 @@ _eglInitDriver(_EGLDriver *driver)
        driver->Name = "Haiku";
 
        TRACE("API Calls defined\n");
+
+       return driver;
 }