Renderer2d (クラス)
public abstract sealed Renderer2d {inherits RendererBase}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GRAPHICS._2D.RENDERER2D.

Drawable 上へのレンダリングに関して、描画状態 (レンダリング プロパティ) のスタックやレンダリング メソッドを格納する 2D レンダラーです。

説明

Renderer2d の作成および使用にはさまざまな方法があります。

Renderer2d には、レンダリングの実行方法に影響を与えるレンダリング プロパティのセットが含まれています。一般的なプロパティの例は fill-pattern で、レンダリングされるオブジェクトの FillPattern (色またはテクスチャ) を設定するのに使用されます。これらは with-render-properties マクロにより設定されます。このマクロの解説には、各プロパティの詳細が含まれています。

コンストラクタ
default:与えられた Drawable で使用する Renderer2d を作成します。
ファクトリ public {Renderer2d.default drawable:Drawable}:Renderer2d

プロパティ
antialiasing?:
アクセサ protected Renderer2d.antialiasing?:bool
セッター protected Renderer2d.antialiasing?:bool
caps:この Renderer2dRenderer2dCapabilities を取得します。
アクセサ public abstract Renderer2d.caps:Renderer2dCapabilities
clipping-region:
アクセサ protected Renderer2d.clipping-region:Region
セッター protected Renderer2d.clipping-region:Region
clipping-region-empty?:Renderer2d のクリッピング領域が空の場合は true を返します。
アクセサ public Renderer2d.clipping-region-empty?:bool
device-pixel-size:デバイスのピクセル サイズを返します。
アクセサ public Renderer2d.device-pixel-size:Distance
device-resolution:デバイスの解像度 (Distance あたりのピクセル数) です。
アクセサ public Renderer2d.device-resolution:Resolution
draw-operation:この Renderer2d に割り当てられた現在の DrawOperation
アクセサ public sealed Renderer2d.draw-operation:DrawOperation
セッター protected sealed Renderer2d.draw-operation:DrawOperation
fill-pattern:この Renderer2d に割り当てられた現在の FillPattern
アクセサ public sealed Renderer2d.fill-pattern:FillPattern
セッター protected sealed Renderer2d.fill-pattern:FillPattern
font:この Renderer2d に割り当てられた現在の Font
アクセサ public sealed Renderer2d.font:Font
セッター protected sealed Renderer2d.font:Font
line-style:線のレンダリングに使用されるスタイル。
アクセサ public sealed Renderer2d.line-style:LineStyle
セッター protected sealed Renderer2d.line-style:LineStyle
pixel-size:この Renderer2d が 1 単位と見なす距離を返します。
アクセサ public sealed Renderer2d.pixel-size:Distance
rendering-to-printer?:この Renderer2d のレンダリング先がプリンタであるかどうかを示すブール値を返します。
アクセサ public sealed Renderer2d.rendering-to-printer?:bool
stroke-thickness:この Renderer2d に割り当てられた現在の線の太さ。
アクセサ public sealed Renderer2d.stroke-thickness:Distance
セッター protected sealed Renderer2d.stroke-thickness:Distance
texture-transformation:
アクセサ protected sealed Renderer2d.texture-transformation:TextureTransformation2d
transformation:
アクセサ protected Renderer2d.transformation:Transformation2d

クラス プロシージャ
create-offscreen:イメージの編集やオフスクリーンのレンダリングに使用可能な Drawable を作成します。作成した Drawable で使用される Renderer2d も作成します。
public {Renderer2d.create-offscreen
width:Distance,
height:Distance,
resolution:Resolution = 0dpi,
use-host-rendering?:bool = false,
advanced-draw-operations?:bool = false,
...:Resolution
}:(Renderer2d, Drawable)

メソッド
clear:現在の clipping-region を与えられた FillPattern にクリアします。
public {Renderer2d.clear
fill-pattern:FillPattern = self.fill-pattern
}:void
get-clipping-region:Renderer2d の現在のクリッピング領域を取得します。
public {Renderer2d.get-clipping-region}:Region
get-clipping-region-bounding-box:現在のクリッピング領域の境界ボックスの寸法を返します。
public {Renderer2d.get-clipping-region-bounding-box
}:(x:Distance, y:Distance, width:Distance, height:Distance )
get-coordinate-for-string-index:レンダリングされる文字列のインデックスに最もよく対応するグラフィックの座標を規定します。
public {Renderer2d.get-coordinate-for-string-index
index:int,
string:StringInterface,
font:Font = self.font,
start:int = 0,
length:int = string.size - start
}:FloatDistance
get-font-ascent:現在のフォントの上昇量を示す FloatDistance を返します。
public final {Renderer2d.get-font-ascent}:FloatDistance
get-font-descent:現在のフォントの下降量を示す FloatDistance を返します。
public final {Renderer2d.get-font-descent}:FloatDistance
get-font-line-gap:現在のフォントのテキストの行間長を示す FloatDistance を返します。
public final {Renderer2d.get-font-line-gap}:FloatDistance
get-font-names:この Renderer2d で使用可能なフォント名をすべて取得します。
public {Renderer2d.get-font-names}:{Array-of String}
get-font-underline-position:ベースラインを基準として、現在のフォントで下線がレンダリングされる位置を示す FloatDistance を返します。
public final {Renderer2d.get-font-underline-position}:FloatDistance
get-font-underline-thickness:現在のフォントの下線の太さを示す FloatDistance を返します。
public final {Renderer2d.get-font-underline-thickness}:FloatDistance
get-string-advance-width:現在のフォントの文字列の advance width (送り幅)を示す FloatDistance を返します。
public {Renderer2d.get-string-advance-width
string:StringInterface,
start:int = 0,
length:int = string.size - start
}:FloatDistance
get-string-index-for-coordinate:レンダリングされる文字列の座標に最もよく対応する文字列内のインデックスを規定します。
public {Renderer2d.get-string-index-for-coordinate
x:Distance,
string:StringInterface,
font:Font = self.font,
start:int = 0,
length:int = string.size - start
}:int
get-transformation:この Renderer2d に割り当てられた現在の Transformation2d を検索します。
public sealed {Renderer2d.get-transformation
out:Transformation2d = {Transformation2d}
}:Transformation2d
pop-clipping-region:
protected {Renderer2d.pop-clipping-region}:void
push-clipping-region:
protected {Renderer2d.push-clipping-region r:Region}:void
render-drawable:オプションでソースの四角形を指定し、軸に揃えられた四角形の上に Drawable をレンダリングします。
public abstract {Renderer2d.render-drawable
dst-x:Distance,
dst-y:Distance,
dst-width:Distance,
dst-height:Distance,
src:Drawable,
src-x:Distance = 0m,
src-y:Distance = 0m,
src-width:Distance = src.width,
src-height:Distance = src.height
}:void
render-ellipse:境界ボックス内で楕円形をレンダリングします。
public abstract {Renderer2d.render-ellipse
x:Distance,
y:Distance,
width:Distance,
height:Distance,
start:Angle = 0deg,
stop:Angle = 360deg,
fill-pattern:FillPattern = self.fill-pattern
}:void
render-elliptic-path:現在の fill-pattern および stroke-thickness を使用して、境界ボックス内で楕円形のパスをレンダリングします。
public abstract {Renderer2d.render-elliptic-path
x:Distance,
y:Distance,
width:Distance,
height:Distance,
stroke-thickness:Distance = self.stroke-thickness,
line-style:LineStyle = self.line-style,
start:Angle = 0degrees,
stop:Angle = 360degrees,
fill-pattern:FillPattern = self.fill-pattern,
wedge?:bool = false
}:void
render-line:現在の fill-pattern を使用し、2 つの端点を与えて線セグメントをレンダリングします。
public abstract {Renderer2d.render-line
start-x:Distance,
start-y:Distance,
end-x:Distance,
end-y:Distance,
fill-pattern:FillPattern = self.fill-pattern,
stroke-thickness:Distance = self.stroke-thickness,
line-style:LineStyle = self.line-style
}:void
render-path:現在の fill-pattern および stroke-thickness を使用して、Path をレンダリングします。
public abstract {Renderer2d.render-path
path:Path,
fill-pattern:FillPattern = self.fill-pattern,
stroke-thickness:Distance = self.stroke-thickness,
line-style:LineStyle = self.line-style
}:void
render-pixmap:オプションでソースの四角形を指定し、四角形の上に Pixmap をレンダリングします。
public abstract {Renderer2d.render-pixmap
dst-x:Distance,
dst-y:Distance,
dst-width:Distance,
dst-height:Distance,
src:Pixmap,
src-x:double = 0,
src-y:double = 0,
src-width:double = src.width,
src-height:double = src.height
}:void
render-polygon:現在の fill-pattern を使用して、汎用の、凹型の可能性があり、自己交差する可能性のあるポリゴンを Distance2d のリストからレンダリングします。
public sealed {Renderer2d.render-polygon
fill-pattern:FillPattern = self.fill-pattern,
...:Distance2d
}:void
render-polygon-from-array:現在の fill-pattern を使用して、汎用の、凹型の可能性があり、自己交差する可能性のあるポリゴンを Distance2d の配列からレンダリングします。
public abstract {Renderer2d.render-polygon-from-array
polygon:{FastArray-of Distance2d},
fill-pattern:FillPattern = self.fill-pattern
}:void
render-rectangle:現在の fill-pattern を使用して Renderer2d 上に四角形をレンダリングします。
public abstract {Renderer2d.render-rectangle
x:Distance,
y:Distance,
width:Distance,
height:Distance,
fill-pattern:FillPattern = self.fill-pattern,
uv1:Fraction2d = {Fraction2d 0, 0},
uv2:Fraction2d = {Fraction2d 1, 1}
}:void
render-rectangular-path:現在の塗りつぶしパターンと線の太さを使用して、四角形の周囲のパスをレンダリングします。
public abstract {Renderer2d.render-rectangular-path
x:Distance,
y:Distance,
width:Distance,
height:Distance,
fill-pattern:FillPattern = self.fill-pattern,
stroke-thickness:Distance = self.stroke-thickness,
line-style:LineStyle = self.line-style
}:void
render-region:現在の fill-pattern を使用して Region をレンダリングします。
public abstract {Renderer2d.render-region
region:Region,
fill-pattern:FillPattern = self.fill-pattern
}:void
render-rounded-rectangle:現在の fill-pattern を使用して Renderer2d 上に丸みを帯びた四角形をレンダリングします。
public {Renderer2d.render-rounded-rectangle
x:Distance,
y:Distance,
width:Distance,
height:Distance,
x-radius:Distance,
y-radius:Distance,
fill-pattern:FillPattern = self.fill-pattern
}:void
render-rounded-rectangular-path:現在の塗りつぶしパターンと線の太さを使用して、丸みを帯びた四角形の周囲のパスをレンダリングします。
public {Renderer2d.render-rounded-rectangular-path
x:Distance,
y:Distance,
width:Distance,
height:Distance,
x-radius:Distance,
y-radius:Distance,
fill-pattern:FillPattern = self.fill-pattern,
stroke-thickness:Distance = self.stroke-thickness,
line-style:LineStyle = self.line-style
}:void
render-stippled-rectangle:現在の塗りつぶしパターンと指定された点描パターンを使用して、Renderer2d 上に四角形をレンダリングします。
public {Renderer2d.render-stippled-rectangle
x:Distance,
y:Distance,
width:Distance,
height:Distance,
fill-pattern:FillPattern = self.fill-pattern,
stipple-mask:#{Map-of bool} = null
}:void
render-string:指定されたベースライン位置で始まる文字列をレンダリングします。
public {Renderer2d.render-string
x:Distance,
y:Distance,
string:StringInterface,
font:Font = self.font,
fill-pattern:FillPattern = self.fill-pattern,
start:int = 0,
length:int = string.size - start
}:void
render-triangle:現在の fill-pattern を使用して三角形をレンダリングします。これは Renderer3d.render-polygon-from-array を呼び出す際に便利な機能です。
public abstract {Renderer2d.render-triangle
v0:Distance2d,
v1:Distance2d,
v2:Distance2d,
fill-pattern:FillPattern = self.fill-pattern
}:void
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (ファクトリ)
public {Renderer2d.default drawable:Drawable}:Renderer2d

与えられた Drawable で使用する Renderer2d を作成します。

注意事項

Drawable 用に作成されるレンダラーは 1 つだけ (Renderer3d または Renderer2d) です。2 つ以上を作成しようとすると例外がスローされます。



プロパティ詳細
antialiasing? (アクセサ)
アクセサ protected Renderer2d.antialiasing?:bool
セッター protected Renderer2d.antialiasing?:bool
この項目はサポートされていません。内部使用限定となっています。


caps (アクセサ)
アクセサ public abstract Renderer2d.caps:Renderer2dCapabilities

この Renderer2dRenderer2dCapabilities を取得します。



clipping-region (アクセサ)
アクセサ protected Renderer2d.clipping-region:Region
セッター protected Renderer2d.clipping-region:Region
この項目はサポートされていません。内部使用限定となっています。


clipping-region-empty? (アクセサ)
アクセサ public Renderer2d.clipping-region-empty?:bool

Renderer2d のクリッピング領域が空の場合は true を返します。

説明

クリッピング領域の境界がゼロの場合も、プロパティは true になります。


device-pixel-size (アクセサ)
アクセサ public Renderer2d.device-pixel-size:Distance

デバイスのピクセル サイズを返します。

説明

1/(resolution of the device) と等しくなります。


device-resolution (アクセサ)
アクセサ public Renderer2d.device-resolution:Resolution

デバイスの解像度 (Distance あたりのピクセル数) です。



draw-operation (アクセサ)
アクセサ public sealed Renderer2d.draw-operation:DrawOperation
セッター protected sealed Renderer2d.draw-operation:DrawOperation

この Renderer2d に割り当てられた現在の DrawOperation

説明

この値は with-render-properties を使用して変更できます。


fill-pattern (アクセサ)
アクセサ public sealed Renderer2d.fill-pattern:FillPattern
セッター protected sealed Renderer2d.fill-pattern:FillPattern

この Renderer2d に割り当てられた現在の FillPattern

説明

この値は with-render-properties を使用して変更できます。これに代わる方法としては、メソッド呼び出しの間にこの値をオーバーライドするキーワード引数を受け入れるレンダリング方法がいくつかあります。


font (アクセサ)
アクセサ public sealed Renderer2d.font:Font
セッター protected sealed Renderer2d.font:Font

この Renderer2d に割り当てられた現在の Font

説明

この値は with-render-properties を使用して変更できます。これに代わる方法としては、メソッド呼び出しの間にこの値をオーバーライドするキーワード引数を受け入れるレンダリング方法がいくつかあります。


line-style (アクセサ)
アクセサ public sealed Renderer2d.line-style:LineStyle
セッター protected sealed Renderer2d.line-style:LineStyle

線のレンダリングに使用されるスタイル。

説明

この値は with-render-properties を使用して変更できます。
詳細については、LineStyle を参照してください。


pixel-size (アクセサ)
アクセサ public sealed Renderer2d.pixel-size:Distance

この Renderer2d が 1 単位と見なす距離を返します。

説明

pixel-size は事実上最も小さい可視単位です。次の計算から、0.25mm に最も近い値になります。
            x * Renderer2d.device-pixel-size
ここで、x は整数です。

レンダラーの Renderer2d.device-pixel-size と同じでない場合がありますが、このレンダラーでレンダリングを行うときはこのサイズを使用する必要があります

たとえば、1200 dpi プリンタではこのプロパティが 100dpi (1 インチの 1/100) に変換されます。これは、それより小さいものは視覚的に失われるためです。


rendering-to-printer? (アクセサ)
アクセサ public sealed Renderer2d.rendering-to-printer?:bool

この Renderer2d のレンダリング先がプリンタであるかどうかを示すブール値を返します。



stroke-thickness (アクセサ)
アクセサ public sealed Renderer2d.stroke-thickness:Distance
セッター protected sealed Renderer2d.stroke-thickness:Distance

この Renderer2d に割り当てられた現在の線の太さ。

説明

この値は with-render-properties を使用して変更できます。これに代わる方法としては、メソッド呼び出しの間にこの値をオーバーライドするキーワード引数を受け入れるレンダリング方法がいくつかあります。


texture-transformation (アクセサ)
アクセサ protected sealed Renderer2d.texture-transformation:TextureTransformation2d
この項目はサポートされていません。内部使用限定となっています。


transformation (アクセサ)
アクセサ protected Renderer2d.transformation:Transformation2d
この項目はサポートされていません。内部使用限定となっています。




クラス プロシージャ詳細
create-offscreen (クラスプロシージャ)
public {Renderer2d.create-offscreen
width:Distance,
height:Distance,
resolution:Resolution = 0dpi,
use-host-rendering?:bool = false,
advanced-draw-operations?:bool = false,
...:Resolution
}:(Renderer2d, Drawable)

イメージの編集やオフスクリーンのレンダリングに使用可能な Drawable を作成します。作成した Drawable で使用される Renderer2d も作成します。

width, height: 作成された Drawable の幅と高さ。
resolution: 作成された DrawableResolution。解像度は、作成された DrawableDistance 単位あたりのピクセル サンプル数になります。解像度は通常、インチあたりのドット数で指定されます。次のコードでは、100dpi の解像度で 2 インチの正方形のオフスクリーン描画を作成します。 {Renderer2d.create-offscreen 2in, 2in, resolution = 100dpi}

既定値である Odpi は表示解像度を意味します。
use-host-rendering?: false (既定値) の場合、システムでは速度より正確さを優先するレンダリング システムの選択が行われ、true の場合は正確さより速度を優先するレンダリング システムの選択が行われます。ホスト レンダリングでは、一部の機能が正しく動作しないことがよくあります (alpha-blending など)。
advanced-draw-operations?:
true の場合、すべての DrawOperation は結果として返されるレンダラーによってサポートされます。DrawOperation.sourceDrawOperation.mask または DrawOperation.blend 以外の DrawOperation を使う場合、このフラグを true に設定する必要があります。
このフラグは use-host-rendering? が false の場合のみ設定してください。これは、ホスト レンダラーが使われる場合は最小限の DrawOperation のセットしかサポートされないためです。(use-host-rendering? = trueadvanced-draw-operations? = true の不正な組み合わせを指定すると例外がスローされます。)
...: resolution が指定されない場合、代わりに残余引数内の単一の Resolution 値を渡すことができます。この構文は、Renderer2d.create-offscreen の以前の実装からの移行を容易にします。以前の実装では resolution はキーワード引数ではなく位置キーワードでした。キーワード パラメータを含め、複数の解像度パラメータを指定することはできません。

説明

resolution パラメータを Renderer2d.create-offscreen に指定する際に、0dpi と指定しプライマリーディスプレイと同様の解像度を要求することもできます。 もう一つの方法として、DisplayContext オブジェクトを使用してピクセルのサイズを判別し、ディスプレイの解像度を決定することもできます。 解像度はピクセル サイズの逆数になります。


例: 画面の解像度を取得
{value
    let display-context:DisplayContext = 
        {get-default-display-context}
    let resolution:Resolution = 1 / display-context.pixel-size 
    {VBox 
        {HBox "Display Resolution is: ", resolution},
        {format 
            "This is equal to %f dots per inch", 
            resolution / 1dpi
        }
    }
}


レンダリングからこのオフスクリーン Drawable への出力を取得するには、Drawable.to-Pixmap または Texture.from-drawable#factory を呼び出します。また、Renderer2dGraphic と関連付けられている場合 (例:Graphic.draw)、Renderer2d.render-drawable を使用してオフスクリーン描画を画面にコピーすることもできます。

ここでは、Renderer2d.create-offscreen を使用してオフスクリーン描画を作成し、そのオフスクリーン Drawable に描画してから、DrawableGraphic にコピーする方法を示しています。
例: オフスクリーン Drawable を画面にコピー
{let 
    (offscreen-r2d:Renderer2d, offscreen-drawable:Drawable) = 
        {Renderer2d.create-offscreen 4cm, 4cm, resolution = 50dots/1cm}
}
{do
    {offscreen-r2d.clear fill-pattern = {FillPattern.get-black}}
    {offscreen-r2d.render-rectangle
        1cm, 1cm, || x, y
        2cm, 2cm, || width, height
        fill-pattern = {FillPattern.get-violet}
    }
}
{define-class public MyFill {inherits Fill}
  {constructor public {default ...}
    {construct-super ...}
  }
  {method public {draw r2d:Renderer2d}:void
    {super.draw r2d}
    {r2d.render-drawable 
        -2cm, -2cm, || x, y 
        4cm,  4cm,  || width, height
        offscreen-drawable
    }
  }
}
{value
    {MyFill 
        width = 6cm, height = 6cm,
        background = {FillPattern.get-maroon}
    }
}

注意事項

Renderer2d は高レベルのインターフェイスを提供し、Region とイメージ フィルタを使用できます(CURL.GRAPHICS.IMAGEFILTER を参照してください)が、Renderer3dは三角形ベースのプリミティブに制限されています。
要求されたオフスクリーン描画面が下位のレンダリング システムでサポートするには大きすぎる場合、Renderer2d.create-offscreenSurfaceTooLargeException をスローすることがあります。
オフスクリーン描画面の幅および高さの上限はシステムによって異なります。一般的には、width * resolution が 2048 より小さく、height * resolution が 1200 より小さければ問題ありませんが、保証はされていません。大きい面積は、たいていのシステムで動作します。しかし、開発者がシステムによって動いたり動かなかったりするコードを偶然に書いてしまうことを防ぐために、通常は制限を低くすることを推奨します。Drawable.max-widthDrawable.max-heightDrawable.set-bypass-size-restriction? を参照してください。
オフスクリーン Drawable はかなりのホスト リソースを消費するので、頻繁には使用しないでください。さらに、Appletの存続期間を通して Drawable を使用しない場合は、不要になった Drawable を破棄してください。これには Drawable.destroy を使用します。Curl Lab 開発者ガイドの 高度な 2D レンダリング にある例題を参照してください。

戻り値

作成された Renderer2d および作成された Drawable



メソッド詳細
clear (メソッド)
public {Renderer2d.clear
fill-pattern:FillPattern = self.fill-pattern
}:void

現在の clipping-region を与えられた FillPattern にクリアします。

fill-pattern: クリッピング領域を塗りつぶす FillPattern

注意事項

{renderer2d.clear fill-pattern = fill-pattern} の呼び出しは次のように呼び出すのと同じです。
let region:Region = {renderer2d.get-clipping-region}
let (x:Distance, y:Distance, width:Distance, height:Distance) =
    {clipping-region.get-bounding-box}
{renderer2d.render-rectangle
    x,
    y,
    width,
    height,
    fill-pattern = fill-pattern
}


get-clipping-region (メソッド)
public {Renderer2d.get-clipping-region}:Region

Renderer2d の現在のクリッピング領域を取得します。

説明

初期クリッピング領域は、その Drawable の境界内の領域になります。

注意事項

返される Region は、この Renderer2d の現在の変換に関連しています。


get-clipping-region-bounding-box (メソッド)
public {Renderer2d.get-clipping-region-bounding-box
}:(x:Distance, y:Distance, width:Distance, height:Distance )

現在のクリッピング領域の境界ボックスの寸法を返します。

説明

このメソッドは境界の領域が空の場合には例外をスローします。この状態は Renderer2d.clipping-region-empty? を使用して調べることができます。

詳細は Renderer2d.get-clipping-regionRegion.get-bounding-box を参照してください。

注意事項

返される座標は、この Renderer2d の現在の変換に関連します。


get-coordinate-for-string-index (メソッド)
public {Renderer2d.get-coordinate-for-string-index
index:int,
string:StringInterface,
font:Font = self.font,
start:int = 0,
length:int = string.size - start
}:FloatDistance

レンダリングされる文字列のインデックスに最もよく対応するグラフィックの座標を規定します。

index: レンダリングされる文字列内のインデックスです。この値は start ではなく、文字列全体に関連しています。この値が 0 より小さい、あるいは string.size より大きい場合、例外がスローされます。
string: 文字列です。
font: 使用するフォント (オプション)。指定された場合、このパラメータは現在の フォント レンダリング プロパティをオーバーライドします。
start: 文字列の開始文字のインデックス。
length: レンダリングする文字数。

説明

このメソッドは get-string-advance-width に似ていますが、文字列の個々の文字がレンダリングされる座標を規定しようとします。その違いはコンテキストに依存した方法で文字を調整するレンダリングのシステムにおいて発生します。たとえば、そのようなシステムにおいて、文字列 "abc" 内の文字 'c' の座標は、文字列 "ab" の長さと等しくない可能性があります。 indexstart より小さい場合、返される座標は 0m になります。indexstart + length より大きい場合、返される座標はインデックス start + length と同じ値になります。
導入: バージョン 6.0


get-font-ascent (メソッド)
public final {Renderer2d.get-font-ascent}:FloatDistance

現在のフォントの上昇量を示す FloatDistance を返します。

説明

現在のフォントの設定方法については with-render-properties を参照してください。


次の図では、文字列 "Jj" の上昇を示しています。






get-font-descent (メソッド)
public final {Renderer2d.get-font-descent}:FloatDistance

現在のフォントの下降量を示す FloatDistance を返します。

説明

現在のフォントの設定方法については with-render-properties を参照してください。


次の図では、文字列 "Jj" の下降を示しています。






get-font-line-gap (メソッド)
public final {Renderer2d.get-font-line-gap}:FloatDistance

現在のフォントのテキストの行間長を示す FloatDistance を返します。

説明

現在のフォントの設定方法については with-render-properties を参照してください。


次の図では、文字列 "Jj" の line-gap を示しています。






get-font-names (メソッド)
public {Renderer2d.get-font-names}:{Array-of String}

この Renderer2d で使用可能なフォント名をすべて取得します。



get-font-underline-position (メソッド)
public final {Renderer2d.get-font-underline-position}:FloatDistance

ベースラインを基準として、現在のフォントで下線がレンダリングされる位置を示す FloatDistance を返します。

説明

現在のフォントの設定方法については with-render-properties を参照してください。


次の図では、文字列 "Jj" の underline-position を示しています。






get-font-underline-thickness (メソッド)
public final {Renderer2d.get-font-underline-thickness}:FloatDistance

現在のフォントの下線の太さを示す FloatDistance を返します。

説明

現在のフォントの設定方法については with-render-properties を参照してください。


get-string-advance-width (メソッド)
public {Renderer2d.get-string-advance-width
string:StringInterface,
start:int = 0,
length:int = string.size - start
}:FloatDistance

現在のフォントの文字列の advance width (送り幅)を示す FloatDistance を返します。

string: 測定する文字列。
start: 測定を開始する文字の文字列中のインデックス。この指定はオプションです。指定されなかった場合の既定値は 0 になります。
length: 測定する部分文字列の長さ。指定されない場合の既定値は、文字列の長さから start を引いた値になります。

説明

現在のフォントの設定方法については with-render-properties を参照してください。


次の図では、文字列 "Jj" の advance width(送り幅) を示しています。






get-string-index-for-coordinate (メソッド)
public {Renderer2d.get-string-index-for-coordinate
x:Distance,
string:StringInterface,
font:Font = self.font,
start:int = 0,
length:int = string.size - start
}:int

レンダリングされる文字列の座標に最もよく対応する文字列内のインデックスを規定します。

x: レンダリングされる文字列に関連する座標です。
string: 文字列です。
font: 使用するフォント (オプション)。指定された場合、このパラメータは現在の フォント レンダリング プロパティをオーバーライドします。
start: 文字列の開始文字のインデックス。
length: レンダリングする文字数。

説明

このメソッドの目的に関する詳細情報は、get-coordinate-for-string-index を参照してください。 x が 0m より小さい場合、返されるインデックスは start になります。x が文字列のレンダリング幅より大きい場合は、返されるインデックスは start + length になります。
導入: バージョン 6.0


get-transformation (メソッド)
public sealed {Renderer2d.get-transformation
out:Transformation2d = {Transformation2d}
}:Transformation2d

この Renderer2d に割り当てられた現在の Transformation2d を検索します。

out: 変換のコピー先である Transformation2d

注意事項

この値は with-render-properties を使用して変更できます。


pop-clipping-region (メソッド)
protected {Renderer2d.pop-clipping-region}:void
この項目はサポートされていません。内部使用限定となっています。


push-clipping-region (メソッド)
protected {Renderer2d.push-clipping-region r:Region}:void
この項目はサポートされていません。内部使用限定となっています。


render-drawable (メソッド)
public abstract {Renderer2d.render-drawable
dst-x:Distance,
dst-y:Distance,
dst-width:Distance,
dst-height:Distance,
src:Drawable,
src-x:Distance = 0m,
src-y:Distance = 0m,
src-width:Distance = src.width,
src-height:Distance = src.height
}:void

オプションでソースの四角形を指定し、軸に揃えられた四角形の上に Drawable をレンダリングします。

dst-x, dst-y, dst-width, dst-height: ソース Drawable がレンダリングされる出力先の四角形。dst-width および dst-height は共にゼロ以上の値であることが必要です。
src: ソース Drawable
src-x, src-y, src-width, src-height: レンダリングされるソース Drawable の四角形。src-width および src-height は共にゼロより大きい値であることが必要です。指定されない場合、ソースの四角形はソース Drawable 全体になり、src-x および src-y には既定値 0 を使用し、src-width および src-height にはソース Drawable の幅と高さを使用します。

説明

レンダリングの前に、現在の空間 Transformation2d によって出力先 (dst-xdst-y) が変換されます (詳細については with-render-properties を参照してください)。現在の空間 Transformation2d によって幅と高さのスケールが変更します。結果として、出力先は常に軸に揃えられることになります。

四角形については、指定された四角形内にピクセルの中心がある場合、このピクセルは必ず塗りつぶされます。四角形の外側に中心があるピクセルは塗りつぶされません。四角形のちょうど端に位置するピクセルの場合、上端および左端にあるピクセルは塗りつぶされ、右端および下端にあるピクセルは塗りつぶされません。

注意事項

Renderer2d.render-pixmap と異なり、 Renderer2d.render-drawable はソース イメージを並べたり、反転または回転を行なうことはできません。


render-ellipse (メソッド)
public abstract {Renderer2d.render-ellipse
x:Distance,
y:Distance,
width:Distance,
height:Distance,
start:Angle = 0deg,
stop:Angle = 360deg,
fill-pattern:FillPattern = self.fill-pattern
}:void

境界ボックス内で楕円形をレンダリングします。

x, y: 境界ボックスの左上隅。
width, height: 境界ボックスの幅および高さ。width および height は正または負を指定できます。
start: 扇形の切片 (楕円形全体ではなく) の開始角度。0deg は 3 時の位置になります。
stop: 扇形の切片の停止角度。切片は start から時計回りに移動して描画されます。
fill-pattern: ポリゴンをレンダリングする FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。

説明

塗りつぶされるピクセルはすべて境界ボックス内にあることだけが保証されています。

境界ボックスは、現在の空間 Transformation2d によって、現在のtransformation レンダリング プロパティで設定されたとおりに変換されます。対応するテクスチャ座標は、現在の TextureTransformation2d によって、texture-transformation レンダリング プロパティで設定したとおりに変換されます。詳細については with-render-properties の API ドキュメントを参照してください。


render-elliptic-path (メソッド)
public abstract {Renderer2d.render-elliptic-path
x:Distance,
y:Distance,
width:Distance,
height:Distance,
stroke-thickness:Distance = self.stroke-thickness,
line-style:LineStyle = self.line-style,
start:Angle = 0degrees,
stop:Angle = 360degrees,
fill-pattern:FillPattern = self.fill-pattern,
wedge?:bool = false
}:void

現在の fill-pattern および stroke-thickness を使用して、境界ボックス内で楕円形のパスをレンダリングします。

x, y: 境界ボックスの左上隅。
width, height: 境界ボックスの幅と高さ。
fill-pattern: 楕円形をレンダリングする FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。

楕円形をレンダリングするのに使用される色は、使用される fill-pattern の平均の pixel-color です。
stroke-thickness: 楕円形をレンダリングする線の太さ (オプション)。指定された場合、このパラメータは現在の stroke-thickness レンダリング プロパティをオーバーライドします。0m の stroke-thickness は細い線を示し、これ以外の場合は太い線がレンダリングされます。
line-style: 楕円形をレンダリングするスタイル (オプション)。このパラメータが指定されると、現在の線スタイル レンダリング プロパティがオーバーライドされます。詳細については、LineStyle を参照してください。
start: 扇形の切片 (楕円形全体ではなく) の開始角度。0deg は 3 時の位置になります。
stop: 扇形の切片の停止角度。切片は start から時計回りに移動して描画されます。
wedge?: 切片の周辺全体をレンダリングするかどうかを指定します。これが true (および start 引数と stop 引数が楕円形全体を定義していない) 場合、このメソッドは放射型も描画します。

説明

境界ボックスは、現在の transformation レンダラー プロパティを使用して変換されます。詳細に関しては、with-render-properties の API ドキュメンテーションを参照してください。
太さが増え、レンダリングされる線は境界ボックスの中心に向かって伸びるため、render-elliptic-path は他の線のレンダリング呼び出しと異なることに注意してください。
複数の繋がれた線を描画する場合には、通常 Renderer2d.render-path のような単一のレンダリング呼び出しを使用するほうがよいです。このメソッドは、線の繋ぎ目を正しく描画しようとします。たとえば、太い線を使用する場合は、2 つの分かれた線分間の繋ぎ目は連続しません。その代わりに、説明しように部分的に重なる 2 つの四角形として表されます。
ピクセル カバレッジ ルールの議論や、線レンダリングの他の微妙な色合いに関しては Renderer2d.render-line のドキュメントを参照してください。


render-line (メソッド)
public abstract {Renderer2d.render-line
start-x:Distance,
start-y:Distance,
end-x:Distance,
end-y:Distance,
fill-pattern:FillPattern = self.fill-pattern,
stroke-thickness:Distance = self.stroke-thickness,
line-style:LineStyle = self.line-style
}:void

現在の fill-pattern を使用し、2 つの端点を与えて線セグメントをレンダリングします。

start-x, start-y: 線セグメントの始点。
end-x, end-y: 線セグメントの終点。
fill-pattern: 線をレンダリングする FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。

線のレンダリングに使用される色は、使用される fill-pattern の平均の pixel-color です。
stroke-thickness: 線をレンダリングする線の太さ (オプション)。指定された場合、このパラメータは現在の stroke-thickness レンダリング プロパティをオーバーライドします。0m の stroke-thickness は細い線を示し、これ以外の場合は太い線がレンダリングされます。
line-style: 線をレンダリングするスタイル (オプション)。このパラメータが指定されると、現在の線スタイル レンダリング プロパティがオーバーライドされます。詳細については、LineStyle を参照してください。

説明

システムがサポートする線のスタイルは、細い線と太い線の 2 つのスタイルです。細い線では stroke-thickness が 0 に指定され、1 ピクセルの幅でレンダリングされます。高速であり、正確さに欠けるレンダリング メソッドを主に使用します。太い線では stroke-thickness がゼロでない値に指定され、要求されたとおりの太さでレンダリングされます。
太い線は通常細い線よりレンダリング速度が遅いことに注意してください。
レンダリングの前に、線はピクセル座標に変換され、整数のピクセル値に丸められます。特にアンチエイリアスが有効な場合に、これによってピクセル カバレッジでさえも確実になります。丸めの機能は次の通りです。Distance 値として設定された x、デスティネーション レンダラー上のピクセル サイズや Distance ユニット内の device-pixel-size。:
let x-pixels:double = x / device-pixel-size
let x-rounded:int = {ceiling x - 0.5} asa int
細い線の場合、単一のピクセル幅で埋められた、丸められたピクセルから下や右に延長される四角形として線を想像するかもしれません。たとえば、ピクセル 2, 2 からピクセル 2, 6 で線をレンダラーする場合、横 1 ピクセルで高さ 5 ピクセルの 2, 2 でレンダリングされた四角形として線を想像するかもしれません。
太い線の場合、これは少し複雑です。ピクセルの半分がオフセットで、線の中心に置かれた四角形として線を想像してみてください。上記と同じ例で、ストロークの太さが 3 ピクセルの場合、範囲が 3, 5 の座標 1, 1 から始まる四角形を想像するかもしれません。-- x = 2.5 あたりで真ん中に置かれる四角形。
細い線の場合、始点は塗りつぶされることが保証されており、終点は塗りつぶされないことが保証されています。細い水平線及び垂直線の場合、塗りつぶされるピクセルはすべて開始ピクセルと同じ行または列内にあることが保証されています。
太い線の場合、始端と終端は平坦になり、線に対して垂直で、線の始点と終点に(中央で)交差しています。太い水平線及び垂直線の場合、始端は開始ピクセルと同じ行または列内にあり、塗りつぶされることが保証されています。また、終端は終了ピクセルと同じ行または列内にあり、塗りつぶされないことが保証されています。
複数の接続された線を描画する場合は、通常 Renderer2d.render-path のような単一のレンダリング呼び出しを使用することを推奨します。そのメソッドは、線の繋ぎ目を正しくレンダリングしようとします。例えば、太い線を使用する場合に 2 つの別れた線セグメント間の繋ぎ目は連続していません。代わりに、上述のようにその行は 2 つの部分的に重なった四角形のように表現されます。
レンダリングされる座標は、現在の transformation レンダリング プロパティを使用して変換されます。詳細については with-render-properties の API ドキュメントを参照してください。


render-path (メソッド)
public abstract {Renderer2d.render-path
path:Path,
fill-pattern:FillPattern = self.fill-pattern,
stroke-thickness:Distance = self.stroke-thickness,
line-style:LineStyle = self.line-style
}:void

現在の fill-pattern および stroke-thickness を使用して、Path をレンダリングします。

path: レンダリングする Path
fill-pattern: パスをレンダリングする FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。

パスをレンダリングするのに使用される色は、使用される fill-pattern の平均の pixel-color です。
stroke-thickness: パスをレンダリングする線の太さ (オプション)。指定された場合、このパラメータは現在の stroke-thickness レンダリング プロパティをオーバーライドします。0m の stroke-thickness は細い線を示し、これ以外の場合は太い線がレンダリングされます。
line-style: パスをレンダリングするスタイル (オプション)。このパラメータが指定されると、現在の線スタイル レンダリング プロパティがオーバーライドされます。詳細については、LineStyle を参照してください。

説明

一般的に、パスは Renderer2d.render-line の呼び出しの連続として振舞います。ピクセル カバレッジのルールや細い線と太い線の違いに関しては、Renderer2d.render-line を参照してください。
path 内でどのように繋ぎ目がレンダリングされるかは保証されていません。しかし、つなぎ目をスムーズにしようとするので、可能であれば同時に全ての線を繋げるレンダラーを呼び出すべきです。たとえば、render-line を複数回呼び出さずに render-path を使用します。
レンダリングされた座標は、現在の transformation レンダラー プロパティを使用して変換されます。詳細に関しては、with-render-properties の API ドキュメンテーションを参照してください。


render-pixmap (メソッド)
public abstract {Renderer2d.render-pixmap
dst-x:Distance,
dst-y:Distance,
dst-width:Distance,
dst-height:Distance,
src:Pixmap,
src-x:double = 0,
src-y:double = 0,
src-width:double = src.width,
src-height:double = src.height
}:void

オプションでソースの四角形を指定し、四角形の上に Pixmap をレンダリングします。

dst-x, dst-y, dst-width, dst-height: ソース Pixmap がレンダリングされる出力先の四角形。dst-width および dst-height の両方が正か負である場合、負の値はその軸に沿ってソース イメージを反転します。
src: 四角形をレンダリングするソース ピクスマップ。
src-x, src-y: 四角形の左上端に対応するピクスマップ上の左上端。指定されない場合は、src-x および src-y は共に既定では 0 になります。
src-width: レンダリングするソースとして使用するピクスマップ上の四角形の幅。この値がゼロより小さい場合、イメージは水平に反転されます。{param src-x} + {param src-width} - 1 は、四角形の右端に対応するピクスマップ上の垂直辺です。指定されない場合、src-width は既定ではソース Pixmap の幅全体になります。
src-height: レンダリングするソースとして使用するピクスマップ上の四角形の高さ。この値がゼロより小さい場合、イメージは垂直に反転されます。{param src-y} + {param src-height} - 1 は、四角形の下端に対応するピクスマップ上の水平辺です。指定されない場合、src-width は既定ではソース Pixmap の幅全体になります。

説明

レンダリングの前に、四角形の四隅はすべて現在の空間 Transformation2d によって変換されます (詳細については with-render-properties を参照してください)。結果として、これは軸に揃っていない四角形になります。ソースの座標は現在のテクスチャ TextureTransformation2d によって変換されません

src-width または src-height がソース ピクスマップの幅または高さより大きい場合、イメージは並べて表示されます。

四角形については、指定された四角形内にピクセルの中心がある場合、このピクセルは必ず塗りつぶされます。四角形の外側に中心があるピクセルは塗りつぶされません。四角形の端に位置するピクセルの場合、上端および左端にあるピクセルは塗りつぶされ、右端および下端にあるピクセルは塗りつぶされません。

注意事項

空間回転が適用された四角形は、 Renderer2dCapabilities.can-render-rotated-textures? 機能が true の場合のみテクスチャがマップされます。

注意事項

{Renderer2d.render-pixmap dst-x, dst-y, dst-width, dst-height, src, src-x = src-x, src-y = src-y, src-width = src-width, src-height = src-height} の呼び出しは、次の呼び出しと非常に似ています。
{Renderer2d.render-rectangle
    dst-x,
    dst-y,
    dst-width,
    dst-height,
    fill-pattern = {FillPattern src},
    uv1 =
        {Fraction2d
            src-x / src.width,
            src-y / src.height
        },
    uv2 =
        {Fraction2d
            (src-x + src-width) / src.width,
            (src-y + src-height) / src.height
        }
}

注意事項

警告:Renderer2d.render-pixmap の動作は Renderer3d.render-pixmap と異なります。具体的には、Renderer3d.render-pixmap ではソース イメージを並べて表示することはできません。さらに、Renderer3d.render-pixmap ではイメージの回転も行なわれません。


render-polygon (メソッド)
public sealed {Renderer2d.render-polygon
fill-pattern:FillPattern = self.fill-pattern,
...:Distance2d
}:void

現在の fill-pattern を使用して、汎用の、凹型の可能性があり、自己交差する可能性のあるポリゴンを Distance2d のリストからレンダリングします。

...: ポリゴンの頂点を示す Distance2d のリスト。
fill-pattern: ポリゴンをレンダリングする FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。

説明

FillPattern がポリゴンに適用されると、その境界ボックスの左端と上端には 0 のテクスチャ座標が与えられ、下端と右端には 1 のテクスチャ座標が与えられます。次に、ポリゴン内の各点に、境界ボックス内のその位置を相対的に表すテクスチャ座標が割り当てられます。

さらに各点は、現在の空間 Transformation2d によって現在のtransformation レンダリング プロパティで設定されたとおりに変換されます。対応するテクスチャ座標は、現在の TextureTransformation2d によって texture-transformation レンダリング プロパティで設定したとおりに変換されます。詳細については with-render-properties の API ドキュメントを参照してください。

ポリゴンの塗りつぶし規則の詳細については Renderer2dCapabilities.accurate-fill-rules? を参照してください。

注意事項

Distance2d の配列からポリゴンをレンダリングするには、Renderer2d.render-polygon を参照してください。

注意事項

空間またはテクスチャ回転が適用されたポリゴンは、 Renderer2dCapabilities.can-render-rotated-textures? 機能が true の場合のみテクスチャがマップされます。


render-polygon-from-array (メソッド)
public abstract {Renderer2d.render-polygon-from-array
polygon:{FastArray-of Distance2d},
fill-pattern:FillPattern = self.fill-pattern
}:void

現在の fill-pattern を使用して、汎用の、凹型の可能性があり、自己交差する可能性のあるポリゴンを Distance2d の配列からレンダリングします。

polygon: ポリゴンの頂点を定義する点の配列。
fill-pattern: ポリゴンをレンダリングする FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。

説明

自己交差するポリゴンは、"even-odd" ワインディング規則 ("alternate" とも呼ばれる) を使用してレンダリングされます。これは、与えられた任意のピクセルに対して、そこから光線をキャストしてそれが奇数の端を通過する場合にピクセルが塗りつぶされるという規則です。

FillPattern がポリゴンに適用されると、その境界ボックスの左端と上端には 0 のテクスチャ座標が与えられ、下端と右端には 1 のテクスチャ座標が与えられます。次にポリゴン内の各点に、境界ボックス内のその位置を相対的に表すテクスチャ座標が割り当てられます。

点は現在の空間 Transformation2d によって現在の transformation レンダリング プロパティで設定されたとおりに変換されます。対応するテクスチャ座標は、現在の TextureTransformation2d によって、texture-transformation レンダリング プロパティで設定したとおりに変換されます。詳細については with-render-properties の API ドキュメントを参照してください。

ポリゴンの塗りつぶし規則の詳細については Renderer2dCapabilities.accurate-fill-rules? を参照してください。

注意事項

配列を割り当てずに Distance2d からポリゴンをレンダリングするには、Renderer2d.render-polygon を参照してください。

注意事項

空間またはテクスチャ回転が適用されたポリゴンは、 Renderer2dCapabilities.can-render-rotated-textures? 機能が true の場合のみテクスチャがマップされます。


render-rectangle (メソッド)
public abstract {Renderer2d.render-rectangle
x:Distance,
y:Distance,
width:Distance,
height:Distance,
fill-pattern:FillPattern = self.fill-pattern,
uv1:Fraction2d = {Fraction2d 0, 0},
uv2:Fraction2d = {Fraction2d 1, 1}
}:void

現在の fill-pattern を使用して Renderer2d 上に四角形をレンダリングします。

x, y: 四角形の左上隅。
width, height: 四角形の幅および高さ。width および height は正または負を指定できます。負の値は軸に沿ってソースの塗りつぶしパターンを反転します。
fill-pattern: 四角形をレンダリングする FillPattern (オプション)。指定されていない場合、現在の fill-pattern レンダリング プロパティが使用されます。
uv1, uv2: オプションの fill-pattern のテクスチャ座標。fill-pattern 上で四角形の領域を定義します。uv1 は左上隅で、uv2 は右下隅です。これらの引数では、(0, 0) は FillPattern の左上隅を表し、(1, 1) は右下隅を表します。uv1 の既定値は (0, 0)、uv2 の既定値は (1, 1) で、ソース FillPattern 全体を指定することになります。

この四角形で定義された FillPattern は、xywidth および height で指定された四角形と一致するように伸長、圧縮および回転されます。

テクスチャ座標が [0, 1] の範囲外にある場合、テクスチャは並べて表示されます。

説明

レンダリングの前に、四角形の四隅はすべて現在の空間 Transformation2d によって変換され、それらのテクスチャ座標は現在のテクスチャ TextureTransformation2d によって変換されます (詳細については with-render-properties を参照してください)。結果として、これは軸に揃っていない四角形になります。

四角形については、指定された四角形内にピクセルの中心がある場合、このピクセルは必ず塗りつぶされます。四角形の外側に中心があるピクセルは塗りつぶされません。四角形の端に位置するピクセルの場合、上端および左端にあるピクセルは塗りつぶされ、右端および下端にあるピクセルは塗りつぶされません。

注意事項

空間またはテクスチャ回転が適用された四角形は、 Renderer2dCapabilities.can-render-rotated-textures? 機能が true の場合のみテクスチャがマップされます。

注意事項

{Renderer2d.render-rectangle x, y, width, height, fill-pattern, uv1 = uv1, uv2 = uv2} の呼び出しは、次の呼び出しと非常に似ています。
let src:Pixmap = {fill-pattern.to-Pixmap}
{Renderer2d.render-pixmap
    x, y,
    width,
    height,
    src,
    src-x = uv1.x * src.width,
    src-y = uv1.y * src.height,
    src-width = (uv2.x - uv1.x) * src.width,
    src-height = (uv2.y - uv1.y) * src.height
}


render-rectangular-path (メソッド)
public abstract {Renderer2d.render-rectangular-path
x:Distance,
y:Distance,
width:Distance,
height:Distance,
fill-pattern:FillPattern = self.fill-pattern,
stroke-thickness:Distance = self.stroke-thickness,
line-style:LineStyle = self.line-style
}:void

現在の塗りつぶしパターンと線の太さを使用して、四角形の周囲のパスをレンダリングします。

x, y: Drawable 上の四角形の左上隅。
width, height: 四角形の幅および高さ。width および height は正または負を指定できます。
fill-pattern: 四角形をレンダリングする FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。
stroke-thickness: パスをレンダリングする太さ (オプション)。このパラメータが指定されると、現在の線太さ レンダリング プロパティがオーバーライドされます。
line-style: 四角形をレンダリングするスタイル (オプション)。このパラメータが指定されると、現在の線スタイル レンダリング プロパティがオーバーライドされます。詳細については、LineStyle を参照してください。

説明

レンダリングされる座標は、現在の transformation レンダリング プロパティを使用して変換されます。詳細については、with-render-properties のドキュメントを参照してください。
{Renderer2d.render-rectangular-path x, y, width, height} の呼び出しは、次の呼び出しと同じです。
{Renderer2d.render-path
    {Path
        {Distance2d x, y},
        PathOperation.line-to, {Distance2d x,         y + height},
        PathOperation.line-to, {Distance2d x + width, y + height},
        PathOperation.line-to, {Distance2d x + width, y},
        PathOperation.line-to, {Distance2d x,         y}
    }
}
Renderer2d.render-elliptic-path とは異なり、線は設定された座標の中心に描画されます。そのため、その範囲は実質的に xywidthheight で表現される四角形を超えて各方向に 0.5 * stroke-thickness 延ばした render-rectangular-path でカバーされます。
ピクセル カバレッジのルールや線のレンダリングの他の差異に関してはドキュメンテーションの Renderer2d.render-line を参照してください。


render-region (メソッド)
public abstract {Renderer2d.render-region
region:Region,
fill-pattern:FillPattern = self.fill-pattern
}:void

現在の fill-pattern を使用して Region をレンダリングします。

region: レンダリングする Region
fill-pattern: 領域をレンダリングする FillPattern (オプション)。指定されていない場合、現在の fill-pattern レンダリング プロパティが使用されます。

説明

Region は、"even-odd" ワインディング規則 ("alternate" とも呼ばれる) を使用してレンダリングされます。これは、与えられた任意のピクセルに対して、そこから光線をキャストしてそれが奇数の端を通過する場合にピクセルが塗りつぶされるという規則です。

FillPattern が領域に適用されると、その境界ボックスの左端と上端には 0 のテクスチャ座標が与えられ、下端と右端には 1 のテクスチャ座標が与えられます。次に領域内の各点に、境界ボックス内のその位置を相対的に表すテクスチャ座標が割り当てられます。

さらに各点は、現在の空間 Transformation2d によって現在のtransformation レンダリング プロパティで設定されたとおりに変換されます。対応するテクスチャ座標は、現在の TextureTransformation2d によって、texture-transformation レンダリング プロパティで設定したとおりに変換されます。詳細については with-render-properties の API ドキュメントを参照してください。

領域はポリゴンの塗りつぶし規則に従います。ポリゴンの塗りつぶし規則の詳細については Renderer2dCapabilities.accurate-fill-rules? を参照してください。

注意事項

空間またはテクスチャ回転が適用された領域は、 Renderer2dCapabilities.can-render-rotated-textures? 機能が true の場合のみテクスチャがマップされます。


render-rounded-rectangle (メソッド)
public {Renderer2d.render-rounded-rectangle
x:Distance,
y:Distance,
width:Distance,
height:Distance,
x-radius:Distance,
y-radius:Distance,
fill-pattern:FillPattern = self.fill-pattern
}:void

現在の fill-pattern を使用して Renderer2d 上に丸みを帯びた四角形をレンダリングします。

x, y: 四角形の左上隅。
width, height: 四角形の幅および高さ。width および height は正または負を指定できます。負の値は軸に沿ってソースの塗りつぶしパターンを反転します。
x-radius, y-radius: 丸い角を形成する各楕円の水平方向の半径と垂直方向の半径です。値が大きいほど、より丸い四角形になります。これらの値は、[0, {abs width / 2}][0, {abs height} / 2] の範囲内になります。つまり、たとえ widthheight が負数であっても、半径は正数になります。
fill-pattern: 四角形をレンダリングする FillPattern (オプション)。指定されていない場合、現在の fill-pattern レンダリング プロパティが使用されます。

説明

レンダリングの前に、パラメータは現在の特別な Transformation2d によって変換されます。 このメソッドは設定された境界ボックスの外にはピクセルをレンダリングしないことを保証します。そのボックスは、xywidthheight 引数で規定されます。しかし、弧の終点の正確な位置とそれらをつなぐ弧の性質はプラットフォームに依存するため、どのピクセルが四角形の中を埋めるかは保証されません。
導入: バージョン 6.0


render-rounded-rectangular-path (メソッド)
public {Renderer2d.render-rounded-rectangular-path
x:Distance,
y:Distance,
width:Distance,
height:Distance,
x-radius:Distance,
y-radius:Distance,
fill-pattern:FillPattern = self.fill-pattern,
stroke-thickness:Distance = self.stroke-thickness,
line-style:LineStyle = self.line-style
}:void

現在の塗りつぶしパターンと線の太さを使用して、丸みを帯びた四角形の周囲のパスをレンダリングします。

x, y: Drawable 上の四角形の左上隅。
width, height: 四角形の幅および高さ。width および height は正または負を指定できます。
x-radius, y-radius: 丸い角を形成する各楕円の水平方向の半径と垂直方向の半径です。値が大きいほど、より丸い四角形になります。これらの値は、[0, {abs width / 2}][0, {abs height} / 2] の範囲内になります。つまり、たとえ widthheight が負数であっても、半径は正数になります。
fill-pattern: 四角形をレンダリングする FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。
stroke-thickness: パスをレンダリングする太さ (オプション)。このパラメータが指定されると、現在の線太さ レンダリング プロパティがオーバーライドされます。
line-style: 四角形をレンダリングするスタイル (オプション)。このパラメータが指定されると、現在の線スタイル レンダリング プロパティがオーバーライドされます。詳細については、LineStyle を参照してください。

説明

レンダリングされる座標は、現在の transformation レンダラー プロパティを使用して変換されます。詳細に関しては、with-render-properties のドキュメントを参照してください。
太い線が使用される場合は、線は丸みを帯びた四角形のボーダー上で中央に置かれます。これは Renderer2d.render-rectangular-path の振る舞いに似ていますが、Renderer2d.render-elliptic-path とは異なります。
ピクセル カバレッジ ルールの議論や、線レンダリングの他の微妙な色合いに関しては Renderer2d.render-line のドキュメントを参照してください。
導入: バージョン 6.0


render-stippled-rectangle (メソッド)
public {Renderer2d.render-stippled-rectangle
x:Distance,
y:Distance,
width:Distance,
height:Distance,
fill-pattern:FillPattern = self.fill-pattern,
stipple-mask:#{Map-of bool} = null
}:void

現在の塗りつぶしパターンと指定された点描パターンを使用して、Renderer2d 上に四角形をレンダリングします。

x, y: 四角形の左上隅。
width, height: 四角形の幅および高さ。width および height は正または負を指定できます。
fill-pattern: 四角形をレンダリングする FillPattern (オプション)。指定されていない場合、現在の fill-pattern レンダリング プロパティが使用されます。
stipple-mask: 点描マスク。マップの各要素ごとに、true 値はピクセルが塗りつぶされることを意味し、false 値はピクセルがそのままにしておかれることを意味します。マップは 8x8 でなければなりません。既定値 null が与えられた場合は、チェッカーボード パターンが使用されます。これは、既定の GraphicSelectableDrawStyle (GraphicSelectableDrawStyle.mask) が使用されたとき、選択された Graphic を上書き描画するために使用される、通常の点描マスクです。


render-string (メソッド)
public {Renderer2d.render-string
x:Distance,
y:Distance,
string:StringInterface,
font:Font = self.font,
fill-pattern:FillPattern = self.fill-pattern,
start:int = 0,
length:int = string.size - start
}:void

指定されたベースライン位置で始まる文字列をレンダリングします。

説明

このバージョンの Curl RTE では、文字列の描画の際に font パラメータに最もマッチするものがプライマリ(基本の) フォントとして使用されています。しかし、文字列中の文字がプライマリ フォントでサポートされていない場合は、プラットフォーム独自の文字の置き換えが起こります。
現在の Microsoft Windows プラットフォームでは、その文字に最も合うロケールに対する "sans-serif" フォント エイリアスに対応した文字を使用して置き換える実装がされています。例えば、韓国語の文字は "gulim" フォントを使って描画されます。特定のロケールに対するフォントが利用できず、"Arial Unicode MS" フォントがインストールされている場合はこれを代わりに使用します。文字の置き換えは印刷時や Unicode ではないバージョンの Microsoft Windows プラットフォームでは実装されません。
Macintosh プラットフォーム上では、置き換えは Curl RTE によって使用されているプラットフォームのルーチンによって実装されています。
Linux プラットフォームでは 置き換えは Xft ライブラリにその既定の "Serif" フォントを問い合わせ、文字と最も合うロケールを特定することで実装されています。印刷時は類似の技術が Fontconfig 経由で使用されますが、最も確実な置き換え手段である windows-latin-1 文字エンコーディングの中の全ての文字をサポートしているカスタム フォントが提供された場合を除きます。
x: 開始ベースライン位置の x 座標。
y: 開始ベースライン位置の y 座標。
string: レンダリングする文字列。
font: 使用するフォント (オプション)。指定された場合、このパラメータは現在の フォント レンダリング プロパティをオーバーライドします。
fill-pattern: 文字列をレンダリングする FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。
start: 文字列の開始文字のインデックス。
length: レンダリングする文字数。

このボックスは回転されたテキストを表示します。


例: render-string メソッド
{define-class ExampleGraphic
  {inherits Fill}
  
  {constructor {default ...}
    {construct-super ...}
  }

  {method public {draw renderer2d:Renderer2d}:void
    let bounds:GRect = {self.layout.get-bounds}
    {with-render-properties
        font = {Font "sans-serif", 0.25in}
        on renderer2d do
        {with-render-properties

            || make the top-left of the Fill the origin
            translation =
                {Distance2d
                    -bounds.lextent,
                    -bounds.ascent
                },
            || and then move down the font ascent distance
            translation-y =
                {renderer2d.get-font-ascent},
            || and rotate
            rotation = 45deg
            on renderer2d do

            {renderer2d.render-string
                0in,
                0in,
                "This is rotated text.",
                fill-pattern = {FillPattern.get-black}
            }
        }
    }
  }
}

{ExampleGraphic
    width = 2in,
    height = 2in,
    border-width = 1pt,
    border-color = {FillPattern.get-black}
}


render-triangle (メソッド)
public abstract {Renderer2d.render-triangle
v0:Distance2d,
v1:Distance2d,
v2:Distance2d,
fill-pattern:FillPattern = self.fill-pattern
}:void

現在の fill-pattern を使用して三角形をレンダリングします。これは Renderer3d.render-polygon-from-array を呼び出す際に便利な機能です。

説明

v0, v1, v2: レンダリングする三角形を定義する Drawable 上の 3 つの頂点。
fill-pattern: 三角形をレンダリングする FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。

注意事項

点は現在の空間 Transformation2d によって現在の transformation レンダリング プロパティで設定されたとおりに変換されます。対応するテクスチャ座標は、現在の TextureTransformation2d によって、texture-transformation レンダリング プロパティで設定したとおりに変換されます。詳細については with-render-properties の API ドキュメントを参照してください。

{Renderer2d.render-triangle v0, v1, v2} の呼び出しは {Renderer2d.render-polygon-from-array {new {FastArray-of Distance2d}, v0, v1, v2}} の呼び出しと同じです。