several canvas item questions

i am creating a new canvas item (for displaying audio data) and have a
few questions:

1) bounds

the item's width is determined the size of the audio data its
displaying. this data can be altered dynamically. when it is modified,
how would i tell those-who-need-to-know that the bounds are different,
or can i just assume that the bounds callback will be called whenever

2) requesting a redraw

when the audio data is reset, how do i request a redraw of the item?

similarly, when other arguments are reset, how do i force a redraw?

3) using aa-mode, but not using libart

right now, the canvas seems rather highly connected to libart. i am
planning to use non-libart code to render the item. what is the
purpose of the clip_path argument to the update callback, and what do
i do with it if i'm not using libart?

more importantly, how do i know which region of the item's
(potentially infinite) extent to actually render? is this where the
clip path comes in? if so, how can i determine the area without using

4) arguments to the render callback

do i just assume that the RGB buffer referenced by the CanvasBuf
argument is big enough?

5) clipping in the draw callback

in the code for several of the existing items i've looked at, nothing
is done about clipping in the GDK-based draw callback. is this an
error, or does the X server take care of this if the drawable is too
small for the attempted draw?

6) General

are there plans to reduce the use of libart types in the Canvas? 

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]