GPURenderPassEncoder: setViewport() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die setViewport()
-Methode der
GPURenderPassEncoder
-Schnittstelle setzt die Viewport, die während der Rasterisierungsphase verwendet wird, um von normalisierten Gerätekoordinaten linear zu Viewport-Koordinaten zu wechseln.
Syntax
setViewport(x, y, width, height, minDepth, maxDepth)
Parameter
x
-
Eine Zahl, die den minimalen X-Wert des Viewports in Pixeln darstellt.
y
-
Eine Zahl, die den minimalen Y-Wert des Viewports in Pixeln darstellt.
width
-
Eine Zahl, die die Breite des Viewports in Pixeln darstellt.
height
-
Eine Zahl, die die Höhe des Viewports in Pixeln darstellt.
minDepth
-
Eine Zahl, die den minimalen Tiefenwert des Viewports darstellt.
maxDepth
-
Eine Zahl, die den maximalen Tiefenwert des Viewports darstellt.
Hinweis:
Wenn kein setViewport()
-Aufruf erfolgt, sind die Standardwerte (0, 0, attachment width, attachment height, 0, 1)
für jeden Render-Pass.
Rückgabewert
Keine (Undefined
).
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenn setViewport()
aufgerufen wird, andernfalls wird ein GPUValidationError
erzeugt und der GPURenderPassEncoder
wird ungültig:
x
,y
,width
undheight
sind alle größer oder gleich 0.x
+width
ist kleiner oder gleich der Breite der Render-Anhänge des Render-Passes (siehe Hinweis unten).y
+height
ist kleiner oder gleich der Höhe der Render-Anhänge des Render-Passes (siehe Hinweis unten).minDepth
undmaxDepth
liegen beide im Bereich von 0,0 bis 1,0 einschließlich.minDepth
ist kleiner alsmaxDepth
.
Hinweis:
Siehe die im Deskriptor von GPUCommandEncoder.beginRenderPass()
angegebenen Farb- und Tiefen/Stencilanlagen; die Breite und Höhe basieren auf der des GPUTexture
, von der ihre view
s stammen.
Beispiele
Einfaches Snippet
In einem typischen Canvas-Render könnte folgendes verwendet werden, um die Breite und Höhe der gerenderten Grafiken zu halbieren:
passEncoder.setViewport(0, 0, canvas.width / 2, canvas.height / 2, 0, 1);
Im Kontext
Im WebGPU-Beispiel reversedZ example wird setViewport
mehrmals verwendet, um den Viewport für die verschiedenen Render-Passes zu setzen. Studieren Sie die Beispiel-Codelisting für den vollständigen Kontext.
Zum Beispiel:
// …
colorPass.setViewport(
(canvas.width * m) / 2,
0,
canvas.width / 2,
canvas.height,
0,
1,
);
// …
Spezifikationen
Specification |
---|
WebGPU # dom-gpurenderpassencoder-setviewport |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API