[cairo] Could I use cairo with opengles in android?
Jihe Wei
jihe.wei at gmail.com
Fri May 18 02:54:24 PDT 2012
Hi ,
I wonder where can find some samples show use cairo in android device.
rarely found ,so i try it myself, but seems can't render anything
details as below,
cairo_surface_t *surface = NULL;
const EGLint attribs[] = { EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_BLUE_SIZE,
8, EGL_GREEN_SIZE, 8, EGL_RED_SIZE, 8, EGL_RENDERABLE_TYPE,
EGL_OPENGL_ES2_BIT, EGL_NONE };
const EGLint ctx_attribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE
};
EGLint format;
EGLint numConfigs;
EGLConfig config;
EGLContext context;
EGLint err;
EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
err = eglGetError();
LOGE("eglGetDisplay err:%d", err);//return 12288
eglInitialize(display, 0, 0);
err = eglGetError();
LOGE("eglInitialize err:%d", err);//return 12288
eglChooseConfig(display, attribs, &config, 1, &numConfigs);
err = eglGetError();
LOGE("eglChooseConfig err:%d", err);
eglGetConfigAttrib(display, config, EGL_NATIVE_VISUAL_ID, &format);
context = eglCreateContext(display, config, EGL_NO_CONTEXT,
ctx_attribs);
err = eglGetError();
LOGE("eglCreateContext err:%d", err);//return 12288
cairo_device_t * device = cairo_egl_device_create(display, context);
cairo_status_t status = cairo_device_status(device);//return success
surface = cairo_gl_surface_create(device, CAIRO_CONTENT_ALPHA,
info->width,
info->height);//return CAIRO_SURFACE_TYPE_GL type
I use another surface to display the result from surface(gl)
cairo_set_operator(cr_display, CAIRO_OPERATOR_ADD);
cairo_set_source_surface(cr_display, surface, 0, 0);
cairo_paint(cr_display);
Who could help to figure out? thx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20120518/1875b3c4/attachment.html>
More information about the cairo
mailing list