Partager via


WebGLRenderer interface

Interface pour le rendu des graphiques WebGL dans un WebGLLayer.

Propriétés

renderingMode

« 2d » ou « 3d ». La valeur par défaut est « 2d ».

Méthodes

onAdd(Map, WebGLRenderingContext)

Méthode facultative appelée lorsque la couche a été ajoutée à la carte. Cela permet à la couche d’initialiser des ressources gl et d’inscrire des écouteurs d’événements.

onRemove(Map, WebGLRenderingContext)

Méthode facultative appelée lorsque la couche a été supprimée de la carte. Cela donne à la couche la possibilité de nettoyer les ressources gl et les écouteurs d’événements.

prerender(WebGLRenderingContext, number[])

Méthode facultative appelée lors d’un frame de rendu pour permettre à une couche de préparer des ressources ou d’effectuer un rendu dans une texture. La couche ne peut pas faire d’hypothèses sur l’état GL actuel et doit lier un framebuffer avant le rendu.

render(WebGLRenderingContext, number[])

Appelé pendant un frame de rendu permettant au calque de dessiner dans le contexte GL. La couche peut supposer que l’état de fusion et de profondeur est défini pour permettre à la couche de fusionner et de découper correctement d’autres couches. La couche ne peut pas effectuer d’autres hypothèses sur l’état GL actuel.

Si la couche doit être restituée dans une texture, elle doit implémenter la méthode de prérender pour effectuer cette opération et utiliser uniquement la méthode de rendu pour dessiner directement dans le framebuffer principal.

La fonction blend est définie sur gl.blendFunc(gl. UN, gl. ONE_MINUS_SRC_ALPHA). Cela s’attend à ce que les couleurs soient fournies sous forme alpha prémultipliée, où les valeurs r, g et b sont déjà multipliées par une valeur. Si vous ne parvenez pas à fournir des couleurs sous forme prémultipliée, vous pouvez modifier la fonction blend en gl.blendFuncSeparate(gl). SRC_ALPHA, gl. ONE_MINUS_SRC_ALPHA, gl. UN, gl. ONE_MINUS_SRC_ALPHA).

Détails de la propriété

renderingMode

« 2d » ou « 3d ». La valeur par défaut est « 2d ».

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

Valeur de propriété

"2d" | "3d"

Détails de la méthode

onAdd(Map, WebGLRenderingContext)

Méthode facultative appelée lorsque la couche a été ajoutée à la carte. Cela permet à la couche d’initialiser des ressources gl et d’inscrire des écouteurs d’événements.

function onAdd(map: Map, gl: WebGLRenderingContext)

Paramètres

map
Map

La carte à laquelle cette couche WebGL vient d’être ajoutée.

gl

WebGLRenderingContext

Contexte gl de la carte.

onRemove(Map, WebGLRenderingContext)

Méthode facultative appelée lorsque la couche a été supprimée de la carte. Cela donne à la couche la possibilité de nettoyer les ressources gl et les écouteurs d’événements.

function onRemove(map: Map, gl: WebGLRenderingContext)

Paramètres

map
Map

La carte à laquelle cette couche WebGL vient d’être ajoutée.

gl

WebGLRenderingContext

Contexte gl de la carte.

prerender(WebGLRenderingContext, number[])

Méthode facultative appelée lors d’un frame de rendu pour permettre à une couche de préparer des ressources ou d’effectuer un rendu dans une texture. La couche ne peut pas faire d’hypothèses sur l’état GL actuel et doit lier un framebuffer avant le rendu.

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

Paramètres

gl

WebGLRenderingContext

Contexte gl de la carte.

matrix

number[]

Matrice de la caméra de la carte. Il projette des coordonnées mercator sphériques en coordonnées gl. La coordonnée mercator [0, 0] représente le coin supérieur gauche du monde mercator et [1, 1] représente le coin inférieur droit. Lorsque le renderingMode est « 3d », la coordonnée z est conforme. Une boîte avec des longueurs x, y et z identiques dans les unités mercator serait affichée sous la forme d’un cube. MercatorCoordinate .fromLatLng peut être utilisé pour projeter un LngLat sur une coordonnée mercator.

render(WebGLRenderingContext, number[])

Appelé pendant un frame de rendu permettant au calque de dessiner dans le contexte GL. La couche peut supposer que l’état de fusion et de profondeur est défini pour permettre à la couche de fusionner et de découper correctement d’autres couches. La couche ne peut pas effectuer d’autres hypothèses sur l’état GL actuel.

Si la couche doit être restituée dans une texture, elle doit implémenter la méthode de prérender pour effectuer cette opération et utiliser uniquement la méthode de rendu pour dessiner directement dans le framebuffer principal.

La fonction blend est définie sur gl.blendFunc(gl. UN, gl. ONE_MINUS_SRC_ALPHA). Cela s’attend à ce que les couleurs soient fournies sous forme alpha prémultipliée, où les valeurs r, g et b sont déjà multipliées par une valeur. Si vous ne parvenez pas à fournir des couleurs sous forme prémultipliée, vous pouvez modifier la fonction blend en gl.blendFuncSeparate(gl). SRC_ALPHA, gl. ONE_MINUS_SRC_ALPHA, gl. UN, gl. ONE_MINUS_SRC_ALPHA).

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

Paramètres

gl

WebGLRenderingContext

Contexte gl de la carte.

matrix

number[]

Matrice de la caméra de la carte. Il projette des coordonnées mercator sphériques en coordonnées gl. La coordonnée mercator [0, 0] représente le coin supérieur gauche du monde mercator et [1, 1] représente le coin inférieur droit. Lorsque le renderingMode est « 3d », la coordonnée z est conforme. Une boîte avec des longueurs x, y et z identiques dans les unités mercator serait affichée sous la forme d’un cube. MercatorCoordinate .fromLatLng peut être utilisé pour projeter un LngLat sur une coordonnée mercator.