[compiz] On the way to theming g-w-d

Thomas Liebetraut thomas at tommie-lie.de
Tue Apr 18 03:41:31 PDT 2006


I CC'd the mailing list so that everybody knows.

David Reveman schrieb:
> On Mon, 2006-04-17 at 11:33 +0200, Thomas Liebetraut wrote:
>> Okay, but this would require to dynamically change the length of the
>> array of quads in the property and notify libdecoration about it. But
>> you're right, this one would be possible.
> That's the idea. However, I can't think of a sane situation where the
> property needs to be updated more often than what g-d-w is currently
> doing.
Yes, libdecoration only has to be notified about the number of quads
once. The animation update would be done via XDamage, anyway.

>> How is the shape of the decoration determined, then? I don't know and I
>> assumed (my apologies) a "fixed" rectangular shape (For me, the rounded
>> corners are just a visual effect. I can resize the window when clicking
>> outside if the rounded corner (but inside the rectangle defined by the
>> window's extents)).
> Shape extension can be used by the decorator to set a non-rectangular
> shape on the frame window. However, a rectangular input shape should
> work fine for most decorations.
I thought of those "technical" themes that want to create the impression
of metal plates, rivets and things to be on the decoration. And AFAIR
there are themes (have I seen them on KDE?) with a varying titlebar height.

> Here's three ways to achieve repeating patterns:
> 
> 1. Set up a big number of decoration quads in the decorator which will
> achieve the desired results.
> 
> 2. Add a repeat attribute to the decoration property and the decoration
> plugin will implicitly create all necessary quads.
> 
> 3. Create a pixmap big enough to fit all decorations. To not waste any
> memory, vertical borders should be stored horizontally and the matrix
> bits in the decoration property should be used to map them vertically.
> 
> 
> 1 and 3 can be done today without any changes to the decoration plugin.
> 3 is what I recommend using and what I think is most useful for theming.
> It should be possible to map any existing decoration theme system to
> approach 3.
Indeed, I didn't think of that (seems as if I didn't understand the
system well enough to have such ideas). I will think of an appropriate
communication interface. Maybe I will use a mix of 1 and 3, or rather
leave it up to the plugin to organize the texture as efficient as
possible (to enable the efficient use of other theming techniques, like
the themes of other WMs).


>>> The existing decorations system can do everything you've mentioned.
>>> The only thing I though about adding is a more efficient way to
>>> specify repeating patterns but I wont do anything about that until we
>>> have a decoration that proves it necessary.
>> There is brushed metal from Aqua, if someone wants to have something
>> like this. I don't know how I could do other effects without using huge
>> textures, either. There was the wish for floating water in the
>> decoration somewhere. I know how I can do it with the current
>> single-texture method, but this would not be very efficient. As you said
>> in this mail:
>> http://lists.freedesktop.org/archives/compiz/2006-April/000067.html , it
>> is very important to use minimal textures. If there is a decoration (for
>> instance floating water or anything else that has an animated border and
>> not just an animated title bar) that wants to define each pixel of the
>> decoration independently, I don't see another way than using a texture
>> that has the size of the window itself. And creating such a texture for
>> every window on the screen could be very memory-expensive.
>> If you could tell me how you would solve this problem, I'll do what I
>> can to implement it in code.
> 
> See 3. from above.
> 
> -David

I will get in contact with you again when I have designed the interface,
so that you can have a look at it and say if you like it.


Regards,
Thomas


-- 
This email is digitally signed and encoded in PGP/MIME format.
If you prefer encrypted correspondence or if you want to verify my
signature, please ask me for my public key PRIOR to any other response
to this email.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : http://lists.freedesktop.org/archives/compiz/attachments/20060418/f6b9f824/signature.pgp


More information about the compiz mailing list