コンテンツにスキップ

OverlayWindow クラス

SteamVRオーバーレイを描画先とするIEngineWindowの実装です。

名前空間: FloatSoda.Engine
アセンブリ: FloatSoda.Engine.dll

public class OverlayWindow : IEngineWindow, IDisposable

object ← OverlayWindow

IEngineWindow, IDisposable

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

指定されたオーバーレイを描画先とするウィンドウを作成します。

public OverlayWindow(IOverlay overlay, Renderer renderer, Dpm dpm)

overlay IOverlay

描画先となるOpenVRオーバーレイ。

renderer Renderer

レイヤーツリーをテクスチャへ描画するレンダラー。

dpm Dpm

ピクセルサイズをオーバーレイの物理幅へ換算する際に使用する密度。

overlayがダッシュボードオーバーレイの場合、入力方式をマウスへ設定し、 SteamVRのレーザーポインター入力を受け取るPointerSourceを生成します。 それ以外のオーバーレイではPointerSourceはnullのままです。

このウィンドウが描画先とするOpenVRオーバーレイを取得します。

public IOverlay Overlay { get; }

IOverlay

このウィンドウの生ポインター入力源を取得します。

public IRawPointerSource? PointerSource { get; }

IRawPointerSource?

このウィンドウの生ポインター入力源とオーバーレイを破棄します。

public void Dispose()

このオーバーレイ宛のOpenVRイベントをポーリングし、PointerSource へ流します。 メインスレッドから毎フレーム呼びます。入力を持たないオーバーレイでは何もしません。

public void PollInputEvents()

指定されたレイヤーツリーを描画し、結果のテクスチャをオーバーレイへ反映します。

public void Present(ILayer layer)

layer ILayer

描画するレイヤーツリー。nullは指定できません。

レンダースレッド上で呼び出します。

描画先テクスチャをリサイズし、ピクセル幅と物理密度(dots per meter)から オーバーレイの物理幅(WidthInMeters = width / dpm)を更新します。 マウス入力を受けるオーバーレイではマウススケールもピクセルサイズへ追従させます。

public void Resize(SKSizeI size)

size SKSizeI

IOverlay