[Evas] Updated eglMap/UnmapImageSEC extension definition
Recently Samsung specific eglMap/UnmapImageSEC has been updated to support new features. The extension definition was updated in evas accordingly.
This commit is contained in:
parent
00cffc0585
commit
34ce73badd
|
@ -558,10 +558,10 @@ _EVASGL_EXT_END()
|
||||||
_EVASGL_EXT_BEGIN(EGL_SEC_map_image)
|
_EVASGL_EXT_BEGIN(EGL_SEC_map_image)
|
||||||
_EVASGL_EXT_DRVNAME(EGL_SEC_map_image)
|
_EVASGL_EXT_DRVNAME(EGL_SEC_map_image)
|
||||||
|
|
||||||
_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void *, eglMapImageSEC, void *a, void *b))
|
_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void *, eglMapImageSEC, void *a, void *b, int c, int d))
|
||||||
_EVASGL_EXT_FUNCTION_DRVFUNC(GETPROCADDR("eglMapImageSEC"))
|
_EVASGL_EXT_FUNCTION_DRVFUNC(GETPROCADDR("eglMapImageSEC"))
|
||||||
_EVASGL_EXT_FUNCTION_PRIVATE_END()
|
_EVASGL_EXT_FUNCTION_PRIVATE_END()
|
||||||
_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(unsigned int, eglUnmapImageSEC, void *a, void *b))
|
_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(unsigned int, eglUnmapImageSEC, void *a, void *b, int c))
|
||||||
_EVASGL_EXT_FUNCTION_DRVFUNC(GETPROCADDR("eglUnmapImageSEC"))
|
_EVASGL_EXT_FUNCTION_DRVFUNC(GETPROCADDR("eglUnmapImageSEC"))
|
||||||
_EVASGL_EXT_FUNCTION_PRIVATE_END()
|
_EVASGL_EXT_FUNCTION_PRIVATE_END()
|
||||||
_EVASGL_EXT_END()
|
_EVASGL_EXT_END()
|
||||||
|
|
|
@ -113,6 +113,18 @@
|
||||||
#ifndef GL_WRITE_ONLY
|
#ifndef GL_WRITE_ONLY
|
||||||
#define GL_WRITE_ONLY 0x88B9
|
#define GL_WRITE_ONLY 0x88B9
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC
|
||||||
|
#define EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC 1
|
||||||
|
#endif
|
||||||
|
#ifndef EGL_MAP_GL_TEXTURE_DEVICE_G2D_SEC
|
||||||
|
#define EGL_MAP_GL_TEXTURE_DEVICE_G2D_SEC 2
|
||||||
|
#endif
|
||||||
|
#ifndef EGL_MAP_GL_TEXTURE_OPTION_READ_SEC
|
||||||
|
#define EGL_MAP_GL_TEXTURE_OPTION_READ_SEC (1<<0)
|
||||||
|
#endif
|
||||||
|
#ifndef EGL_MAP_GL_TEXTURE_OPTION_WRITE_SEC
|
||||||
|
#define EGL_MAP_GL_TEXTURE_OPTION_WRITE_SEC (1<<1)
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SHAD_VERTEX 0
|
#define SHAD_VERTEX 0
|
||||||
#define SHAD_COLOR 1
|
#define SHAD_COLOR 1
|
||||||
|
@ -671,8 +683,8 @@ extern GLboolean (*glsym_glUnmapBuffer) (GLenum a);
|
||||||
extern void *(*secsym_eglCreateImage) (void *a, void *b, GLenum c, void *d, const int *e);
|
extern void *(*secsym_eglCreateImage) (void *a, void *b, GLenum c, void *d, const int *e);
|
||||||
extern unsigned int (*secsym_eglDestroyImage) (void *a, void *b);
|
extern unsigned int (*secsym_eglDestroyImage) (void *a, void *b);
|
||||||
extern void (*secsym_glEGLImageTargetTexture2DOES) (int a, void *b);
|
extern void (*secsym_glEGLImageTargetTexture2DOES) (int a, void *b);
|
||||||
extern void *(*secsym_eglMapImageSEC) (void *a, void *b);
|
extern void *(*secsym_eglMapImageSEC) (void *a, void *b, int c, int d);
|
||||||
extern unsigned int (*secsym_eglUnmapImageSEC) (void *a, void *b);
|
extern unsigned int (*secsym_eglUnmapImageSEC) (void *a, void *b, int c);
|
||||||
extern unsigned int (*secsym_eglGetImageAttribSEC) (void *a, void *b, int c, int *d);
|
extern unsigned int (*secsym_eglGetImageAttribSEC) (void *a, void *b, int c, int *d);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,8 @@ static const char *(*glsym_eglQueryString) (void *a, int name) = NUL
|
||||||
void *(*secsym_eglCreateImage) (void *a, void *b, GLenum c, void *d, const int *e) = NULL;
|
void *(*secsym_eglCreateImage) (void *a, void *b, GLenum c, void *d, const int *e) = NULL;
|
||||||
unsigned int (*secsym_eglDestroyImage) (void *a, void *b) = NULL;
|
unsigned int (*secsym_eglDestroyImage) (void *a, void *b) = NULL;
|
||||||
void (*secsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
|
void (*secsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
|
||||||
void *(*secsym_eglMapImageSEC) (void *a, void *b) = NULL;
|
void *(*secsym_eglMapImageSEC) (void *a, void *b, int c, int d) = NULL;
|
||||||
unsigned int (*secsym_eglUnmapImageSEC) (void *a, void *b) = NULL;
|
unsigned int (*secsym_eglUnmapImageSEC) (void *a, void *b, int c) = NULL;
|
||||||
unsigned int (*secsym_eglGetImageAttribSEC) (void *a, void *b, int c, int *d) = NULL;
|
unsigned int (*secsym_eglGetImageAttribSEC) (void *a, void *b, int c, int *d) = NULL;
|
||||||
#else
|
#else
|
||||||
typedef void (*_eng_fn) (void);
|
typedef void (*_eng_fn) (void);
|
||||||
|
|
|
@ -656,7 +656,7 @@ evas_gl_texture_pool_empty(Evas_GL_Texture_Pool *pt)
|
||||||
if (pt->dyn.img)
|
if (pt->dyn.img)
|
||||||
{
|
{
|
||||||
if (pt->dyn.checked_out > 0)
|
if (pt->dyn.checked_out > 0)
|
||||||
secsym_eglUnmapImageSEC(pt->gc->egldisp, pt->dyn.img);
|
secsym_eglUnmapImageSEC(pt->gc->egldisp, pt->dyn.img, EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC);
|
||||||
secsym_eglDestroyImage(pt->gc->egldisp, pt->dyn.img);
|
secsym_eglDestroyImage(pt->gc->egldisp, pt->dyn.img);
|
||||||
pt->dyn.img = NULL;
|
pt->dyn.img = NULL;
|
||||||
pt->dyn.data = NULL;
|
pt->dyn.data = NULL;
|
||||||
|
@ -1455,7 +1455,10 @@ evas_gl_common_texture_nv12tiled_update(Evas_GL_Texture *tex, DATA8 **rows, unsi
|
||||||
char *texture_addr;
|
char *texture_addr;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
|
|
||||||
texture_addr = secsym_eglMapImageSEC(tex->gc->egldisp, tex->pt->dyn.img);
|
texture_addr = secsym_eglMapImageSEC(tex->gc->egldisp,
|
||||||
|
tex->pt->dyn.img,
|
||||||
|
EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC,
|
||||||
|
EGL_MAP_GL_TEXTURE_OPTION_WRITE_SEC);
|
||||||
|
|
||||||
/* Iterate each Y macroblock like we do in evas_convert_yuv.c */
|
/* Iterate each Y macroblock like we do in evas_convert_yuv.c */
|
||||||
for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++)
|
for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++)
|
||||||
|
@ -1510,9 +1513,12 @@ evas_gl_common_texture_nv12tiled_update(Evas_GL_Texture *tex, DATA8 **rows, unsi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
secsym_eglUnmapImageSEC(tex->gc->egldisp, tex->pt->dyn.img);
|
secsym_eglUnmapImageSEC(tex->gc->egldisp, tex->pt->dyn.img, EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC);
|
||||||
|
|
||||||
texture_addr = secsym_eglMapImageSEC(tex->gc->egldisp, tex->ptuv->dyn.img);
|
texture_addr = secsym_eglMapImageSEC(tex->gc->egldisp,
|
||||||
|
tex->ptuv->dyn.img,
|
||||||
|
EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC,
|
||||||
|
EGL_MAP_GL_TEXTURE_OPTION_WRITE_SEC);
|
||||||
|
|
||||||
/* Iterate each UV macroblock like we do in evas_convert_yuv.c */
|
/* Iterate each UV macroblock like we do in evas_convert_yuv.c */
|
||||||
base_h = (mb_h >> 1) + (mb_h & 0x1);
|
base_h = (mb_h >> 1) + (mb_h & 0x1);
|
||||||
|
@ -1577,7 +1583,7 @@ evas_gl_common_texture_nv12tiled_update(Evas_GL_Texture *tex, DATA8 **rows, unsi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
secsym_eglUnmapImageSEC(tex->gc->egldisp, tex->ptuv->dyn.img);
|
secsym_eglUnmapImageSEC(tex->gc->egldisp, tex->ptuv->dyn.img, EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC);
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -81,8 +81,8 @@ _eng_fn (*glsym_eglGetProcAddress) (const char *a) = NULL;
|
||||||
void *(*glsym_eglCreateImage) (EGLDisplay a, EGLContext b, EGLenum c, EGLClientBuffer d, const int *e) = NULL;
|
void *(*glsym_eglCreateImage) (EGLDisplay a, EGLContext b, EGLenum c, EGLClientBuffer d, const int *e) = NULL;
|
||||||
void (*glsym_eglDestroyImage) (EGLDisplay a, void *b) = NULL;
|
void (*glsym_eglDestroyImage) (EGLDisplay a, void *b) = NULL;
|
||||||
void (*glsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
|
void (*glsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
|
||||||
void *(*glsym_eglMapImageSEC) (void *a, void *b) = NULL;
|
void *(*glsym_eglMapImageSEC) (void *a, void *b, int c, int d) = NULL;
|
||||||
unsigned int (*glsym_eglUnmapImageSEC) (void *a, void *b) = NULL;
|
unsigned int (*glsym_eglUnmapImageSEC) (void *a, void *b, int c) = NULL;
|
||||||
const char *(*glsym_eglQueryString) (EGLDisplay a, int name) = NULL;
|
const char *(*glsym_eglQueryString) (EGLDisplay a, int name) = NULL;
|
||||||
void (*glsym_eglSwapBuffersRegion) (EGLDisplay a, void *b, EGLint c, const EGLint *d) = NULL;
|
void (*glsym_eglSwapBuffersRegion) (EGLDisplay a, void *b, EGLint c, const EGLint *d) = NULL;
|
||||||
|
|
||||||
|
@ -2524,7 +2524,10 @@ eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data, i
|
||||||
if (err) *err = EVAS_LOAD_ERROR_NONE;
|
if (err) *err = EVAS_LOAD_ERROR_NONE;
|
||||||
return im;
|
return im;
|
||||||
}
|
}
|
||||||
*image_data = im->tex->pt->dyn.data = glsym_eglMapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
|
*image_data = im->tex->pt->dyn.data = glsym_eglMapImageSEC(re->win->egl_disp,
|
||||||
|
im->tex->pt->dyn.img,
|
||||||
|
EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC,
|
||||||
|
EGL_MAP_GL_TEXTURE_OPTION_WRITE_SEC);
|
||||||
|
|
||||||
if (!im->tex->pt->dyn.data)
|
if (!im->tex->pt->dyn.data)
|
||||||
{
|
{
|
||||||
|
@ -2624,7 +2627,7 @@ eng_image_data_put(void *data, void *image, DATA32 *image_data)
|
||||||
im->tex->pt->dyn.checked_out--;
|
im->tex->pt->dyn.checked_out--;
|
||||||
#ifdef GL_GLES
|
#ifdef GL_GLES
|
||||||
if (im->tex->pt->dyn.checked_out == 0)
|
if (im->tex->pt->dyn.checked_out == 0)
|
||||||
glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
|
glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img, EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -147,8 +147,8 @@ void *(*glsym_eglCreateImage) (EGLDisplay a, EGLContext b, EGLe
|
||||||
void (*glsym_eglDestroyImage) (EGLDisplay a, void *b) = NULL;
|
void (*glsym_eglDestroyImage) (EGLDisplay a, void *b) = NULL;
|
||||||
void (*glsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
|
void (*glsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
|
||||||
void (*glsym_glEGLImageTargetRenderbufferStorageOES) (int a, void *b) = NULL;
|
void (*glsym_glEGLImageTargetRenderbufferStorageOES) (int a, void *b) = NULL;
|
||||||
void *(*glsym_eglMapImageSEC) (void *a, void *b) = NULL;
|
void *(*glsym_eglMapImageSEC) (void *a, void *b, int c, int d) = NULL;
|
||||||
unsigned int (*glsym_eglUnmapImageSEC) (void *a, void *b) = NULL;
|
unsigned int (*glsym_eglUnmapImageSEC) (void *a, void *b, int c) = NULL;
|
||||||
const char *(*glsym_eglQueryString) (EGLDisplay a, int name) = NULL;
|
const char *(*glsym_eglQueryString) (EGLDisplay a, int name) = NULL;
|
||||||
|
|
||||||
unsigned int (*glsym_eglLockSurface) (EGLDisplay a, EGLSurface b, const int *attrib_list) = NULL;
|
unsigned int (*glsym_eglLockSurface) (EGLDisplay a, EGLSurface b, const int *attrib_list) = NULL;
|
||||||
|
@ -1718,7 +1718,10 @@ eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data, i
|
||||||
if (err) *err = EVAS_LOAD_ERROR_NONE;
|
if (err) *err = EVAS_LOAD_ERROR_NONE;
|
||||||
return im;
|
return im;
|
||||||
}
|
}
|
||||||
*image_data = im->tex->pt->dyn.data = glsym_eglMapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
|
*image_data = im->tex->pt->dyn.data = glsym_eglMapImageSEC(re->win->egl_disp,
|
||||||
|
im->tex->pt->dyn.img,
|
||||||
|
EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC,
|
||||||
|
EGL_MAP_GL_TEXTURE_OPTION_WRITE_SEC);
|
||||||
|
|
||||||
if (!im->tex->pt->dyn.data)
|
if (!im->tex->pt->dyn.data)
|
||||||
{
|
{
|
||||||
|
@ -1807,7 +1810,7 @@ eng_image_data_put(void *data, void *image, DATA32 *image_data)
|
||||||
{
|
{
|
||||||
im->tex->pt->dyn.checked_out--;
|
im->tex->pt->dyn.checked_out--;
|
||||||
if (im->tex->pt->dyn.checked_out == 0)
|
if (im->tex->pt->dyn.checked_out == 0)
|
||||||
glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
|
glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img, EGL_MAP_GL_TEXTURE_DEVICE_CPU_SEC);
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue