From: Zorg 4. <zor...@gm...> - 2009-06-22 14:14:09
|
Hello plpplot developpers, I'm new to plplot, I need it mostly thru it's ocaml binding. There are some concern, however: - from my understanding, the only option to embed a/several plots in a window, is to use the gnomecanva, right? unfortunately, it's anti-aliasing quality is poor (I only got some form of text antialiasing in the C canva animation demo, after uncommenting a mistyped ANTIALISED_CANVA in gnome.c under driver/) - The cairo driver generate plots 15-20% smaller than the other drivers (at least under OSX). - The cairo driver does not rescale the plot when the user resize it's windows (but flicker like mad processing redraw event anyway). - I'm missing the randr X extension under OSX, could it have some bad influence? I would like to embed high quality screen output (like the wxWin, probably using quartz) in a gtk ocaml application, using simply the gtk drawing area to embed the cairo output, is it possible? I may help implementing it if necessary. Someone has a backup of the cairo-demo CVS repo? it's down, and cairo comes with almost no examples, poor doco :-( The best starter I have is a ocaml-cairo example, which is not easy to follow for implementing first a way to export the cairo output to a drawing area in C. Regards. |
From: Hezekiah M. C. <hez...@us...> - 2009-06-23 15:16:26
|
On Mon, Jun 22, 2009 at 9:46 AM, Zorg 421<zor...@gm...> wrote: > Hello plpplot developpers, > > I'm new to plplot, I need it mostly thru it's ocaml binding. > > There are some concern, however: > > - from my understanding, the only option to embed a/several plots in a > window, is to use the gnomecanva, right? > unfortunately, it's anti-aliasing quality is poor (I only got some > form of text antialiasing in the C canva animation > demo, after uncommenting a mistyped ANTIALISED_CANVA in gnome.c under driver/) The gnomecanvas support in PLplot is, if I recall correctly, deprecated in recent latest PLplot Subversion revisions. However, the extcairo device is useful for embedding in Gtk+ applications and produces very nice looking plots. > - The cairo driver generate plots 15-20% smaller than the other > drivers (at least under OSX). Do you mean the window size is 15-20% smaller? The default Cairo window/surface size is 720x540 units. This can be changed with the command line option "-geometry 1440x1080" to get, for example, a 1440x1080 plot size. This option can also be set using plsetopt if you don't use plparseopts in your program: let x_size = 1440 let y_size = 1080 plsetopt "geometry" (string_of_int x ^ "x" ^ string_of_int y); > - The cairo driver does not rescale the plot when the user resize it's > windows (but flicker like mad processing redraw event anyway). > > - I'm missing the randr X extension under OSX, could it have some bad influence? The xcairo driver does not include any threading or offscreen plotting for quicker re-rendering of the plot window yet. I have the start of a patch which adds offscreen rendering of plots for the xcairo driver. This can potentially minimize the flickering you mention. That said, it does not display plotting progress until either plend or plflush is called, nor does it resize plots automatically when the window is resized. At least the plot progress portion issue should be fixed before this is pushed out to PLplot. > I would like to embed high quality screen output (like the wxWin, > probably using quartz) in a gtk ocaml application, using simply the > gtk drawing area to embed the cairo output, is it possible? I may help > implementing it if necessary. This is approximately the method used with the extcairo driver. For OCaml, it would require lablgtk2 and the Cairo OCaml bindings in addition to PLplot. I have the code to do this but I have not folded it in to the official PLplot repository yet. I will look in to doing so, and in the mean time I can provide the relevant code as a separate OCaml library if that would be of use. Hope this helps, Hez -- Hezekiah M. Carty Graduate Research Assistant University of Maryland Department of Atmospheric and Oceanic Science |