On 05/22/2012 06:25 PM, Kristian Høgsberg wrote:
On Tue, May 22, 2012 at 03:39:39PM +0300, Ander Conselvan de Oliveira wrote:
Hi,

In order to get rid of the X11 dependency that libXcursor brings,
Kristian suggested that a libwayland-cursor be created. This library
handles the X cursor theme format, loading the image content straight
into an shm pool so that the users need just one function call for
getting a buffer for a cursor image.

The code for handling the cursor theme is just a stripped down version
of libXcursor, that is contained on the files cursor/xcursor.[ch].

The library API is quite similar to the cursor code in libtoytoolkit.

Looks great Ander.  It's a good start, and I want to start using it so
I've committed it all now.  There are a couple of things that we need
to tweak thoguh: I'm not sure we can do enum wl_cursor_type, I think
we should just stick to only loading by name.

My thinking when I added enum wl_cursor_type was to make lookup faster, but I guess we can just cache the struct wl_cursor for each type on toytoolkit.

Also, in the shm resize code we should use mremap.

I sent a patch for that. I looked for a way to do a remap but for some reason I didn't see mremap existed.

I'd also like to see the wl_cursor_theme
object cache a bit more of the theme and patch lookup libXcursor does
over and over again.

Could you be more specific on what to cache on wl_cursor_theme?

Finally, I was wondering if we should just scan
the cursor dir and load all cursors into a shm object instead of
preloading just that small subset.

I'm working on that. This actually makes it easier to avoid the unnecessary lookups. My idea is to make XcursorScanTheme open all the cursors and callback the wl_cursor_theme with all the XcursorImages objects. This adds an extra loop between the parts, but I don't want to fiddle too much with the Xcursor code.


Ander
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to