[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: fltk printing
From: |
Ben Abbott |
Subject: |
Re: fltk printing |
Date: |
Sat, 07 Aug 2010 21:40:45 -0400 |
On Aug 7, 2010, at 8:16 PM, Ben Abbott wrote:
> On Aug 7, 2010, at 8:00 PM, Dmitri A. Sergatskov wrote:
>
>> On Sat, Aug 7, 2010 at 6:37 PM, Michael D Godfrey
>> <address@hidden> wrote:
>>
>>> It may be good to look at the drawnow code.
>>>
>>
>> Here is some interesting test:
>>
>> # drawnowt.m
>> backend("fltk");
>> plot(1:2);
>> drawnow("eps","junk111.eps");
>>
>> running
>> octave < drawnowt.m
>>
>> results in:
>>
>> warning: implicit conversion from matrix to sq_string
>> error: fltk_backend: could not recognize fltk index
>> error: called from:
>> error: /home/dima/src/octave/scripts/miscellaneous/delete.m at line
>> 48, column 1
>> error: /home/dima/src/octave/scripts/plot/closereq.m at line 37, column 7
>> error: /home/dima/src/octave/scripts/plot/close.m at line 63, column 5
>> error: /home/dima/src/octave/scripts/plot/close.m at line 77, column 1
>> error: /home/dima/src/octave/scripts/plot/close.m at line 57, column 5
>> error: /home/dima/src/octave/scripts/plot/__go_close_all__.m at line
>> 27, column 3
>>
>> If I add at the end of the test file "pause(0)" it finishes correctly.
>> That suggests me that drawnow spawns some asynchronous processes.
>>
>>> Michael
>>>
>>>
>>
>> Sincerely,
>>
>> Dmitri.
>> --
>
> Very strange ... The error doesn't give any indication of your test file,
> drawnowt.m.
>
> I can'f find any instance where __go_close_all__ is called in the sources.
>
> I tried you example on MacOS X, and as expected, no error.
>
> Ben
sigh : -( ... my bad. __go_close_all__ can be called by drawnow() in
graphics.cc (I had misplaced a trust in MacOS X's finder).
>From graphics .cc ...
5775 DEFUN (drawnow, args, ,
5776 "-*- texinfo -*-\n\
5777 @deftypefn {Built-in Function} {} drawnow ()\n\
5778 @deftypefnx {Built-in Function} {} drawnow (\"expose\")\n\
5779 @deftypefnx {Built-in Function} {} drawnow (@var{term}, @var{file},
@var{mono}, @var{debug_file})\n\
5780 Update figure windows and their children. The event queue is flushed
and\n\
5781 any callbacks generated are executed. With the optional argument\n\
5782 @code{\"expose\"}, only graphic objects are updated and no other events
or\n\
5783 callbacks are processed.\n\
5784 The third calling form of @code{drawnow} is for debugging and is\n\
5785 undocumented.\n\
5786 @end deftypefn")
5787 {
5788 static int drawnow_executing = 0;
5789 static bool __go_close_all_registered__ = false;
5790
5791 octave_value retval;
5792
5793 gh_manager::lock ();
5794
5795 unwind_protect frame;
5796 frame.protect_var (Vdrawnow_requested, false);
5797
5798 frame.protect_var (drawnow_executing);
5799
5800 if (++drawnow_executing <= 1)
5801 {
5802 if (! __go_close_all_registered__)
5803 {
5804 octave_add_atexit_function ("__go_close_all__");
5805
5806 __go_close_all_registered__ = true;
5807 }
The function __go_close_all__ is trivial
function __go_close_all__ ()
close ("all", "hidden");
endfunction
As a simple check, I added `disp ("__go_close_all__")' to the end of
__go_close_all__.m
When I try ...
plot (1:10)
print test.pdf
... there is no indication that __go_close_all__ is called.
My understanding is that the function octave_add_atexit_function, registers
"__go_close_all__" to be called when Octave exits. Additional functions may be
registered using `atexit ("foobar")' from the command line. I created a
function ...
function foobar ()
disp ("Bye World")
pause ()
endfunction
.... then entered the command `atexit ("foobar")'. When I exit octave I get
"__go_close_all__", and "Bye World", with the pause.
When I use the print function ...
close all
backend fltk
plot (1:10)
print test.pdf
... I get neither "__go_close_all__" or "Bye World" (I do get a correct
test.pdf).
Dimitri / Michael,
If you add `'disp("__go_close_all__")' to __go_close_all__, create the my
foobar.m function add type `atexit ("foobar")' at the command line, what
happens when you ...
close all
backend fltk
plot (1:10)
print test.pdf
Ben
- Re: fltk printing, (continued)
- Re: fltk printing, bpabbott, 2010/08/07
- Re: fltk printing, Michael D Godfrey, 2010/08/07
- Re: fltk printing, bpabbott, 2010/08/07
- Re: fltk printing, Michael D Godfrey, 2010/08/07
- Re: fltk printing, Ben Abbott, 2010/08/07
- Re: fltk printing, Michael D Godfrey, 2010/08/07
- Re: fltk printing, Ben Abbott, 2010/08/07
- Re: fltk printing, Dmitri A. Sergatskov, 2010/08/07
- Re: fltk printing, Michael D Godfrey, 2010/08/07
- Re: fltk printing, Ben Abbott, 2010/08/07
- Re: fltk printing,
Ben Abbott <=
- Re: fltk printing, Shai Ayal, 2010/08/07
- Re: fltk printing, Shai Ayal, 2010/08/07
- Re: fltk printing, Michael D Godfrey, 2010/08/08
- Message not available
- Message not available
- Re: fltk printing, Michael D Godfrey, 2010/08/08
- Re: fltk printing, Ben Abbott, 2010/08/08
- Re: fltk printing, Dmitri A. Sergatskov, 2010/08/08