Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 19.06.2017, 18:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Alexandroppolus
ну, если нарисовать непрозрачную хрень поверх чего-то уже нарисованного, то выходит, это что-то рисовали зря.
Это можно определять режимом наложения - globalCompositeOperation.
Ответить с цитированием
  #12 (permalink)  
Старый 19.06.2017, 18:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Rise
да крутая штука
ну в общем полезная при наложении - https://developer.mozilla.org/ru/doc...ositeOperation
Ответить с цитированием
  #13 (permalink)  
Старый 19.06.2017, 18:57
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от laimas
globalCompositeOperation
он тут вообще не причем. Его надо оставить как есть, "source-over". Автору топика интересно, как это всё оптимизировать, и не рисовать те части нижних слоев, которые потом закроются верхними.
Ответить с цитированием
  #14 (permalink)  
Старый 19.06.2017, 19:06
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Alexandroppolus
он тут вообще не причем. Его надо оставить как есть, "source-over".
Сообщение от Валес
И не хочу отрисовывать сначала фон, потом класть на него детали, а на эти детали ещё что-то рисовать последовательно.
Деталь, это может быть 10х10, которая накладывается по указанной координате. А вот как эти детали должны взаимодействовать на холсте, это уже как раз режимом можно определить.

Последний раз редактировалось laimas, 19.06.2017 в 19:15.
Ответить с цитированием
  #15 (permalink)  
Старый 19.06.2017, 20:00
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Сообщение от Rise Посмотреть сообщение
Alexandroppolus, но есть подозрение что канвас перерисовывается полностью каждый раз на любое изменение)
Это зависит от режима(контекста) в котором поступают команды на отрисовку но если вкратце то команды сначала накапливаются и только после этого рисуются и то далеко не всегда.
Перекрытые регионы перерисовыватся не будут.

Люди с зарплатой в 50к $ из крупнейщих IT корпораций в течении десятков лет оптимизируют рендер браузера и канваса в том числе (это про браузерными войны). И тут приходит автор топика и реально думает что у него на скриптовом языке в браузере получится лучше. 99% таких оптимизаций приводят к обратному эффекту.

Если автор действительно хочет оптимизировать то ему нужно начать с отладчика и поиска узких мест.

Оптимизация без причины - признак дурачины.
Ответить с цитированием
  #16 (permalink)  
Старый 19.06.2017, 21:02
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от Rise
Но при globalCompositeOperation обычно в обратном порядке рисуют, т.е. сначало детали, затем фон (source-out) за вычетом деталей
Вот рисование "сначала фон, потом картинка" - https://jsfiddle.net/3gg1j09y/
А вот - как ты предложил - https://jsfiddle.net/ojxtsode/
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повтор фото (getUserMedia(),HTML5 Canvas) aspex Элементы интерфейса 1 27.12.2014 16:46
canvas рисование окружности imedia Элементы интерфейса 2 30.05.2014 17:40
Почему неправильно вырисовывается canvas? Amateur Events/DOM/Window 0 19.09.2012 10:45
Создание экземпляра Canvas не затрагивая HTML Tails Общие вопросы Javascript 2 09.03.2012 13:55
Добавить на canvas еще один елемент greengarlic Общие вопросы Javascript 5 22.09.2010 10:16