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
This commit is contained in:
parent
b6c2100458
commit
444839b842
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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++;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user