(クラス)
Drawable 上へのレンダリングに関して、描画状態 (レンダリング プロパティ) のスタックやレンダリング メソッドを格納する 2D レンダラーです。
説明
Renderer2d の作成および使用にはさまざまな方法があります。
Renderer2d には、レンダリングの実行方法に影響を与えるレンダリング プロパティのセットが含まれています。一般的なプロパティの例は
fill-pattern で、レンダリングされるオブジェクトの
FillPattern (色またはテクスチャ) を設定するのに使用されます。これらは
with-render-properties マクロにより設定されます。このマクロの解説には、各プロパティの詳細が含まれています。
アクセサ protected Renderer2d.antialiasing?:
bool セッター protected Renderer2d.antialiasing?:
bool
アクセサ protected Renderer2d.clipping-region:
Region セッター protected Renderer2d.clipping-region:
Region
アクセサ public Renderer2d.clipping-region-empty?:
bool
アクセサ public Renderer2d.device-pixel-size:
Distance
アクセサ public Renderer2d.device-resolution:
Resolution
セッター protected sealed Renderer2d.fill-pattern:
FillPattern
アクセサ public sealed Renderer2d.font:
Font セッター protected sealed Renderer2d.font:
Font
アクセサ public sealed Renderer2d.line-style:
LineStyle セッター protected sealed Renderer2d.line-style:
LineStyle
アクセサ public sealed Renderer2d.pixel-size:
Distance
アクセサ public sealed Renderer2d.rendering-to-printer?:
bool
アクセサ public sealed Renderer2d.stroke-thickness:
Distance セッター protected sealed Renderer2d.stroke-thickness:
Distance
public | {Renderer2d.create-offscreen}:(Renderer2d, Drawable) |
public | {Renderer2d.clear}:void |
public | {Renderer2d.get-clipping-region}:Region |
public | {Renderer2d.get-coordinate-for-string-index}:FloatDistance |
public | {Renderer2d.get-font-names}:{Array-of String} |
public final | {Renderer2d.get-font-underline-position}:FloatDistance |
public final | {Renderer2d.get-font-underline-thickness}:FloatDistance |
public | {Renderer2d.get-string-index-for-coordinate}:int |
protected | {Renderer2d.pop-clipping-region}:void |
protected | {Renderer2d.push-clipping-region r:Region}:void |
public abstract | {Renderer2d.render-drawable}:void |
public abstract | {Renderer2d.render-ellipse}:void |
public abstract | {Renderer2d.render-elliptic-path}:void |
render-line: | 現在の fill-pattern を使用し、2 つの端点を与えて線セグメントをレンダリングします。 |
public abstract | {Renderer2d.render-line}:void |
public abstract | {Renderer2d.render-path}:void |
public abstract | {Renderer2d.render-pixmap}:void |
public sealed | {Renderer2d.render-polygon}:void |
public abstract | {Renderer2d.render-polygon-from-array}:void |
public abstract | {Renderer2d.render-rectangle}:void |
public abstract | {Renderer2d.render-rectangular-path}:void |
public abstract | {Renderer2d.render-region}:void |
public | {Renderer2d.render-rounded-rectangle}:void |
public | {Renderer2d.render-rounded-rectangular-path}:void |
public | {Renderer2d.render-stippled-rectangle}:void |
public | {Renderer2d.render-string}:void |
render-triangle: | 現在の fill-pattern を使用して三角形をレンダリングします。これは Renderer3d.render-polygon-from-array を呼び出す際に便利な機能です。 |
public abstract | {Renderer2d.render-triangle}:void |
(ファクトリ)
(アクセサ)
アクセサ protected Renderer2d.antialiasing?:
bool セッター protected Renderer2d.antialiasing?:
bool
この項目はサポートされていません。内部使用限定となっています。
(アクセサ)
(アクセサ)
アクセサ protected Renderer2d.clipping-region:
Region セッター protected Renderer2d.clipping-region:
Region
この項目はサポートされていません。内部使用限定となっています。
(アクセサ)
アクセサ public Renderer2d.clipping-region-empty?:
bool Renderer2d のクリッピング領域が空の場合は true を返します。
説明
クリッピング領域の境界がゼロの場合も、プロパティは true になります。
(アクセサ)
アクセサ public Renderer2d.device-pixel-size:
Distance デバイスのピクセル サイズを返します。
説明
1/(resolution of the device) と等しくなります。
(アクセサ)
アクセサ public Renderer2d.device-resolution:
Resolution
(アクセサ)
(アクセサ)
セッター protected sealed Renderer2d.fill-pattern:
FillPattern
(アクセサ)
アクセサ public sealed Renderer2d.font:
Font セッター protected sealed Renderer2d.font:
Font
(アクセサ)
アクセサ public sealed Renderer2d.line-style:
LineStyle セッター protected sealed Renderer2d.line-style:
LineStyle
(アクセサ)
アクセサ public sealed Renderer2d.pixel-size:
Distance
(アクセサ)
アクセサ public sealed Renderer2d.rendering-to-printer?:
bool
(アクセサ)
アクセサ public sealed Renderer2d.stroke-thickness:
Distance セッター protected sealed Renderer2d.stroke-thickness:
Distance
(アクセサ)
この項目はサポートされていません。内部使用限定となっています。
(アクセサ)
この項目はサポートされていません。内部使用限定となっています。
(クラスプロシージャ)
public | {Renderer2d.create-offscreen}:(Renderer2d, Drawable) |
イメージの編集やオフスクリーンのレンダリングに使用可能な Drawable を作成します。作成した Drawable で使用される Renderer2d も作成します。
resolution: 作成された
Drawable の
Resolution。解像度は、作成された
Drawable の
Distance 単位あたりのピクセル サンプル数になります。解像度は通常、インチあたりのドット数で指定されます。次のコードでは、100dpi の解像度で 2 インチの正方形のオフスクリーン描画を作成します。
{Renderer2d.create-offscreen 2in, 2in, resolution = 100dpi}既定値である
Odpi は表示解像度を意味します。
use-host-rendering?: false (既定値) の場合、システムでは速度より正確さを優先するレンダリング システムの選択が行われ、true の場合は正確さより速度を優先するレンダリング システムの選択が行われます。ホスト レンダリングでは、一部の機能が正しく動作しないことがよくあります (alpha-blending など)。
advanced-draw-operations?:
true の場合、すべての
DrawOperation は結果として返されるレンダラーによってサポートされます。
DrawOperation.source、
DrawOperation.mask または
DrawOperation.blend 以外の
DrawOperation を使う場合、このフラグを true に設定する必要があります。
このフラグは
use-host-rendering? が false の場合のみ設定してください。これは、ホスト レンダラーが使われる場合は最小限の
DrawOperation のセットしかサポートされないためです。(
use-host-rendering? = true と
advanced-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 を呼び出します。また、
Renderer2d が
Graphic と関連付けられている場合 (例:
Graphic.draw)、
Renderer2d.render-drawable を使用してオフスクリーン描画を画面にコピーすることもできます。
例
ここでは、
Renderer2d.create-offscreen を使用してオフスクリーン描画を作成し、そのオフスクリーン
Drawable に描画してから、
Drawable を
Graphic にコピーする方法を示しています。
例:
オフスクリーン 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 は 2D レンダリングで使用されます。
- Drawable はオフスクリーンの面を表します。
オフスクリーン
Drawable はかなりのホスト リソースを消費するので、頻繁には使用しないでください。さらに、
Appletの存続期間を通して Drawable を使用しない場合は、不要になった
Drawable を破棄してください。これには
Drawable.destroy を使用します。Curl Lab 開発者ガイドの
高度な 2D レンダリング にある例題を参照してください。
戻り値
(メソッド)
public | {Renderer2d.clear}:void |
現在の clipping-region を与えられた 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
}
(メソッド)
public | {Renderer2d.get-clipping-region}:Region |
Renderer2d の現在のクリッピング領域を取得します。
説明
注意事項
返される
Region は、この
Renderer2d の現在の変換に関連しています。
(メソッド)
現在のクリッピング領域の境界ボックスの寸法を返します。
説明
注意事項
返される座標は、この Renderer2d の現在の変換に関連します。
(メソッド)
public | {Renderer2d.get-coordinate-for-string-index}:FloatDistance |
レンダリングされる文字列のインデックスに最もよく対応するグラフィックの座標を規定します。
index: レンダリングされる文字列内のインデックスです。この値は start ではなく、文字列全体に関連しています。この値が 0 より小さい、あるいは string.size より大きい場合、例外がスローされます。
string: 文字列です。
font: 使用するフォント (オプション)。指定された場合、このパラメータは現在の フォント レンダリング プロパティをオーバーライドします。
start: 文字列の開始文字のインデックス。
length: レンダリングする文字数。
説明
このメソッドは
get-string-advance-width に似ていますが、文字列の個々の文字がレンダリングされる座標を規定しようとします。その違いはコンテキストに依存した方法で文字を調整するレンダリングのシステムにおいて発生します。たとえば、そのようなシステムにおいて、文字列 "abc" 内の文字 'c' の座標は、文字列 "ab" の長さと等しくない可能性があります。
index が
start より小さい場合、返される座標は
0m になります。
index が
start + length より大きい場合、返される座標はインデックス
start + length と同じ値になります。
導入:
バージョン 6.0
(メソッド)
現在のフォントの上昇量を示す FloatDistance を返します。
説明
次の図では、文字列 "Jj" の上昇を示しています。
(メソッド)
現在のフォントの下降量を示す FloatDistance を返します。
説明
次の図では、文字列 "Jj" の下降を示しています。
(メソッド)
現在のフォントのテキストの行間長を示す FloatDistance を返します。
説明
次の図では、文字列 "Jj" の line-gap を示しています。
(メソッド)
public | {Renderer2d.get-font-names}:{Array-of String} |
この Renderer2d で使用可能なフォント名をすべて取得します。
(メソッド)
public final | {Renderer2d.get-font-underline-position}:FloatDistance |
ベースラインを基準として、現在のフォントで下線がレンダリングされる位置を示す FloatDistance を返します。
説明
次の図では、文字列 "Jj" の underline-position を示しています。
(メソッド)
public final | {Renderer2d.get-font-underline-thickness}:FloatDistance |
(メソッド)
現在のフォントの文字列の advance width (送り幅)を示す FloatDistance を返します。
string: 測定する文字列。
start: 測定を開始する文字の文字列中のインデックス。この指定はオプションです。指定されなかった場合の既定値は 0 になります。
length: 測定する部分文字列の長さ。指定されない場合の既定値は、文字列の長さから start を引いた値になります。
説明
次の図では、文字列 "Jj" の advance width(送り幅) を示しています。
(メソッド)
public | {Renderer2d.get-string-index-for-coordinate}:int |
レンダリングされる文字列の座標に最もよく対応する文字列内のインデックスを規定します。
x: レンダリングされる文字列に関連する座標です。
string: 文字列です。
font: 使用するフォント (オプション)。指定された場合、このパラメータは現在の フォント レンダリング プロパティをオーバーライドします。
start: 文字列の開始文字のインデックス。
length: レンダリングする文字数。
説明
このメソッドの目的に関する詳細情報は、
get-coordinate-for-string-index を参照してください。
x が 0m より小さい場合、返されるインデックスは
start になります。
x が文字列のレンダリング幅より大きい場合は、返されるインデックスは
start + length になります。
導入:
バージョン 6.0
(メソッド)
(メソッド)
protected | {Renderer2d.pop-clipping-region}:void |
この項目はサポートされていません。内部使用限定となっています。
(メソッド)
protected | {Renderer2d.push-clipping-region r:Region}:void |
この項目はサポートされていません。内部使用限定となっています。
(メソッド)
public abstract | {Renderer2d.render-drawable}:void |
オプションでソースの四角形を指定し、軸に揃えられた四角形の上に Drawable をレンダリングします。
dst-x, dst-y, dst-width, dst-height: ソース
Drawable がレンダリングされる出力先の四角形。
dst-width および
dst-height は共にゼロ以上の値であることが必要です。
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-x、
dst-y) が変換されます (詳細については
with-render-properties を参照してください)。現在の空間
Transformation2d によって幅と高さのスケールが変更します。結果として、出力先は常に軸に揃えられることになります。
四角形については、指定された四角形内にピクセルの中心がある場合、このピクセルは必ず塗りつぶされます。四角形の外側に中心があるピクセルは塗りつぶされません。四角形のちょうど端に位置するピクセルの場合、上端および左端にあるピクセルは塗りつぶされ、右端および下端にあるピクセルは塗りつぶされません。
注意事項
(メソッド)
public abstract | {Renderer2d.render-ellipse}:void |
境界ボックス内で楕円形をレンダリングします。
x, y: 境界ボックスの左上隅。
width, height: 境界ボックスの幅および高さ。width および height は正または負を指定できます。
start: 扇形の切片 (楕円形全体ではなく) の開始角度。0deg は 3 時の位置になります。
stop: 扇形の切片の停止角度。切片は start から時計回りに移動して描画されます。
fill-pattern: ポリゴンをレンダリングする
FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。
説明
(メソッド)
public abstract | {Renderer2d.render-elliptic-path}: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 引数が楕円形全体を定義していない) 場合、このメソッドは放射型も描画します。
- 楕円の中心からパスの始点まで、および
- 楕円の中心からパスの終点まで。
説明
太さが増え、レンダリングされる線は境界ボックスの中心に向かって伸びるため、render-elliptic-path は他の線のレンダリング呼び出しと異なることに注意してください。
複数の繋がれた線を描画する場合には、通常
Renderer2d.render-path のような単一のレンダリング呼び出しを使用するほうがよいです。このメソッドは、線の繋ぎ目を正しく描画しようとします。たとえば、太い線を使用する場合は、2 つの分かれた線分間の繋ぎ目は連続しません。その代わりに、説明しように部分的に重なる 2 つの四角形として表されます。
(メソッド)
public abstract | {Renderer2d.render-line}: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 つの部分的に重なった四角形のように表現されます。
(メソッド)
public abstract | {Renderer2d.render-path}:void |
現在の fill-pattern および stroke-thickness を使用して、Path をレンダリングします。
fill-pattern: パスをレンダリングする
FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。
パスをレンダリングするのに使用される色は、使用される fill-pattern の平均の pixel-color です。
stroke-thickness: パスをレンダリングする線の太さ (オプション)。指定された場合、このパラメータは現在の stroke-thickness レンダリング プロパティをオーバーライドします。0m の stroke-thickness は細い線を示し、これ以外の場合は太い線がレンダリングされます。
line-style: パスをレンダリングするスタイル (オプション)。このパラメータが指定されると、現在の線スタイル レンダリング プロパティがオーバーライドされます。詳細については、
LineStyle を参照してください。
説明
path 内でどのように繋ぎ目がレンダリングされるかは保証されていません。しかし、つなぎ目をスムーズにしようとするので、可能であれば同時に全ての線を繋げるレンダラーを呼び出すべきです。たとえば、render-line を複数回呼び出さずに render-path を使用します。
レンダリングされた座標は、現在の
transformation レンダラー プロパティを使用して変換されます。詳細に関しては、
with-render-properties の API ドキュメンテーションを参照してください。
(メソッド)
public abstract | {Renderer2d.render-pixmap}: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 がソース ピクスマップの幅または高さより大きい場合、イメージは並べて表示されます。
四角形については、指定された四角形内にピクセルの中心がある場合、このピクセルは必ず塗りつぶされます。四角形の外側に中心があるピクセルは塗りつぶされません。四角形の端に位置するピクセルの場合、上端および左端にあるピクセルは塗りつぶされ、右端および下端にあるピクセルは塗りつぶされません。
注意事項
注意事項
{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
}
}
注意事項
(メソッド)
public sealed | {Renderer2d.render-polygon}:void |
現在の fill-pattern を使用して、汎用の、凹型の可能性があり、自己交差する可能性のあるポリゴンを Distance2d のリストからレンダリングします。
fill-pattern: ポリゴンをレンダリングする
FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。
説明
注意事項
注意事項
(メソッド)
public abstract | {Renderer2d.render-polygon-from-array}:void |
現在の fill-pattern を使用して、汎用の、凹型の可能性があり、自己交差する可能性のあるポリゴンを Distance2d の配列からレンダリングします。
polygon: ポリゴンの頂点を定義する点の配列。
fill-pattern: ポリゴンをレンダリングする
FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。
説明
注意事項
注意事項
(メソッド)
public abstract | {Renderer2d.render-rectangle}: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 は、
x、
y、
width および
height で指定された四角形と一致するように伸長、圧縮および回転されます。
テクスチャ座標が [0, 1] の範囲外にある場合、テクスチャは並べて表示されます。
説明
レンダリングの前に、四角形の四隅はすべて現在の空間
Transformation2d によって変換され、それらのテクスチャ座標は現在のテクスチャ
TextureTransformation2d によって変換されます (詳細については
with-render-properties を参照してください)。結果として、これは軸に揃っていない四角形になります。
四角形については、指定された四角形内にピクセルの中心がある場合、このピクセルは必ず塗りつぶされます。四角形の外側に中心があるピクセルは塗りつぶされません。四角形の端に位置するピクセルの場合、上端および左端にあるピクセルは塗りつぶされ、右端および下端にあるピクセルは塗りつぶされません。
注意事項
注意事項
{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
}
(メソッド)
public abstract | {Renderer2d.render-rectangular-path}:void |
現在の塗りつぶしパターンと線の太さを使用して、四角形の周囲のパスをレンダリングします。
width, height: 四角形の幅および高さ。width および height は正または負を指定できます。
fill-pattern: 四角形をレンダリングする
FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。
stroke-thickness: パスをレンダリングする太さ (オプション)。このパラメータが指定されると、現在の線太さ レンダリング プロパティがオーバーライドされます。
line-style: 四角形をレンダリングするスタイル (オプション)。このパラメータが指定されると、現在の線スタイル レンダリング プロパティがオーバーライドされます。詳細については、
LineStyle を参照してください。
説明
{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 とは異なり、線は設定された座標の中心に描画されます。そのため、その範囲は実質的に
x、
y、
width、
height で表現される四角形を超えて各方向に
0.5 * stroke-thickness 延ばした
render-rectangular-path でカバーされます。
(メソッド)
public abstract | {Renderer2d.render-region}:void |
現在の fill-pattern を使用して Region をレンダリングします。
fill-pattern: 領域をレンダリングする
FillPattern (オプション)。指定されていない場合、現在の fill-pattern レンダリング プロパティが使用されます。
説明
注意事項
(メソッド)
public | {Renderer2d.render-rounded-rectangle}:void |
現在の fill-pattern を使用して Renderer2d 上に丸みを帯びた四角形をレンダリングします。
x, y: 四角形の左上隅。
width, height: 四角形の幅および高さ。width および height は正または負を指定できます。負の値は軸に沿ってソースの塗りつぶしパターンを反転します。
x-radius, y-radius: 丸い角を形成する各楕円の水平方向の半径と垂直方向の半径です。値が大きいほど、より丸い四角形になります。これらの値は、[0, {abs width / 2}] と [0, {abs height} / 2] の範囲内になります。つまり、たとえ width や height が負数であっても、半径は正数になります。
fill-pattern: 四角形をレンダリングする
FillPattern (オプション)。指定されていない場合、現在の fill-pattern レンダリング プロパティが使用されます。
説明
レンダリングの前に、パラメータは現在の特別な
Transformation2d によって変換されます。
このメソッドは設定された境界ボックスの外にはピクセルをレンダリングしないことを保証します。そのボックスは、
x 、
y 、
width 、
height 引数で規定されます。しかし、弧の終点の正確な位置とそれらをつなぐ弧の性質はプラットフォームに依存するため、どのピクセルが四角形の中を埋めるかは保証されません。
導入:
バージョン 6.0
(メソッド)
public | {Renderer2d.render-rounded-rectangular-path}:void |
現在の塗りつぶしパターンと線の太さを使用して、丸みを帯びた四角形の周囲のパスをレンダリングします。
width, height: 四角形の幅および高さ。width および height は正または負を指定できます。
x-radius, y-radius: 丸い角を形成する各楕円の水平方向の半径と垂直方向の半径です。値が大きいほど、より丸い四角形になります。これらの値は、[0, {abs width / 2}] と [0, {abs height} / 2] の範囲内になります。つまり、たとえ width や height が負数であっても、半径は正数になります。
fill-pattern: 四角形をレンダリングする
FillPattern (オプション)。指定された場合、このパラメータは現在の fill-pattern レンダリング プロパティをオーバーライドします。
stroke-thickness: パスをレンダリングする太さ (オプション)。このパラメータが指定されると、現在の線太さ レンダリング プロパティがオーバーライドされます。
line-style: 四角形をレンダリングするスタイル (オプション)。このパラメータが指定されると、現在の線スタイル レンダリング プロパティがオーバーライドされます。詳細については、
LineStyle を参照してください。
説明
導入:
バージョン 6.0
(メソッド)
public | {Renderer2d.render-stippled-rectangle}:void |
現在の塗りつぶしパターンと指定された点描パターンを使用して、Renderer2d 上に四角形をレンダリングします。
x, y: 四角形の左上隅。
width, height: 四角形の幅および高さ。width および height は正または負を指定できます。
fill-pattern: 四角形をレンダリングする
FillPattern (オプション)。指定されていない場合、現在の fill-pattern レンダリング プロパティが使用されます。
stipple-mask: 点描マスク。マップの各要素ごとに、true 値はピクセルが塗りつぶされることを意味し、false 値はピクセルがそのままにしておかれることを意味します。マップは 8x8 でなければなりません。既定値
null が与えられた場合は、チェッカーボード パターンが使用されます。これは、既定の
GraphicSelectableDrawStyle (
GraphicSelectableDrawStyle.mask) が使用されたとき、選択された
Graphic を上書き描画するために使用される、通常の点描マスクです。
(メソッド)
public | {Renderer2d.render-string}: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}
}
| |
(メソッド)
public abstract | {Renderer2d.render-triangle}: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}} の呼び出しと同じです。