summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Liddell <chris.liddell@artifex.com>2014-03-13 11:19:11 +0000
committerChris Liddell <chris.liddell@artifex.com>2014-03-13 11:19:11 +0000
commitf2fde5b9596318796f4ffd8d356116b1bb203ae3 (patch)
tree411e6900473c418b6b13a83bab3f0f22a69a53e9
parentbecedfbfdbd9dee77825ff245f48c0acc9d03252 (diff)
downloadghostpdl-f2fde5b9596318796f4ffd8d356116b1bb203ae3.tar.gz
Delete gs_fform.ps
If we want to cache forms, we should implement it properly. CLUSTER_UNTESTED
-rw-r--r--gs/lib/gs_fform.ps91
1 files changed, 0 insertions, 91 deletions
diff --git a/gs/lib/gs_fform.ps b/gs/lib/gs_fform.ps
deleted file mode 100644
index 235ce5af7..000000000
--- a/gs/lib/gs_fform.ps
+++ /dev/null
@@ -1,91 +0,0 @@
-% Copyright (C) 2001-2012 Artifex Software, Inc.
-% All Rights Reserved.
-%
-% This software is provided AS-IS with no warranty, either express or
-% implied.
-%
-% This software is distributed under license and may not be copied,
-% modified or distributed except as expressly authorized under the terms
-% of the license contained in the file LICENSE in this distribution.
-%
-% Refer to licensing information at http://www.artifex.com or contact
-% Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
-% CA 94903, U.S.A., +1(415)492-9861, for further information.
-%
-
-% 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