summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2014-01-24 14:35:39 -0800
committerColin Cross <ccross@android.com>2014-01-24 14:44:57 -0800
commit444839b842798497cfa326204285a4f2ca2362af (patch)
tree1f2766b57b911c22e08c19dd25ba79a6e85501d2
parentb6c2100458bd4dda880ec24dc7d1f39825d5243d (diff)
downloadframeworks_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.cpp4
-rw-r--r--opengl/libagl/context.h8
-rw-r--r--opengl/libagl/egl.cpp12
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++;
}