[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