SETFILLMASK

グラフィックス・サブルーチン:現在の塗り潰しマスクに新しいパターンを設定します。

モジュールUSE DFLIB

形式

CALL SETFILLMASK (mask)

mask
(入力) INTEGER(1)。長さ 8 の 1 次元配列。

mask は 8 バイトで,各バイトの 8 ビットの各々は 8x8 パターンを作成するピクセルを表します。mask の第 1 要素 (バイト) はパターンの最上部の 8 ビットになり,第 8 要素 (バイト) は最下部の 8 ビットになります。

塗り潰し操作中,1 のビット値を持つピクセルは現在のグラフィックス色に設定され,一方,0 のビット値を持つピクセルは変更されません。現在のグラフィックス色は,SETCOLORRGB または SETCOLOR で設定されます。8 バイト・マスクは,塗り潰し領域全体に模写されます。塗り潰しマスクが設定されていない (SETFILLMASK で) 場合,または,マスクがすべて 1 の場合,現在の塗り潰し色が塗り潰し操作で使われます。

塗り潰しマスクは,グラフィックス・ルーチン (FLOODFILLRGBPIEELLIPSEPOLYGON,および RECTANGLE) に対する塗り潰しパターンを制御します。

現在の塗り潰しマスクを変更するには,以下の例のように,希望するビット・パターンに対応するバイトの配列を決定し,SETFILLMASK でパターンを設定します。

互換性

STANDARD GRAPHICS QUICKWIN GRAPHICS LIB

関連情報

ELLIPSEFLOODFILLRGBGETFILLMASKPIEPOLYGONRECTANGLE

このプログラムは,以下に示すように,各々が異なった塗り潰しマスクを持つ 6 つの矩形を描画します。

	! QuickWin または Standard Graphics アプリケーションでビルドします。
	USE DFLIB
	INTEGER(1), TARGET :: style1(8) &
			/#18,#18,#18,#18,#18,#18,#18,#18/
	INTEGER(1), TARGET :: style2(8) &
			/#08,#08,#08,#08,#08,#08,#08,#08/
	INTEGER(1), TARGET :: style3(8) &
			/#18,#00,#18,#18,#18,#00,#18,#18/
	INTEGER(1), TARGET :: style4(8) &
			/#00,#08,#00,#08,#08,#08,#08,#08/
	INTEGER(1), TARGET :: style5(8) &
			/#18,#18,#00,#18,#18,#00,#18,#18/
	INTEGER(1), TARGET :: style6(8) &
			/#08,#00,#08,#00,#08,#00,#08,#00/
	INTEGER(1) oldstyle(8)	! 古い形式を保持
	INTEGER loop
	INTEGER(1), POINTER :: ptr(:)

	CALL GETFILLMASK( oldstyle )
	! 各々が異なった塗り潰しマスクを持つ 6 個の矩形を作成
	DO loop = 1, 6
	  SELECT CASE (loop)
	    CASE (1)
	      ptr => style1
	    CASE (2)
	      ptr => style2
	    CASE (3)
	      ptr => style3
	    CASE (4)
	      ptr => style4
	    CASE (5)
	      ptr => style5
	    CASE (6)
	      ptr => style6
	  END SELECT
	  CALL SETFILLMASK( ptr)
	  status = RECTANGLE($GFILLINTERIOR,INT2(loop*40+5), &
			INT2(90),INT2((loop+1)*40), INT2(110))
	END DO

	CALL SETFILLMASK( oldstyle )	! 古い形式を戻します
	READ (*,*)			! ENTER が押されるのを待ちます
	END

図:プログラム SETFILL.FOR の出力