我想使用experimental-webgl
和2d
画布上下文。 在我绘制了3d对象之后,我想在它上面绘制一些2d对象。
我该怎么办?
您不能将多个上下文用于一个canvas元素。 在WebKit中,这在源代码中明确提到:
// A Canvas can either be "2D" or "webgl" but never both.
如果您确实请求另一个上下文,则为null
:
if ((type == "webkit-3d") ||
(type == "experimental-webgl")) {
if (m_context && !m_context->is3d())
return 0;
(因此,如果您在已有其他上下文时请求3D上下文,则会得到null
。)
你可能想要的是两个画布元素 - 一个用于3D东西,另一个用于2D东西。 如果将它们放在一起,它们可以作为两层,您可以独立地在每个画布上绘制。
你需要一个单独的画布。 你可以把另一个画布放在第一个画布上,这不算是不好的做法。