AntialiasMixin (クラス)
public abstract AntialiasMixin {inherits Visual}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.BASE.
直接継承しているサブクラス: AntialiasedFrame, Canvas

アンチエイリアス処理をサポートするために他のクラスに追加できる抽象基本クラス。

説明

アンチエイリアス処理は、縁辺のギザギザをなめらかに見せるレンダリング技術です。AntialiasMixin は、その内容を描画するときに、オーバーサンプリングと呼ばれるアンチエイリアス処理タイプを使用します。これは、内容を通常よりも高い解像度で描画し、後で表示用に画面の解像度まで下げることを意味します。オーバーサンプリングの程度は、AntialiasMixin.factor アクセッサで制御できます。
オーバーサンプリングされるレンダリングは通常の描画処理より時間がかかります。オーバーサンプリングの係数が大きくなると、パフォーマンスのコストも大きくなります。AntialiasFactor.low を使用したアニメーションはまだ可能な範囲ではありますが、かなり遅くなります。AntialiasFactor.high は、アニメのグラフィックには通常は遅すぎます。ただし、まったく変化しないか、まれにしか変化しない表示には適しています。
このクラスは、ほとんどの場合コンテナと組み合わせて使用され、アンチエイリアス処理によるコンテナの内容のレンダリングを可能にします。ほとんどのユーザーは、このクラスの単純な実装である AntialiasedFrame を単に使用するはずです。

注意事項

要求したオーバーサンプリング係数が常に許可されるとは限りません。内部に作成された Drawable が大きすぎる場合、代わりに最大の AntialiasFactor が使用されます。極端な場合、オーバーサンプリングを実行しないことがあります。AntialiasMixin.actual-oversample-factor により実際のモードを決定できます。Drawable.set-bypass-size-restriction? はオーバーサンプリングの縮小を回避するために使用できますが、使用する際には十分注意する必要があります。詳細については、Drawable.set-bypass-size-restriction? を参照してください。
アンチエイリアス処理が有効であると (つまり、AntialiasMixin.factorAntialiasFactor.off に設定されていないと)、AntialiasMixin はオフスクリーン Drawable を使用してその内容を描画し、その内容を直接、画面に描画することはありません。この DrawableAntialiasMixin と同じサイズですが、その Resolution は画面の解像度の倍数です。
標準グラフィック階層でアンチエイリアス処理が実行されると、背景と透過が正常に機能しないので、注意してください。アンチエイリアス処理が有効であり、したがって描画にオフスクリーン Drawable が使用されるときは、どのような方法によってもアンチエイリアス処理された領域を透過にすることはできません。したがって、グラフィックの祖先に割り当てられた背景は表示されません。さらに、Graphic がこのオブジェクトの背後でレンダリングされることを想定している場合は、OverlayBox などのオブジェクトは表示されますが、アンチエイリアス処理されたオブジェクトの背後のオブジェクトは表示されません。AntialiasMixin.factorAntialiasFactor.off に設定してアンチエイリアス処理が無効になっている場合は、このいずれの制約も適用されません。
さらに、AntialiasedFrame および Canvas の場合は、このオブジェクトで設定された背景はオフスクリーン Drawable に描画され、通常はそれ自身が透過性を含んでいない限り表示されます。
透過が試みられているとき、つまり背景が使用されない場合は、Drawable の初期の色が表示されます。DrawableAntialiasMixin.draw-antialiased でこの色にクリアされます。既定の色は白です。この色は引数として AntialiasMixin.draw-antialiased に渡されます。値を変更したい場合は、それを呼び出すメソッドをオーバーライドする必要があります。たとえば、Canvas および AntialiasedFrameDrawable を白をクリアし赤にするには、draw メソッドをそのようにオーバーライドします。
{method public open {draw renderer2d:Renderer2d}:void
    let layout:Layout = {non-null self.layout}
    {super.draw-antialiased
        renderer2d,
        {layout.get-cell-bounds},
        {layout.get-bounds},
        clear-color = FillPattern.red
    }
}
AntialiasMixin を実装するオブジェクトの内部に置かれた子は、通常、同じグラフィック階層の他のメンバーに割り当てられたオブジェクトとは異なる、専用の DisplayContext および LayoutContext オブジェクトを持つことになります。これは、これらのオブジェクトがオフスクリーンのレンダリング面のプロパティを正しく反映する必要があるからです。
Drawable は、通常 Graphic.set-size 内から実装によって呼び出される AntialiasMixin.set-antialiased-size または AntialiasMixin.set-antialiased-size-in-pixels の呼び出し時に、作成またはサイズ変更されます。
オフスクリーン Drawable への実際のレンダリングは、AntialiasMixin.draw-antialiased および AntialiasMixin.draw-internal メソッド内で行われます。オフスクリーン Renderer2d を使用して実装内容を描画するように AntialiasMixin.draw-internal が実装されます。たとえば、AntialiasedFrame は、その子 GraphicGraphic.draw メソッドをこの時点で呼び出します。
AntialiasMixin を使用して独自のクラスを実装したい場合は、Graphic から継承するために結果のクラスが必要なので、注意してください。

コンストラクタ
clone-appearance-from:このタイプの新しいオブジェクトを作成するために Visual.clone-appearance が使用するコンストラクタ。
コンストラクタ protected {AntialiasMixin.clone-appearance-from other:AntialiasMixin}
default:新しい AntialiasMixin を作成します。
コンストラクタ public {AntialiasMixin.default
factor:AntialiasFactor = AntialiasFactor.low,
use-host-rendering?:bool = true,
support-advanced-draw-operations?:bool = false,
...
}

プロパティ
actual-oversample-factor:この AntialiasMixin によって実行されるオーバーサンプリングの実際の程度。
アクセサ public final AntialiasMixin.actual-oversample-factor:int
display-context:このオブジェクトに関連付けられている DisplayContext
非ローカル オプション public AntialiasMixin.display-context:#DisplayContext
factor:このオブジェクトが提供するオーバーサンプリングの程度を制御します。オーバーサンプリングについては、AntialiasMixin クラスの資料を参照してください。
アクセサ public final AntialiasMixin.factor:AntialiasFactor
セッター public AntialiasMixin.factor:AntialiasFactor
layout-context:このオブジェクトに関連する LayoutContext です。
非ローカル オプション public AntialiasMixin.layout-context:#LayoutContext
support-advanced-draw-operations?:含まれるグラフィックに対して "高度な" DrawOperation をサポートするかどうかを制御します。
アクセサ public final AntialiasMixin.support-advanced-draw-operations?:bool
セッター public AntialiasMixin.support-advanced-draw-operations?:bool
use-host-rendering?:含まれるグラフィックを "ホスト" レンダラを使用してレンダリングするかどうかを制御します。
アクセサ public final AntialiasMixin.use-host-rendering?:bool
セッター public AntialiasMixin.use-host-rendering?:bool
プロパティ 継承 Visual: _style-element, clonable-class?, completely-clonable-children?, cursor, data-source, dragee, font-size, graphical-parent, has-key-focus?, input-method-enabled?, input-method-keyboard-mode, name, options, possibly-displayed?, style-class, style-element, style-manager, style-options, test-child?, test-description, test-name, test-parent?, test-type-name, test-visible?, tooltip, user-data, visual-parent
プロパティ 継承 DataBindingTarget: data-binding-context, data-bindings
プロパティ 継承 EventTarget: event-handlers
プロパティ 継承 OptionListInterface: option-parent, option-register-proc, options-present-here, registered-option-keys

メソッド
draw-antialiased:このオブジェクトの内容をアンチエイリアス処理によって描画します。
public {AntialiasMixin.draw-antialiased
renderer2d:Renderer2d,
cell-bounds:GRect,
bounds:GRect,
clear-color:FillPattern = FillPattern.white
}:void
draw-internal:AntialiasMixin の内容をレンダリングします。
protected abstract {AntialiasMixin.draw-internal
renderer2d:Renderer2d,
cell-bounds:GRect,
bounds:GRect
}:void
option-lookup:オプション検索を実行し、該当する OptionItem があればこれを生成します。
public {AntialiasMixin.option-lookup
key:OptionKey,
local?:bool
}:#OptionItem
propagate-option-change:このオブジェクト、および該当する場合はそのオプションの子孫にオプションが変更されたことを通知します。
protected {AntialiasMixin.propagate-option-change
item:OptionItem,
removed?:bool
}:void
set-antialiased-size:AntialiasMixin オブジェクトにサイズの変更を通知します。
protected {AntialiasMixin.set-antialiased-size bounds:GRect}:void
set-antialiased-size-in-pixels:AntialiasMixin オブジェクトにサイズの変更を通知します。
protected {AntialiasMixin.set-antialiased-size-in-pixels
width:int,
height:int
}:void
メソッド 継承 Visual: add, add-from-init-args, animate, change-cursor, clear, clonable-appearance?, clone-appearance, clone-appearance-helper, find-graphical-ancestor, find-test-children, get-focus-manager, get-graphical-root, get-gui-path, get-gui-path-to-child, get-layout-context, get-origin-in-graphical-ancestor, get-origin-in-root, get-test-parent, get-test-property, get-text, get-top-left-in-ancestor, get-view, maybe-fire-attach-event, maybe-fire-detach-event, non-keyword-init-arg, note-attached, note-caret-position, note-detaching, on-drag-enter, on-drag-leave, on-pointer-enter, on-pointer-envelope-event, on-pointer-leave, pop-cursor, prepare-test-object, prepare-test-parent, push-cursor, quantize-width, refresh-style-options, release-key-focus, request-draw, request-key-focus, scroll-to-include, test-record, test-run, transform-from-display-coordinates, transform-from-graphical-root-coordinates, transform-to-display-coordinates, transform-to-graphical-root-coordinates, xy-offset-to
メソッド 継承 GraphicOptions: any-to-Distance, get-display-context
メソッド 継承 GuiEventTarget: handle-delegate-event, handle-event, on-action, on-cancel-mode, on-command-changed, on-commit, on-composition-change-event, on-composition-result-event, on-context-menu-event, on-current-record-change-request, on-current-record-changed, on-destroy-notify, on-destroy-requested, on-drag-over, on-drag-pointer, on-drag-started, on-drop, on-end-composition-event, on-focus-event, on-focus-in, on-focus-out, on-gesture, on-gesture-begin, on-gesture-end, on-gesture-magnify, on-gesture-pan, on-gesture-rotate, on-gesture-swipe, on-gesture-tap, on-gesture-touch, on-grab-release, on-gui-event, on-input-method-event, on-inspection, on-key-event, on-key-press, on-pointer-button, on-pointer-crossing, on-pointer-event, on-pointer-motion, on-pointer-press, on-pointer-release, on-pointer-scroll, on-raw-key-event, on-raw-key-press, on-raw-key-release, on-reset, on-selectable-added, on-selectable-removed, on-selection-changed, on-selection-context-activated, on-selection-context-deactivated, on-selection-event, on-start-composition-event, on-start-event, on-stop-event, on-view-activate, on-view-deactivate, on-window-close, remove-event-handlers-for-event-class
メソッド 継承 DataBindingTarget: add-data-binding, get-data-binding, refresh-data-binding, remove-data-binding, unset-property, update-data-binding, validate-data-binding
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, remove-event-handler, verify-event
メソッド 継承 OptionListInterface: add-option, add-style-option, change-option-parent-notify, clone-options, get-option, get-option-by-name, keyword-init-arg, local-add-notify, local-remove-notify, name-to-option-key, new-option-item, notify-option-children, option-change-notify, option-changed, option-lookup-here, option-propagate-notify, option-set?, register-options, remove-option, remove-style-option, remove-styles, set-option-by-name, set-style-option-by-name, unset-option-by-name, unset-style-option-by-name
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 InitRestArgParser: process-rest-args
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
clone-appearance-from (コンストラクタ)
protected {AntialiasMixin.clone-appearance-from other:AntialiasMixin}

このタイプの新しいオブジェクトを作成するために Visual.clone-appearance が使用するコンストラクタ。

other: クローンする AntialiasMixin

注意事項

クローン化をサポートする AntialiasMixin のサブクラスには、このコンストラクタを呼び出すコンストラクタが必要です。ただし、これらのコンストラクタがそれぞれ自身のオプションをクローン化し、それぞれの子を、クローンに追加する前にクローン化する場合は、その限りではありません。


default (コンストラクタ)
public {AntialiasMixin.default
factor:AntialiasFactor = AntialiasFactor.low,
use-host-rendering?:bool = true,
support-advanced-draw-operations?:bool = false,
...
}

新しい AntialiasMixin を作成します。

factor: 実行するアンチエイリアス処理の程度。詳細については、AntialiasMixin.factor を参照してください。
use-host-rendering?: 含まれているグラフィックに対して標準ホスト レンダラを使用するかどうかを決定します。詳細については、AntialiasMixin.use-host-rendering? を参照してください。
support-advanced-draw-operations?: 含まれているグラフィックの描画に使用されるレンダラが高度な DrawOperation をサポートするかどうかを決定します。詳細については、AntialiasMixin.use-host-rendering? を参照してください。
...: 追加のオプションおよびイベント ハンドラ指定。



プロパティ詳細
actual-oversample-factor (アクセサ)
アクセサ public final AntialiasMixin.actual-oversample-factor:int

この AntialiasMixin によって実行されるオーバーサンプリングの実際の程度。

説明

この値は、要求されたファクタに直接対応しない場合があります。AntialiasMixin.factor を参照してください。


display-context (非ローカル オプション)
public AntialiasMixin.display-context:#DisplayContext

このオブジェクトに関連付けられている DisplayContext

プログラミング注意事項

このオプションは、Curl グラフィック システム内での通信のために使用されます。これは、ユーザー コードで不用意に設定や設定解除を行わないでください。また、通常は、ユーザー コードで直接読み取るべきではありません。現在の DisplayContext が必要な場合は、Visual.get-display-context を呼び出すことによりフェッチしてください。

画面上のウィンドウまたは印刷されたページで表示可能なすべてのグラフィック階層は、そのルートにおいて、display-context オプションを DisplayContext オブジェクトに設定するオブジェクトを持つ必要があります。このオブジェクトは、グラフィック階層の表示に使用される表示媒体に適しています。つまり、オブジェクトは、display-context オプションの値が null から非 null DisplayContext オブジェクトに変更されるのをモニタリングすることにより、表示不可能なグラフィック階層に連結されていることを認識します。したがって、特定の動作を実行する必要のある Visual のサブクラスは、表示不可能なグラフィック階層に接続された場合、次のようなオプション宣言を含むことにより display-context オプションをモニタリングします。

{nonlocal-option public display-context:#DisplayContext
change handler}


ここで、change handler 内のコードは display-context オプションの現在値 (変数 display-context の値として、変更ハンドラ内にある) を取得し、null および非 null の値の間で行われる変更をモニタリングし、必要とされる動作を実行します。

ただし、このプログラミング熟語を使用するプログラマーは、グラフィカル表示を再配列する際、グラフィック階層からグラフィカル オブジェクトを一時的に分離し、これらを同じ階層に再アタッチすることが、割に一般的であることを理解するべきです。この処理により、一時的に分離されたオブジェクトは、display-context オブジェクトが null になり、再び非 null になるのを観察します。display-context オプションでの変更をモニタリングするコードは、この可能性を考慮に入れ、この状況における望ましくない動作の実行を回避しなくてはなりません。


factor (アクセサ)
アクセサ public final AntialiasMixin.factor:AntialiasFactor
セッター public AntialiasMixin.factor:AntialiasFactor

このオブジェクトが提供するオーバーサンプリングの程度を制御します。オーバーサンプリングについては、AntialiasMixin クラスの資料を参照してください。

説明

アンチエイリアス処理のパフォーマンス コストは、その係数が増えるにつれて急激に増加します。
既定値は実装中のクラスによって異なります。通常の既定値は AntialiasFactor.low で、これは 2 倍のオーバーサンプリングに相当します。ただし、Canvas は、この既定値を AntialiasFactor.off にオーバーライドします。

注意事項

要求したオーバーサンプリング係数が常に許可されるとは限りません。内部に作成された Drawable が大きすぎる場合、代わりに最大の AntialiasFactor が使用されます。極端な場合、オーバーサンプリングを実行しないことがあります。AntialiasMixin.actual-oversample-factor により、使用される実際のモードを決定できます。Drawable.set-bypass-size-restriction? はオーバーサンプリングの未実行を回避するため使用できますが、使用する際には十分注意する必要があります。詳細については、Drawable.set-bypass-size-restriction? を参照してください。


layout-context (非ローカル オプション)
public AntialiasMixin.layout-context:#LayoutContext

このオブジェクトに関連する LayoutContext です。

注意事項

このオプションは、Curl グラフィック システム内での通信のために使用されます。これは、ユーザー コードで不用意に設定や設定解除を行わないでください。また、ユーザー コードで直接読み取るべきではありません。現在の LayoutContext が必要な場合は、Visual.get-layout-context を呼び出すことによりフェッチしてください。


support-advanced-draw-operations? (アクセサ)
アクセサ public final AntialiasMixin.support-advanced-draw-operations?:bool
セッター public AntialiasMixin.support-advanced-draw-operations?:bool

含まれるグラフィックに対して "高度な" DrawOperation をサポートするかどうかを制御します。

説明

このフラグが false (既定) の場合、DrawOperation の標準設定のみがサポートされます。詳細は DrawOperation を参照して下さい。
このフラグを true に設定することはパフォーマンスが低下する場合がありますので注意してください。
use-host-rendering? が true に設定され、support-advanced-draw-operations?true に設定するような、相互に矛盾するような設定は妥当ではありません。このルールに違反すると GUI レイアウト中に例外が発生します。
これら 2 つのプロパティの意味についての詳細は、AntialiasMixin.use-host-rendering?Renderer2d.create-offscreen を参照して下さい。


use-host-rendering? (アクセサ)
アクセサ public final AntialiasMixin.use-host-rendering?:bool
セッター public AntialiasMixin.use-host-rendering?:bool

含まれるグラフィックを "ホスト" レンダラを使用してレンダリングするかどうかを制御します。

説明

このフラグが true (既定) である場合、中に含まれるグラフィックが標準ホストレンダラによってレンダリングされます。false の場合、ホスト以外のレンダラによってレンダリングされ、ピクスマップの回転など高度な機能が使用可能になります。詳細については、Renderer2d.create-offscreen を参照して下さい。
このフラグを false に設定するとパフォーマンスが低下するおそれがありますので注意してください。
use-host-rendering? が true に設定され、support-advanced-draw-operations?true に設定するような、相互に矛盾するような設定は妥当ではありません。このルールに違反すると GUI レイアウト中に例外が発生します。
これら 2 つのプロパティの意味についての詳細は、AntialiasMixin.support-advanced-draw-operations?Renderer2d.create-offscreen を参照して下さい。





メソッド詳細
draw-antialiased (メソッド)
public {AntialiasMixin.draw-antialiased
renderer2d:Renderer2d,
cell-bounds:GRect,
bounds:GRect,
clear-color:FillPattern = FillPattern.white
}:void

このオブジェクトの内容をアンチエイリアス処理によって描画します。

renderer2d: 通常描画のための Renderer2d。一般に、これは Graphic.draw に渡されるオブジェクトです。
cell-bounds: Layout.get-cell-bounds から返される、このオブジェクトのセル境界。
bounds: Layout.get-bounds から返される、このオブジェクトの境界。
clear-color: レンダリングの前にオフスクリーン Drawable をクリアする色。

説明

レンダリングを実行するためには、このメソッドを、AntialiasMixin のサブクラスによって呼び出す必要があります。正しい変換を使用してオフスクリーン Renderer2d を設定する必要があります。その後、AntialiasMixin.draw-internal を呼び出し、レンダリングのためにオフスクリーン Renderer2d を渡します。最後に、このレンダリングの結果が、ダウンサンプリング用の scale 画像フィルタを使って、画面にコピーされます。


draw-internal (メソッド)
protected abstract {AntialiasMixin.draw-internal
renderer2d:Renderer2d,
cell-bounds:GRect,
bounds:GRect
}:void

AntialiasMixin の内容をレンダリングします。

renderer2d: この AntialiasMixin と関連したオフスクリーン Drawable にレンダリングする Renderer2d
cell-bounds: AntialiasMixin.draw-antialiased に渡される、このオブジェクトのセル境界。
bounds: AntialiasMixin.draw-antialiased に渡される、このオブジェクトの境界。

説明

AntialiasMixin の実装は、このメソッドをオーバーライドするものでなければなりません。renderer2d を使用して描画されたものは、アンチエイリアス処理されたように表示されます。このクラスの通常の実装 (AntialiasedFrameCanvas など) では、その子を描画するようにこのメソッドが実装されます。
通常の実装では、その draw メソッド内でこのメソッドが呼び出されるだけで、それ以上ことは行われません。アンチエイリアス処理を活用したいレンダリング操作は、すべて AntialiasMixin.draw-internal 内で行う必要があります。

注意事項

renderer2d は、常にオフスクリーン レンダラであるとは限りません。印刷時には、このメソッドが通常レンダラ内で直接呼び出されます。
オフスクリーン領域は、AntialiasMixin.draw-antialiased メソッドに渡される clear-color パラメータに従ってクリアされます。Background オブジェクトを (例えば、Graphic.background オプションから) 適用したい場合は、与えられた Renderer2d 内で Background.draw メソッドを呼び出します。


option-lookup (メソッド)
public {AntialiasMixin.option-lookup
key:OptionKey,
local?:bool
}:#OptionItem

オプション検索を実行し、該当する OptionItem があればこれを生成します。

key: 検索されるオプションの OptionKey
local?: bool で、このオブジェクトがオプション検索の開始場所である場合は true、オプション検索がこのオブジェクトの子孫から開始した場合は false です。

戻り値

このオブジェクトかその祖先の 1 つで該当する key のバインドを含む OptionItem。該当するバインドが見つからない場合は null が返されます。

プログラミング注意事項

OptionListInterface.get-option によって呼び出され、その他の場所からは呼び出されないのが一般的です。

オーバーライド

通常はオーバーライドされません。


propagate-option-change (メソッド)
protected {AntialiasMixin.propagate-option-change
item:OptionItem,
removed?:bool
}:void

このオブジェクト、および該当する場合はそのオプションの子孫にオプションが変更されたことを通知します。

item: 追加または削除されたバインディング オプション。
removed?: item が削除された場合は true、それ以外の場合は false。

注意事項

このオブジェクトのオプション変更通知メソッドが呼び出され、さらにオプションが非ローカル オプションの場合は、 OptionListInterface.notify-option-children を呼び出して、この通知をこのオブジェクトのオプションの子に伝えます。

プログラミング注意事項

option-list パッケージでの内部使用を目的としています。

オーバーライド

通常はオーバーライドされません。


set-antialiased-size (メソッド)
protected {AntialiasMixin.set-antialiased-size bounds:GRect}:void

AntialiasMixin オブジェクトにサイズの変更を通知します。

bounds: Layout.get-bounds で指定される、このオブジェクトに割り当てられた境界。

説明

AntialiasMixin がその内部構造 (Drawable を含む) を正しく調整できるように、サブクラスは、境界が変わるごとに set-antialiased-size または set-antialiased-size-in-pixels のいずれかを呼び出す必要があります。
例えば、Graphic を実装したサブクラス (AntialiasedFrame など) は、そのメソッド set-size 内から set-antialiased-size を呼び出します。
set-antialiased-size-in-pixels はデバイス ピクセルでの寸法を期待しますが、set-antialiased-size はオブジェクトのローカル境界を記述する GRect の形式での寸法を期待します。

注意事項

このメソッドの呼び出し時に、このオブジェクトのオプション子が継承する DisplayContext が変わると思われます。


set-antialiased-size-in-pixels (メソッド)
protected {AntialiasMixin.set-antialiased-size-in-pixels
width:int,
height:int
}:void

AntialiasMixin オブジェクトにサイズの変更を通知します。

width: このオブジェクトに割り当てられた境界の幅 (デバイス ピクセル)。
height: このオブジェクトに割り当てられた境界の高さ (デバイス ピクセル)。

説明

AntialiasMixin がその内部構造 (Drawable を含む) を正しく調整できるように、サブクラスは、境界が変わるごとに set-antialiased-size または set-antialiased-size-in-pixels のいずれかを呼び出す必要があります。
例えば、Graphic を実装したサブクラス (AntialiasedFrame など) は、そのメソッド set-size 内から set-antialiased-size を呼び出します。
set-antialiased-size-in-pixels はデバイス ピクセルでの寸法を期待しますが、set-antialiased-size はオブジェクトのローカル境界を記述する GRect の形式での寸法を期待します。

注意事項

このメソッドの呼び出し時に、このオブジェクトのオプション子が継承する DisplayContext が変わると思われます。