#google-chrome-extension #desktop-application
#google-chrome-extension #desktop-приложение
Вопрос:
Я пытался разработать расширение Chrome, которое автоматически подключается skribbl.io для развлечения, и я действительно застрял на реализации сглаживания. Это просто слишком медленно. Я пытался понять, как выполнить его параллельно, но, честно говоря, Javascript просто не мое. Мне действительно неудобно с обещаниями и т. Д. Это работает, получая холст skribbl.io использует и отправляет входные данные непосредственно в него.
например
draw: function (coords) {
let startMouseCoords = getMouseCoords(coords[0]);
canvasElement.dispatchEvent(createMouseEvent("mousedown", startMouseCoords));
for (let i = 1; i < coords.length; i ) {
let mouseCoords = getMouseCoords(coords[i]);
canvasElement.dispatchEvent(createMouseEvent("mousemove", mouseCoords));
}
let endMouseCoords = getMouseCoords(coords[coords.length - 1]);
canvasElement.dispatchEvent(createMouseEvent("mouseup", endMouseCoords));
},
Мне было интересно, есть ли какой-нибудь способ сделать это в настольном приложении, поскольку я чувствую себя намного комфортнее на C или C #, и мне, вероятно, гораздо больше повезло бы заставить алгоритм такого рода работать с приличной скоростью. Есть ли хороший способ сделать что-то подобное через настольное приложение? Возможно, даже браузер на базе Linux, который позволил бы мне взаимодействовать с веб-страницами гораздо более напрямую, вместо того, чтобы проходить через систему расширений Chrome.
Комментарии:
1. Кукольник, Селен и т. Д.
2. Если вы хотите реализовать сглаживание, «лучшим» подходом, вероятно, является реализация его как шейдера WebGL и запуск его в отдельном
<canvas>
(в контексте WebGL), используя данные, скопированные из исходного 2D-холста. Кроме того, какого черта вы эмулируете движение мыши вместо того, чтобы напрямую использовать Canvas API?