XRView: requestViewportScale()-Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die requestViewportScale()-Methode der XRView-Schnittstelle fordert, dass der Benutzeragent den angeforderten Viewport-Skalierungsfaktor für diesen Viewport auf den angegebenen Wert setzt. Dies wird für dynamische Viewport-Skalierungen verwendet, die es ermöglichen, in einem Teilbereich des WebXR-Viewports mit einem Skalierungsfaktor zu rendern, der in jedem Animationsrahmen geändert werden kann.

Syntax

js
requestViewportScale(scale)

Parameter

scale

Eine Zahl größer als 0,0 und kleiner oder gleich 1,0, die den Skalierungsfaktor darstellt.

Rückgabewert

Keiner (undefined).

Dynamische Viewport-Skalierung

Dynamische Viewport-Skalierung ermöglicht es Anwendungen, nur einen Teil des verfügbaren framebuffer zu verwenden. Die Funktion ist möglicherweise nicht auf allen Systemen verfügbar, da sie von der Treiberunterstützung abhängt. Daher sollten Sie sicherstellen, dass requestViewportScale() existiert, bevor Sie es aufrufen.

Der scale-Parameter kann eine Zahl größer als 0,0 und kleiner oder gleich 1,0 sein.

Alternativ können Sie die XRView.recommendedViewportScale-Eigenschaft verwenden, die den vom Benutzeragenten empfohlenen Wert basierend auf internen Heuristiken enthält. Wenn der Benutzeragent keinen empfohlenen Viewport-Skalierungsfaktor bereitstellt, ist sein Wert null und der Aufruf von requestViewportScale() wird ignoriert.

Beispiele

Das folgende Beispiel zeigt, wie Sie eine neue Viewport-Skalierung anfordern und anwenden können. Der Aufruf von XRWebGLLayer.getViewport() wendet die Änderung an und gibt den aktualisierten Viewport zurück.

js
for (const view of pose.views) {
  if (view.requestViewportScale) {
    view.requestViewportScale(0.8);
    // or use view.requestViewportScale(view.recommendedViewportScale);
  }
  const viewport = glLayer.getViewport(view);
}

Spezifikationen

Specification
WebXR Device API
# dom-xrview-requestviewportscale

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch