summaryrefslogtreecommitdiffstats
path: root/src/gallium/targets/egl-static/egl_st.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/targets/egl-static/egl_st.c')
-rw-r--r--src/gallium/targets/egl-static/egl_st.c167
1 files changed, 0 insertions, 167 deletions
diff --git a/src/gallium/targets/egl-static/egl_st.c b/src/gallium/targets/egl-static/egl_st.c
deleted file mode 100644
index 656135b05aa..00000000000
--- a/src/gallium/targets/egl-static/egl_st.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Mesa 3-D graphics library
- *
- * Copyright (C) 2011 LunarG Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Authors:
- * Chia-I Wu <[email protected]>
- */
-#include "util/u_debug.h"
-#include "state_tracker/st_api.h"
-#include "egl_st.h"
-
-#if FEATURE_GL || FEATURE_ES1 || FEATURE_ES2
-#include "state_tracker/st_gl_api.h"
-#endif
-
-#if FEATURE_VG
-#include "vg_api.h"
-#endif
-
-#if _EGL_EXTERNAL_GL
-
-#include "util/u_string.h"
-#include "util/u_dl.h"
-#include "egldriver.h"
-#include "egllog.h"
-
-static struct util_dl_library *egl_st_gl_lib;
-
-static EGLBoolean
-dlopen_gl_lib_cb(const char *dir, size_t len, void *callback_data)
-{
- const char *name = (const char *) callback_data;
- char path[1024];
- int ret;
-
- if (len) {
- assert(len <= INT_MAX && "path is insanely long!");
- ret = util_snprintf(path, sizeof(path), "%.*s/%s" UTIL_DL_EXT,
- (int)len, dir, name);
- }
- else {
- ret = util_snprintf(path, sizeof(path), "%s" UTIL_DL_EXT, name);
- }
-
- if (ret > 0 && ret < sizeof(path)) {
- egl_st_gl_lib = util_dl_open(path);
- if (egl_st_gl_lib)
- _eglLog(_EGL_DEBUG, "loaded %s", path);
- }
-
- return !egl_st_gl_lib;
-}
-
-static struct st_api *
-load_gl(const char *name, const char *procname)
-{
- struct st_api *(*create_api)(void);
- struct st_api *stapi = NULL;
-
- _eglSearchPathForEach(dlopen_gl_lib_cb, (void *) name);
- if (!egl_st_gl_lib)
- return NULL;
-
- create_api = (struct st_api *(*)(void))
- util_dl_get_proc_address(egl_st_gl_lib, procname);
- if (create_api)
- stapi = create_api();
-
- if (!stapi) {
- util_dl_close(egl_st_gl_lib);
- egl_st_gl_lib = NULL;
- }
-
- return stapi;
-}
-
-static struct st_api *
-egl_st_load_gl(void)
-{
- const char module[] = "st_GL";
- const char symbol[] = "st_api_create_OpenGL";
- struct st_api *stapi;
-
- stapi = load_gl(module, symbol);
-
- /* try again with libglapi.so loaded */
- if (!stapi) {
- struct util_dl_library *glapi = util_dl_open("libglapi" UTIL_DL_EXT);
-
- if (glapi) {
- _eglLog(_EGL_DEBUG, "retry with libglapi" UTIL_DL_EXT " loaded");
-
- stapi = load_gl(module, symbol);
- util_dl_close(glapi);
- }
- }
- if (!stapi)
- _eglLog(_EGL_WARNING, "unable to load %s" UTIL_DL_EXT, module);
-
- return stapi;
-}
-
-#endif /* _EGL_EXTERNAL_GL */
-
-struct st_api *
-egl_st_create_api(enum st_api_type api)
-{
- struct st_api *stapi = NULL;
-
- switch (api) {
- case ST_API_OPENGL:
-#if FEATURE_GL || FEATURE_ES1 || FEATURE_ES2
-#if _EGL_EXTERNAL_GL
- stapi = egl_st_load_gl();
-#else
- stapi = st_gl_api_create();
-#endif
-#endif
- break;
- case ST_API_OPENVG:
-#if FEATURE_VG
- stapi = (struct st_api *) vg_api_get();
-#endif
- break;
- default:
- assert(!"Unknown API Type\n");
- break;
- }
-
- return stapi;
-}
-
-void
-egl_st_destroy_api(struct st_api *stapi)
-{
-#if _EGL_EXTERNAL_GL
- boolean is_gl = (stapi->api == ST_API_OPENGL);
-
- stapi->destroy(stapi);
-
- if (is_gl) {
- util_dl_close(egl_st_gl_lib);
- egl_st_gl_lib = NULL;
- }
-#else
- stapi->destroy(stapi);
-#endif
-}