diff options
-rw-r--r-- | opengl/include/EGL/eglext.h | 12 | ||||
-rw-r--r-- | opengl/libs/EGL/eglApi.cpp | 2 | ||||
-rw-r--r-- | opengl/libs/EGL/egl_cache.cpp | 40 | ||||
-rw-r--r-- | opengl/libs/EGL/egl_cache.h | 8 | ||||
-rw-r--r-- | opengl/specs/EGL_ANDROID_blob_cache.txt | 54 |
5 files changed, 59 insertions, 57 deletions
diff --git a/opengl/include/EGL/eglext.h b/opengl/include/EGL/eglext.h index 8e8e26c..c926670 100644 --- a/opengl/include/EGL/eglext.h +++ b/opengl/include/EGL/eglext.h @@ -261,14 +261,14 @@ typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC)(void); */ #ifndef EGL_ANDROID_blob_cache #define EGL_ANDROID_blob_cache 1 -typedef khronos_ssize_t EGLsizei; -typedef void (*EGLSetBlobFunc) (const void* key, EGLsizei keySize, const void* value, EGLsizei valueSize); -typedef EGLsizei (*EGLGetBlobFunc) (const void* key, EGLsizei keySize, void* value, EGLsizei valueSize); +typedef khronos_ssize_t EGLsizeiANDROID; +typedef void (*EGLSetBlobFuncANDROID) (const void* key, EGLsizeiANDROID keySize, const void* value, EGLsizeiANDROID valueSize); +typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void* key, EGLsizeiANDROID keySize, void* value, EGLsizeiANDROID valueSize); #ifdef EGL_EGLEXT_PROTOTYPES -EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncs(EGLDisplay dpy, EGLSetBlobFunc set, EGLGetBlobFunc get); +EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); #endif /* EGL_EGLEXT_PROTOTYPES */ -typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSPROC) (EGLDisplay dpy, - EGLSetBlobFunc set, EGLGetBlobFunc get); +typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, + EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); #endif #ifdef __cplusplus diff --git a/opengl/libs/EGL/eglApi.cpp b/opengl/libs/EGL/eglApi.cpp index 60ac34b..63f02e4 100644 --- a/opengl/libs/EGL/eglApi.cpp +++ b/opengl/libs/EGL/eglApi.cpp @@ -860,7 +860,7 @@ __eglMustCastToProperFunctionPointerType eglGetProcAddress(const char *procname) // The EGL_ANDROID_blob_cache extension should not be exposed to // applications. It is used internally by the Android EGL layer. - if (!strcmp(procname, "eglSetBlobCacheFuncs")) { + if (!strcmp(procname, "eglSetBlobCacheFuncsANDROID")) { return NULL; } diff --git a/opengl/libs/EGL/egl_cache.cpp b/opengl/libs/EGL/egl_cache.cpp index 522421b..13a4929 100644 --- a/opengl/libs/EGL/egl_cache.cpp +++ b/opengl/libs/EGL/egl_cache.cpp @@ -46,13 +46,13 @@ namespace android { // // Callback functions passed to EGL. // -static void setBlob(const void* key, EGLsizei keySize, const void* value, - EGLsizei valueSize) { +static void setBlob(const void* key, EGLsizeiANDROID keySize, + const void* value, EGLsizeiANDROID valueSize) { egl_cache_t::get()->setBlob(key, keySize, value, valueSize); } -static EGLsizei getBlob(const void* key, EGLsizei keySize, void* value, - EGLsizei valueSize) { +static EGLsizeiANDROID getBlob(const void* key, EGLsizeiANDROID keySize, + void* value, EGLsizeiANDROID valueSize) { return egl_cache_t::get()->getBlob(key, keySize, value, valueSize); } @@ -87,22 +87,23 @@ void egl_cache_t::initialize(egl_display_t *display) { !strcmp(" " BC_EXT_STR, exts + extsLen - (bcExtLen+1)); bool inMiddle = strstr(" " BC_EXT_STR " ", exts); if (equal || atStart || atEnd || inMiddle) { - PFNEGLSETBLOBCACHEFUNCSPROC eglSetBlobCacheFuncs; - eglSetBlobCacheFuncs = - reinterpret_cast<PFNEGLSETBLOBCACHEFUNCSPROC>( - cnx->egl.eglGetProcAddress("eglSetBlobCacheFuncs")); - if (eglSetBlobCacheFuncs == NULL) { + PFNEGLSETBLOBCACHEFUNCSANDROIDPROC eglSetBlobCacheFuncsANDROID; + eglSetBlobCacheFuncsANDROID = + reinterpret_cast<PFNEGLSETBLOBCACHEFUNCSANDROIDPROC>( + cnx->egl.eglGetProcAddress( + "eglSetBlobCacheFuncsANDROID")); + if (eglSetBlobCacheFuncsANDROID == NULL) { LOGE("EGL_ANDROID_blob_cache advertised by display %d, " - "but unable to get eglSetBlobCacheFuncs", i); + "but unable to get eglSetBlobCacheFuncsANDROID", i); continue; } - eglSetBlobCacheFuncs(display->disp[i].dpy, android::setBlob, - android::getBlob); + eglSetBlobCacheFuncsANDROID(display->disp[i].dpy, + android::setBlob, android::getBlob); EGLint err = cnx->egl.eglGetError(); if (err != EGL_SUCCESS) { - LOGE("eglSetBlobCacheFuncs resulted in an error: %#x", - err); + LOGE("eglSetBlobCacheFuncsANDROID resulted in an error: " + "%#x", err); } } } @@ -119,8 +120,8 @@ void egl_cache_t::terminate() { mInitialized = false; } -void egl_cache_t::setBlob(const void* key, EGLsizei keySize, const void* value, - EGLsizei valueSize) { +void egl_cache_t::setBlob(const void* key, EGLsizeiANDROID keySize, + const void* value, EGLsizeiANDROID valueSize) { Mutex::Autolock lock(mMutex); if (keySize < 0 || valueSize < 0) { @@ -158,8 +159,8 @@ void egl_cache_t::setBlob(const void* key, EGLsizei keySize, const void* value, } } -EGLsizei egl_cache_t::getBlob(const void* key, EGLsizei keySize, void* value, - EGLsizei valueSize) { +EGLsizeiANDROID egl_cache_t::getBlob(const void* key, EGLsizeiANDROID keySize, + void* value, EGLsizeiANDROID valueSize) { Mutex::Autolock lock(mMutex); if (keySize < 0 || valueSize < 0) { @@ -323,7 +324,8 @@ void egl_cache_t::loadBlobCacheLocked() { return; } - status_t err = mBlobCache->unflatten(buf + headerSize, cacheSize, NULL, 0); + status_t err = mBlobCache->unflatten(buf + headerSize, cacheSize, NULL, + 0); if (err != OK) { LOGE("error reading cache contents: %s (%d)", strerror(-err), -err); diff --git a/opengl/libs/EGL/egl_cache.h b/opengl/libs/EGL/egl_cache.h index 4389623..8760009 100644 --- a/opengl/libs/EGL/egl_cache.h +++ b/opengl/libs/EGL/egl_cache.h @@ -52,14 +52,14 @@ public: // setBlob attempts to insert a new key/value blob pair into the cache. // This will be called by the hardware vendor's EGL implementation via the // EGL_ANDROID_blob_cache extension. - void setBlob(const void* key, EGLsizei keySize, const void* value, - EGLsizei valueSize); + void setBlob(const void* key, EGLsizeiANDROID keySize, const void* value, + EGLsizeiANDROID valueSize); // getBlob attempts to retrieve the value blob associated with a given key // blob from cache. This will be called by the hardware vendor's EGL // implementation via the EGL_ANDROID_blob_cache extension. - EGLsizei getBlob(const void* key, EGLsizei keySize, void* value, - EGLsizei valueSize); + EGLsizeiANDROID getBlob(const void* key, EGLsizeiANDROID keySize, + void* value, EGLsizeiANDROID valueSize); // setCacheFilename sets the name of the file that should be used to store // cache contents from one program invocation to another. diff --git a/opengl/specs/EGL_ANDROID_blob_cache.txt b/opengl/specs/EGL_ANDROID_blob_cache.txt index 55dc900..61f45d3 100644 --- a/opengl/specs/EGL_ANDROID_blob_cache.txt +++ b/opengl/specs/EGL_ANDROID_blob_cache.txt @@ -63,33 +63,33 @@ Overview New Types /* - * EGLsizei is a signed integer type for representing the size of a memory - * buffer. + * EGLsizeiANDROID is a signed integer type for representing the size of a + * memory buffer. */ #include <khrplatform.h> - typedef khronos_ssize_t EGLsizei; + typedef khronos_ssize_t EGLsizeiANDROID; /* * EGLSetBlobFunc is a pointer to an application-provided function that a * client API implementation may use to insert a key/value pair into the * cache. */ - typedef void (*EGLSetBlobFunc) (const void* key, EGLsizei keySize, - const void* value, EGLsizei valueSize) + typedef void (*EGLSetBlobFuncANDROID) (const void* key, + EGLsizeiANDROID keySize, const void* value, EGLsizeiANDROID valueSize) /* * EGLGetBlobFunc is a pointer to an application-provided function that a * client API implementation may use to retrieve a cached value from the * cache. */ - typedef EGLsizei (*EGLGetBlobFunc) (const void* key, EGLsizei keySize, - void* value, EGLsizei valueSize) + typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void* key, + EGLsizeiANDROID keySize, void* value, EGLsizeiANDROID valueSize) New Procedures and Functions - void eglSetBlobCacheFuncs(EGLDisplay dpy, - EGLSetBlobFunc set, - EGLGetBlobFunc get); + void eglSetBlobCacheFuncsANDROID(EGLDisplay dpy, + EGLSetBlobFunc set, + EGLGetBlobFunc get); New Tokens @@ -107,8 +107,8 @@ Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors) function pointers through which the client APIs can request data be cached and retrieved. The command - void eglSetBlobCacheFuncs(EGLDisplay dpy, - EGLSetBlobFunc set, EGLGetBlobFunc get); + void eglSetBlobCacheFuncsANDROID(EGLDisplay dpy, + EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); sets the callback function pointers that client APIs associated with display <dpy> can use to interact with caching functionality provided by @@ -120,17 +120,17 @@ Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors) Cache functions may only be specified once during the lifetime of an EGLDisplay. The <set> and <get> functions may be called at any time and - from any thread from the time at which eglSetBlobCacheFuncs is called until - the time that the last resource associated with <dpy> is deleted and <dpy> - itself is terminated. Concurrent calls to these functions from different - threads is also allowed. - - If eglSetBlobCacheFuncs generates an error then all client APIs must behave - as though eglSetBlobCacheFuncs was not called for the display <dpy>. If - <set> or <get> is NULL then an EGL_BAD_PARAMETER error is generated. If a - successful eglSetBlobCacheFuncs call was already made for <dpy> and the - display has not since been terminated then an EGL_BAD_PARAMETER error is - generated. + from any thread from the time at which eglSetBlobCacheFuncsANDROID is + called until the time that the last resource associated with <dpy> is + deleted and <dpy> itself is terminated. Concurrent calls to these + functions from different threads is also allowed. + + If eglSetBlobCacheFuncsANDROID generates an error then all client APIs must + behave as though eglSetBlobCacheFuncsANDROID was not called for the display + <dpy>. If <set> or <get> is NULL then an EGL_BAD_PARAMETER error is + generated. If a successful eglSetBlobCacheFuncsANDROID call was already + made for <dpy> and the display has not since been terminated then an + EGL_BAD_PARAMETER error is generated. 3.9.1 Cache Operations @@ -138,8 +138,8 @@ Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors) key, a client API implementation can call the application-provided callback function - void (*set) (const void* key, EGLsizei keySize, const void* value, - EGLsizei valueSize) + void (*set) (const void* key, EGLsizeiANDROID keySize, + const void* value, EGLsizeiANDROID valueSize) <key> and <value> are pointers to the beginning of the key and value, respectively, that are to be inserted. <keySize> and <valueSize> specify @@ -157,8 +157,8 @@ Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors) client API implementation can call the application-provided callback function - EGLsizei (*get) (const void* key, EGLsizei keySize, void* value, - EGLsizei valueSize) + EGLsizeiANDROID (*get) (const void* key, EGLsizeiANDROID keySize, + void* value, EGLsizeiANDROID valueSize) <key> is a pointer to the beginning of the key. <keySize> specifies the size in bytes of the binary key pointed to by <key>. If the cache contains |