summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjinhyung.jo <jinhyung.jo@samsung.com>2015-11-04 18:48:16 +0900
committerjinhyung.jo <jinhyung.jo@samsung.com>2015-11-04 19:11:04 +0900
commit233c1f2ea5be0b1d160b64856e33365e0ab58313 (patch)
tree308088a7221d82cf1b75789b93eb4e174bdb882e
parent64c347e6e7743998df1d496a0680b11ba9a67a95 (diff)
downloademulator-yagl-233c1f2ea5be0b1d160b64856e33365e0ab58313.tar.gz
emulator-yagl-233c1f2ea5be0b1d160b64856e33365e0ab58313.tar.bz2
emulator-yagl-233c1f2ea5be0b1d160b64856e33365e0ab58313.zip
YaGL: Patches for the 64bit addressing
Tizen 3.0 supports a 64bit guest. However current yagl is implemented by assumed to use 32bit address. So modify the address related parts. The qemu device sources were also modifed. And remove the warnings: -Wint-to-pointer-cast/-Wpointer-to-int-cast/-Wunused-variables TODO: fix the warning - 'wl_client_add_resource' is deprecated Change-Id: Id3875eefa012240df34fffbc7d12f36c9584b4f1 Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com>
-rw-r--r--EGL/wayland/yagl_wayland_window.c2
-rw-r--r--EGL/yagl_client_image.c2
-rw-r--r--EGL/yagl_display.c6
-rw-r--r--EGL/yagl_egl_calls.c38
-rw-r--r--EGL/yagl_onscreen_image_tizen_sfc.c2
-rw-r--r--EGL/yagl_onscreen_image_wl_buffer.c2
-rw-r--r--EGL/yagl_surface.c2
-rw-r--r--GLES_common/yagl_gles_array.c6
-rw-r--r--GLES_common/yagl_gles_array.h6
-rw-r--r--GLES_common/yagl_gles_buffer.c10
-rw-r--r--GLES_common/yagl_gles_buffer.h12
-rw-r--r--GLES_common/yagl_gles_calls.c8
-rw-r--r--GLES_common/yagl_gles_calls.in24
-rw-r--r--GLES_common/yagl_gles_context.c10
-rw-r--r--GLES_common/yagl_host_gles_calls.c50
-rw-r--r--GLES_common/yagl_host_gles_calls.h24
-rw-r--r--GLES_common/yagl_transport_gl.h6
-rw-r--r--GLESv1_CM/yagl_gles1_calls.c10
-rw-r--r--GLESv2/yagl_gles2_calls.c6
-rw-r--r--GLESv2/yagl_gles3_calls.c18
-rw-r--r--include/yagl_transport.h32
-rw-r--r--include/yagl_types.h9
-rw-r--r--packaging/emulator-yagl.spec15
23 files changed, 169 insertions, 131 deletions
diff --git a/EGL/wayland/yagl_wayland_window.c b/EGL/wayland/yagl_wayland_window.c
index 27c22a0..345edd6 100644
--- a/EGL/wayland/yagl_wayland_window.c
+++ b/EGL/wayland/yagl_wayland_window.c
@@ -278,7 +278,9 @@ static void yagl_wayland_window_swap_buffers(struct yagl_native_drawable *drawab
{
struct yagl_wayland_window *window = (struct yagl_wayland_window*)drawable;
struct yagl_wayland_display *dpy = (struct yagl_wayland_display*)drawable->dpy;
+ /* XXX: unused variable
struct wl_display *wl_dpy = YAGL_WAYLAND_DPY(drawable->dpy->os_dpy);
+ */
struct wl_egl_window *egl_window = YAGL_WAYLAND_WINDOW(drawable->os_drawable);
int i, ret = 0;
diff --git a/EGL/yagl_client_image.c b/EGL/yagl_client_image.c
index 92b7ed8..4dc03cf 100644
--- a/EGL/yagl_client_image.c
+++ b/EGL/yagl_client_image.c
@@ -72,7 +72,7 @@ struct yagl_client_image *yagl_acquire_client_image(yagl_host_handle handle)
return NULL;
}
- image = yagl_display_image_acquire(ctx->dpy, (EGLImageKHR)handle);
+ image = yagl_display_image_acquire(ctx->dpy, (EGLImageKHR)INT2VOIDP(handle));
if (!image) {
return NULL;
diff --git a/EGL/yagl_display.c b/EGL/yagl_display.c
index 9a9ef7b..60b8d02 100644
--- a/EGL/yagl_display.c
+++ b/EGL/yagl_display.c
@@ -120,7 +120,7 @@ void yagl_display_atfork(void)
struct yagl_display *yagl_display_get(EGLDisplay handle)
{
- yagl_host_handle host_dpy = (yagl_host_handle)handle;
+ yagl_host_handle host_dpy = (yagl_host_handle)VOIDP2INT(handle);
struct yagl_display *dpy;
yagl_displays_init();
@@ -427,7 +427,7 @@ struct yagl_context *yagl_display_context_acquire(struct yagl_display *dpy,
pthread_mutex_lock(&dpy->mutex);
yagl_list_for_each(struct yagl_resource, res, &dpy->contexts, list) {
- if (res->handle == (yagl_host_handle)handle) {
+ if (res->handle == (yagl_host_handle)VOIDP2INT(handle)) {
yagl_resource_acquire(res);
pthread_mutex_unlock(&dpy->mutex);
return (struct yagl_context*)res;
@@ -447,7 +447,7 @@ void yagl_display_context_remove(struct yagl_display *dpy,
pthread_mutex_lock(&dpy->mutex);
yagl_list_for_each(struct yagl_resource, res, &dpy->contexts, list) {
- if (res->handle == (yagl_host_handle)handle) {
+ if (res->handle == (yagl_host_handle)VOIDP2INT(handle)) {
yagl_list_remove(&res->list);
yagl_resource_release(res);
break;
diff --git a/EGL/yagl_egl_calls.c b/EGL/yagl_egl_calls.c
index 138488d..ee01410 100644
--- a/EGL/yagl_egl_calls.c
+++ b/EGL/yagl_egl_calls.c
@@ -233,7 +233,7 @@ YAGL_API EGLDisplay eglGetDisplay(EGLNativeDisplayType display_id)
goto out;
}
- ret = (EGLDisplay)dpy->host_dpy;
+ ret = (EGLDisplay)INT2VOIDP(dpy->host_dpy);
YAGL_LOG_FUNC_EXIT_SPLIT(yagl_host_handle, dpy->host_dpy);
@@ -357,7 +357,7 @@ YAGL_API EGLBoolean eglGetConfigs(EGLDisplay dpy,
goto fail;
}
- if (!yagl_host_eglGetConfigs((yagl_host_handle)dpy,
+ if (!yagl_host_eglGetConfigs((yagl_host_handle)VOIDP2INT(dpy),
(yagl_host_handle*)configs,
config_size,
num_config,
@@ -391,7 +391,7 @@ YAGL_API EGLBoolean eglChooseConfig(EGLDisplay dpy,
goto fail;
}
- if (!yagl_host_eglChooseConfig((yagl_host_handle)dpy,
+ if (!yagl_host_eglChooseConfig((yagl_host_handle)VOIDP2INT(dpy),
attrib_list,
yagl_transport_attrib_list_count(attrib_list),
(yagl_host_handle*)configs,
@@ -460,8 +460,8 @@ YAGL_API EGLBoolean eglGetConfigAttrib(EGLDisplay dpy_,
}
/* Fall through. */
default:
- ret = yagl_host_eglGetConfigAttrib((yagl_host_handle)dpy_,
- (yagl_host_handle)config,
+ ret = yagl_host_eglGetConfigAttrib((yagl_host_handle)VOIDP2INT(dpy_),
+ (yagl_host_handle)VOIDP2INT(config),
attribute,
value,
&error);
@@ -514,7 +514,7 @@ YAGL_API EGLSurface eglCreateWindowSurface(EGLDisplay dpy_,
}
surface = yagl_get_backend()->create_window_surface(dpy,
- (yagl_host_handle)config,
+ (yagl_host_handle)VOIDP2INT(config),
native_win,
attrib_list);
@@ -562,7 +562,7 @@ YAGL_API EGLSurface eglCreatePbufferSurface(EGLDisplay dpy_,
}
surface = yagl_get_backend()->create_pbuffer_surface(dpy,
- (yagl_host_handle)config,
+ (yagl_host_handle)VOIDP2INT(config),
attrib_list);
if (!surface) {
@@ -616,7 +616,7 @@ YAGL_API EGLSurface eglCreatePixmapSurface(EGLDisplay dpy_,
}
surface = yagl_get_backend()->create_pixmap_surface(dpy,
- (yagl_host_handle)config,
+ (yagl_host_handle)VOIDP2INT(config),
native_pixmap,
attrib_list);
@@ -718,7 +718,7 @@ YAGL_API EGLBoolean eglQuerySurface(EGLDisplay dpy_,
case EGL_BITMAP_POINTER_KHR:
ptr = yagl_surface_map(surface, &stride);
if (ptr) {
- *value = (EGLint)ptr;
+ *value = (EGLint)VOIDP2INT(ptr);
retval = EGL_TRUE;
} else {
YAGL_SET_ERR(EGL_BAD_ACCESS);
@@ -1121,8 +1121,8 @@ YAGL_API EGLContext eglCreateContext(EGLDisplay dpy_,
host_context =
yagl_host_eglCreateContext(dpy->host_dpy,
- (yagl_host_handle)config,
- (yagl_host_handle)share_context_,
+ (yagl_host_handle)VOIDP2INT(config),
+ (yagl_host_handle)VOIDP2INT(share_context_),
attrib_list,
yagl_transport_attrib_list_count(attrib_list),
&error);
@@ -1147,7 +1147,7 @@ out:
YAGL_LOG_FUNC_EXIT("%u", host_context);
- return (EGLContext)host_context;
+ return (EGLContext)INT2VOIDP(host_context);
}
YAGL_API EGLBoolean eglDestroyContext(EGLDisplay dpy_, EGLContext ctx)
@@ -1164,7 +1164,7 @@ YAGL_API EGLBoolean eglDestroyContext(EGLDisplay dpy_, EGLContext ctx)
goto fail;
}
- if (!yagl_host_eglDestroyContext(dpy->host_dpy, (yagl_host_handle)ctx, &error)) {
+ if (!yagl_host_eglDestroyContext(dpy->host_dpy, (yagl_host_handle)VOIDP2INT(ctx), &error)) {
YAGL_SET_ERR(error);
goto fail;
}
@@ -1221,7 +1221,7 @@ YAGL_API EGLBoolean eglMakeCurrent(EGLDisplay dpy_,
* the current context.
*/
- dpy_ = (EGLDisplay)prev_ctx->dpy->host_dpy;
+ dpy_ = (EGLDisplay)INT2VOIDP(prev_ctx->dpy->host_dpy);
dpy = prev_ctx->dpy;
} else {
if (!yagl_validate_display(dpy_, &dpy)) {
@@ -1301,7 +1301,7 @@ YAGL_API EGLBoolean eglMakeCurrent(EGLDisplay dpy_,
yagl_render_invalidate(0);
- yagl_host_eglMakeCurrent((yagl_host_handle)dpy_,
+ yagl_host_eglMakeCurrent((yagl_host_handle)VOIDP2INT(dpy_),
(draw ? draw->res.handle : 0),
(read ? read->res.handle : 0),
(ctx ? ctx->res.handle : 0));
@@ -1333,7 +1333,7 @@ YAGL_API EGLContext eglGetCurrentContext(void)
YAGL_LOG_FUNC_EXIT("%u", (ctx ? ctx->res.handle : 0));
- return (ctx ? (EGLContext)ctx->res.handle : EGL_NO_CONTEXT);
+ return (ctx ? (EGLContext)INT2VOIDP(ctx->res.handle) : EGL_NO_CONTEXT);
}
YAGL_API EGLSurface eglGetCurrentSurface(EGLint readdraw)
@@ -1368,7 +1368,7 @@ YAGL_API EGLDisplay eglGetCurrentDisplay(void)
YAGL_LOG_FUNC_EXIT("%u", (ctx ? ctx->dpy->host_dpy : 0));
- return (ctx ? (EGLDisplay)ctx->dpy->host_dpy : EGL_NO_DISPLAY);
+ return (ctx ? (EGLDisplay)INT2VOIDP(ctx->dpy->host_dpy) : EGL_NO_DISPLAY);
}
YAGL_API EGLBoolean eglQueryContext(EGLDisplay dpy_,
@@ -1453,7 +1453,7 @@ YAGL_API EGLBoolean eglQueryContext(EGLDisplay dpy_,
break;
default:
res = yagl_host_eglQueryContext(dpy->host_dpy,
- (yagl_host_handle)ctx_,
+ (yagl_host_handle)VOIDP2INT(ctx_),
attribute,
value,
&error);
@@ -1761,7 +1761,7 @@ YAGL_API EGLImageKHR eglCreateImageKHR(EGLDisplay dpy_,
image = yagl_get_backend()->create_image_gl_texture_2d(dpy,
ctx,
- (yagl_object_name)buffer,
+ (yagl_object_name)VOIDP2INT(buffer),
iface);
if (!image) {
diff --git a/EGL/yagl_onscreen_image_tizen_sfc.c b/EGL/yagl_onscreen_image_tizen_sfc.c
index 4eaab32..2ff5242 100644
--- a/EGL/yagl_onscreen_image_tizen_sfc.c
+++ b/EGL/yagl_onscreen_image_tizen_sfc.c
@@ -101,7 +101,7 @@ struct yagl_onscreen_image_tizen_sfc
yagl_image_init(&image->base,
&yagl_onscreen_image_tizen_sfc_destroy,
dpy,
- (EGLImageKHR)drm_sfc->gem.name,
+ (EGLImageKHR)INT2VOIDP(drm_sfc->gem.name),
client_image);
yagl_client_image_release(client_image);
diff --git a/EGL/yagl_onscreen_image_wl_buffer.c b/EGL/yagl_onscreen_image_wl_buffer.c
index 39bd29d..25075e1 100644
--- a/EGL/yagl_onscreen_image_wl_buffer.c
+++ b/EGL/yagl_onscreen_image_wl_buffer.c
@@ -95,7 +95,7 @@ struct yagl_onscreen_image_wl_buffer
yagl_image_init(&image->base,
&yagl_onscreen_image_wl_buffer_destroy,
dpy,
- (EGLImageKHR)drm_sfc->gem.name,
+ (EGLImageKHR)INT2VOIDP(drm_sfc->gem.name),
client_image);
yagl_client_image_release(client_image);
diff --git a/EGL/yagl_surface.c b/EGL/yagl_surface.c
index 15f78db..5c62b6f 100644
--- a/EGL/yagl_surface.c
+++ b/EGL/yagl_surface.c
@@ -122,7 +122,7 @@ EGLSurface yagl_surface_get_handle(struct yagl_surface *sfc)
{
switch (sfc->type) {
case EGL_PBUFFER_BIT:
- return (EGLSurface)sfc->res.handle;
+ return (EGLSurface)INT2VOIDP(sfc->res.handle);
case EGL_PIXMAP_BIT:
case EGL_WINDOW_BIT:
return (EGLSurface)sfc->native_drawable->os_drawable;
diff --git a/GLES_common/yagl_gles_array.c b/GLES_common/yagl_gles_array.c
index 2643844..bd7f68a 100644
--- a/GLES_common/yagl_gles_array.c
+++ b/GLES_common/yagl_gles_array.c
@@ -110,11 +110,11 @@ static __inline int yagl_get_el_size(GLenum type,
static __inline void yagl_get_actual(GLenum type,
GLsizei stride,
- GLint offset,
+ GLintptr offset,
int need_convert,
GLenum *actual_type,
GLsizei *actual_stride,
- GLint *actual_offset)
+ GLintptr *actual_offset)
{
*actual_type = type;
*actual_stride = stride;
@@ -282,7 +282,7 @@ int yagl_gles_array_update_vbo(struct yagl_gles_array *array,
GLboolean normalized,
GLsizei stride,
struct yagl_gles_buffer *vbo,
- GLint offset,
+ GLintptr offset,
int integer)
{
if (!yagl_get_el_size(type, integer, &array->el_size, &type)) {
diff --git a/GLES_common/yagl_gles_array.h b/GLES_common/yagl_gles_array.h
index d496361..84e1fe5 100644
--- a/GLES_common/yagl_gles_array.h
+++ b/GLES_common/yagl_gles_array.h
@@ -102,8 +102,8 @@ struct yagl_gles_array
const GLvoid *ptr;
struct
{
- GLint offset;
- GLint actual_offset;
+ GLintptr offset;
+ GLintptr actual_offset;
};
};
@@ -136,7 +136,7 @@ int yagl_gles_array_update_vbo(struct yagl_gles_array *array,
GLboolean normalized,
GLsizei stride,
struct yagl_gles_buffer *vbo,
- GLint offset,
+ GLintptr offset,
int integer);
void yagl_gles_array_apply(struct yagl_gles_array *array);
diff --git a/GLES_common/yagl_gles_buffer.c b/GLES_common/yagl_gles_buffer.c
index d4bc4ed..68ea04f 100644
--- a/GLES_common/yagl_gles_buffer.c
+++ b/GLES_common/yagl_gles_buffer.c
@@ -335,7 +335,7 @@ void yagl_gles_buffer_set_data(struct yagl_gles_buffer *buffer,
}
int yagl_gles_buffer_update_data(struct yagl_gles_buffer *buffer,
- GLint offset,
+ GLintptr offset,
GLint size,
const void *data)
{
@@ -368,7 +368,7 @@ int yagl_gles_buffer_update_data(struct yagl_gles_buffer *buffer,
int yagl_gles_buffer_get_minmax_index(struct yagl_gles_buffer *buffer,
GLenum type,
- GLint offset,
+ GLintptr offset,
GLint count,
uint32_t *min_idx,
uint32_t *max_idx)
@@ -647,7 +647,7 @@ int yagl_gles_buffer_is_cpu_dirty(struct yagl_gles_buffer *buffer,
}
void yagl_gles_buffer_set_gpu_dirty(struct yagl_gles_buffer *buffer,
- GLint offset,
+ GLintptr offset,
GLint size)
{
if ((offset < 0) || (size < 0) || ((offset + size) > buffer->size)) {
@@ -667,8 +667,8 @@ int yagl_gles_buffer_copy_gpu(struct yagl_gles_buffer *from_buffer,
GLenum from_target,
struct yagl_gles_buffer *to_buffer,
GLenum to_target,
- GLint from_offset,
- GLint to_offset,
+ GLintptr from_offset,
+ GLintptr to_offset,
GLint size)
{
if ((from_offset < 0) || (to_offset < 0) || (size < 0) ||
diff --git a/GLES_common/yagl_gles_buffer.h b/GLES_common/yagl_gles_buffer.h
index 6f8e3b9..90715f8 100644
--- a/GLES_common/yagl_gles_buffer.h
+++ b/GLES_common/yagl_gles_buffer.h
@@ -86,7 +86,7 @@ struct yagl_gles_buffer
int cached_minmax_idx;
GLenum cached_type;
- GLint cached_offset;
+ GLintptr cached_offset;
GLint cached_count;
uint32_t cached_min_idx;
uint32_t cached_max_idx;
@@ -110,13 +110,13 @@ void yagl_gles_buffer_set_data(struct yagl_gles_buffer *buffer,
GLenum usage);
int yagl_gles_buffer_update_data(struct yagl_gles_buffer *buffer,
- GLint offset,
+ GLintptr offset,
GLint size,
const void *data);
int yagl_gles_buffer_get_minmax_index(struct yagl_gles_buffer *buffer,
GLenum type,
- GLint offset,
+ GLintptr offset,
GLint count,
uint32_t *min_idx,
uint32_t *max_idx);
@@ -160,15 +160,15 @@ int yagl_gles_buffer_is_cpu_dirty(struct yagl_gles_buffer *buffer,
int need_convert);
void yagl_gles_buffer_set_gpu_dirty(struct yagl_gles_buffer *buffer,
- GLint offset,
+ GLintptr offset,
GLint size);
int yagl_gles_buffer_copy_gpu(struct yagl_gles_buffer *from_buffer,
GLenum from_target,
struct yagl_gles_buffer *to_buffer,
GLenum to_target,
- GLint from_offset,
- GLint to_offset,
+ GLintptr from_offset,
+ GLintptr to_offset,
GLint size);
#endif
diff --git a/GLES_common/yagl_gles_calls.c b/GLES_common/yagl_gles_calls.c
index f25a103..4c64e8a 100644
--- a/GLES_common/yagl_gles_calls.c
+++ b/GLES_common/yagl_gles_calls.c
@@ -2181,7 +2181,7 @@ YAGL_API void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLen
width, height,
pf->dst_format,
pf->dst_type,
- (GLsizei)pixels);
+ (uintptr_t)pixels);
} else {
GLvoid *pixels_from;
@@ -2297,7 +2297,7 @@ YAGL_API void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLs
border,
pf->dst_format,
pf->dst_type,
- (GLsizei)pixels);
+ (uintptr_t)pixels);
} else {
yagl_host_glTexImage2DData(target,
level,
@@ -2390,7 +2390,7 @@ YAGL_API void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint y
height,
pf->dst_format,
pf->dst_type,
- (GLsizei)pixels);
+ (uintptr_t)pixels);
} else {
yagl_host_glTexSubImage2DData(target,
level,
@@ -2430,7 +2430,7 @@ YAGL_API void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
goto out;
}
- image_obj = (struct yagl_gles_image*)yagl_acquire_client_image((yagl_host_handle)image);
+ image_obj = (struct yagl_gles_image*)yagl_acquire_client_image((yagl_host_handle)VOIDP2INT(image));
if (!image_obj) {
YAGL_SET_ERR(GL_INVALID_OPERATION);
diff --git a/GLES_common/yagl_gles_calls.in b/GLES_common/yagl_gles_calls.in
index ce21c1f..e0cf14e 100644
--- a/GLES_common/yagl_gles_calls.in
+++ b/GLES_common/yagl_gles_calls.in
@@ -2,7 +2,7 @@
void glDrawArrays(GLenum mode, GLint first, GLsizei count)
void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
void glReadPixelsData(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
-void glReadPixelsOffset(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei pixels)
+void glReadPixelsOffset(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, uintptr_t pixels)
void glDrawArraysInstanced(GLenum mode, GLint start, GLsizei count, GLsizei primcount)
void glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount)
void glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices)
@@ -13,20 +13,20 @@ void glBindVertexArray(GLuint array)
void glDisableVertexAttribArray(GLuint index)
void glEnableVertexAttribArray(GLuint index)
void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLint first, const GLvoid *data)
-void glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLsizei offset)
+void glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, uintptr_t offset)
void glVertexPointerData(GLint size, GLenum type, GLsizei stride, GLint first, const GLvoid *data)
-void glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, GLsizei offset)
+void glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, uintptr_t offset)
void glNormalPointerData(GLenum type, GLsizei stride, GLint first, const GLvoid *data)
-void glNormalPointerOffset(GLenum type, GLsizei stride, GLsizei offset)
+void glNormalPointerOffset(GLenum type, GLsizei stride, uintptr_t offset)
void glColorPointerData(GLint size, GLenum type, GLsizei stride, GLint first, const GLvoid *data)
-void glColorPointerOffset(GLint size, GLenum type, GLsizei stride, GLsizei offset)
+void glColorPointerOffset(GLint size, GLenum type, GLsizei stride, uintptr_t offset)
void glTexCoordPointerData(GLint tex_id, GLint size, GLenum type, GLsizei stride, GLint first, const GLvoid *data)
-void glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride, GLsizei offset)
+void glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride, uintptr_t offset)
void glDisableClientState(GLenum array)
void glEnableClientState(GLenum array)
void glVertexAttribDivisor(GLuint index, GLuint divisor)
void glVertexAttribIPointerData(GLuint index, GLint size, GLenum type, GLsizei stride, GLint first, const GLvoid *data)
-void glVertexAttribIPointerOffset(GLuint index, GLint size, GLenum type, GLsizei stride, GLsizei offset)
+void glVertexAttribIPointerOffset(GLuint index, GLint size, GLenum type, GLsizei stride, uintptr_t offset)
# Buffers
void glGenBuffers(const GLuint *buffers)
void glBindBuffer(GLenum target, GLuint buffer)
@@ -35,7 +35,7 @@ void glBufferSubData(GLenum target, GLsizei offset, const GLvoid *data)
void glBindBufferBase(GLenum target, GLuint index, GLuint buffer)
void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLint offset, GLsizei size)
void glMapBuffer(GLuint buffer, const GLuint *ranges, GLvoid *data)
-void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLint readOffset, GLint writeOffset, GLsizei size)
+void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizei size)
# Textures
void glGenTextures(const GLuint *textures)
void glBindTexture(GLenum target, GLuint texture)
@@ -45,13 +45,13 @@ void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffse
void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat &param)
void glGetTexParameteriv(GLenum target, GLenum pname, GLint &param)
void glTexImage2DData(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
-void glTexImage2DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei pixels)
+void glTexImage2DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, uintptr_t pixels)
void glTexParameterf(GLenum target, GLenum pname, GLfloat param)
void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params)
void glTexParameteri(GLenum target, GLenum pname, GLint param)
void glTexParameteriv(GLenum target, GLenum pname, const GLint* params)
void glTexSubImage2DData(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
-void glTexSubImage2DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei pixels)
+void glTexSubImage2DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, uintptr_t pixels)
void glClientActiveTexture(GLenum texture)
void glTexEnvi(GLenum target, GLenum pname, GLint param)
void glTexEnvf(GLenum target, GLenum pname, GLfloat param)
@@ -61,9 +61,9 @@ void glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params)
void glGetTexEnviv(GLenum env, GLenum pname, GLint *params)
void glGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params)
void glTexImage3DData(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
-void glTexImage3DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei pixels)
+void glTexImage3DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, uintptr_t pixels)
void glTexSubImage3DData(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
-void glTexSubImage3DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei pixels)
+void glTexSubImage3DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, uintptr_t pixels)
void glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
# Framebuffers
void glGenFramebuffers(const GLuint *framebuffers)
diff --git a/GLES_common/yagl_gles_context.c b/GLES_common/yagl_gles_context.c
index 60b2a6f..9e43e3b 100644
--- a/GLES_common/yagl_gles_context.c
+++ b/GLES_common/yagl_gles_context.c
@@ -2141,7 +2141,7 @@ void yagl_gles_context_draw_elements(struct yagl_gles_context *ctx,
if (ctx->vao->ebo) {
if (!yagl_gles_buffer_get_minmax_index(ctx->vao->ebo,
type,
- (GLint)indices,
+ (GLintptr)indices,
count,
&min_idx,
&max_idx)) {
@@ -2174,7 +2174,7 @@ void yagl_gles_context_draw_elements(struct yagl_gles_context *ctx,
type,
GL_ELEMENT_ARRAY_BUFFER,
0);
- ctx->draw_elements(ctx, mode, count, type, NULL, (int32_t)indices, primcount, max_idx);
+ ctx->draw_elements(ctx, mode, count, type, NULL, (int32_t)VOIDP2INT(indices), primcount, max_idx);
yagl_host_glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
} else {
ctx->draw_elements(ctx, mode, count, type, indices, count * index_size, primcount, max_idx);
@@ -2213,7 +2213,7 @@ int yagl_gles_context_pre_unpack(struct yagl_gles_context *ctx,
return 0;
}
- *pixels = ctx->unpack.pbo->map_pointer + (uint32_t)*pixels;
+ *pixels = ctx->unpack.pbo->map_pointer + (GLintptr)*pixels;
return 1;
}
@@ -2264,7 +2264,7 @@ int yagl_gles_context_pre_pack(struct yagl_gles_context *ctx,
return 0;
}
- *pixels = ctx->pack.pbo->map_pointer + (uint32_t)*pixels;
+ *pixels = ctx->pack.pbo->map_pointer + (GLintptr)*pixels;
return 1;
}
@@ -2283,7 +2283,7 @@ void yagl_gles_context_post_pack(struct yagl_gles_context *ctx,
} else {
yagl_host_glBindBuffer(GL_PIXEL_PACK_BUFFER, 0);
yagl_gles_buffer_set_gpu_dirty(ctx->pack.pbo,
- (GLint)pixels,
+ (GLintptr)pixels,
size);
}
}
diff --git a/GLES_common/yagl_host_gles_calls.c b/GLES_common/yagl_host_gles_calls.c
index 0e606ab..a810c02 100644
--- a/GLES_common/yagl_host_gles_calls.c
+++ b/GLES_common/yagl_host_gles_calls.c
@@ -57,7 +57,7 @@ void yagl_host_glReadPixelsData(GLint x, GLint y, GLsizei width, GLsizei height,
/*
* glReadPixelsOffset wrapper. id = 4
*/
-void yagl_host_glReadPixelsOffset(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei pixels)
+void yagl_host_glReadPixelsOffset(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, uintptr_t pixels)
{
struct yagl_transport *t = yagl_get_transport();
@@ -68,7 +68,7 @@ void yagl_host_glReadPixelsOffset(GLint x, GLint y, GLsizei width, GLsizei heigh
yagl_transport_put_out_GLsizei(t, height);
yagl_transport_put_out_GLenum(t, format);
yagl_transport_put_out_GLenum(t, type);
- yagl_transport_put_out_GLsizei(t, pixels);
+ yagl_transport_put_out_uintptr_t(t, pixels);
yagl_transport_end(t);
}
@@ -189,7 +189,7 @@ void yagl_host_glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, G
/*
* glVertexAttribPointerOffset wrapper. id = 13
*/
-void yagl_host_glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLsizei offset)
+void yagl_host_glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, uintptr_t offset)
{
struct yagl_transport *t = yagl_get_transport();
@@ -199,7 +199,7 @@ void yagl_host_glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type,
yagl_transport_put_out_GLenum(t, type);
yagl_transport_put_out_GLboolean(t, normalized);
yagl_transport_put_out_GLsizei(t, stride);
- yagl_transport_put_out_GLsizei(t, offset);
+ yagl_transport_put_out_uintptr_t(t, offset);
yagl_transport_end(t);
}
@@ -222,7 +222,7 @@ void yagl_host_glVertexPointerData(GLint size, GLenum type, GLsizei stride, GLin
/*
* glVertexPointerOffset wrapper. id = 15
*/
-void yagl_host_glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, GLsizei offset)
+void yagl_host_glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, uintptr_t offset)
{
struct yagl_transport *t = yagl_get_transport();
@@ -230,7 +230,7 @@ void yagl_host_glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, GL
yagl_transport_put_out_GLint(t, size);
yagl_transport_put_out_GLenum(t, type);
yagl_transport_put_out_GLsizei(t, stride);
- yagl_transport_put_out_GLsizei(t, offset);
+ yagl_transport_put_out_uintptr_t(t, offset);
yagl_transport_end(t);
}
@@ -252,14 +252,14 @@ void yagl_host_glNormalPointerData(GLenum type, GLsizei stride, GLint first, con
/*
* glNormalPointerOffset wrapper. id = 17
*/
-void yagl_host_glNormalPointerOffset(GLenum type, GLsizei stride, GLsizei offset)
+void yagl_host_glNormalPointerOffset(GLenum type, GLsizei stride, uintptr_t offset)
{
struct yagl_transport *t = yagl_get_transport();
yagl_transport_begin(t, yagl_api_id_gles, 17, 3 * 8, 3 * 8);
yagl_transport_put_out_GLenum(t, type);
yagl_transport_put_out_GLsizei(t, stride);
- yagl_transport_put_out_GLsizei(t, offset);
+ yagl_transport_put_out_uintptr_t(t, offset);
yagl_transport_end(t);
}
@@ -282,7 +282,7 @@ void yagl_host_glColorPointerData(GLint size, GLenum type, GLsizei stride, GLint
/*
* glColorPointerOffset wrapper. id = 19
*/
-void yagl_host_glColorPointerOffset(GLint size, GLenum type, GLsizei stride, GLsizei offset)
+void yagl_host_glColorPointerOffset(GLint size, GLenum type, GLsizei stride, uintptr_t offset)
{
struct yagl_transport *t = yagl_get_transport();
@@ -290,7 +290,7 @@ void yagl_host_glColorPointerOffset(GLint size, GLenum type, GLsizei stride, GLs
yagl_transport_put_out_GLint(t, size);
yagl_transport_put_out_GLenum(t, type);
yagl_transport_put_out_GLsizei(t, stride);
- yagl_transport_put_out_GLsizei(t, offset);
+ yagl_transport_put_out_uintptr_t(t, offset);
yagl_transport_end(t);
}
@@ -314,7 +314,7 @@ void yagl_host_glTexCoordPointerData(GLint tex_id, GLint size, GLenum type, GLsi
/*
* glTexCoordPointerOffset wrapper. id = 21
*/
-void yagl_host_glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride, GLsizei offset)
+void yagl_host_glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride, uintptr_t offset)
{
struct yagl_transport *t = yagl_get_transport();
@@ -322,7 +322,7 @@ void yagl_host_glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride,
yagl_transport_put_out_GLint(t, size);
yagl_transport_put_out_GLenum(t, type);
yagl_transport_put_out_GLsizei(t, stride);
- yagl_transport_put_out_GLsizei(t, offset);
+ yagl_transport_put_out_uintptr_t(t, offset);
yagl_transport_end(t);
}
@@ -383,7 +383,7 @@ void yagl_host_glVertexAttribIPointerData(GLuint index, GLint size, GLenum type,
/*
* glVertexAttribIPointerOffset wrapper. id = 26
*/
-void yagl_host_glVertexAttribIPointerOffset(GLuint index, GLint size, GLenum type, GLsizei stride, GLsizei offset)
+void yagl_host_glVertexAttribIPointerOffset(GLuint index, GLint size, GLenum type, GLsizei stride, uintptr_t offset)
{
struct yagl_transport *t = yagl_get_transport();
@@ -392,7 +392,7 @@ void yagl_host_glVertexAttribIPointerOffset(GLuint index, GLint size, GLenum typ
yagl_transport_put_out_GLint(t, size);
yagl_transport_put_out_GLenum(t, type);
yagl_transport_put_out_GLsizei(t, stride);
- yagl_transport_put_out_GLsizei(t, offset);
+ yagl_transport_put_out_uintptr_t(t, offset);
yagl_transport_end(t);
}
@@ -496,15 +496,15 @@ void yagl_host_glMapBuffer(GLuint buffer, const GLuint *ranges, int32_t ranges_c
/*
* glCopyBufferSubData wrapper. id = 34
*/
-void yagl_host_glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLint readOffset, GLint writeOffset, GLsizei size)
+void yagl_host_glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizei size)
{
struct yagl_transport *t = yagl_get_transport();
yagl_transport_begin(t, yagl_api_id_gles, 34, 5 * 8, 5 * 8);
yagl_transport_put_out_GLenum(t, readTarget);
yagl_transport_put_out_GLenum(t, writeTarget);
- yagl_transport_put_out_GLint(t, readOffset);
- yagl_transport_put_out_GLint(t, writeOffset);
+ yagl_transport_put_out_GLintptr(t, readOffset);
+ yagl_transport_put_out_GLintptr(t, writeOffset);
yagl_transport_put_out_GLsizei(t, size);
yagl_transport_end(t);
}
@@ -635,7 +635,7 @@ void yagl_host_glTexImage2DData(GLenum target, GLint level, GLint internalformat
/*
* glTexImage2DOffset wrapper. id = 43
*/
-void yagl_host_glTexImage2DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei pixels)
+void yagl_host_glTexImage2DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, uintptr_t pixels)
{
struct yagl_transport *t = yagl_get_transport();
@@ -648,7 +648,7 @@ void yagl_host_glTexImage2DOffset(GLenum target, GLint level, GLint internalform
yagl_transport_put_out_GLint(t, border);
yagl_transport_put_out_GLenum(t, format);
yagl_transport_put_out_GLenum(t, type);
- yagl_transport_put_out_GLsizei(t, pixels);
+ yagl_transport_put_out_uintptr_t(t, pixels);
yagl_transport_end(t);
}
@@ -731,7 +731,7 @@ void yagl_host_glTexSubImage2DData(GLenum target, GLint level, GLint xoffset, GL
/*
* glTexSubImage2DOffset wrapper. id = 49
*/
-void yagl_host_glTexSubImage2DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei pixels)
+void yagl_host_glTexSubImage2DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, uintptr_t pixels)
{
struct yagl_transport *t = yagl_get_transport();
@@ -744,7 +744,7 @@ void yagl_host_glTexSubImage2DOffset(GLenum target, GLint level, GLint xoffset,
yagl_transport_put_out_GLsizei(t, height);
yagl_transport_put_out_GLenum(t, format);
yagl_transport_put_out_GLenum(t, type);
- yagl_transport_put_out_GLsizei(t, pixels);
+ yagl_transport_put_out_uintptr_t(t, pixels);
yagl_transport_end(t);
}
@@ -884,7 +884,7 @@ void yagl_host_glTexImage3DData(GLenum target, GLint level, GLint internalformat
/*
* glTexImage3DOffset wrapper. id = 59
*/
-void yagl_host_glTexImage3DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei pixels)
+void yagl_host_glTexImage3DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, uintptr_t pixels)
{
struct yagl_transport *t = yagl_get_transport();
@@ -898,7 +898,7 @@ void yagl_host_glTexImage3DOffset(GLenum target, GLint level, GLint internalform
yagl_transport_put_out_GLint(t, border);
yagl_transport_put_out_GLenum(t, format);
yagl_transport_put_out_GLenum(t, type);
- yagl_transport_put_out_GLsizei(t, pixels);
+ yagl_transport_put_out_uintptr_t(t, pixels);
yagl_transport_end(t);
}
@@ -927,7 +927,7 @@ void yagl_host_glTexSubImage3DData(GLenum target, GLint level, GLint xoffset, GL
/*
* glTexSubImage3DOffset wrapper. id = 61
*/
-void yagl_host_glTexSubImage3DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei pixels)
+void yagl_host_glTexSubImage3DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, uintptr_t pixels)
{
struct yagl_transport *t = yagl_get_transport();
@@ -942,7 +942,7 @@ void yagl_host_glTexSubImage3DOffset(GLenum target, GLint level, GLint xoffset,
yagl_transport_put_out_GLsizei(t, depth);
yagl_transport_put_out_GLenum(t, format);
yagl_transport_put_out_GLenum(t, type);
- yagl_transport_put_out_GLsizei(t, pixels);
+ yagl_transport_put_out_uintptr_t(t, pixels);
yagl_transport_end(t);
}
diff --git a/GLES_common/yagl_host_gles_calls.h b/GLES_common/yagl_host_gles_calls.h
index 7d8ff00..af9a34f 100644
--- a/GLES_common/yagl_host_gles_calls.h
+++ b/GLES_common/yagl_host_gles_calls.h
@@ -25,7 +25,7 @@ void yagl_host_glReadPixelsData(GLint x, GLint y, GLsizei width, GLsizei height,
/*
* glReadPixelsOffset wrapper. id = 4
*/
-void yagl_host_glReadPixelsOffset(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei pixels);
+void yagl_host_glReadPixelsOffset(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, uintptr_t pixels);
/*
* glDrawArraysInstanced wrapper. id = 5
@@ -70,7 +70,7 @@ void yagl_host_glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, G
/*
* glVertexAttribPointerOffset wrapper. id = 13
*/
-void yagl_host_glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLsizei offset);
+void yagl_host_glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, uintptr_t offset);
/*
* glVertexPointerData wrapper. id = 14
@@ -80,7 +80,7 @@ void yagl_host_glVertexPointerData(GLint size, GLenum type, GLsizei stride, GLin
/*
* glVertexPointerOffset wrapper. id = 15
*/
-void yagl_host_glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, GLsizei offset);
+void yagl_host_glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, uintptr_t offset);
/*
* glNormalPointerData wrapper. id = 16
@@ -90,7 +90,7 @@ void yagl_host_glNormalPointerData(GLenum type, GLsizei stride, GLint first, con
/*
* glNormalPointerOffset wrapper. id = 17
*/
-void yagl_host_glNormalPointerOffset(GLenum type, GLsizei stride, GLsizei offset);
+void yagl_host_glNormalPointerOffset(GLenum type, GLsizei stride, uintptr_t offset);
/*
* glColorPointerData wrapper. id = 18
@@ -100,7 +100,7 @@ void yagl_host_glColorPointerData(GLint size, GLenum type, GLsizei stride, GLint
/*
* glColorPointerOffset wrapper. id = 19
*/
-void yagl_host_glColorPointerOffset(GLint size, GLenum type, GLsizei stride, GLsizei offset);
+void yagl_host_glColorPointerOffset(GLint size, GLenum type, GLsizei stride, uintptr_t offset);
/*
* glTexCoordPointerData wrapper. id = 20
@@ -110,7 +110,7 @@ void yagl_host_glTexCoordPointerData(GLint tex_id, GLint size, GLenum type, GLsi
/*
* glTexCoordPointerOffset wrapper. id = 21
*/
-void yagl_host_glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride, GLsizei offset);
+void yagl_host_glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride, uintptr_t offset);
/*
* glDisableClientState wrapper. id = 22
@@ -135,7 +135,7 @@ void yagl_host_glVertexAttribIPointerData(GLuint index, GLint size, GLenum type,
/*
* glVertexAttribIPointerOffset wrapper. id = 26
*/
-void yagl_host_glVertexAttribIPointerOffset(GLuint index, GLint size, GLenum type, GLsizei stride, GLsizei offset);
+void yagl_host_glVertexAttribIPointerOffset(GLuint index, GLint size, GLenum type, GLsizei stride, uintptr_t offset);
/*
* glGenBuffers wrapper. id = 27
@@ -175,7 +175,7 @@ void yagl_host_glMapBuffer(GLuint buffer, const GLuint *ranges, int32_t ranges_c
/*
* glCopyBufferSubData wrapper. id = 34
*/
-void yagl_host_glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLint readOffset, GLint writeOffset, GLsizei size);
+void yagl_host_glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizei size);
/*
* glGenTextures wrapper. id = 35
@@ -220,7 +220,7 @@ void yagl_host_glTexImage2DData(GLenum target, GLint level, GLint internalformat
/*
* glTexImage2DOffset wrapper. id = 43
*/
-void yagl_host_glTexImage2DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei pixels);
+void yagl_host_glTexImage2DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, uintptr_t pixels);
/*
* glTexParameterf wrapper. id = 44
@@ -250,7 +250,7 @@ void yagl_host_glTexSubImage2DData(GLenum target, GLint level, GLint xoffset, GL
/*
* glTexSubImage2DOffset wrapper. id = 49
*/
-void yagl_host_glTexSubImage2DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei pixels);
+void yagl_host_glTexSubImage2DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, uintptr_t pixels);
/*
* glClientActiveTexture wrapper. id = 50
@@ -300,7 +300,7 @@ void yagl_host_glTexImage3DData(GLenum target, GLint level, GLint internalformat
/*
* glTexImage3DOffset wrapper. id = 59
*/
-void yagl_host_glTexImage3DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei pixels);
+void yagl_host_glTexImage3DOffset(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, uintptr_t pixels);
/*
* glTexSubImage3DData wrapper. id = 60
@@ -310,7 +310,7 @@ void yagl_host_glTexSubImage3DData(GLenum target, GLint level, GLint xoffset, GL
/*
* glTexSubImage3DOffset wrapper. id = 61
*/
-void yagl_host_glTexSubImage3DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei pixels);
+void yagl_host_glTexSubImage3DOffset(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, uintptr_t pixels);
/*
* glCopyTexSubImage3D wrapper. id = 62
diff --git a/GLES_common/yagl_transport_gl.h b/GLES_common/yagl_transport_gl.h
index c1ef208..0b36df9 100644
--- a/GLES_common/yagl_transport_gl.h
+++ b/GLES_common/yagl_transport_gl.h
@@ -54,6 +54,12 @@ static __inline void yagl_transport_put_out_GLint(struct yagl_transport *t,
yagl_transport_put_out_uint32_t(t, value);
}
+static __inline void yagl_transport_put_out_GLintptr(struct yagl_transport *t,
+ GLintptr value)
+{
+ yagl_transport_put_out_uintptr_t(t, value);
+}
+
static __inline void yagl_transport_put_out_GLbitfield(struct yagl_transport *t,
GLbitfield value)
{
diff --git a/GLESv1_CM/yagl_gles1_calls.c b/GLESv1_CM/yagl_gles1_calls.c
index 59c0381..029196d 100644
--- a/GLESv1_CM/yagl_gles1_calls.c
+++ b/GLESv1_CM/yagl_gles1_calls.c
@@ -1012,7 +1012,7 @@ YAGL_API void glNormalPointer(GLenum type, GLsizei stride, const GLvoid* pointer
GL_FALSE,
stride,
ctx->base.vbo,
- (GLint)pointer,
+ (GLintptr)pointer,
0)) {
YAGL_SET_ERR(GL_INVALID_ENUM);
}
@@ -1075,7 +1075,7 @@ YAGL_API void glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLv
GL_FALSE,
stride,
ctx->base.vbo,
- (GLint)pointer,
+ (GLintptr)pointer,
0)) {
YAGL_SET_ERR(GL_INVALID_ENUM);
}
@@ -1137,7 +1137,7 @@ YAGL_API void glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvo
GL_FALSE,
stride,
ctx->base.vbo,
- (GLint)pointer,
+ (GLintptr)pointer,
0)) {
YAGL_SET_ERR(GL_INVALID_ENUM);
}
@@ -1200,7 +1200,7 @@ YAGL_API void glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const G
GL_FALSE,
stride,
ctx->base.vbo,
- (GLint)pointer,
+ (GLintptr)pointer,
0)) {
YAGL_SET_ERR(GL_INVALID_ENUM);
}
@@ -1262,7 +1262,7 @@ YAGL_API void glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid* p
GL_FALSE,
stride,
ctx->base.vbo,
- (GLint)pointer,
+ (GLintptr)pointer,
0)) {
YAGL_SET_ERR(GL_INVALID_ENUM);
}
diff --git a/GLESv2/yagl_gles2_calls.c b/GLESv2/yagl_gles2_calls.c
index 6d4bb24..661603b 100644
--- a/GLESv2/yagl_gles2_calls.c
+++ b/GLESv2/yagl_gles2_calls.c
@@ -2303,7 +2303,7 @@ YAGL_API void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLbool
normalized,
stride,
ctx->base.vbo,
- (GLint)ptr,
+ (GLintptr)ptr,
0)) {
YAGL_SET_ERR(GL_INVALID_ENUM);
}
@@ -2503,7 +2503,7 @@ YAGL_API void glTexImage3D(GLenum target, GLint level, GLint internalformat, GLs
border,
pf->dst_format,
pf->dst_type,
- (GLsizei)pixels);
+ (uintptr_t)pixels);
} else {
yagl_host_glTexImage3DData(target,
level,
@@ -2601,7 +2601,7 @@ YAGL_API void glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint y
depth,
pf->dst_format,
pf->dst_type,
- (GLsizei)pixels);
+ (uintptr_t)pixels);
} else {
yagl_host_glTexSubImage3DData(target,
level,
diff --git a/GLESv2/yagl_gles3_calls.c b/GLESv2/yagl_gles3_calls.c
index 86a8521..b0d9e1f 100644
--- a/GLESv2/yagl_gles3_calls.c
+++ b/GLESv2/yagl_gles3_calls.c
@@ -1481,7 +1481,7 @@ YAGL_API GLsync glFenceSync(GLenum condition, GLbitfield flags)
}
yagl_sharegroup_add(ctx->base.sg, YAGL_NS_SYNC, &sync->base);
- res = (GLsync)sync->base.local_name;
+ res = (GLsync)INT2VOIDP(sync->base.local_name);
yagl_transport_flush(yagl_get_transport(), sync->egl_fence);
@@ -1503,7 +1503,7 @@ YAGL_API GLboolean glIsSync(GLsync sync)
YAGL_GET_CTX_RET(GL_FALSE);
sync_obj = (struct yagl_gles3_sync*)yagl_sharegroup_acquire_object(ctx->base.sg,
- YAGL_NS_SYNC, (yagl_object_name)sync);
+ YAGL_NS_SYNC, (yagl_object_name)VOIDP2INT(sync));
res = (sync_obj != NULL);
@@ -1527,7 +1527,7 @@ YAGL_API void glDeleteSync(GLsync sync)
}
sync_obj = (struct yagl_gles3_sync*)yagl_sharegroup_acquire_object(ctx->base.sg,
- YAGL_NS_SYNC, (yagl_object_name)sync);
+ YAGL_NS_SYNC, (yagl_object_name)VOIDP2INT(sync));
if (!sync_obj) {
YAGL_SET_ERR(GL_INVALID_VALUE);
@@ -1536,7 +1536,7 @@ YAGL_API void glDeleteSync(GLsync sync)
yagl_sharegroup_remove(ctx->base.sg,
YAGL_NS_SYNC,
- (yagl_object_name)sync);
+ (yagl_object_name)VOIDP2INT(sync));
out:
yagl_gles3_sync_release(sync_obj);
@@ -1559,7 +1559,7 @@ YAGL_API GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout
}
sync_obj = (struct yagl_gles3_sync*)yagl_sharegroup_acquire_object(ctx->base.sg,
- YAGL_NS_SYNC, (yagl_object_name)sync);
+ YAGL_NS_SYNC, (yagl_object_name)VOIDP2INT(sync));
if (!sync_obj) {
YAGL_SET_ERR(GL_INVALID_VALUE);
@@ -1606,7 +1606,7 @@ YAGL_API void glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
}
sync_obj = (struct yagl_gles3_sync*)yagl_sharegroup_acquire_object(ctx->base.sg,
- YAGL_NS_SYNC, (yagl_object_name)sync);
+ YAGL_NS_SYNC, (yagl_object_name)VOIDP2INT(sync));
if (!sync_obj) {
YAGL_SET_ERR(GL_INVALID_VALUE);
@@ -1632,7 +1632,7 @@ YAGL_API void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *l
YAGL_GET_CTX();
sync_obj = (struct yagl_gles3_sync*)yagl_sharegroup_acquire_object(ctx->base.sg,
- YAGL_NS_SYNC, (yagl_object_name)sync);
+ YAGL_NS_SYNC, (yagl_object_name)VOIDP2INT(sync));
if (!sync_obj) {
YAGL_SET_ERR(GL_INVALID_VALUE);
@@ -1855,7 +1855,7 @@ YAGL_API void glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsi
GL_FALSE,
stride,
ctx->base.base.vbo,
- (GLint)pointer,
+ (GLintptr)pointer,
1)) {
YAGL_SET_ERR(GL_INVALID_ENUM);
}
@@ -2806,7 +2806,7 @@ YAGL_API void glDrawRangeElements(GLenum mode, GLuint start, GLuint end,
GL_ELEMENT_ARRAY_BUFFER,
0);
yagl_gles3_context_draw_range_elements(ctx, mode, start, end, count,
- type, NULL, (int32_t)indices);
+ type, NULL, (int32_t)VOIDP2INT(indices));
yagl_host_glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
} else {
yagl_gles3_context_draw_range_elements(ctx, mode, start, end, count,
diff --git a/include/yagl_transport.h b/include/yagl_transport.h
index 3b214fa..62d4d6d 100644
--- a/include/yagl_transport.h
+++ b/include/yagl_transport.h
@@ -38,6 +38,7 @@
#include "yagl_types.h"
#include <string.h>
#include <assert.h>
+#include <limits.h>
#define YAGL_TRANSPORT_MAX_IN_ARGS 8
#define YAGL_TRANSPORT_MAX_IN_ARRAYS 8
@@ -180,13 +181,32 @@ static __inline void yagl_transport_put_out_float(struct yagl_transport *t,
t->ptr += 8;
}
+static __inline void yagl_transport_put_out_uint64_t(struct yagl_transport *t,
+ uint64_t ptr)
+{
+ *(uint64_t*)t->ptr = ptr;
+ t->ptr += 8;
+}
+
+static __inline void yagl_transport_put_out_uintptr_t(struct yagl_transport *t,
+ uintptr_t ptr)
+{
+ uint64_t value = 0;
+ if (sizeof(uintptr_t) == 4) {
+ value = ptr & UINT_MAX;
+ } else {
+ value = ptr;
+ }
+ yagl_transport_put_out_uint64_t(t, value);
+}
+
static __inline void yagl_transport_put_in_arg_helper(struct yagl_transport *t,
void *value,
uint32_t size)
{
- yagl_transport_put_out_uint32_t(t, (uint32_t)value);
+ yagl_transport_put_out_uintptr_t(t, (uintptr_t)value);
- t->in_args[t->num_in_args].arg_ptr = value;
+ t->in_args[t->num_in_args].arg_ptr = (uint8_t*)value;
t->in_args[t->num_in_args].buff_ptr = t->ptr;
t->in_args[t->num_in_args].size = size;
@@ -236,7 +256,7 @@ static __inline void yagl_transport_put_out_array(struct yagl_transport *t,
int32_t count,
int32_t el_size)
{
- yagl_transport_put_out_uint32_t(t, (uint32_t)data);
+ yagl_transport_put_out_uintptr_t(t, (uintptr_t)data);
yagl_transport_put_out_uint32_t(t, count);
if (!data || (count <= 0)) {
@@ -262,11 +282,11 @@ static __inline void yagl_transport_put_in_array(struct yagl_transport *t,
{
int32_t *count;
- yagl_transport_put_out_uint32_t(t, (uint32_t)data);
+ yagl_transport_put_out_uintptr_t(t, (uintptr_t)data);
count = (int32_t*)t->ptr;
yagl_transport_put_out_uint32_t(t, maxcount);
- t->in_arrays[t->num_in_arrays].arg_ptr = data;
+ t->in_arrays[t->num_in_arrays].arg_ptr = (uint8_t*)data;
t->in_arrays[t->num_in_arrays].buff_ptr = t->ptr;
t->in_arrays[t->num_in_arrays].el_size = el_size;
t->in_arrays[t->num_in_arrays].count = count;
@@ -346,7 +366,7 @@ static __inline void yagl_transport_put_out_yagl_winsys_id(struct yagl_transport
static __inline void yagl_transport_put_out_va(struct yagl_transport *t,
const void *value)
{
- yagl_transport_put_out_uint32_t(t, (uint32_t)value);
+ yagl_transport_put_out_uintptr_t(t, (uintptr_t)value);
}
static __inline void yagl_transport_put_in_yagl_host_handle(struct yagl_transport *t,
diff --git a/include/yagl_types.h b/include/yagl_types.h
index fda3c3a..58cc4e6 100644
--- a/include/yagl_types.h
+++ b/include/yagl_types.h
@@ -36,6 +36,7 @@
#include <stdint.h>
#include <stddef.h>
+#include <inttypes.h>
#if defined(__i386) || defined(_M_IX86)
#define YAGL_LITTLE_ENDIAN
@@ -98,4 +99,12 @@ typedef uint32_t yagl_object_name;
#define yagl_containerof(ptr, type, member) ((type*)((char*)(ptr) - yagl_offsetof(type, member)))
+#ifndef INT2VOIDP
+#define INT2VOIDP(i) ((void*)((uintptr_t)(i)))
+#endif
+#ifndef VOIDP2INT
+#define VOIDP2INT(p) ((uintptr_t)(p))
+#endif
+
+
#endif
diff --git a/packaging/emulator-yagl.spec b/packaging/emulator-yagl.spec
index a33a820..a00973d 100644
--- a/packaging/emulator-yagl.spec
+++ b/packaging/emulator-yagl.spec
@@ -3,17 +3,18 @@
Name: emulator-yagl
Summary: YaGL - OpenGLES acceleration module for emulator
-Version: 1.4
-Release: 4
-License: MIT and LPGL-3.0
+Version: 1.5
+Release: 1
+License: MIT and LGPL-3.0
+Group: SDK/Libraries
#URL: http://www.khronos.org
Source0: %{name}-%{version}.tar.gz
Source1001: emulator-yagl.manifest
BuildRequires: cmake
-BuildRequires: pkgconfig(libdrm)
-BuildRequires: pkgconfig(libtbm)
BuildRequires: flex
BuildRequires: bison
+BuildRequires: pkgconfig(libdrm)
+BuildRequires: pkgconfig(libtbm)
%if %{with wayland}
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(libudev)
@@ -28,7 +29,6 @@ BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(dri2proto)
%endif
-Requires: libtbm
Provides: opengl-es-drv
%if %{with emulator}
@@ -45,10 +45,11 @@ This package contains shared libraries libEGL, libGLES_CM, libGLESv2.
Summary: YaGL - OpenGLES acceleration module for emulator (devel)
Provides: opengl-es-drv-devel
Requires: %{name} = %{version}-%{release}
-Requires: pkgconfig(x11)
+Requires: pkgconfig(x11)
%description devel
YaGL - OpenGLES acceleration module for emulator (devel)
+This package contains header files for EGL, GLESv1_CM, GLESv2, GLESv3, KHR.
%prep
%setup -q