I want to run animation in PostScript smoothly. To see what I want, let me switch directly to PostScript. Call ghostscript and
200 dup scale .5 setgray 0 0 3 3 rectfill
Now we have a gray square.
0 setgray 0 1 3 1 rectfill
With a black stripe in it. Now we will fill this strip, once white and black in a row:
{1 setgray 0 1 3 1 rectfill 0 setgray 0 1 3 1 rectfill} loop
You will now see the flickering black and white rectangles that are smaller than the original black bar. Ideally, we would see the original gray square. Or almost. Where can I get this functionality today?
To see a more interesting sequence of animation in search of magic squares of size 5:
wget http://www.complang.tuwien.ac.at/ulrich/gupu/l5.eps.gz zcat l5.eps.gz | ghostscript -
A few years ago I tried to solve these problems. But it never got into ghostscript or Xfree. See this page . Maybe there are some better ideas right now?
Edit: After reading the answers so far, let me clarify one question here. In fact, there are two independent problems in this matter:
How should I view animation from a language level? I think the best way is to view each frame as one page. With copypage incremental changes can be implemented with minimal effort. Unfortunately, this copypage semantics copypage present only in Levels 1 and 2. At level 3, the value of copypage has changed to showpage . I made - many years ago - a small modification of ghostscript to defer all visible changes to copypage or showpage . Thus, a single XCopyArea containing the changed region runs locally on the server (i.e., on the display).
How should the actual changes be synchronized on the visual display to avoid artifacts that are not present in the chart? The incorrect flickering you see is not a PostScript privilege; it seems to be present on any two-buffer system I have seen so far. Just try to program this on any system that suits you.
Further editing:
To get the correct language level, i.e. level 1 or 2 (for ghostscript):
systemdict /.setlanguagelevel known {2 .setlanguagelevel} if
Edit: I am adding this comment to attract some new postscript .
false source share