Re: Could I use cairo with opengles in android?

Jihe Wei <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <CAJPDu6y1osq0W7b2u=W9OocaD-k9PFZtrHncVMM9CC4Wvk2vLQ@mail.gmail.com>
Henry,
I try swap buffer before draw and also after, both not work.
notice:my display surface is created by
cairo_image_surface_create_for_data, and the data comes from androidbitmap

Thanks,
Wei


2012/5/18 Henry (Yu) Song - SISA <[email protected]>

> Hi, Jihe
>
> Since you have the gl surface as a window surface, you can swap buffer on
> the surface directly - cairo_gl_surface_swapbuffers (surface).
>
> Henry
> ________________________________________
> From: [email protected][cairo-bounces+henry.song=
> [email protected]] on behalf of Jihe Wei [[email protected]]
> Sent: Friday, May 18, 2012 2:54 AM
> To: [email protected]
> Subject: [cairo] Could I use cairo with opengles in android?
>
> 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
>

--
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.