[LAD] Xputty - damn tiny abstraction Layer to create X11 window/widgets with cairo surfaces

Hermann Meyer brummer- at web.de
Mon Sep 30 09:49:23 CEST 2019


Am 28.07.19 um 21:22 schrieb Hermann Meyer:
>
> Am 21.07.19 um 16:25 schrieb Hermann Meyer:
>>
>> Am 20.07.19 um 21:35 schrieb Will J Godfrey:
>>> On Sat, 20 Jul 2019 17:24:47 +0200
>>> Hermann Meyer <brummer- at web.de> wrote:
>>>
>>>> However, I've setup a online Documentation for libxputty here:
>>>>
>>>> https://brummer10.github.io/Xputty/html/xputty_8h.html
>>>>
>>>> regards
>>>>
>>>> hermann
>>> And *that* is the best news of the lot!
>>> So many projects have little or no documentation until they are a
>>> very long way
>>> into development.
>>>
>>
>> Yea, I've made the experience that I never ever do any documentation
>> "afterwards". So this time I would do it from the beginning on. At least
>> it helps as well myself, to not forgot what it is about.
>>
>> However, today I make a big step regarding transparent widgets. Those
>> who've done any development with X11 and cairo knows that it could be
>> tricky.
>>
>> Today I find out that the big difference is to NOT USE
>> cairo_image_surface_create. Avoid it. When working in a X11 context, the
>> way to go is cairo_surface_create_similar on the xlib surface as buffer.
>> This avoid unnecessary coping the image data from the graphic server to
>> CPU and back. The CPU footprint boils down to below 2% on full screen
>> action here. Even on resize action, when the surfaces needs to be
>> resized/destroyed and new created.
>>
>> Before this change CPU could reach 80% and more and the desktop starts
>> to stutter.
>>
>
> . . . and now the first widgets been implemented, like buttons, sliders,
> and a knob. Also a theming engine is in place. A example for how to use
> it is in the examples folder.
>

In the mean time I've done some more work on this, and added some more
widgets. menus, combo-box, tooltip, label and meter widgets been in
place now. Also I've added a LV2 plugin example which show how easy and
lightweight the creation of a LV2 UI could be.

Yea, and all is documented in the Docs.

https://github.com/brummer10/Xputty

regards

hermann


More information about the Linux-audio-dev mailing list