Freigeben über


WebGLRenderer interface

Schnittstelle zum Rendern von WebGL-Grafiken in einem WebGLLayer.

Eigenschaften

renderingMode

Entweder "2d" oder "3d". Standardwerte sind "2d".

Methoden

onAdd(Map, WebGLRenderingContext)

Optionale Methode, die aufgerufen wird, wenn der Layer der Karte hinzugefügt wurde. Dadurch erhalten Sie die Möglichkeit, gl-Ressourcen zu initialisieren und Ereignislistener zu registrieren.

onRemove(Map, WebGLRenderingContext)

Optionale Methode, die aufgerufen wird, wenn die Ebene aus der Karte entfernt wurde. Dadurch erhalten Sie die Möglichkeit, gl-Ressourcen und Ereignislistener zu bereinigen.

prerender(WebGLRenderingContext, number[])

Optionale Methode, die während eines Renderframes aufgerufen wird, damit eine Ebene Ressourcen vorbereiten oder in eine Textur rendern kann. Die Ebene kann keine Annahmen über den aktuellen GL-Zustand vornehmen und muss vor dem Rendern einen Framebuffer binden.

render(WebGLRenderingContext, number[])

Wird während eines Renderframes aufgerufen, sodass die Ebene in den GL-Kontext zeichnen kann. Die Ebene kann davon ausgehen, dass der Vermischungs- und Tiefenzustand festgelegt ist, damit die Ebene andere Ebenen ordnungsgemäß mischen und abschneiden kann. Die Ebene kann keine anderen Annahmen über den aktuellen GL-Zustand vornehmen.

Wenn die Ebene in einer Textur gerendert werden muss, sollte die Prerender-Methode dazu implementiert werden und nur die Rendermethode zum Zeichnen direkt in den Hauptframebuffer verwenden.

Die Blendfunktion ist auf gl.blendFunc(gl) festgelegt. ONE, gl. ONE_MINUS_SRC_ALPHA). Dies erwartet, dass Farben in vormultiplizierter Alphaform bereitgestellt werden, wobei die Werte r, g und b bereits durch den Wert multipliziert werden. Wenn Sie keine Farben in vordefinierter Form bereitstellen können, möchten Sie die Blendfunktion möglicherweise in gl.blendFuncSeparate(gl) ändern. SRC_ALPHA, gl. ONE_MINUS_SRC_ALPHA, gl. ONE, gl. ONE_MINUS_SRC_ALPHA).

Details zur Eigenschaft

renderingMode

Entweder "2d" oder "3d". Standardwerte sind "2d".

renderingMode?: "2d" | "3d"

Eigenschaftswert

"2d" | "3d"

Details zur Methode

onAdd(Map, WebGLRenderingContext)

Optionale Methode, die aufgerufen wird, wenn der Layer der Karte hinzugefügt wurde. Dadurch erhalten Sie die Möglichkeit, gl-Ressourcen zu initialisieren und Ereignislistener zu registrieren.

function onAdd(map: Map, gl: WebGLRenderingContext)

Parameter

map
Map

Die Karte dieser WebGL-Ebene wurde gerade hinzugefügt.

gl

WebGLRenderingContext

Der gl-Kontext für die Karte.

onRemove(Map, WebGLRenderingContext)

Optionale Methode, die aufgerufen wird, wenn die Ebene aus der Karte entfernt wurde. Dadurch erhalten Sie die Möglichkeit, gl-Ressourcen und Ereignislistener zu bereinigen.

function onRemove(map: Map, gl: WebGLRenderingContext)

Parameter

map
Map

Die Karte dieser WebGL-Ebene wurde gerade hinzugefügt.

gl

WebGLRenderingContext

Der gl-Kontext für die Karte.

prerender(WebGLRenderingContext, number[])

Optionale Methode, die während eines Renderframes aufgerufen wird, damit eine Ebene Ressourcen vorbereiten oder in eine Textur rendern kann. Die Ebene kann keine Annahmen über den aktuellen GL-Zustand vornehmen und muss vor dem Rendern einen Framebuffer binden.

function prerender(gl: WebGLRenderingContext, matrix: number[])

Parameter

gl

WebGLRenderingContext

Der Gl-Kontext der Karte.

matrix

number[]

Kameramatrix der Karte. Es wird sphärische Mercatorkoordinaten an gl-Koordinaten gejiziert. Die Mercatorkoordinate [0, 0] stellt die obere linke Ecke der Mercatorwelt dar und [1, 1] stellt die untere rechte Ecke dar. Wenn der RenderingMode "3d" ist, ist die Z-Koordinate konform. Ein Feld mit identischen X-, Y- und Z-Längen in Mercatoreinheiten würde als Würfel gerendert. MercatorCoordinate .fromLatLng kann verwendet werden, um ein LngLat auf eine Mercator-Koordinate zu projizieren.

render(WebGLRenderingContext, number[])

Wird während eines Renderframes aufgerufen, sodass die Ebene in den GL-Kontext zeichnen kann. Die Ebene kann davon ausgehen, dass der Vermischungs- und Tiefenzustand festgelegt ist, damit die Ebene andere Ebenen ordnungsgemäß mischen und abschneiden kann. Die Ebene kann keine anderen Annahmen über den aktuellen GL-Zustand vornehmen.

Wenn die Ebene in einer Textur gerendert werden muss, sollte die Prerender-Methode dazu implementiert werden und nur die Rendermethode zum Zeichnen direkt in den Hauptframebuffer verwenden.

Die Blendfunktion ist auf gl.blendFunc(gl) festgelegt. ONE, gl. ONE_MINUS_SRC_ALPHA). Dies erwartet, dass Farben in vormultiplizierter Alphaform bereitgestellt werden, wobei die Werte r, g und b bereits durch den Wert multipliziert werden. Wenn Sie keine Farben in vordefinierter Form bereitstellen können, möchten Sie die Blendfunktion möglicherweise in gl.blendFuncSeparate(gl) ändern. SRC_ALPHA, gl. ONE_MINUS_SRC_ALPHA, gl. ONE, gl. ONE_MINUS_SRC_ALPHA).

function render(gl: WebGLRenderingContext, matrix: number[])

Parameter

gl

WebGLRenderingContext

Der Gl-Kontext der Karte.

matrix

number[]

Kameramatrix der Karte. Es wird sphärische Mercatorkoordinaten an gl-Koordinaten gejiziert. Die Mercatorkoordinate [0, 0] stellt die obere linke Ecke der Mercatorwelt dar und [1, 1] stellt die untere rechte Ecke dar. Wenn der RenderingMode "3d" ist, ist die Z-Koordinate konform. Ein Feld mit identischen X-, Y- und Z-Längen in Mercatoreinheiten würde als Würfel gerendert. MercatorCoordinate .fromLatLng kann verwendet werden, um ein LngLat auf eine Mercator-Koordinate zu projizieren.