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 より小さい場合、返されるインデックスは 0 になります。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 を使用して、境界ボックス