# HG changeset patch # User Thinker K.F. Li # Date 1292295896 -28800 # Node ID baf4c4d48cff05921057f345deddf28250eb0b4e # Parent 20e15872f3df10490d2a253ec11adb8558042e56 Fix issue of passing EGLSurface with mbe_surface_t for OpenVG diff -r 20e15872f3df -r baf4c4d48cff src/graph_engine_openvg.c --- a/src/graph_engine_openvg.c Mon Dec 13 20:19:34 2010 +0800 +++ b/src/graph_engine_openvg.c Tue Dec 14 11:04:56 2010 +0800 @@ -31,7 +31,7 @@ (mtx)[8] = 1; \ } while(0) -#define VG_MBE_SURFACE(mbe) ((mbe)->tgt->surface) +#define VG_MBE_EGLSURFACE(mbe) ((EGLSurface *)(mbe)->tgt->surface) /*! \brief Information associated with VGImage. * @@ -563,7 +563,7 @@ return NULL; egl_surface = eglCreateWindowSurface(egl_disp, config, - (Drawable)drawable, + (EGLNativeWindowType)drawable, attrib_list); surface = O_ALLOC(mbe_surface_t); @@ -672,18 +672,18 @@ vgDrawImage(vg_img); display = _VG_DISPLAY(); - eglSwapBuffers(display, VG_MBE_SURFACE(dst_canvas)); + eglSwapBuffers(display, VG_MBE_EGLSURFACE(dst_canvas)); } void mbe_flush(mbe_t *canvas) { EGLDisplay display; - mbe_surface_t *surface; + EGLSurface *egl_surface; _MK_CURRENT_CTX(canvas); display = _VG_DISPLAY(); - surface = VG_MBE_SURFACE(canvas); - eglSwapBuffers(display, surface); + egl_surface = VG_MBE_EGLSURFACE(canvas); + eglSwapBuffers(display, egl_surface); } mbe_t * @@ -755,6 +755,7 @@ mbe_paint_with_alpha(mbe_t *canvas, co_comp_t alpha) { VGfloat color_trans[8] = {1, 1, 1, alpha, 0, 0, 0, 0}; EGLDisplay display; + EGLSurface *egl_surface; EGLint w, h; EGLBoolean r; @@ -762,9 +763,10 @@ display = _VG_DISPLAY(); - r = eglQuerySurface(display, canvas->tgt, EGL_WIDTH, &w); + egl_surface = VG_MBE_EGLSURFACE(canvas); + r = eglQuerySurface(display, egl_surface, EGL_WIDTH, &w); ASSERT(r == EGL_TRUE); - r = eglQuerySurface(display, canvas->tgt, EGL_HEIGHT, &h); + r = eglQuerySurface(display, egl_surface, EGL_HEIGHT, &h); ASSERT(r == EGL_TRUE); /* Setup color transform for alpha */ @@ -783,6 +785,7 @@ void mbe_paint(mbe_t *canvas) { EGLDisplay display; + EGLSurface *egl_surface; EGLint w, h; EGLBoolean r; VGPath path; @@ -795,9 +798,10 @@ display = _VG_DISPLAY(); - r = eglQuerySurface(display, canvas->tgt, EGL_WIDTH, &w); + egl_surface = VG_MBE_EGLSURFACE(canvas); + r = eglQuerySurface(display, egl_surface, EGL_WIDTH, &w); ASSERT(r == EGL_TRUE); - r = eglQuerySurface(display, canvas->tgt, EGL_HEIGHT, &h); + r = eglQuerySurface(display, egl_surface, EGL_HEIGHT, &h); ASSERT(r == EGL_TRUE); /* @@ -825,7 +829,7 @@ void mbe_clear(mbe_t *canvas) { EGLDisplay display; - EGLSurface *tgt_surface; + EGLSurface *egl_surface; EGLint w, h; EGLBoolean r; @@ -833,10 +837,10 @@ display = _VG_DISPLAY(); - tgt_surface = (EGLSurface *)canvas->tgt->surface; - r = eglQuerySurface(display, tgt_surface, EGL_WIDTH, &w); + egl_surface = VG_MBE_EGLSURFACE(canvas); + r = eglQuerySurface(display, egl_surface, EGL_WIDTH, &w); ASSERT(r == EGL_TRUE); - r = eglQuerySurface(display, tgt_surface, EGL_HEIGHT, &h); + r = eglQuerySurface(display, egl_surface, EGL_HEIGHT, &h); ASSERT(r == EGL_TRUE); /* Clear regions to the color specified by mbe_create() */