OverlayWindow クラス
SteamVRオーバーレイを描画先とするIEngineWindowの実装です。
名前空間: FloatSoda.Engine
アセンブリ: FloatSoda.Engine.dll
public class OverlayWindow : IEngineWindow, IDisposable実装するインターフェイス
Section titled “実装するインターフェイス”IEngineWindow, IDisposable
継承したメンバー
Section titled “継承したメンバー”object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()
コンストラクター
Section titled “コンストラクター”OverlayWindow(IOverlay, Renderer, Dpm)
Section titled “OverlayWindow(IOverlay, Renderer, Dpm)”指定されたオーバーレイを描画先とするウィンドウを作成します。
public OverlayWindow(IOverlay overlay, Renderer renderer, Dpm dpm)パラメーター
Section titled “パラメーター”overlay IOverlay
描画先となるOpenVRオーバーレイ。
renderer Renderer
レイヤーツリーをテクスチャへ描画するレンダラー。
dpm Dpm
ピクセルサイズをオーバーレイの物理幅へ換算する際に使用する密度。
overlayがダッシュボードオーバーレイの場合、入力方式をマウスへ設定し、
SteamVRのレーザーポインター入力を受け取るPointerSourceを生成します。
それ以外のオーバーレイではPointerSourceはnullのままです。
Overlay
Section titled “Overlay”このウィンドウが描画先とするOpenVRオーバーレイを取得します。
public IOverlay Overlay { get; }プロパティの値
Section titled “プロパティの値”IOverlay
PointerSource
Section titled “PointerSource”このウィンドウの生ポインター入力源を取得します。
public IRawPointerSource? PointerSource { get; }プロパティの値
Section titled “プロパティの値”IRawPointerSource?
Dispose()
Section titled “Dispose()”このウィンドウの生ポインター入力源とオーバーレイを破棄します。
public void Dispose()PollInputEvents()
Section titled “PollInputEvents()”このオーバーレイ宛のOpenVRイベントをポーリングし、PointerSource へ流します。 メインスレッドから毎フレーム呼びます。入力を持たないオーバーレイでは何もしません。
public void PollInputEvents()Present(ILayer)
Section titled “Present(ILayer)”指定されたレイヤーツリーを描画し、結果のテクスチャをオーバーレイへ反映します。
public void Present(ILayer layer)パラメーター
Section titled “パラメーター”layer ILayer
描画するレイヤーツリー。nullは指定できません。
レンダースレッド上で呼び出します。
Resize(SKSizeI)
Section titled “Resize(SKSizeI)”描画先テクスチャをリサイズし、ピクセル幅と物理密度(dots per meter)から オーバーレイの物理幅(WidthInMeters = width / dpm)を更新します。 マウス入力を受けるオーバーレイではマウススケールもピクセルサイズへ追従させます。
public void Resize(SKSizeI size)パラメーター
Section titled “パラメーター”size SKSizeI
IOverlay