JP3883078B2 - Graphic image generation method - Google Patents
Graphic image generation method Download PDFInfo
- Publication number
- JP3883078B2 JP3883078B2 JP2005190445A JP2005190445A JP3883078B2 JP 3883078 B2 JP3883078 B2 JP 3883078B2 JP 2005190445 A JP2005190445 A JP 2005190445A JP 2005190445 A JP2005190445 A JP 2005190445A JP 3883078 B2 JP3883078 B2 JP 3883078B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- graphics
- grafport
- computer
- saved
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
本発明はプリンタドライバおよびコンピュータグラフィックスシステムにおけるコンピュータ、プリンタ間の通信方法に関する。さらに詳しくは、本発明は、グラフィックプリミティブのセットを用いてグラフィック機能を実現するプリンタドライバに関する。 The present invention relates to a printer driver and a communication method between a computer and a printer in a computer graphics system. More particularly, the present invention relates to a printer driver that implements a graphic function using a set of graphic primitives.
グラフィカルイメージを描画(レンダリング)することは、それがコンピュータディスプレイ上であれ、印刷ページ上であれ、比較的複雑である。そして、その複雑さのゆえに、複数種類の異なるグラフィカル言語が開発されている。これらの言語のいくつかは、たとえば、プリンタ制御言語(Printer Control Language)のように、ハードコピーを生成するのに基本的に適したものである。また、「ページ記述」言語はコンピュータ画面上におけるイメージの表示や印刷媒体上におけるイメージの印刷に適している。たとえば、マッキントッシュコンピュータにおいては、「QuickDraw」として知られるグラフィックスライブラリがマッキントッシュオペレーティングシステムの一部として組み込まれており、画面上もしくは画面以外のイメージ形成に用いられる。同様に、PCコンパチブルのコンピュータにおいては、ウィンドウズ(登録商標)オペレーティングシステムはグラフィックスデバイスインターフェース(Graphics Device Interface)ライブラリという形態で描画ルーチンが提供される。このグラフィックスデバイスインターフェースライブラリは、画面上および画面以外におけるすべての複雑なグラフィック機能をイメージングするものである。なお、ここでは、本発明の説明を、QuickDrawを参照して行うこととする。しかしながら、本発明が他の広範な種々のグラフィカル言語に適用できるものであることは理解されるべきである。 Drawing (rendering) a graphical image is relatively complex, whether it is on a computer display or on a printed page. And because of its complexity, several different graphical languages have been developed. Some of these languages are basically suitable for generating hard copies, such as, for example, Printer Control Language. The “page description” language is suitable for displaying an image on a computer screen and printing an image on a print medium. For example, in a Macintosh computer, a graphics library known as “QuickDraw” is incorporated as a part of the Macintosh operating system, and is used for image formation on a screen or other than a screen. Similarly, in a PC compatible computer, the Windows (registered trademark) operating system is provided with a drawing routine in the form of a graphics device interface library. This graphics device interface library is for imaging all complex graphics functions on and off the screen. Here, the present invention will be described with reference to QuickDraw. However, it should be understood that the present invention is applicable to a wide variety of other graphical languages.
図1に示されるように、QuickDrawは、映像画面上におけるプレゼンテーションや印刷媒体上における印刷のための高レベルアプリケーションプログラムよりのグラフィックスコマンドを変換する。QuickDrawはあらゆるマッキントッシュコンピュータに組み込まれているグラフィックスライブラリを提供する。なお、QuickDrawについては、アップルコンピュータ社発行のInside Macintosh, Vol. 1, においてより完全に記述されており、これは本願明細書に参照のために組み込まれる。 QuickDrawは、コンピュータ画面の大部分の内容を描画するのに用いられる上に、コンピュータプリンタとの通信にも用いられる。それゆえ、コンピュータの読み出し専用メモリ(ROM)に格納されたQuickDrawルーチンは、特定のプリンタに依存した制御関数とともにプリンタドライバを形成するための核を構成する。このプリンタドライバは、アプリケーションプログラムからのコマンドに応答して、ページ上の所望のイメージの印刷をプリンタに実行させる。 As shown in FIG. 1, QuickDraw converts graphics commands from a high-level application program for presentation on a video screen and printing on a print medium. QuickDraw provides a graphics library that is built into every Macintosh computer. Note that QuickDraw is described more fully in Inside Macintosh, Vol. 1, published by Apple Computer, which is incorporated herein by reference. QuickDraw is used to draw most of the contents of a computer screen and also to communicate with a computer printer. Therefore, the QuickDraw routine stored in the computer's read-only memory (ROM) constitutes the core for creating a printer driver with control functions that depend on the particular printer. The printer driver causes the printer to print a desired image on the page in response to a command from the application program.
QuickDrawはいくつかの明らかな数学的な構造を定義する。これらの数学的な構造は、処理において、関数において、データタイプにおいて広く用いられる。もっとも基本的なQuickDrawのタイプは点であり、これは座表面における水平、垂直位置を特定する2つの整数値からなる。他のタイプとしては、ライン、矩形、楕円、アーク、丸長方形、多角形および領域(region)があげられる。多くの描画操作は、これらのオブジェクトをパターンで満たしたり縁どりしたりすることで構成される。QuickDrawは、複数のフォントにおけるテキストの種々のサイズやスタイルによる描画をもサポートする。QuickDrawはメモリの領域におけるビットイメージを変更することによって描画を行う。ここで、メモリの領域とは、ディスプレイ画面の場合はフレームバッファであり、印刷出力の場合はプリントバッファである。 QuickDraw defines several obvious mathematical structures. These mathematical structures are widely used in processing, in functions, and in data types. The most basic QuickDraw type is a point, which consists of two integer values that specify the horizontal and vertical position on the seating surface. Other types include lines, rectangles, ellipses, arcs, round rectangles, polygons, and regions. Many drawing operations consist of filling or framing these objects with patterns. QuickDraw also supports rendering of text in various sizes and styles in multiple fonts. QuickDraw performs drawing by changing the bit image in the memory area. Here, the memory area is a frame buffer in the case of a display screen, and a print buffer in the case of print output.
QuickDrawは、GrafPortと呼ばれる分離した描画領域を複数定義することが可能である。各GrafPortは自身の完全な描画環境を有し、その描画環境は、グラフィック機能が、どのように、そしてどこにおいて実行されるかを定義する。多くのGrafPortsが一度にオープンされ得る。そして、それぞれのGrafPortは自身の座標系、描画パターン、背景パターン、ペンサイズ、配置位置、文字フォントおよびスタイル等を有する。GrafPortはマッキントッシュの重なり合うウインドウユーザインターフェースの基礎である。一つのGrafPortが、印刷のための、ページの描画を行うためにプリンタGrafPortとして設計され得る。 QuickDraw can define a plurality of separated drawing areas called GrafPort. Each GrafPort has its own complete drawing environment, which defines how and where the graphic functions are performed. Many GrafPorts can be opened at once. Each GrafPort has its own coordinate system, drawing pattern, background pattern, pen size, arrangement position, character font, style, and the like. GrafPort is the basis for the Macintosh overlapping window user interface. One GrafPort can be designed as a printer GrafPort to render a page for printing.
各GrafPortはportRectと呼ばれる矩形を有し、それは当該GrafPortによる使用領域を定義する。各GrafPortは固有のクリッピング領域を有する。クリッピング領域は、GrafPortのportRectのすべてのサブセットに対して、さらに描画を制限するのに用いられる。各GrafPortは、ライン、図形、テキストを描画するのに用いられる描画ペンを有する。ペンは4つの特徴値を有する。即ち、位置、サイズ、描画モード、描画パターンである。ペンモードとペンパターンは、線や形状を描画するためにペンを移動させた際に、ペンの下にあるビットがどのように影響を受けるかを決定する。各GrafPortは、描画のための自身のテキストフォント、スタイル、モードおよびサイズを当該GrafPort内に有する。 Each GrafPort has a rectangle called portRect, which defines the area of use by that GrafPort. Each GrafPort has a unique clipping region. The clipping region is used to further restrict drawing for all subsets of GrafPort's portRect. Each GrafPort has a drawing pen that is used to draw lines, graphics, and text. The pen has four feature values. That is, the position, size, drawing mode, and drawing pattern. Pen mode and pen pattern determine how the bits under the pen are affected when the pen is moved to draw a line or shape. Each GrafPort has its own text font, style, mode and size for drawing within that GrafPort.
異なるイメージ図形を描画するための5つの異なる描画操作がある。即ち、フレーム、ペイント、消去、反転およびフィルである。これらの図形描画操作のおのおのは、矩形、リージョン、長円弧、丸長方形、および多角形に適用され得る。加えて、QuickDrawはテキストの描画、ビットコピー操作の遂行のためのルーチンを提供する。 There are five different drawing operations for drawing different image figures. That is, frame, paint, erase, invert, and fill. Each of these drawing operations can be applied to rectangles, regions, long arcs, round rectangles, and polygons. In addition, QuickDraw provides routines for drawing text and performing bit copy operations.
QuickDrawが生成し得る各図形のために、その図形を生成するための基本的なグラフィック操作を遂行する分離した処理過程がある。即ち、フレーム、ペイント、消去、反転、フィルである。これらの処理過程のおのおのは、その図形の描画を実際に遂行するべく、順番にQuickDraw内低レベルルーチンを呼び出す。たとえば、QuickDrawにおける楕円フレーム、楕円ペイント、楕円消去、楕円反転、楕円フィル処理は、実際には、これらのオペレーションを楕円に対して遂行するQuickDraw内の単一の低レベルルーチンを呼び出す。テキストおよび線の描画、ビットコピー操作の遂行のための低レベル処理も存在する。低レベルルーチンはボトルネックプロシージャとも呼ばれ、グラフィックプリミティブとみなしてもよい。主なQuickDrawのボトルネックプロシージャは、StdText、StdLine、StdBits、StdRect、StdOval、StdPolyおよびStdRgnである。 For each graphic that QuickDraw can generate, there is a separate process that performs basic graphic operations to generate that graphic. That is, frame, paint, erase, reverse, fill. Each of these processing steps calls up the QuickDraw low-level routines in order to actually perform the drawing of the graphic. For example, the ellipse frame, ellipse paint, ellipse erase, ellipse flip, and ellipse fill operations in QuickDraw actually call a single low-level routine in QuickDraw that performs these operations on the ellipse. There are also low-level processes for performing text and line drawing and bit copy operations. Low level routines, also called bottleneck procedures, may be considered graphic primitives. The main QuickDraw bottleneck procedures are StdText, StdLine, StdBits, StdRect, StdOval, StdPoly and StdRgn.
ページをイメージするために、QuickDrawプリンタドライバは、まず、オペレーションのキャプチャモードにおいて動作し、次に、オペレーションのプレイバックモードにおいて動作する。典型的には、キャプチャの間には、GrafPortの設定変更や種々の図形を描画するためのコマンドが受信される。これらの変化を反映する情報は、ストリームの中へ、たとえばディスクファイルへセーブされる。ClosePageコマンドが受信されると、プリンタドライバはアプリケーションプログラムをウエイトさせる。そして、プリンタドライバは、そのページを記述する図形やGrafPortの変更を呼び戻し(play back)、プリントバッファ内のビットを操作し、当該ページのイメージを描写する。グラフィック情報のメモリ依存的な性質のために、一般的にはページは一連のバンドとしてイメージされる。 To image a page, the QuickDraw printer driver first operates in the capture mode of operation and then operates in the playback mode of operation. Typically, during capture, commands for changing the settings of GrafPort and drawing various graphics are received. Information reflecting these changes is saved into the stream, for example to a disk file. When the ClosePage command is received, the printer driver waits for the application program. Then, the printer driver recalls the graphic describing the page and the change of the GrafPort (play back), manipulates the bits in the print buffer, and draws the image of the page. Due to the memory-dependent nature of graphic information, pages are typically imaged as a series of bands.
大部分のQuickDrawプリンタドライバは、印刷のために「DrawPicture」という方法を用いている。この方法は、各々のそしてすべてのGrafPortの変化が各バンドに対して記録され、呼び戻されることを要求する。結果として、典型的なプリントジョブに要求されるディスクアクセスの回数とディスクストレージの量が大きくなる。ディスクの介在により、プリント時間はより長くなる。 Most QuickDraw printer drivers use a method called “DrawPicture” for printing. This method requires that each and every GrafPort change be recorded and recalled for each band. As a result, the number of disk accesses required for a typical print job and the amount of disk storage increase. The printing time is longer due to the presence of the disc.
一つの解決策としては、プリンタGrafPortに対する各々のそしてすべての変化をその発生した順序で記録することに代えて、図形を描画するためのコマンドが受信されるごとに(GrafPortのステートが最後に書き込まれてから、次に変化がある毎に)、GrafPortのステートのスナップショットをストリームに記録することがあげられる。こうして、GrafPortの状態に関して、図形がストリームに格納される。加えて、その図形の矩形領域の境界を示す情報はその図形とともに格納される。プリンタドライバがイメージバンドを描写するとき、それはバンドの境界矩形をストリームマネージャへ送ることができ、図形の境界矩形がイメージングバンドによって横切られた図形のみのプレイバックを要求する。 One solution is that instead of recording each and every change to the printer GrafPort in the order in which it occurred, each time a command to draw a figure is received (the state of the GrafPort is written last) After that, every time there is a change), a snapshot of the state of GrafPort can be recorded in the stream. Thus, graphics are stored in the stream with respect to the status of GrafPort. In addition, information indicating the boundary of the rectangular area of the graphic is stored together with the graphic. When the printer driver renders an image band, it can send the band's bounding rectangle to the stream manager, which requires the playback of only the shape that the shape's bounding rectangle is crossed by the imaging band.
この改良された構成において、プリンタドライバは、次に、本質的に、各図形がアプリケーションによって描画されるときに、GrafPortの圧縮されたピクチャをステートオブジェクトに格納する。図形がイメージングバンドに描画されるに際して、描画に必要な特定のステートのみが読み戻されることを要求され、GrafPortに対するあらゆる変化の順序は要求されない。 In this improved configuration, the printer driver then essentially stores the compressed picture of the GrafPort in the state object as each graphic is rendered by the application. When a figure is drawn in the imaging band, only the specific state required for drawing is required to be read back, and no order of change for GrafPort is required.
しかしながら、その様な構成は、ステートをセーブするのに比較的大きな量のデータを用いる。特に、各ステートにペンパターン及びフィルパターンを格納することは、大量のデータの格納とリトリーブを招く結果となる。 However, such an arrangement uses a relatively large amount of data to save the state. In particular, storing the pen pattern and fill pattern in each state results in the storage and retrieval of a large amount of data.
そこで、必要なことは、描画アプリケーションによって特定されたそのままの描画環境を再生し、その能力を低下させることなく、より少ないディスクアクセスとディスク空間を用いてグラフィックイメージを生成する方法を提供することである。 Therefore, what is needed is to provide a method for generating a graphic image using less disk access and disk space without replaying the original drawing environment specified by the drawing application and reducing its capability. is there.
[発明の要約]
本発明の一態様によるグラフィックスイメージ生成方法は、
メモリシステムを有するコンピュータにおいて、グラフィックスプリミティブのセットを用いてグラフィックイメージを生成するための方法であって、
該グラフィックスプリミティブの各々は、グラフィックスプリミティブを起動するコマンドが受信されたときのグラフィックス環境の現在のステートに従って実行され、グラフィックス環境の現在のステートは複数のステートコンポーネントを含み、イメージソースによって随時変更されるものであり、
前記コンピュータが、グラフィックスプリミティブを含む前回のコマンドの受信時からグラフィックスプリミティブを含む現在のコマンドの受信時までに、前記複数のステートコンポーネントの少なくとも一つが変化したことを検出する工程と、
前記コンピュータが、前記複数のステートコンポーネントの少なくとも一つが変化したことを検出する毎に、変化したステートコンポーネントのみに関してその内容を前記メモリシステムにセーブする工程と、
前記コンピュータが、前記複数のステートコンポーネントの各々に関して、最も最近にセーブされたステートコンポーネントの内容を指すレファレンスを含むレファレンス集合を、前記現在のコマンドに対応するグラフィックスプリミティブのためのグラフィックス環境のステートとして前記メモリシステムにセーブする工程とを備え、
各レファレンス集合は唯一つのステートコンポーネントの内容を指すレファレンスを含み、少なくともいくつかのステートコンポーネントの内容は、複数のレファレンス集合から指し示される。
[Summary of Invention]
A graphics image generation method according to an aspect of the present invention includes
A method for generating a graphic image using a set of graphics primitives in a computer having a memory system, comprising:
Each of the graphics primitives is executed according to the current state of the graphics environment when a command to activate the graphics primitive is received, the current state of the graphics environment including a plurality of state components, depending on the image source. It will change from time to time,
The computer detecting that at least one of the plurality of state components has changed between receipt of a previous command including graphics primitives and reception of a current command including graphics primitives;
Each time the computer detects that at least one of the plurality of state components has changed, saving only the changed state component to the memory system; and
A state of the graphics environment for the graphics primitive corresponding to the current command, wherein the computer includes, for each of the plurality of state components, a reference set that includes a reference to the contents of the most recently saved state component. And saving to the memory system as
Each reference set includes a reference that points to the contents of only one state component, and the contents of at least some state components are pointed to from the plurality of reference sets.
本発明は、添付の図面に関連した以下の記述からよりよく理解される。 The invention will be better understood from the following description in conjunction with the accompanying drawings.
本発明は、特定の例に関して、以前の方法にしたがった場合にキャプチャとプレイバックにおいて要求されるステップと、本発明の好適な実施形態にしたがった場合にキャプチャとプレイバック(トランスレーション)において要求されるステップとを詳細に比較するという方法によって最もよく理解されるであろう。 The present invention relates to the steps required in capture and playback when following the previous method, and in capture and playback (translation) according to the preferred embodiment of the present invention, for the specific example. It will be best understood by the method of comparing in detail with the steps performed.
まず図2に示されるように、プリンタドライバは基本的に、キャプチャモジュール(即ち、キャプタ)とプレイバックモジュール(即ち、トランスレータ)とストリームマネージャ(即ち、ストリーマオブジェクト)とを備える。キャプタは、アプリケーションプログラムによって発行された描画コマンド、および描画環境(GrafPort)の変化を記録させる。トランスレータはキャプタによって記録された情報をプレイバックし、ピクチャ情報のバンドをイメージするべくグラフィックスプリミティブを実行し、そのバンドをプリンタハードウエアに送信する。ストリーマオブジェクトはメモリとの通信インターフェースとして機能する。メモリは、たとえば、キャッシュメモリ、ディスクメモリ、あるいはこれらの組み合わせのいずれであってもよい。 First, as shown in FIG. 2, the printer driver basically includes a capture module (ie, a captor), a playback module (ie, a translator), and a stream manager (ie, streamer object). The capter records a drawing command issued by the application program and a change in the drawing environment (GrafPort). The translator plays back the information recorded by the captor, executes graphics primitives to image the band of picture information, and sends the band to the printer hardware. The streamer object functions as a communication interface with the memory. The memory may be, for example, a cache memory, a disk memory, or a combination thereof.
非常に単純化された例を挙げるために、アプリケーションプログラムがプリンタドライバに対して図3に示すイメージをプリントするよう指示したと仮定する。図3のイメージは、ペンパターンとフィルパターンを有する第1および第2の矩形を含む。 To give a very simplified example, assume that an application program instructs the printer driver to print the image shown in FIG. The image of FIG. 3 includes first and second rectangles having a pen pattern and a fill pattern.
従前の方法に従えば、GrafPortは、GrafPortにおいて何らかの変化があったかどうかを判断するために、前回セーブされたコピーと比較される。変化が発見されると、GrafPortのあらゆる重要なフィールドがステートレコードにコピーされる。そして、ステートは、ストリーマオブジェクトへ送られ、ストリームにセーブされる。それゆえ、キャプチャの実行時に以下のステップが生じる。 According to previous methods, GrafPort is compared to the previously saved copy to determine if there has been any change in GrafPort. When a change is found, every important field of GrafPort is copied to the state record. The state is then sent to the streamer object and saved to the stream. Therefore, the following steps occur when performing a capture.
1.アプリケーションは初期のGrafPort設定をセットする。
2.アプリケーションは第1の矩形フレームを描画する。
3.キャプタは現在のGrafPortをセーブされた前回のステートと比較する。
4.ペンパターンの変化が発見される。
5.GrafPortの各部がメモリにコピーされ、カラーマッチが行われ(カラーQuickDrawの場合)、単一のステートとしてストリームにセーブされる。
6.今セーブされた新しいステートに関して、第1の矩形がストリームにセーブされる。
7.アプリケーションはフィルパターンを変更する。
8.アプリケーションは第2の矩形を描画する。
9.キャプタは現在のGrafPortを前回セーブされたステートと比較する。
10.変化(フィルパターンにおける変化)が、GrafPortの各部をコピーさせ、カラーマッチさせ、ストリームにセーブさせる。
1. The application sets initial GrafPort settings.
2. The application draws the first rectangular frame.
3. The captor compares the current GrafPort with the previous saved state.
4). A change in the pen pattern is discovered.
5). Each part of GrafPort is copied to the memory, color matching is performed (in the case of color QuickDraw), and saved to the stream as a single state.
6). For the new state just saved, the first rectangle is saved to the stream.
7). The application changes the fill pattern.
8). The application draws the second rectangle.
9. The captor compares the current GrafPort with the previously saved state .
10. Changes (changes in fill pattern) cause each part of the GrafPort to be copied, color matched, and saved in the stream.
続いて、トランスレーションの実行の間に、以下のステップが発生する。
11.トランスレータは、第1の矩形を読み込ませる。
12.トランスレータは、矩形とともにセーブされたステートレファレンスを前回のステートと比較し、違いを発見する。
13.その矩形図形に関して参照された新しいステートが読み込まれる。
14.その新しいステートの各フィールドはGrafPortと比較され、あらゆる異なるフィールドがGrafPortにおいて更新される。
15.トランスレータは、その矩形フレームを描画するのに適切なグラフィックスプリミティブを実行する。
16.トランスレータは、第2の矩形を読み込ませる。
17.ステートの比較により、新しいステートをストリームより読み込ませる。
18.新しいステートの各フィールドはGrafPortと比較され、あらゆる異なるフィールドがGrafPortにおいて更新される。
19.トランスレータは、第2の矩形を描画するために、適切なグラフィックスプリミティブを実行する。
Subsequently, the following steps occur during the execution of the translation.
11. The translator causes the first rectangle to be read.
12 The translator compares the state reference saved with the rectangle with the previous state and finds the difference.
13. The new state referenced for the rectangle is loaded.
14 Each field in the new state is compared to GrafPort and any different fields are updated in GrafPort.
15. The translator executes the appropriate graphics primitive to draw the rectangular frame.
16. The translator causes the second rectangle to be read.
17. A new state is read from the stream by comparing the states.
18. Each field in the new state is compared to the GrafPort and any different fields are updated in the GrafPort.
19. The translator executes the appropriate graphics primitive to draw the second rectangle.
GrafPortのあらゆる重要なフィールドがステートにセーブされ、かつステートは変化が発見されるたびにストリームにセーブされるので、メモリへの書き込みやメモリよりの読み出しに無視できないほどのオーバーヘッドを招く。これは、メモリがディスクメモリであれば、より顕著である。 Since every important field of the GrafPort is saved to the state and the state is saved to the stream each time a change is discovered, there is a non-negligible overhead for writing to and reading from the memory. This is more noticeable if the memory is a disk memory.
これに対して、本方法によれば、各パターンやクリップリージョンの内容でステートを満たすのではなく、これらの内容の各々に対するレファレンスがステートに格納される。このレファレンスは、ステートの各コンポーネントが、別々にセーブされることを可能とするとともに、描画に際してはステートが正確に再現されることを可能とする。更に、レファレンスはステートの比較の間の有用な時間を節約することを可能とする。従前のドライバがトランスレーション時におけるGrafPortの比較にステートを要求したのに対して、本方法では、どのフィールド(どのコンポーネント)が変化したかを見るために、現在のステートの各レファレンスが前回のステートの各レファレンスと比較される。4バイトで格納され得るレファレンスを比較することは、大きなパターンや領域を比較するのに比べて非常に高速である。
In contrast, according to the present method, the state of each pattern or clip region is not satisfied, but the reference for each of these contents is stored in the state. This reference allows each component of the state to be saved separately and also allows the state to be accurately reproduced when drawing. Furthermore, the reference can save useful time during state comparison. Whereas the previous driver requested a state for the comparison of the GrafPort at the time of translation, in this method, each reference in the current state is changed to the previous state in order to see which field (which component) has changed. Compared to each of the references. Comparing references that can be stored in 4 bytes is much faster than comparing large patterns and regions.
本方法によれば、キャプチャの実行の間に、以下のステップが発生する。
1.アプリケーションは初期のGrafPortセットを設定する。
2.アプリケーションは第1の矩形フレームを描画する。
3.キャプタは現在のGrafPortと前回セーブされたステートのコンポーネントとを比較する。
4.ペンパターンの変化が発見される。
5.新しいペンパターンがストリームに書き込まれる。
6.現在のステートが新しいペンパターンに関して更新されるとともに、書き出される。
7.新しいステートに関して矩形図形がストリームにセーブされる。
8.アプリケーションがフィルパターンを変更する。
9.アプリケーションは第2の矩形を描画する。
10.キャプタは現在のGrafPortと前回にセーブされたステートを比較する。
11.新しいフィルパターンが発見される。
12.新しいフィルパターンがストリームに書き込まれる。
13.現在のステートが、新しいフィルパターンに関連して更新されるとともに、書き出される。
14.第2の矩形図形が新しいステートに関連してストリームにセーブされる。
According to the method, the following steps occur during capture execution.
1. The application sets an initial GrafPort set.
2. The application draws the first rectangular frame.
3. The captor compares the current GrafPort with the last saved state component.
4). A change in the pen pattern is discovered.
5). A new pen pattern is written to the stream.
6). The current state is updated and written out for the new pen pattern.
7). A rectangle is saved in the stream for the new state.
8). The application changes the fill pattern.
9. The application draws the second rectangle.
10. The captor compares the current GrafPort with the last saved state .
11. A new fill pattern is discovered.
12 A new fill pattern is written to the stream.
13. The current state is updated and written out in relation to the new fill pattern.
14 A second rectangular shape is saved in the stream in association with the new state.
なお、キャプチャ実行中における、ステップ5及び6と、ステップ12及び13における従来技術との重要な相違に注意すべきである。ペンパターンやフィルパターンが変化するときには、完全なステートはもはや書き出されない。代わりに、新たなパターン自身が書き出され、それに対するレファレンスがステートにセーブされる。新しいステートとして書き出されるものは、それゆえ、レファレンスの集まりであり、パターン自体ではない。
It should be noted that significant differences between steps 5 and 6 and the prior art in steps 12 and 13 during capture execution are noted. When the pen pattern or fill pattern changes, the complete state is no longer written out. Instead, the new pattern itself is written out and the reference to it is saved in the state. What is written out as a new state is therefore a collection of references, not a pattern itself.
続いて、本方法によれば、トランスレーションの実行の間、以下のステップが発生する。
15.トランスレータは第1の矩形を読む。
16.トランスレータは矩形図形とともに格納されたステートレファレンスと前回のステートとを比較し、ペンパターンのレファレンスが変更したことを発見する。
17.新しいペンパターンが読み込まれ、GrafPortにおいて更新される。
18.トランスレータは矩形フレームを描画する。
19.トランスレータは第2の矩形を読み込む。
20.トランスレータは、ステートレファレンスが変化したことを発見し、新しいステートに読み込む。そして、新しいステートレファレンスを前回のステートレファレンスと比較し、フィルパターンのレファレンスが変化したことを発見する。
21.新しいフィルパターンが読み込まれ、GrafPortにおいて更新される。
22.トランスレータは第2の矩形を描画する。
Subsequently, according to the method, the following steps occur during the execution of the translation.
15. The translator reads the first rectangle.
16. The translator compares the state reference stored with the rectangle and the previous state and finds that the pen pattern reference has changed.
17. A new pen pattern is read and updated in GrafPort.
18. The translator draws a rectangular frame.
19. The translator reads the second rectangle.
20. The translator discovers that the state reference has changed and loads it into a new state. Then, the new state reference is compared with the previous state reference to discover that the fill pattern reference has changed.
21. A new fill pattern is read and updated in GrafPort.
22. The translator draws the second rectangle.
トランスレーションにおいて、ステップ16及び17と、ステップ20及び21に従来技術との重要な相違があることに注意すべきである。新しいステートの全てのフィールドをGrafPortと比較する代わりに、トランスレータはGrafPortのフィールドが更新されなければならないことを示すステート内の新しいレファレンスを認知し、単にそのフィールドを更新する。 It should be noted that in translation, steps 16 and 17 and steps 20 and 21 have significant differences from the prior art . Instead of comparing every field in the new state with GrafPort, the translator recognizes the new reference in the state indicating that the GrafPort field should be updated and simply updates that field.
図4は、ステート情報の新しいフォーマットを示す図である。なお、クリッピング領域、可視領域、ペンパターン、フィルパターン、背景パターンの各項に関して、各項目は、現在の状態として格納されたレファレンスとともに、ストリームに別々にセーブされる。ただし、全項目ではない。与えられた描画操作の為のステートとしてストリームにセーブされる情報は、合計40バイトの情報を含む。前述の項目がステート自体にセーブされる従前の方法においては、図5に示されるように、ステートとしてストリームにセーブされる情報は、合計でおよそ200バイトの情報を含むことになる。GrafPortの変更の回数と頻度に依存して、本方法はメモリアクセスのオーバーヘッドを半分、もしくはそれ以下に減らすことができる。クリッピング領域や可視領域が大きい(最大、32000バイト)極端な場合では、改善の度合は極めて大である。 FIG. 4 is a diagram showing a new format of state information. For each item of the clipping region, visible region, pen pattern, fill pattern, and background pattern, each item is saved separately in the stream together with the reference stored as the current state. However, not all items. The information saved in the stream as a state for a given drawing operation includes information of a total of 40 bytes. In the previous method where the aforementioned items are saved in the state itself, as shown in FIG. 5, the information saved in the stream as a state will contain approximately 200 bytes of information in total. Depending on the number and frequency of GrafPort changes, the method can reduce the memory access overhead by half or less. In extreme cases where the clipping region and the visible region are large (maximum 32,000 bytes), the degree of improvement is extremely large.
図6は、ストリーマオブジェクトによって格納され、読み戻される結果ファイルを示す図である。例えば、矩形を示す「Rect」のような図形レコードは、ステートレコードにポインタとともに格納される。ステートレコードは、ペンパターンの様なアイテムを順次指定する。同じアイテムが、他のステートレコードから指定されうる。 FIG. 6 shows a result file stored and read back by the streamer object. For example, a graphic record such as “Rect” indicating a rectangle is stored in the state record together with a pointer. The state record sequentially specifies items such as pen patterns. The same item can be specified from other state records.
本発明の精神や本質から離れることなく、本発明が他の特定の形態で当業者によって実施されうることは明らかである。ここに開示された実施形態は、それゆえ、全ての点において例証的なものとみなされるものであり、限定的なものではない。本発明の範囲は、添付の請求の範囲によって示されるものであり、前述の実施形態によって示されるものではない。そして、本発明の手段及び等価の範囲内で実施されうる全ての変更は本発明に包含されるものである。 It will be apparent that the invention may be practiced by those skilled in the art in other specific forms without departing from the spirit or essence of the invention. The embodiments disclosed herein are therefore to be considered in all respects illustrative and not restrictive. The scope of the invention is indicated by the appended claims and not by the foregoing embodiments. All modifications that can be implemented within the scope of the present invention and equivalents are intended to be embraced by the present invention.
Claims (1)
該グラフィックスプリミティブの各々は、グラフィックスプリミティブを起動するコマンドが受信されたときのグラフィックス環境の現在のステートに従って実行され、グラフィックス環境の現在のステートは複数のステートコンポーネントを含み、イメージソースによって随時変更されるものであり、
前記コンピュータが、グラフィックスプリミティブを含む前回のコマンドの受信時からグラフィックスプリミティブを含む現在のコマンドの受信時までに、前記複数のステートコンポーネントの少なくとも一つが変化したことを検出する工程と、
前記コンピュータが、前記複数のステートコンポーネントの少なくとも一つが変化したことを検出する毎に、変化したステートコンポーネントのみに関してその内容を前記メモリシステムにセーブする工程と、
前記コンピュータが、前記複数のステートコンポーネントの各々に関して、最も最近にセーブされたステートコンポーネントの内容を指すレファレンスを含むレファレンス集合を、前記現在のコマンドに対応するグラフィックスプリミティブのためのグラフィックス環境のステートとして前記メモリシステムにセーブする工程とを備え、
各レファレンス集合は唯一つのステートコンポーネントの内容を指すレファレンスを含み、少なくともいくつかのステートコンポーネントの内容は、複数のレファレンス集合から指し示されることを特徴とするグラフィックイメージ生成方法。
A method for generating a graphic image using a set of graphics primitives in a computer having a memory system, comprising:
Each of the graphics primitives is executed according to the current state of the graphics environment when a command to activate the graphics primitive is received, the current state of the graphics environment including a plurality of state components , depending on the image source. It will change from time to time,
It said computer comprises the steps of detecting a from the time of reception of the previous command containing the graphics primitives until the reception of the current command including graphics primitives, that at least one of said plurality of state component is changed,
Each time the computer detects that at least one of the plurality of state components has changed , saving only the changed state component to the memory system; and
A state of the graphics environment for the graphics primitive corresponding to the current command, wherein the computer includes, for each of the plurality of state components , a reference set that includes a reference to the contents of the most recently saved state component. And saving to the memory system as
Each reference set includes the contents of only one state component fingers to reference, the contents of at least some of the state component, graphic images generated and wherein the pointed from a plurality of reference sets.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19823194A | 1994-02-16 | 1994-02-16 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52189295A Division JP3711144B2 (en) | 1994-02-16 | 1995-02-16 | Graphic image generation method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006018838A JP2006018838A (en) | 2006-01-19 |
JP3883078B2 true JP3883078B2 (en) | 2007-02-21 |
Family
ID=22732532
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52189295A Expired - Lifetime JP3711144B2 (en) | 1994-02-16 | 1995-02-16 | Graphic image generation method |
JP2005190445A Expired - Lifetime JP3883078B2 (en) | 1994-02-16 | 2005-06-29 | Graphic image generation method |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52189295A Expired - Lifetime JP3711144B2 (en) | 1994-02-16 | 1995-02-16 | Graphic image generation method |
Country Status (4)
Country | Link |
---|---|
US (1) | US6266149B1 (en) |
JP (2) | JP3711144B2 (en) |
AU (1) | AU1844495A (en) |
WO (1) | WO1995022808A1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598087B1 (en) * | 1999-09-08 | 2003-07-22 | Ge Capital Commercial Finance, Inc. | Methods and apparatus for network-enabled virtual printing |
JP2014104703A (en) * | 2012-11-29 | 2014-06-09 | Seiko Epson Corp | Printer, control method of the same, and program |
KR102482874B1 (en) | 2015-09-11 | 2022-12-29 | 삼성전자 주식회사 | Apparatus and Method of rendering |
KR102644276B1 (en) | 2016-10-10 | 2024-03-06 | 삼성전자주식회사 | Apparatus and method for processing graphic |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4399503A (en) * | 1978-06-30 | 1983-08-16 | Bunker Ramo Corporation | Dynamic disk buffer control unit |
US4353653A (en) * | 1979-10-19 | 1982-10-12 | International Business Machines Corporation | Font selection and compression for printer subsystem |
JPH0643135B2 (en) * | 1984-06-05 | 1994-06-08 | 沖電気工業株式会社 | Dot printer dot pattern storage method |
JPS6299869A (en) * | 1985-10-25 | 1987-05-09 | Fuji Photo Film Co Ltd | Information compressing method |
US5097411A (en) | 1987-08-13 | 1992-03-17 | Digital Equipment Corporation | Graphics workstation for creating graphics data structure which are stored retrieved and displayed by a graphics subsystem for competing programs |
US5046027A (en) * | 1988-11-08 | 1991-09-03 | Massachusetts General Hospital | Apparatus and method for processing and displaying images in a digital procesor based system |
US5218431A (en) * | 1990-04-26 | 1993-06-08 | The United States Of America As Represented By The Secretary Of The Air Force | Raster image lossless compression and decompression with dynamic color lookup and two dimensional area encoding |
US5276798A (en) * | 1990-09-14 | 1994-01-04 | Hughes Aircraft Company | Multifunction high performance graphics rendering processor |
US5241625A (en) | 1990-11-27 | 1993-08-31 | Farallon Computing, Inc. | Screen image sharing among heterogeneous computers |
US5257097A (en) | 1991-09-27 | 1993-10-26 | Eastman Kodak Company | Method and apparatus for selective interception of a graphics rendering operation for effecting image data modification |
US5381524B2 (en) * | 1991-11-12 | 1997-07-08 | Chronology Corp | Automated development of timing diagrams for electrical circuits |
US5315703A (en) * | 1992-12-23 | 1994-05-24 | Taligent, Inc. | Object-oriented notification framework system |
US5379366A (en) * | 1993-01-29 | 1995-01-03 | Noyes; Dallas B. | Method for representation of knowledge in a computer as a network database system |
-
1995
- 1995-02-16 JP JP52189295A patent/JP3711144B2/en not_active Expired - Lifetime
- 1995-02-16 AU AU18444/95A patent/AU1844495A/en not_active Abandoned
- 1995-02-16 WO PCT/US1995/001917 patent/WO1995022808A1/en active Application Filing
-
1996
- 1996-02-01 US US08/593,114 patent/US6266149B1/en not_active Expired - Lifetime
-
2005
- 2005-06-29 JP JP2005190445A patent/JP3883078B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
AU1844495A (en) | 1995-09-04 |
US6266149B1 (en) | 2001-07-24 |
WO1995022808A1 (en) | 1995-08-24 |
JP2006018838A (en) | 2006-01-19 |
JPH09509272A (en) | 1997-09-16 |
JP3711144B2 (en) | 2005-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101130484B1 (en) | Common charting using shapes | |
US4811205A (en) | Pipeline display control apparatus with logic for blocking graphics processor accesses to shared memory during selected main processor graphics operations | |
JPS62502638A (en) | Computer-based drawing management system | |
JPH08115178A (en) | Variable data field in page description language | |
US20040075699A1 (en) | Method and apparatus for highlighting graphical objects | |
JPH01184580A (en) | Image synthesizer | |
JPH01206430A (en) | Control of window system | |
JPH05205024A (en) | Information control method and multi-medium system using the same | |
JPH03197065A (en) | Page printer memory layout | |
JP2000083161A (en) | Image processing unit, its method and image processing system | |
CN111221596A (en) | Font rendering method and device and computer readable storage medium | |
US7571433B2 (en) | Metafile optimization | |
JP3883078B2 (en) | Graphic image generation method | |
US5608848A (en) | Processing blank data-lines of print data | |
US6031976A (en) | Printing apparatus including print image storage and control method therefor | |
US20070133019A1 (en) | Transparency printing | |
US5442736A (en) | Correlation of cursor position to shapes displayed on a video display screen | |
JPH06274307A (en) | Screen display system | |
US7248267B2 (en) | Method and apparatus for simulated direct frame buffer access for graphics adapters | |
JP2002157108A (en) | Image processing method, storage medium, and image forming device | |
JP3496384B2 (en) | Image output device | |
JP2000163182A (en) | Screen display system | |
JP3686490B2 (en) | System and method using variable binarization for printer driver architecture | |
JP3225633B2 (en) | Image data management device | |
JP2000201275A (en) | Picture processor, its control method and picture processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060508 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060801 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061010 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061109 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091124 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091124 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101124 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111124 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121124 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121124 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131124 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |