PostScript の現在のグラフィックス状態とグラフィックス状態スタックについて質問があります。
私のコードでは、現在のグラフィックスの状態を表す Stack があります。インタープリターを初期化すると、新しい GraphicsState オブジェクトが作成され、「gsstack」に追加されます。
私の現在のグラフィックス状態は次のように実装されています: 'gsstack'.Peek() これは常に最上位のグラフィックス状態を返します。
gsave オペレーターを使用して、現在のグラフィック状態のクローンを作成し、それを「gsstack」にプッシュします。つまり、スタックに新しい最上位のグラフィック状態があります (これは、新しい Current Graphics State オブジェクトがあることを意味します)。
今grestoreで私はhttp://www.tailrecursive.org/postscript/operators.html#grestoreからこれを読みました
"現在のグラフィック状態をグラフィック状態スタックの最上位のグラフィック状態に設定し、その状態をスタックからポップします。"
私の現在のグラフィックス状態はすでに最上位のグラフィックス状態であるため、そのgrestoreはどのように機能しますか...スタックからポップする必要がありますか?
それとも私の実装が間違っていますか?インタープリターを初期化するときに、新しい現在のグラフィックス状態オブジェクトを作成する必要がありますが、それを「gsstack」に追加せず、gsave オペレーターが呼び出されたときにのみ「gsstack」にプッシュする必要がありますか?
前もって感謝します