Dela via


WebGLRenderer interface

Gränssnitt för att återge WebGL-grafik i en WebGLLayer.

Egenskaper

renderingMode

Antingen "2d" eller "3d". Standardvärdet är "2d".

Metoder

onAdd(Map, WebGLRenderingContext)

Valfri metod som anropas när lagret har lagts till på kartan. Detta ger lagret en chans att initiera gl-resurser och registrera händelselyssnare.

onRemove(Map, WebGLRenderingContext)

Valfri metod som anropas när lagret har tagits bort från kartan. Detta ger lagret en chans att rensa gl-resurser och händelselyssnare.

prerender(WebGLRenderingContext, number[])

Valfri metod som anropas under en återgivningsram så att ett lager kan förbereda resurser eller rendera till en struktur. Lagret kan inte göra några antaganden om det aktuella GL-tillståndet och måste binda en framebuffer innan återgivningen.

render(WebGLRenderingContext, number[])

Anropas under en återgivningsram så att lagret kan ritas in i GL-kontexten. Lagret kan förutsätta att blandnings- och djuptillstånd har angetts så att lagret kan blanda och klippa ut andra lager på rätt sätt. Lagret kan inte göra några andra antaganden om det aktuella GL-tillståndet.

Om lagret behöver renderas till en struktur bör det implementera prerender-metoden för att göra detta och endast använda återgivningsmetoden för att rita direkt till huvudrambuffer.

Blend-funktionen är inställd på gl.blendFunc(gl. EN, gl. ONE_MINUS_SRC_ALPHA). Detta förväntar sig att färger anges i premultiplied alfaform där värdena r, g och b redan multipliceras med ett värde. Om du inte kan ange färger i premultiplied kan du ändra blend-funktionen till gl.blendFuncSeparate(gl. SRC_ALPHA, gl. ONE_MINUS_SRC_ALPHA, gl. EN, gl. ONE_MINUS_SRC_ALPHA).

Egenskapsinformation

renderingMode

Antingen "2d" eller "3d". Standardvärdet är "2d".

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

Egenskapsvärde

"2d" | "3d"

Metodinformation

onAdd(Map, WebGLRenderingContext)

Valfri metod som anropas när lagret har lagts till på kartan. Detta ger lagret en chans att initiera gl-resurser och registrera händelselyssnare.

function onAdd(map: Map, gl: WebGLRenderingContext)

Parametrar

map
Map

Mappa det här WebGL-lagret har just lagts till.

gl

WebGLRenderingContext

Gl-kontexten för kartan.

onRemove(Map, WebGLRenderingContext)

Valfri metod som anropas när lagret har tagits bort från kartan. Detta ger lagret en chans att rensa gl-resurser och händelselyssnare.

function onRemove(map: Map, gl: WebGLRenderingContext)

Parametrar

map
Map

Mappa det här WebGL-lagret har just lagts till.

gl

WebGLRenderingContext

Gl-kontexten för kartan.

prerender(WebGLRenderingContext, number[])

Valfri metod som anropas under en återgivningsram så att ett lager kan förbereda resurser eller rendera till en struktur. Lagret kan inte göra några antaganden om det aktuella GL-tillståndet och måste binda en framebuffer innan återgivningen.

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

Parametrar

gl

WebGLRenderingContext

Kartans gl-kontext.

matrix

number[]

Kartans kameramatris. Den projicerar sfäriska mercatorkoordinater till gl-koordinater. Mercatorkoordinaten [0, 0] representerar det övre vänstra hörnet i mercatorvärlden och [1, 1] representerar det nedre högra hörnet. När renderingMode är "3d" är z-koordinaten överensstämmande. En ruta med identiska x-, y- och z-längder i mercatorenheter återges som en kub. MercatorCoordinate .fromLatLng kan användas för att projicera en LngLat till en mercatorkoordinat.

render(WebGLRenderingContext, number[])

Anropas under en återgivningsram så att lagret kan ritas in i GL-kontexten. Lagret kan förutsätta att blandnings- och djuptillstånd har angetts så att lagret kan blanda och klippa ut andra lager på rätt sätt. Lagret kan inte göra några andra antaganden om det aktuella GL-tillståndet.

Om lagret behöver renderas till en struktur bör det implementera prerender-metoden för att göra detta och endast använda återgivningsmetoden för att rita direkt till huvudrambuffer.

Blend-funktionen är inställd på gl.blendFunc(gl. EN, gl. ONE_MINUS_SRC_ALPHA). Detta förväntar sig att färger anges i premultiplied alfaform där värdena r, g och b redan multipliceras med ett värde. Om du inte kan ange färger i premultiplied kan du ändra blend-funktionen till gl.blendFuncSeparate(gl. SRC_ALPHA, gl. ONE_MINUS_SRC_ALPHA, gl. EN, gl. ONE_MINUS_SRC_ALPHA).

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

Parametrar

gl

WebGLRenderingContext

Kartans gl-kontext.

matrix

number[]

Kartans kameramatris. Den projicerar sfäriska mercatorkoordinater till gl-koordinater. Mercatorkoordinaten [0, 0] representerar det övre vänstra hörnet i mercatorvärlden och [1, 1] representerar det nedre högra hörnet. När renderingMode är "3d" är z-koordinaten överensstämmande. En ruta med identiska x-, y- och z-längder i mercatorenheter återges som en kub. MercatorCoordinate .fromLatLng kan användas för att projicera en LngLat till en mercatorkoordinat.