diff options
author | Colin Cross <ccross@android.com> | 2014-01-24 14:35:39 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2014-01-24 14:44:57 -0800 |
commit | 444839b842798497cfa326204285a4f2ca2362af (patch) | |
tree | 1f2766b57b911c22e08c19dd25ba79a6e85501d2 | |
parent | b6c2100458bd4dda880ec24dc7d1f39825d5243d (diff) | |
download | frameworks_native-444839b842798497cfa326204285a4f2ca2362af.zip frameworks_native-444839b842798497cfa326204285a4f2ca2362af.tar.gz frameworks_native-444839b842798497cfa326204285a4f2ca2362af.tar.bz2 |
libGLES_android: fix 64-bit compile errors
Fix size of vertex_t on 64-bit architectures
Fix __get_tls casts, the TLS area is a void**
Cast through uintptr_t to store integers in a pointer
Use %zu to print size_t
Change-Id: I91079ec76025237e6d2081784c5348518b0ce122
-rw-r--r-- | opengl/libagl/Tokenizer.cpp | 4 | ||||
-rw-r--r-- | opengl/libagl/context.h | 8 | ||||
-rw-r--r-- | opengl/libagl/egl.cpp | 12 |
3 files changed, 14 insertions, 10 deletions
diff --git a/opengl/libagl/Tokenizer.cpp b/opengl/libagl/Tokenizer.cpp index eac8d6d..ac0a48c 100644 --- a/opengl/libagl/Tokenizer.cpp +++ b/opengl/libagl/Tokenizer.cpp @@ -163,9 +163,9 @@ void Tokenizer::dump() const { const run_t* ranges = mRanges.array(); const size_t c = mRanges.size(); - ALOGD("Tokenizer (%p, size = %u)\n", this, c); + ALOGD("Tokenizer (%p, size = %zu)\n", this, c); for (size_t i=0 ; i<c ; i++) { - ALOGD("%u: (%u, %u)\n", i, ranges[i].first, ranges[i].length); + ALOGD("%zu: (%u, %u)\n", i, ranges[i].first, ranges[i].length); } } diff --git a/opengl/libagl/context.h b/opengl/libagl/context.h index 7065a30..c599a55 100644 --- a/opengl/libagl/context.h +++ b/opengl/libagl/context.h @@ -147,7 +147,11 @@ struct vertex_t { vec4_t color; vec4_t texture[GGL_TEXTURE_UNIT_COUNT]; +#ifdef __LP64__ + uint32_t reserved1[2]; +#else uint32_t reserved1[4]; +#endif inline void clear() { flags = index = locked = mru = 0; @@ -578,10 +582,10 @@ private: #ifdef HAVE_ANDROID_OS // We have a dedicated TLS slot in bionic inline void setGlThreadSpecific(ogles_context_t *value) { - ((uint32_t *)__get_tls())[TLS_SLOT_OPENGL] = (uint32_t)value; + __get_tls()[TLS_SLOT_OPENGL] = value; } inline ogles_context_t* getGlThreadSpecific() { - return (ogles_context_t *)(((unsigned *)__get_tls())[TLS_SLOT_OPENGL]); + return static_cast<ogles_context_t*>(__get_tls()[TLS_SLOT_OPENGL]); } #else extern pthread_key_t gGLKey; diff --git a/opengl/libagl/egl.cpp b/opengl/libagl/egl.cpp index bbbda76..f925e7d 100644 --- a/opengl/libagl/egl.cpp +++ b/opengl/libagl/egl.cpp @@ -78,20 +78,20 @@ static T setError(GLint error, T returnValue) { pthread_key_create(&gEGLErrorKey, NULL); pthread_mutex_unlock(&gErrorKeyMutex); } - pthread_setspecific(gEGLErrorKey, (void*)error); + pthread_setspecific(gEGLErrorKey, (void*)(uintptr_t)error); return returnValue; } static GLint getError() { if (ggl_unlikely(gEGLErrorKey == -1)) return EGL_SUCCESS; - GLint error = (GLint)pthread_getspecific(gEGLErrorKey); + GLint error = (GLint)(uintptr_t)pthread_getspecific(gEGLErrorKey); if (error == 0) { // The TLS key has been created by another thread, but the value for // this thread has not been initialized. return EGL_SUCCESS; } - pthread_setspecific(gEGLErrorKey, (void*)EGL_SUCCESS); + pthread_setspecific(gEGLErrorKey, (void*)(uintptr_t)EGL_SUCCESS); return error; } @@ -1201,7 +1201,7 @@ static EGLBoolean getConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value) { size_t numConfigs = NELEM(gConfigs); - int index = (int)config; + int index = (int)(uintptr_t)config; if (uint32_t(index) >= numConfigs) return setError(EGL_BAD_CONFIG, EGL_FALSE); @@ -1448,7 +1448,7 @@ EGLBoolean eglGetConfigs( EGLDisplay dpy, } GLint i; for (i=0 ; i<numConfigs && i<config_size ; i++) { - *configs++ = (EGLConfig)i; + *configs++ = (EGLConfig)(uintptr_t)i; } *num_config = i; return EGL_TRUE; @@ -1519,7 +1519,7 @@ EGLBoolean eglChooseConfig( EGLDisplay dpy, const EGLint *attrib_list, if (configs) { for (int i=0 ; config_size && i<numConfigs ; i++) { if (possibleMatch & (1<<i)) { - *configs++ = (EGLConfig)i; + *configs++ = (EGLConfig)(uintptr_t)i; config_size--; n++; } |