共用方式為


WebGLRenderer interface

在 WebGLLayer 中轉譯 WebGL 圖形的介面。

屬性

renderingMode

「2d」 或 「3d」。 預設值為 「2d」。

方法

onAdd(Map, WebGLRenderingContext)

將圖層新增至地圖時所呼叫的選擇性方法。 這可讓層有機會初始化 gl 資源並註冊事件接聽程式。

onRemove(Map, WebGLRenderingContext)

從地圖中移除圖層時所呼叫的選擇性方法。 這可讓層有機會清除 gl 資源和事件接聽程式。

prerender(WebGLRenderingContext, number[])

在轉譯框架期間呼叫的選擇性方法,以允許圖層準備資源或轉譯成紋理。 圖層無法對目前 GL 狀態進行任何假設,而且必須在轉譯之前系結框架緩衝區。

render(WebGLRenderingContext, number[])

在轉譯框架期間呼叫,允許圖層繪製到 GL 內容中。 圖層可以假設混合和深度狀態已設定為允許圖層正確混合並裁剪其他圖層。 圖層無法對目前 GL 狀態進行任何其他假設。

如果圖層需要轉譯為紋理,它應該實作預先呈現方法來執行此動作,並且只使用轉譯方法直接繪製到主要框架緩衝區。

blend 函式會設定為 gl.blendFunc (gl。ONE,gl.ONE_MINUS_SRC_ALPHA) 。 這預期會在 r、g 和 b 值已經乘以值的預乘 Alpha 形式中提供色彩。 如果您無法以預先乘法形式提供色彩,您可能想要將 blend 函式變更為 gl.blendFuncSeparate (gl。SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA,gl。ONE,gl.ONE_MINUS_SRC_ALPHA) 。

屬性詳細資料

renderingMode

「2d」 或 「3d」。 預設值為 「2d」。

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

屬性值

"2d" | "3d"

方法詳細資料

onAdd(Map, WebGLRenderingContext)

將圖層新增至地圖時所呼叫的選擇性方法。 這可讓層有機會初始化 gl 資源並註冊事件接聽程式。

function onAdd(map: Map, gl: WebGLRenderingContext)

參數

map
Map

剛加入此 WebGL 圖層的對應。

gl

WebGLRenderingContext

地圖的 gl 內容。

onRemove(Map, WebGLRenderingContext)

從地圖中移除圖層時所呼叫的選擇性方法。 這可讓層有機會清除 gl 資源和事件接聽程式。

function onRemove(map: Map, gl: WebGLRenderingContext)

參數

map
Map

剛加入此 WebGL 圖層的對應。

gl

WebGLRenderingContext

地圖的 gl 內容。

prerender(WebGLRenderingContext, number[])

在轉譯框架期間呼叫的選擇性方法,以允許圖層準備資源或轉譯成紋理。 圖層無法對目前 GL 狀態進行任何假設,而且必須在轉譯之前系結框架緩衝區。

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

參數

gl

WebGLRenderingContext

地圖的 gl 內容。

matrix

number[]

地圖的相機矩陣。 它會將球面 Mercator 座標投影到 gl 座標。 Mercator 座標 [0, 0] 代表 Mercator 世界左上角,而 [1, 1] 則代表右下角。 當 renderingMode 為 「3d」 時,z 座標是一致性的。 具有相同 x、y 和 z 長度的方塊會以立方體呈現。 MercatorCoordinate .fromLatLng 可用來將 LngLat 投影到 Mercator 座標。

render(WebGLRenderingContext, number[])

在轉譯框架期間呼叫,允許圖層繪製到 GL 內容中。 圖層可以假設混合和深度狀態已設定為允許圖層正確混合並裁剪其他圖層。 圖層無法對目前 GL 狀態進行任何其他假設。

如果圖層需要轉譯為紋理,它應該實作預先呈現方法來執行此動作,並且只使用轉譯方法直接繪製到主要框架緩衝區。

blend 函式會設定為 gl.blendFunc (gl。ONE,gl.ONE_MINUS_SRC_ALPHA) 。 這預期會在 r、g 和 b 值已經乘以值的預乘 Alpha 形式中提供色彩。 如果您無法以預先乘法形式提供色彩,您可能想要將 blend 函式變更為 gl.blendFuncSeparate (gl。SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA,gl。ONE,gl.ONE_MINUS_SRC_ALPHA) 。

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

參數

gl

WebGLRenderingContext

地圖的 gl 內容。

matrix

number[]

地圖的相機矩陣。 它會將球面 Mercator 座標投影到 gl 座標。 Mercator 座標 [0, 0] 代表 Mercator 世界左上角,而 [1, 1] 則代表右下角。 當 renderingMode 為 「3d」 時,z 座標是一致性的。 具有相同 x、y 和 z 長度的方塊會以立方體呈現。 MercatorCoordinate .fromLatLng 可用來將 LngLat 投影到 Mercator 座標。