diff --git a/opengl/include/EGL/eglext.h b/opengl/include/EGL/eglext.h index 8e8e26c0a..c9266709f 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 60ac34b4a..63f02e494 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 522421b1d..13a492917 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( - cnx->egl.eglGetProcAddress("eglSetBlobCacheFuncs")); - if (eglSetBlobCacheFuncs == NULL) { + PFNEGLSETBLOBCACHEFUNCSANDROIDPROC eglSetBlobCacheFuncsANDROID; + eglSetBlobCacheFuncsANDROID = + reinterpret_cast( + 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 4389623c5..876000951 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 55dc9004a..61f45d351 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 - 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 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 and 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 is deleted and - itself is terminated. Concurrent calls to these functions from different - threads is also allowed. + from any thread from the time at which eglSetBlobCacheFuncsANDROID is + called until the time that the last resource associated with is + deleted and 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 . If - or is NULL then an EGL_BAD_PARAMETER error is generated. If a - successful eglSetBlobCacheFuncs call was already made for and the - display has not since been terminated then an EGL_BAD_PARAMETER error is - generated. + If eglSetBlobCacheFuncsANDROID generates an error then all client APIs must + behave as though eglSetBlobCacheFuncsANDROID was not called for the display + . If or is NULL then an EGL_BAD_PARAMETER error is + generated. If a successful eglSetBlobCacheFuncsANDROID call was already + made for 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) and are pointers to the beginning of the key and value, respectively, that are to be inserted. and 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) is a pointer to the beginning of the key. specifies the size in bytes of the binary key pointed to by . If the cache contains