如何使用多个画布上下文?

时间:2011-12-11 18:51:51

标签: javascript html5-canvas webgl

我想使用experimental-webgl2d画布上下文。在我绘制了3d对象之后,我想在它上面绘制一些2d对象。

我该怎么办?

2 个答案:

答案 0 :(得分:11)

您不能将多个上下文用于一个canvas元素。在WebKit中,明确提到in the source

// 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东西。如果将它们放在一起,它们可以作为两层,您可以独立地在每个画布上绘制。

答案 1 :(得分:11)

您需要一个单独的画布。你可以将另一个画布放在第一个画布上,这不算错误。