CocoonJS Не работает заливка рисунка Canvas

Я использую HTML5 Canvas для рисования GUI.

Заливка рисунка отлично работает в браузерах (включая мобильные), но когда я использую пусковую установку Cocoon JS на Android или iPad, узор текстуры просто отображается черным.

var pattern = context.createPattern(imageResource,"repeat");
context.fillStyle = pattern;
context.fillRect(0,0,300,300);

Глядя на консоль CocoonJS, текстура загружается правильно, и context.drawImage() отлично работает с тем же изображением.

Документы указывают, что шаблоны Canvas поддерживаются. Есть идеи, почему шаблонная заливка не работает в программе запуска CocoonJS?

Спасибо

2 ответа

Шаблоны холста поддерживаются в CocoonJS. Этот пример отлично работает на CocoonJS Launcher с текстурами POT и NPOT:

var canvas = document.createElement("canvas");
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
document.body.appendChild(canvas);
var ctx = canvas.getContext("2d");

var img = new Image();
img.onload = function() {
    var pattern = ctx.createPattern(img,"repeat");
    ctx.fillStyle = pattern;
    ctx.fillRect(0,0,300,300);
}
img.src = "img.png";

Пожалуйста, поделитесь больше кода, чтобы воспроизвести проблему.

Мне удалось отследить это до того факта, что я загружал ресурсы изображений после инициализации Three JS (рендерера, камеры и т. Д.).

Несмотря на то, что я ждал загрузки графических ресурсов, прежде чем пытаться заполнить текстуру Canvas, в случае запуска Cocoon у меня возникла проблема "без заливки".

Все, что я сделал, это изменил порядок вещей: сначала загрузите ресурсы изображения, а затем инициализируйте ThreeJS. Кажется, что Fill отлично работает сейчас в лаунчере, хотя я не совсем уверен, почему.

Другие вопросы по тегам