mapbox-gl
Version:
A WebGL interactive maps library
38 lines (28 loc) • 1.5 kB
JavaScript
;
var textVertices = require('../lib/debugtext');
var browser = require('../util/browser');
module.exports = drawDebug;
function drawDebug(painter, tile) {
var gl = painter.gl;
// Blend to the front, not the back.
gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
gl.switchShader(painter.debugShader, tile.posMatrix);
// draw bounding rectangle
gl.bindBuffer(gl.ARRAY_BUFFER, painter.debugBuffer);
gl.vertexAttribPointer(painter.debugShader.a_pos, painter.debugBuffer.itemSize, gl.SHORT, false, 0, 0);
gl.uniform4f(painter.debugShader.u_color, 1, 0, 0, 1);
gl.lineWidth(4);
gl.drawArrays(gl.LINE_STRIP, 0, painter.debugBuffer.itemCount);
var vertices = textVertices(tile.coord.toString(), 50, 200, 5);
gl.bindBuffer(gl.ARRAY_BUFFER, painter.debugTextBuffer);
gl.bufferData(gl.ARRAY_BUFFER, new Int16Array(vertices), gl.STREAM_DRAW);
gl.vertexAttribPointer(painter.debugShader.a_pos, painter.debugTextBuffer.itemSize, gl.SHORT, false, 0, 0);
gl.lineWidth(8 * browser.devicePixelRatio);
gl.uniform4f(painter.debugShader.u_color, 1, 1, 1, 1);
gl.drawArrays(gl.LINES, 0, vertices.length / painter.debugTextBuffer.itemSize);
gl.lineWidth(2 * browser.devicePixelRatio);
gl.uniform4f(painter.debugShader.u_color, 0, 0, 0, 1);
gl.drawArrays(gl.LINES, 0, vertices.length / painter.debugTextBuffer.itemSize);
// Revert blending mode to blend to the back.
gl.blendFunc(gl.ONE_MINUS_DST_ALPHA, gl.ONE);
}