[PATCH] Backend notifiers.
Maciek Gajewski
maciej.gajewski0 at gmail.com
Thu Jul 10 14:32:47 CDT 2008
Hello
Assigned patch adds backend notifiers to graphics code. The patch is
cumulative, contains previously presented locking facilities.
I ask You for review, and - eventually - inclusion into main source tree.
How does it work:
Graphics backend implements three methods:
virtual void property_changed (const graphics_handle&, const std::string&);
virtual void object_created (const graphics_handle&);
virtual void object_destroyed (const graphics_handle&);
(stubs added to gnuplot and fltk backend)
- property_changed is called from base_property::set
- object_destroyed is called from gh_manager::do_free
- object_created is called from gh_manager::do_make_graphics_handle
and gh_manager::do_make_figure_handle.
I've been using this code for last few days with my Qt backend, and it works
good, events are going back and forth between threads, UI is responsive and
changes are visible immediately. You can event do animations!
For instance, this code:
x = [-pi:0.2:pi];
l = plot( x, sin(x))
for s = [0:0.1:100]; set(l,'ydata',sin(x+s)); usleep(10000);endfor
creates figure window with sine wave moving slowly like signal on oscilloscope
screen. Figure remains responsive, can be moved and resized, while the wave
still moves.
Maciek Gajewski
-------------- next part --------------
A non-text attachment was scrubbed...
Name: thread-safe-graphics-notifiers.patch
Type: text/x-diff
Size: 10330 bytes
Desc: not available
Url : https://www.cae.wisc.edu/pipermail/octave-maintainers/attachments/20080710/1cce5d79/attachment-0001.bin
More information about the Octave-maintainers
mailing list