diff options
Diffstat (limited to 'Master/xemtex/gslib/gs_fform.ps')
-rw-r--r-- | Master/xemtex/gslib/gs_fform.ps | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/Master/xemtex/gslib/gs_fform.ps b/Master/xemtex/gslib/gs_fform.ps deleted file mode 100644 index 1042b014514..00000000000 --- a/Master/xemtex/gslib/gs_fform.ps +++ /dev/null @@ -1,93 +0,0 @@ -% Copyright (C) 1995, 1996, 1998, 1999 Aladdin Enterprises. All rights reserved. -% -% This program is free software; you can redistribute it and/or modify it -% under the terms of the GNU General Public License as published by the -% Free Software Foundation; either version 2 of the License, or (at your -% option) any later version. -% -% This program is distributed in the hope that it will be useful, but -% WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -% Public License for more details. -% -% You should have received a copy of the GNU General Public License along -% with this program; if not, write to the Free Software Foundation, Inc., -% 59 Temple Place, Suite 330, Boston, MA, 02111-1307. - -% $Id: gs_fform.ps,v 1.2.6.1.2.1 2003/04/12 14:02:38 giles Exp $ -% Form caching implemented in PostScript. - -% This implementation doesn't do the right thing about halftone or -% Pattern phase, but the Pattern cache doesn't either.... - -% The Form cache key is the Form dictionary; the value is an array -% of 2 elements [CTM pattern_instance]. -% -% In order to prevent restore from clearing the cache, we explicitly -% push the cache entries on the stack before a restore and reinstall them. -currentglobal false setglobal -/.formcachedict 20 dict def % must be local -true setglobal -/restore { - mark .formcachedict { } forall - counttomark 1 add index { //restore } .internalstopped - { cleartomark //restore } - { counttomark 2 idiv { .formcachedict 3 1 roll put } repeat pop pop } - ifelse -} bind odef - -/.execform1 { - dup /Implementation known not { - dup /FormType get 1 ne { /rangecheck signalerror } if - % The Implementation is a Pattern that will draw the form. - currentglobal 1 index gcheck setglobal - % Stack: form global - 10 dict begin - /PatternType 1 def - /PaintType 1 def % colored - /TilingType 1 def % irrelevant - % Copy the BBox to the correct VM. - /BBox 2 index /BBox get 4 array copy exch 1 index def - % Set XStep and YStep to very large numbers, - % so we won't get multiple copies of the form. - /XStep 1 index dup 2 get exch 0 get sub 100 mul def - /YStep exch dup 3 get exch 1 get sub 100 mul def - /PaintProc 2 index /PaintProc get def - currentdict end readonly - % Stack: form global impl - exch setglobal - 1 index /Implementation 3 -1 roll .forceput - } if - .formcachedict 1 index .knownget { - % Check whether we can use the cached value. - % Stack: form cachevalue - matrix currentmatrix true 0 1 3 { - % Stack: form cachevalue curmat true index - 3 index 0 get 1 index get exch 3 index exch get ne { - pop pop false exit - } if - } for exch pop - } { - false - } ifelse not - { % Make a new cache entry. - gsave - matrix currentmatrix dup 4 0 put dup 5 0 put dup setmatrix - % Stack: form mat - 1 index /Implementation get - 2 index /Matrix get - makepattern 2 array astore - .formcachedict 2 index 2 index put - grestore - } if - % Stack: form cachevalue - -1 0 0 transform - 2 { exch round cvi } repeat .setscreenphase - 1 get setpattern - /BBox get aload pop - exch 3 index sub exch 2 index sub rectfill -} .bind odef % must bind .forceput - -.formtypes 1 /.execform1 load put - -setglobal |