summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukasz Kostyra <l.kostyra@samsung.com>2020-07-03 12:51:40 +0200
committerLukasz Kostyra <l.kostyra@samsung.com>2020-07-06 09:57:24 +0200
commit552acc5e211eb1a2f1ce160a214211e5f3a2952b (patch)
treef8ad03bbb44b4c422096cf8dbe39f378e21b3dcd
parent30658d751f413c215cf344a6782dba1b1d97a04c (diff)
downloademulator-yagl-552acc5e211eb1a2f1ce160a214211e5f3a2952b.tar.gz
emulator-yagl-552acc5e211eb1a2f1ce160a214211e5f3a2952b.tar.bz2
emulator-yagl-552acc5e211eb1a2f1ce160a214211e5f3a2952b.zip
Following commit removes dummy EGL/GLES libraries and implements discovery of /dev/yagl in libEGL.so. If /dev/yagl is missing (ex. there is no host GPU available), libEGL.so will fail any EGL function. This will make it impossible to create a functioning GLES context, which will make GLES functions exit early, on YAGL_GET_CTX() calls. Change-Id: I758496c39806c854315399a2b5c33ca688a8573c
-rw-r--r--CMakeLists.txt3
-rw-r--r--EGL/yagl_egl_calls.c120
-rw-r--r--dummy/CMakeLists.txt10
-rw-r--r--dummy/dummy.h34
-rw-r--r--dummy/egl_dummy.c70
-rw-r--r--dummy/gles1_dummy.c184
-rw-r--r--dummy/gles2_dummy.c179
-rw-r--r--packaging/emulator-yagl.spec6
-rwxr-xr-xpackaging/opengl-es-setup-yagl-env.sh22
9 files changed, 121 insertions, 507 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8b8c907..bd02e24 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -189,6 +189,3 @@ add_subdirectory(EGL)
add_subdirectory(GLES_common)
add_subdirectory(GLESv1_CM)
add_subdirectory(GLESv2)
-if (DUMMY_LIBS)
-add_subdirectory(dummy)
-endif()
diff --git a/EGL/yagl_egl_calls.c b/EGL/yagl_egl_calls.c
index 2b4949d..cabf163 100644
--- a/EGL/yagl_egl_calls.c
+++ b/EGL/yagl_egl_calls.c
@@ -62,6 +62,7 @@
#include <assert.h>
#include <dlfcn.h>
#include <stdlib.h>
+#include <sys/stat.h>
#define YAGL_SET_ERR(err) \
yagl_set_error(err); \
@@ -72,6 +73,35 @@
YAGL_LOG_WARN("NOT IMPLEMENTED!!!"); \
return ret;
+
+// Check if /dev/yagl is reachable. Return 1 if exists and is a char device, 0 if doesn't.
+static int yagl_check_gpu_available()
+{
+ YAGL_LOG_FUNC_SET(yagl_check_gpu_available);
+
+ static int device_available = -1;
+
+ // do the check only once per app
+ if (device_available == -1) {
+ struct stat yagl_dev_stat;
+ int ret = stat("/dev/yagl", &yagl_dev_stat);
+ if (ret == 0 && S_ISCHR(yagl_dev_stat.st_mode)) {
+ device_available = 1; // /dev/yagl exists
+ } else {
+ device_available = 0; // /dev/yagl does not exist/is not a valid char device
+ }
+ }
+
+ return device_available;
+}
+
+#define YAGL_RETURN_IF_DEV_NOT_AVAILABLE(ret) \
+ if (!yagl_check_gpu_available()) { \
+ YAGL_LOG_EVENT(debug, getpid(), syscall(SYS_gettid), __func__, "/dev/yagl not available"); \
+ return ret; \
+ }
+
+
static int yagl_get_client_api(const EGLint *attrib_list, yagl_client_api *client_api)
{
int i = 0;
@@ -201,6 +231,8 @@ YAGL_API EGLint eglGetError()
{
EGLint retval;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(0);
+
YAGL_LOG_FUNC_ENTER(eglGetError, NULL);
retval = yagl_get_error();
@@ -216,6 +248,8 @@ YAGL_API EGLDisplay eglGetDisplay(EGLNativeDisplayType display_id)
struct yagl_display *dpy;
EGLDisplay ret = EGL_NO_DISPLAY;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_NO_DISPLAY);
+
YAGL_LOG_FUNC_ENTER_SPLIT1(eglGetDisplay, EGLNativeDisplayType, display_id);
platform = yagl_guess_platform((yagl_os_display)display_id);
@@ -250,6 +284,8 @@ YAGL_API EGLBoolean eglInitialize(EGLDisplay dpy_, EGLint* major, EGLint* minor)
EGLint error = 0;
struct yagl_display *dpy;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglInitialize,
"dpy = %u",
(yagl_host_handle)VOIDP2INT(dpy_));
@@ -286,6 +322,8 @@ YAGL_API EGLBoolean eglTerminate(EGLDisplay dpy_)
struct yagl_display *dpy;
EGLBoolean ret = EGL_FALSE;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglTerminate,
"dpy = %u",
(yagl_host_handle)VOIDP2INT(dpy_));
@@ -312,6 +350,8 @@ YAGL_API const char *eglQueryString(EGLDisplay dpy_, EGLint name)
{
const char *str = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(NULL);
+
YAGL_LOG_FUNC_ENTER(eglQueryString,
"dpy = %u, name = %d",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -350,6 +390,8 @@ YAGL_API EGLBoolean eglGetConfigs(EGLDisplay dpy,
{
EGLint error = 0;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglGetConfigs,
"dpy = %u, configs = %p, config_size = %d",
(yagl_host_handle)VOIDP2INT(dpy),
@@ -388,6 +430,8 @@ YAGL_API EGLBoolean eglChooseConfig(EGLDisplay dpy,
{
EGLint error = 0;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglChooseConfig,
"dpy = %u",
(yagl_host_handle)VOIDP2INT(dpy));
@@ -428,6 +472,8 @@ YAGL_API EGLBoolean eglGetConfigAttrib(EGLDisplay dpy_,
EGLBoolean ret = EGL_FALSE;
int visual_id = 0, visual_type = 0;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglGetConfigAttrib,
"dpy = %u, config = %u, attribute = 0x%X",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -503,6 +549,8 @@ YAGL_API EGLSurface eglCreateWindowSurface(EGLDisplay dpy_,
struct yagl_native_drawable *native_win = NULL;
struct yagl_surface *surface = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_NO_SURFACE);
+
YAGL_LOG_FUNC_ENTER(eglCreateWindowSurface,
"dpy = %u, config = %u",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -558,6 +606,8 @@ YAGL_API EGLSurface eglCreatePbufferSurface(EGLDisplay dpy_,
struct yagl_display *dpy = NULL;
struct yagl_surface *surface = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_NO_SURFACE);
+
YAGL_LOG_FUNC_ENTER(eglCreatePbufferSurface,
"dpy = %u, config = %u",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -605,6 +655,8 @@ YAGL_API EGLSurface eglCreatePixmapSurface(EGLDisplay dpy_,
struct yagl_native_drawable *native_pixmap = NULL;
struct yagl_surface *surface = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_NO_SURFACE);
+
YAGL_LOG_FUNC_ENTER(eglCreatePixmapSurface,
"dpy = %u, config = %u",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -659,6 +711,8 @@ YAGL_API EGLBoolean eglDestroySurface(EGLDisplay dpy_, EGLSurface surface_)
struct yagl_display *dpy = NULL;
struct yagl_surface *surface = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglDestroySurface,
"dpy = %u, surface = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -705,6 +759,8 @@ YAGL_API EGLBoolean eglQuerySurface(EGLDisplay dpy_,
void *ptr;
uint32_t stride;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglQuerySurface,
"dpy = %u, surface = %p, attribute = 0x%X, value = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -795,6 +851,8 @@ out:
YAGL_API EGLBoolean eglBindAPI(EGLenum api)
{
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER_SPLIT1(eglBindAPI, EGLenum, api);
if (api != EGL_OPENGL_ES_API) {
@@ -814,6 +872,8 @@ YAGL_API EGLenum eglQueryAPI()
{
EGLenum ret;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(0);
+
YAGL_LOG_FUNC_ENTER_SPLIT0(eglQueryAPI);
ret = yagl_get_api();
@@ -827,6 +887,8 @@ YAGL_API EGLBoolean eglWaitClient()
{
struct yagl_surface *draw_sfc;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE)
+
YAGL_LOG_FUNC_ENTER_SPLIT0(eglWaitClient);
draw_sfc = yagl_get_draw_surface();
@@ -844,6 +906,8 @@ YAGL_API EGLBoolean eglReleaseThread()
{
EGLint error = 0;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglReleaseThread, NULL);
if (!yagl_host_eglReleaseThread(&error)) {
@@ -882,6 +946,8 @@ YAGL_API EGLBoolean eglSurfaceAttrib(EGLDisplay dpy_,
struct yagl_display *dpy = NULL;
struct yagl_surface *surface = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglSurfaceAttrib,
"dpy = %u, surface = %p, attribute = 0x%X, value = 0x%X",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -928,6 +994,8 @@ YAGL_API EGLBoolean eglBindTexImage(EGLDisplay dpy_,
struct yagl_client_image *image = NULL;
struct yagl_tex_image_binding *binding = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglBindTexImage,
"dpy = %u, surface = %p, buffer = 0x%X",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1007,6 +1075,8 @@ YAGL_API EGLBoolean eglReleaseTexImage(EGLDisplay dpy_,
struct yagl_display *dpy = NULL;
struct yagl_surface *surface = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglReleaseTexImage,
"dpy = %u, surface = %p, buffer = 0x%X",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1047,6 +1117,8 @@ YAGL_API EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval)
{
struct yagl_surface *draw_sfc;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglSwapInterval,
"dpy = %u, interval = %d",
(yagl_host_handle)VOIDP2INT(dpy),
@@ -1087,6 +1159,8 @@ YAGL_API EGLContext eglCreateContext(EGLDisplay dpy_,
struct yagl_client_context *client_ctx = NULL;
struct yagl_context *ctx = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_NO_CONTEXT);
+
YAGL_LOG_FUNC_ENTER(eglCreateContext,
"dpy = %u, config = %u, share_context = %u",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1161,6 +1235,8 @@ YAGL_API EGLBoolean eglDestroyContext(EGLDisplay dpy_, EGLContext ctx)
EGLint error = 0;
struct yagl_display *dpy = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglDestroyContext,
"dpy = %u, ctx = %u",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1200,6 +1276,8 @@ YAGL_API EGLBoolean eglMakeCurrent(EGLDisplay dpy_,
struct yagl_context *ctx = NULL;
struct yagl_context *prev_ctx = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglMakeCurrent,
"dpy = %u, draw = %p, read = %p, ctx = %u",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1333,6 +1411,8 @@ YAGL_API EGLContext eglGetCurrentContext(void)
{
struct yagl_context *ctx;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_NO_CONTEXT);
+
YAGL_LOG_FUNC_ENTER(eglGetCurrentContext, NULL);
ctx = yagl_get_context();
@@ -1349,6 +1429,8 @@ YAGL_API EGLSurface eglGetCurrentSurface(EGLint readdraw)
YAGL_LOG_FUNC_ENTER(eglGetCurrentSurface, NULL);
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_NO_SURFACE);
+
if (readdraw == EGL_READ) {
sfc = yagl_get_read_surface();
ret = (sfc ? yagl_surface_get_handle(sfc) : EGL_NO_SURFACE);
@@ -1368,6 +1450,8 @@ YAGL_API EGLDisplay eglGetCurrentDisplay(void)
{
struct yagl_context *ctx;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_NO_DISPLAY);
+
YAGL_LOG_FUNC_ENTER(eglGetCurrentDisplay, NULL);
ctx = yagl_get_context();
@@ -1387,6 +1471,8 @@ YAGL_API EGLBoolean eglQueryContext(EGLDisplay dpy_,
struct yagl_display *dpy = NULL;
struct yagl_context *ctx = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglQueryContext,
"dpy = %u, ctx = %u, attribute = 0x%X, value = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1483,6 +1569,8 @@ YAGL_API EGLBoolean eglWaitGL()
{
EGLBoolean ret;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER_SPLIT0(eglWaitGL);
ret = eglWaitClient();
@@ -1496,6 +1584,8 @@ YAGL_API EGLBoolean eglWaitNative(EGLint engine)
{
struct yagl_surface *draw_sfc;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER_SPLIT1(eglWaitNative, EGLint, engine);
draw_sfc = yagl_get_draw_surface();
@@ -1515,6 +1605,8 @@ YAGL_API EGLBoolean eglSwapBuffers(EGLDisplay dpy_, EGLSurface surface_)
struct yagl_display *dpy = NULL;
struct yagl_surface *surface = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglSwapBuffers,
"dpy = %u, surface = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1597,6 +1689,8 @@ YAGL_API EGLBoolean eglCopyBuffers(EGLDisplay dpy_,
struct yagl_display *dpy = NULL;
struct yagl_surface *surface = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglCopyBuffers,
"dpy = %u, surface = %p, target = %u",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1654,6 +1748,8 @@ YAGL_API EGLImageKHR eglCreateImageKHR(EGLDisplay dpy_,
struct yagl_image *image = NULL;
int i = 0;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_NO_IMAGE_KHR);
+
YAGL_LOG_FUNC_ENTER(eglCreateImageKHR,
"dpy = %u, ctx = %u, target = %u, buffer = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1833,6 +1929,8 @@ YAGL_API EGLBoolean eglDestroyImageKHR( EGLDisplay dpy_,
struct yagl_display *dpy = NULL;
struct yagl_image *image = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglDestroyImageKHR,
"dpy = %u, image = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1873,6 +1971,8 @@ YAGL_API EGLBoolean eglLockSurfaceKHR(EGLDisplay dpy_,
int preserve = 0;
EGLint hint = 0;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglLockSurfaceKHR,
"dpy = %u, surface = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1931,6 +2031,8 @@ YAGL_API EGLBoolean eglUnlockSurfaceKHR(EGLDisplay dpy_,
struct yagl_display *dpy = NULL;
struct yagl_surface *surface = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglUnlockSurfaceKHR,
"dpy = %u, surface = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -1967,6 +2069,8 @@ YAGL_API EGLSyncKHR eglCreateSyncKHR(EGLDisplay dpy_, EGLenum type, const EGLint
struct yagl_display *dpy = NULL;
struct yagl_fence *fence = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_NO_SYNC_KHR);
+
YAGL_LOG_FUNC_ENTER(eglCreateSyncKHR,
"dpy = %u, type = %u",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -2013,6 +2117,8 @@ YAGL_API EGLBoolean eglDestroySyncKHR(EGLDisplay dpy_, EGLSyncKHR sync_)
struct yagl_display *dpy = NULL;
struct yagl_fence *fence = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglDestroySyncKHR,
"dpy = %u, sync = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -2048,6 +2154,8 @@ YAGL_API EGLint eglClientWaitSyncKHR(EGLDisplay dpy_, EGLSyncKHR sync_, EGLint f
struct yagl_display *dpy = NULL;
struct yagl_fence *fence = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglClientWaitSyncKHR,
"dpy = %u, sync = %p, flags = 0x%X, timeout = %u",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -2082,6 +2190,8 @@ out:
YAGL_API EGLBoolean eglSignalSyncKHR(EGLDisplay dpy_, EGLSyncKHR sync_, EGLenum mode)
{
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglSignalSyncKHR,
"dpy = %u, sync = %p, mode = 0x%X",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -2101,6 +2211,8 @@ YAGL_API EGLBoolean eglGetSyncAttribKHR(EGLDisplay dpy_, EGLSyncKHR sync_, EGLin
struct yagl_display *dpy = NULL;
struct yagl_fence *fence = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglGetSyncAttribKHR,
"dpy = %u, sync = %p, attribute = 0x%X",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -2153,6 +2265,8 @@ YAGL_API EGLBoolean eglBindWaylandDisplayWL(EGLDisplay dpy_,
EGLBoolean res = EGL_FALSE;
struct yagl_display *dpy = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglBindWaylandDisplayWL,
"dpy = %u, display = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -2190,6 +2304,8 @@ YAGL_API EGLBoolean eglUnbindWaylandDisplayWL(EGLDisplay dpy_,
EGLBoolean res = EGL_FALSE;
struct yagl_display *dpy = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglUnbindWaylandDisplayWL,
"dpy = %u, display = %p",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -2230,6 +2346,8 @@ YAGL_API EGLBoolean eglQueryWaylandBufferWL(EGLDisplay dpy_,
EGLBoolean res = EGL_FALSE;
struct yagl_display *dpy = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(EGL_FALSE);
+
YAGL_LOG_FUNC_ENTER(eglQueryWaylandBufferWL,
"dpy = %u, buffer = %p, attribute = 0x%X",
(yagl_host_handle)VOIDP2INT(dpy_),
@@ -2273,6 +2391,8 @@ YAGL_API __eglMustCastToProperFunctionPointerType eglGetProcAddress(const char*
{
__eglMustCastToProperFunctionPointerType ret = NULL;
+ YAGL_RETURN_IF_DEV_NOT_AVAILABLE(NULL);
+
YAGL_LOG_FUNC_ENTER(eglGetProcAddress, "procname = %s", procname);
if (procname) {
diff --git a/dummy/CMakeLists.txt b/dummy/CMakeLists.txt
deleted file mode 100644
index 026f026..0000000
--- a/dummy/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-include_directories(.)
-
-add_library(EGL_dummy SHARED egl_dummy.c)
-add_library(GLESv1_dummy SHARED gles1_dummy.c)
-add_library(GLESv2_dummy SHARED gles2_dummy.c)
-
-install(
- TARGETS EGL_dummy GLESv1_dummy GLESv2_dummy
- LIBRARY DESTINATION ${INSTALL_LIB_DIR}/driver
-)
diff --git a/dummy/dummy.h b/dummy/dummy.h
deleted file mode 100644
index 3c8bd91..0000000
--- a/dummy/dummy.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Emulator YaGL dummy headder for export API
- *
- * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact :
- * Jinhyung Jo <jinhyung.jo@samsung.conm>
- * Stanislav Vorobiov <s.vorobiov@samsung.com>
- * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
- *
- * 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.
- *
- * Contributors:
- * - S-Core Co., Ltd
- */
-
-#define DUMMY_API __attribute__ ((visibility("default")))
-
diff --git a/dummy/egl_dummy.c b/dummy/egl_dummy.c
deleted file mode 100644
index c2712f6..0000000
--- a/dummy/egl_dummy.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Emulator YaGL dummy library for EGL
- *
- * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact :
- * Jinhyung Jo <jinhyung.jo@samsung.conm>
- * Stanislav Vorobiov <s.vorobiov@samsung.com>
- * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
- *
- * 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.
- *
- * Contributors:
- * - S-Core Co., Ltd
- */
-
-#include "EGL/egl.h"
-#include "dummy.h"
-
-/* EGL Functions */
-DUMMY_API EGLAPI EGLint EGLAPIENTRY eglGetError(void) { return 0; }
-DUMMY_API EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id) { return EGL_NO_DISPLAY; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy) { return EGL_FALSE; }
-DUMMY_API EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name) { return 0; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list) { return EGL_NO_SURFACE; }
-DUMMY_API EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list) { return EGL_NO_SURFACE; }
-DUMMY_API EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list) { return EGL_NO_SURFACE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void) { return 0; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list) { return EGL_NO_SURFACE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list) { return EGL_NO_CONTEXT; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void) { return EGL_NO_CONTEXT; }
-DUMMY_API EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw) { return EGL_NO_SURFACE; }
-DUMMY_API EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void) { return EGL_NO_DISPLAY; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) { return EGL_FALSE; }
-DUMMY_API EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target) { return EGL_FALSE; }
-DUMMY_API EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress(const char *procname) { return ((__eglMustCastToProperFunctionPointerType)0); }
diff --git a/dummy/gles1_dummy.c b/dummy/gles1_dummy.c
deleted file mode 100644
index 553664f..0000000
--- a/dummy/gles1_dummy.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Emulator YaGL dummy library for GLESv1
- *
- * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact :
- * Jinhyung Jo <jinhyung.jo@samsung.conm>
- * Stanislav Vorobiov <s.vorobiov@samsung.com>
- * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
- *
- * 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.
- *
- * Contributors:
- * - S-Core Co., Ltd
- *
- */
-
-#include "GLES/gl.h"
-#include "dummy.h"
-
-/* Available only in Common profile */
-DUMMY_API GL_API void GL_APIENTRY glAlphaFunc (GLenum func, GLclampf ref) { return; }
-DUMMY_API GL_API void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { return; }
-DUMMY_API GL_API void GL_APIENTRY glClearDepthf (GLclampf depth) { return; }
-DUMMY_API GL_API void GL_APIENTRY glClipPlanef (GLenum plane, const GLfloat *equation) { return; }
-DUMMY_API GL_API void GL_APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { return; }
-DUMMY_API GL_API void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar) { return; }
-DUMMY_API GL_API void GL_APIENTRY glFogf (GLenum pname, GLfloat param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glFogfv (GLenum pname, const GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glFrustumf (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetClipPlanef (GLenum pname, GLfloat eqn[4]) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetTexEnvfv (GLenum env, GLenum pname, GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLightModelf (GLenum pname, GLfloat param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLightModelfv (GLenum pname, const GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLineWidth (GLfloat width) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLoadMatrixf (const GLfloat *m) { return; }
-DUMMY_API GL_API void GL_APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glMultMatrixf (const GLfloat *m) { return; }
-DUMMY_API GL_API void GL_APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { return; }
-DUMMY_API GL_API void GL_APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz) { return; }
-DUMMY_API GL_API void GL_APIENTRY glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPointParameterf (GLenum pname, GLfloat param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPointSize (GLfloat size) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units) { return; }
-DUMMY_API GL_API void GL_APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z) { return; }
-DUMMY_API GL_API void GL_APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z) { return; }
-
-/* Available in both Common and Common-Lite profiles */
-DUMMY_API GL_API void GL_APIENTRY glActiveTexture (GLenum texture) { return; }
-DUMMY_API GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLclampx ref) { return; }
-DUMMY_API GL_API void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer) { return; }
-DUMMY_API GL_API void GL_APIENTRY glBindTexture (GLenum target, GLuint texture) { return; }
-DUMMY_API GL_API void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor) { return; }
-DUMMY_API GL_API void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage) { return; }
-DUMMY_API GL_API void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data) { return; }
-DUMMY_API GL_API void GL_APIENTRY glClear (GLbitfield mask) { return; }
-DUMMY_API GL_API void GL_APIENTRY glClearColorx (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) { return; }
-DUMMY_API GL_API void GL_APIENTRY glClearDepthx (GLclampx depth) { return; }
-DUMMY_API GL_API void GL_APIENTRY glClearStencil (GLint s) { return; }
-DUMMY_API GL_API void GL_APIENTRY glClientActiveTexture (GLenum texture) { return; }
-DUMMY_API GL_API void GL_APIENTRY glClipPlanex (GLenum plane, const GLfixed *equation) { return; }
-DUMMY_API GL_API void GL_APIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) { return; }
-DUMMY_API GL_API void GL_APIENTRY glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) { return; }
-DUMMY_API GL_API void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { return; }
-DUMMY_API GL_API void GL_APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { return; }
-DUMMY_API GL_API void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data) { return; }
-DUMMY_API GL_API void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data) { return; }
-DUMMY_API GL_API void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { return; }
-DUMMY_API GL_API void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { return; }
-DUMMY_API GL_API void GL_APIENTRY glCullFace (GLenum mode) { return; }
-DUMMY_API GL_API void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers) { return; }
-DUMMY_API GL_API void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures) { return; }
-DUMMY_API GL_API void GL_APIENTRY glDepthFunc (GLenum func) { return; }
-DUMMY_API GL_API void GL_APIENTRY glDepthMask (GLboolean flag) { return; }
-DUMMY_API GL_API void GL_APIENTRY glDepthRangex (GLclampx zNear, GLclampx zFar) { return; }
-DUMMY_API GL_API void GL_APIENTRY glDisable (GLenum cap) { return; }
-DUMMY_API GL_API void GL_APIENTRY glDisableClientState (GLenum array) { return; }
-DUMMY_API GL_API void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count) { return; }
-DUMMY_API GL_API void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) { return; }
-DUMMY_API GL_API void GL_APIENTRY glEnable (GLenum cap) { return; }
-DUMMY_API GL_API void GL_APIENTRY glEnableClientState (GLenum array) { return; }
-DUMMY_API GL_API void GL_APIENTRY glFinish (void) { return; }
-DUMMY_API GL_API void GL_APIENTRY glFlush (void) { return; }
-DUMMY_API GL_API void GL_APIENTRY glFogx (GLenum pname, GLfixed param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glFogxv (GLenum pname, const GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glFrontFace (GLenum mode) { return; }
-DUMMY_API GL_API void GL_APIENTRY glFrustumx (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetClipPlanex (GLenum pname, GLfixed eqn[4]) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures) { return; }
-DUMMY_API GL_API GLenum GL_APIENTRY glGetError (void) { return 0; }
-DUMMY_API GL_API void GL_APIENTRY glGetFixedv (GLenum pname, GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetLightxv (GLenum light, GLenum pname, GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetMaterialxv (GLenum face, GLenum pname, GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetPointerv (GLenum pname, GLvoid **params) { return; }
-DUMMY_API GL_API const GLubyte * GL_APIENTRY glGetString (GLenum name) { return 0; }
-DUMMY_API GL_API void GL_APIENTRY glGetTexEnviv (GLenum env, GLenum pname, GLint *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetTexEnvxv (GLenum env, GLenum pname, GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glGetTexParameterxv (GLenum target, GLenum pname, GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glHint (GLenum target, GLenum mode) { return; }
-DUMMY_API GL_API GLboolean GL_APIENTRY glIsBuffer (GLuint buffer) { return GL_FALSE; }
-DUMMY_API GL_API GLboolean GL_APIENTRY glIsEnabled (GLenum cap) { return GL_FALSE; }
-DUMMY_API GL_API GLboolean GL_APIENTRY glIsTexture (GLuint texture) { return GL_FALSE; }
-DUMMY_API GL_API void GL_APIENTRY glLightModelx (GLenum pname, GLfixed param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLightModelxv (GLenum pname, const GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLightx (GLenum light, GLenum pname, GLfixed param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLightxv (GLenum light, GLenum pname, const GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLineWidthx (GLfixed width) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLoadIdentity (void) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLoadMatrixx (const GLfixed *m) { return; }
-DUMMY_API GL_API void GL_APIENTRY glLogicOp (GLenum opcode) { return; }
-DUMMY_API GL_API void GL_APIENTRY glMaterialx (GLenum face, GLenum pname, GLfixed param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glMaterialxv (GLenum face, GLenum pname, const GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glMatrixMode (GLenum mode) { return; }
-DUMMY_API GL_API void GL_APIENTRY glMultMatrixx (const GLfixed *m) { return; }
-DUMMY_API GL_API void GL_APIENTRY glMultiTexCoord4x (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) { return; }
-DUMMY_API GL_API void GL_APIENTRY glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz) { return; }
-DUMMY_API GL_API void GL_APIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer) { return; }
-DUMMY_API GL_API void GL_APIENTRY glOrthox (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPixelStorei (GLenum pname, GLint param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPointParameterx (GLenum pname, GLfixed param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPointParameterxv (GLenum pname, const GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPointSizex (GLfixed size) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPolygonOffsetx (GLfixed factor, GLfixed units) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPopMatrix (void) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPushMatrix (void) { return; }
-DUMMY_API GL_API void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) { return; }
-DUMMY_API GL_API void GL_APIENTRY glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z) { return; }
-DUMMY_API GL_API void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert) { return; }
-DUMMY_API GL_API void GL_APIENTRY glSampleCoveragex (GLclampx value, GLboolean invert) { return; }
-DUMMY_API GL_API void GL_APIENTRY glScalex (GLfixed x, GLfixed y, GLfixed z) { return; }
-DUMMY_API GL_API void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height) { return; }
-DUMMY_API GL_API void GL_APIENTRY glShadeModel (GLenum mode) { return; }
-DUMMY_API GL_API void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask) { return; }
-DUMMY_API GL_API void GL_APIENTRY glStencilMask (GLuint mask) { return; }
-DUMMY_API GL_API void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexEnvx (GLenum target, GLenum pname, GLfixed param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexParameterx (GLenum target, GLenum pname, GLfixed param) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexParameterxv (GLenum target, GLenum pname, const GLfixed *params) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) { return; }
-DUMMY_API GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z) { return; }
-DUMMY_API GL_API void GL_APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { return; }
-DUMMY_API GL_API void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height) { return; }
-DUMMY_API GL_API void GL_APIENTRY glPointSizePointerOES (GLenum type, GLsizei stride, const GLvoid *pointer) { return; }
diff --git a/dummy/gles2_dummy.c b/dummy/gles2_dummy.c
deleted file mode 100644
index db091fe..0000000
--- a/dummy/gles2_dummy.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Emulator YaGL dummy library for GLESv2
- *
- * Copyright (c) 2013 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact :
- * Jinhyung Jo <jinhyung.jo@samsung.conm>
- * Stanislav Vorobiov <s.vorobiov@samsung.com>
- * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
- *
- * 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.
- *
- * Contributors:
- * - S-Core Co., Ltd
- *
- */
-
-#include "GLES2/gl2.h"
-#include "dummy.h"
-
-/* GL core functions */
-DUMMY_API GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBlendEquation ( GLenum mode ) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data) { return; }
-DUMMY_API GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target) { return 0; }
-DUMMY_API GL_APICALL void GL_APIENTRY glClear (GLbitfield mask) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glClearDepthf (GLclampf depth) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glClearStencil (GLint s) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { return; }
-DUMMY_API GL_APICALL GLuint GL_APIENTRY glCreateProgram (void) { return 0; }
-DUMMY_API GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type) { return 0; }
-DUMMY_API GL_APICALL void GL_APIENTRY glCullFace (GLenum mode) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDisable (GLenum cap) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glEnable (GLenum cap) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glFinish (void) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glFlush (void) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) { return; }
-DUMMY_API GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name) { return 0; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params) { return; }
-DUMMY_API GL_APICALL GLenum GL_APIENTRY glGetError (void) { return 0; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source) { return; }
-DUMMY_API GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name) { return (GLubyte*)0; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params) { return; }
-DUMMY_API GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name) { return 0; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode) { return; }
-DUMMY_API GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer) { return GL_FALSE; }
-DUMMY_API GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap) { return GL_FALSE; }
-DUMMY_API GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer) { return GL_FALSE; }
-DUMMY_API GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program) { return GL_FALSE; }
-DUMMY_API GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer) { return GL_FALSE; }
-DUMMY_API GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader) { return GL_FALSE; }
-DUMMY_API GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture) { return GL_FALSE; }
-DUMMY_API GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar*const* string, const GLint* length) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat x) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint x) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glUseProgram (GLuint program) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr) { return; }
-DUMMY_API GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height) { return; }
diff --git a/packaging/emulator-yagl.spec b/packaging/emulator-yagl.spec
index 99e5e5e..eacafbf 100644
--- a/packaging/emulator-yagl.spec
+++ b/packaging/emulator-yagl.spec
@@ -65,7 +65,7 @@ Development files for use with Wayland protocol
%{?asan:%define ASAN_LIBS -DWAYLAND_CLIENT_LIBRARIES="-lpthread"}
cp %{SOURCE1001} .
%if "%{ENABLE_TIZEN_BACKEND}" == "1"
-cmake -DCMAKE_INSTALL_PREFIX=%{buildroot} -DINSTALL_LIB_DIR=%{buildroot}%{_libdir} -DPLATFORM_TIZEN=1 -DDUMMY_LIBS=1 %?ASAN_LIBS
+cmake -DCMAKE_INSTALL_PREFIX=%{buildroot} -DINSTALL_LIB_DIR=%{buildroot}%{_libdir} -DPLATFORM_TIZEN=1 %?ASAN_LIBS
%else
cmake -DCMAKE_INSTALL_PREFIX=%{buildroot} -DINSTALL_LIB_DIR=%{buildroot}%{_libdir} -DPLATFORM_X11=0 -DPLATFORM_GBM=0 -DPLATFORM_WAYLAND=1 %?ASAN_LIBS
%endif
@@ -76,12 +76,9 @@ rm -fr %{buildroot}
mkdir -p %{buildroot}
mkdir -p %{buildroot}%{_libdir}
mkdir -p %{buildroot}%{_libdir}/pkgconfig
-mkdir -p %{buildroot}/etc/profile.d
make install
-cp packaging/opengl-es-setup-yagl-env.sh %{buildroot}/etc/profile.d/
-
%if "%{ENABLE_TIZEN_BACKEND}" == "0"
cp pkgconfig/wayland-egl.pc %{buildroot}%{_libdir}/pkgconfig/
%post -n libwayland-egl -p /sbin/ldconfig
@@ -97,7 +94,6 @@ cp pkgconfig/wayland-egl.pc %{buildroot}%{_libdir}/pkgconfig/
%defattr(-,root,root,-)
%{_libdir}/driver/libEGL*
%{_libdir}/driver/libGL*
-%attr(770,root,root)/etc/profile.d/opengl-es-setup-yagl-env.sh
%if "%{ENABLE_TIZEN_BACKEND}" == "0"
%files -n libwayland-egl
diff --git a/packaging/opengl-es-setup-yagl-env.sh b/packaging/opengl-es-setup-yagl-env.sh
deleted file mode 100755
index 1887582..0000000
--- a/packaging/opengl-es-setup-yagl-env.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-DRIVER_PATH="/usr/lib64/driver"
-
-if [ ! -d ${DRIVER_PATH} ]; then
- DRIVER_PATH="/usr/lib/driver"
-fi
-
-echo -e "[${_G} OpenGL ES acceleration module setting: ${DRIVER_PATH} ${C_}]"
-if [ -e /dev/yagl ] ; then
- echo -e "[${_G} Emulator supports gles hw acceleration. ${C_}]"
- ln -s -f libEGL.so.1.0 ${DRIVER_PATH}/libEGL.so.1
- ln -s -f libGLESv1_CM.so.1.0 ${DRIVER_PATH}/libGLESv1_CM.so.1
- ln -s -f libGLESv2.so.2.0 ${DRIVER_PATH}/libGLESv2.so.2
-else
- echo -e "[${_G} Emulator does not support gles hw acceleration. ${C_}]"
- ln -s -f libEGL_dummy.so ${DRIVER_PATH}/libEGL.so.1
- ln -s -f libGLESv1_dummy.so ${DRIVER_PATH}/libGLESv1_CM.so.1
- ln -s -f libGLESv2_dummy.so ${DRIVER_PATH}/libGLESv2.so.2
-fi