[Tickit-dev] Released: Tickit 0.40
Paul LeoNerd Evans
leonerd at leonerd.org.uk
Mon Sep 30 23:14:27 BST 2013
Newly added to 0.40:
* Use RenderBuffer in favour of direct Window rendering
Now that RenderBuffer is in the core distribution, all widgets should
be using it rather the previous render method to render directly on
the window. This is a stepping-stone change to allow for further
improvements.
* New sizing model
New methods are provided by the base Tickit::Widget class that cache
the requested size of the widget, and only inform the parent
container when this size actually changes. This allows for more
efficient reshaping and redrawing operations when widgets change
their size requirements, without needing to recalculate the whole
widget tree.
These two changes help support a couple of interesting planned
improvements:
* Widget minimal/maximal size handling
Because the base widget class now handles size information more
directly, it can implement bounds on minimal and maximal widget
size. These will be derived from Tickit::Style. It may also be
possible to consider padding and margin controls in the base widget
class and thus automatically apply to every widget.
* Whole-tree rendering via RenderBuffer
By adding area masks to RenderBuffer it should then support being
used as a single buffer object to render the entire window
hierarchy. Because the masking code will be implemented in C code,
it will much more efficient than the current pure-perl Window-based
solution involving visibility testing per character cell. This will
allow for much more better redrawing performance.
This will also allow RenderBuffer to move out of the Tickit.xs file
and into libtickit itself, where it can be useful to non-Perl code
(such as native C programs or other language bindings).
I'll soon be going around all the container classes on CPAN updating
them to use the new "requested size" methods, to prepare them for the
next update when the "lines" and "cols" methods get properly deprecated
and removed.
--
Paul "LeoNerd" Evans
leonerd at leonerd.org.uk
ICQ# 4135350 | Registered Linux# 179460
http://www.leonerd.org.uk/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 230 bytes
Desc: not available
URL: <http://mail.leonerd.org.uk/pipermail/tickit-dev/attachments/20130930/2500bd29/attachment.sig>
More information about the Tickit-dev
mailing list