From: sidharth k. <si...@ho...> - 2003-08-28 19:09:15
|
>sidharth kodikal wrote: > > > > Hi, > > > > I have just downloaded plplot and am trying it out on Solaris. I really >like > > it! > > I would like to plug-in my implementation of an output driver so that I >can > > provide a context suitable for my application, for plplot to draw in. > > Reading chapter 3 of the doc book, that seems possible. > > I have two questions related to that: > > 1) From what I understand, a page can be divided into sub-pages, >viewports & > > windows. Is there a way for plPlot to draw in multiple pages at the same > > time? > > Also, would it be possible to plot is multiple/different output >devices at > > the same time? > >You would draw in one subpage and then select another subpage. As long >as >you do not close the whole page, you can continue doing that. > > > 2) is there a way for my application to be able to dynamically provide > > plplot the output device? (somehow like providing function pointers to >the > > driver functions?) > > > >Yes, by passing the function plsdev() a string naming the device and >then >call plinit() etc. > >Regards, > >Arjen Thanks for the reply Arjen. I found something close to what I wanted by doing something like: plsstrm(0); plsdev("xwin"); plinit() // plot plsstrm(1); plsdev("xwin"); plinit() //plot However, I see a couple of problems: 1) If I cover then uncover one of these windows, it is not repainted. I added while(1) { plsstrm(0); plreplot(); plsstrm(1); plreplot(); } This forces repainting to happen. However, I'm not sure if that is the correct solution. And also, it causes flicker in some plots (especially those with grid lines) I read in the mailing list archives that configuring with -with-pthreads=yes option will cause automatic repaint and resize. That did not work either. Any suggestions on this? 2) Of these two output windows generated by my code, if I close one of them, the other one is closed too (with a "broken pipe" message). Is there any way to fix this. Thanks in advance. Regards, sidharth _________________________________________________________________ Get MSN 8 and help protect your children with advanced parental controls. http://join.msn.com/?page=features/parental |
From: Arjen M. <arj...@wl...> - 2003-08-29 06:32:21
|
sidharth kodikal wrote: > > > Thanks for the reply Arjen. > I found something close to what I wanted by doing something like: > > plsstrm(0); plsdev("xwin"); > plinit() > // plot > plsstrm(1); plsdev("xwin"); > plinit() > //plot > > However, I see a couple of problems: > 1) If I cover then uncover one of these windows, it is not repainted. > I added > > while(1) { > plsstrm(0); plreplot(); > plsstrm(1); plreplot(); > } In the program where I use PLplot, that is taken care of by painting into a pixmap and upon a redraw/exposure event, it will copy the pixmap instead of redrawing the entire picture. > > This forces repainting to happen. However, I'm not sure if that is the > correct solution. And also, it causes flicker in some plots (especially > those with grid lines) You should probably look into the facility to use a pixmap as a backup. I have not looked at that myself - as the "infrastructure" was already in my program. > I read in the mailing list archives that configuring with -with-pthreads=yes > option will cause automatic repaint and resize. That did not work either. > Any suggestions on this? > I have none :). I avoid threads whenever possible. > 2) Of these two output windows generated by my code, if I close one of them, > the other one is closed too (with a "broken pipe" message). Is there any way > to fix this. > Hm, my program manages the connection to the X display outside of PLplot. So I can open any number of windows and close them separately. Perhaps if you look into the code for the closing routines, you will find what is going on. I suspect that the X connection is closed and that should not happen until, well, essentially, until your program stops. Regards, Arjen |