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,widthundheightsind alle größer oder gleich 0.x+widthist kleiner oder gleich der Breite der Render-Anhänge des Render-Passes (siehe Hinweis unten).y+heightist kleiner oder gleich der Höhe der Render-Anhänge des Render-Passes (siehe Hinweis unten).minDepthundmaxDepthliegen beide im Bereich von 0,0 bis 1,0 einschließlich.minDepthist 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 views 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
Loading…
Siehe auch
- Die WebGPU API