How to develop an application based on opengles
Boyan Ding
stu_dby at 126.com
Mon Jun 23 00:07:40 PDT 2014
Hi,
I think you can refer to this example code [1] in weston for ideas
about how to initialize EGL in wayland, which I think is quite easy to
understand.
Regards,
Boyan Ding
[1]
http://cgit.freedesktop.org/wayland/weston/tree/clients/simple-egl.c#n318
On Mon, 2014-06-23 at 11:13 +0800, Jacky (ZhiJun) Ni wrote:
> Hi all,
>
> I’m now porting my opengles application to wayland platform,
> what do I need to prepare while I’m calling “eglGetDisplay” and
> “eglCreateWindowSurface”?
>
> I’ve tryied the following codes in my program,
>
> Step1: wl_display_connect(NULL) à return a global g_nativeDisplay
> object, I see someone do it, so that I do it.
>
> Step2: wl_display_get_registry, wl_registry_add_listener,
> wl_display_dispatch -> some APIs I’m not familiar, I see someone do
> it, so that I do it.
>
> Step3: wl_egl_window_create(NULL,1280,720) à return a nativeWindow
> object which will be passed for EGL to Create Window Surface, I
> believe that the “NULL”(wl_surface*) parameter lead to the crash. But
> I have no idea how to get a wl_surface object.
>
> Step4: eglGetDisplay, eglInitialize, eglChooseConfig,
> eglCreateContext, eglCreateWindowSurface, eglMakeCurrent,
> eglQuerySurface, these APIs all work fine, return no error.
>
> Step4: eglSwapBuffers, lead to the crash, trace the bt, I find that it
> is because wl_surface is NULL,
>
> (gdb) bt
>
> #0 0xb7e35a85 in wl_proxy_create () from /lib/libwayland-client.so.0
>
> #1 0xb7e1ac10 in wl_surface_frame (wl_surface=0x0)
>
> at /home/jacky/Apps/Wayland/include/wayland-client-protocol.h:1355
>
> #2 0xb7e1bfbb in dri2_wl_swap_buffers_with_damage (drv=0x8730f88,
>
> disp=0x8730300, draw=0x87cc380, rects=0x0, n_rects=0)
>
> at platform_wayland.c:617
>
> #3 0xb7e1c309 in dri2_wl_swap_buffers (drv=0x8730f88,
> disp=0x8730300,
>
> draw=0x87cc380) at platform_wayland.c:702
>
> #4 0xb7e19739 in dri2_swap_buffers (drv=0x8730f88, dpy=0x8730300,
>
> surf=0x87cc380) at egl_dri2.c:1074
>
> #5 0xb7e0cd03 in eglSwapBuffers (dpy=0x8730300, surface=0x87cc380)
>
> at eglapi.c:811
>
>
>
> I searched the internet but get less useful information, even now , I
> plan to make some fake data to initialize the wl_surface, but I have
> not got the definition for the struct “wl_surface”, just a
> url(http://wayland.freedesktop.org/docs/html/protocol-spec-interface-wl_surface.html ) describe how to use its function, no initialize function…
>
>
>
> It is so different from X11 who only need to prepare a window passed
> to EGL, So far, I’ve learned I need prepare a ”wl_egl_window” and a
> “wl_surface” for EGL on wayland, wl_egl_window need three parameters
> “wl_surface”, “width” and “height” to create, but “wl_surface” seems
> need compositor(API:”wl_compositor_create_surface” )to create, so
> compositor need what to create? May I need to create a compositor
> firstly?
>
>
>
>
>
>
>
>
>
> Best Regards,
>
> Jacky Ni
>
>
>
>
> CONFIDENTIALITY NOTICE: The information contained in this message may
> be privileged and/or confidential. If you are not the intended
> recipient, or responsible for delivering this message to the intended
> recipient, any review, forwarding, dissemination, distribution or
> copying of this communication or any attachment(s) is strictly
> prohibited. If you have received this message in error, please notify
> the sender immediately, and delete it and all attachments from your
> computer and network.
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
More information about the wayland-devel
mailing list