Подтвердить что ты не робот

Как использовать несколько контекстов холста?

Я хотел бы использовать experimental-webgl и контекст canvas 2d. После того, как я нарисовал 3D-объекты, я хочу нарисовать над ним 2d-объекты.

Как мне это сделать?

4b9b3361

Ответ 1

Вам нужен отдельный холст. Вы можете поместить другой холст поверх первого, это не считается плохой практикой.

Ответ 2

Вы не можете использовать несколько контекстов для одного элемента холста. В 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;

(Итак, если вы запрашиваете трехмерный контекст, когда у вас уже есть другой контекст, вы получаете null.)

Что вы, возможно, хотите, это два элемента холста - один для 3D-материала, а другой для 2D-материала. Если вы размещаете их друг над другом, они действуют как два слоя, и вы можете рисовать на каждом холсте независимо.