egl: move alloc & init out of _eglBuiltInDriver{DRI2,Haiku}
[mesa.git] / src / egl / drivers / haiku / egl_haiku.cpp
index 237cebf056e8945d724e937807ea01f8805c8e27..590e43f00fb96b051fb4d610e4761280425fe058 100644 (file)
@@ -305,21 +305,14 @@ haiku_swap_buffers(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf)
 
 /**
  * This is the main entrypoint into the driver, called by libEGL.
- * Create a new _EGLDriver object and init its dispatch table.
+ * Gets an _EGLDriver object and init its dispatch table.
  */
 extern "C"
-_EGLDriver*
-_eglBuiltInDriver(void)
+void
+_eglInitDriver(_EGLDriver *driver)
 {
        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;
@@ -335,6 +328,4 @@ _eglBuiltInDriver(void)
        driver->Name = "Haiku";
 
        TRACE("API Calls defined\n");
-
-       return driver;
 }