Webgl-2D.js: Реализация Canvas 2D Api В Webgl

WebGL-2d — очень интересная библиотека javascript, реализующая стандартные методы работы с контекстом 2d Canvas в контексте WebGL. Ни для кого не секрет, что Canvas сегодня не может похвастаться хорошей производительностью и рендеринг сложных сцен в реальном времени может стать проблемой.

С WebGL ситуация с производительностью намного лучше, но этот стандарт поддерживается.

не все популярные браузеры , в частности, Microsoft даже не планирует реализовывать его поддержку в IE (по этой причине сторонние разработчики уже начали делать плагин ).

Подключив WebGL-2d и добавив всего пару строк, мы можем значительно ускорить рендеринг графики, реализованной с помощью Canvas 2d API, в браузерах, поддерживающих WebGL, и обеспечить откат к обычному 2d-контексту.



WebGl-2d.js: реализация Canvas 2D API в WebGL

К счастью, разработчики браузеров работают над вопросом производительности Canvas-графики, появляется поддержка аппаратного ускорения 2D-контекстов, так что в ближайшем (надеюсь) будущем эта библиотека уже не будет востребована, но сегодня она определенно маст хэв.

Пример инициализации WebGL-2d и получения контекста:

var cvs = document.getElementById("myCanvas"); WebGL2D.enable(cvs); var ctx = cvs.getContext('webgl-2d');

Репозиторий проекта находится по адресу GitHub .

Некоторые примеры и тесты из репозитория не работают при прямом открытии html-файлов (Uncaught Error: SECURITY_ERR: DOM Exception 18 возникает из-за невозможности установки файлов cookie при такой схеме запуска), запускаемых на локальном веб-сервере.

В настоящее время WebGL-2d поддерживает следующие стандартные методы 2D-контекста:

  • стиль штриха
  • fillStyle
  • инсультпрямой
  • fillRect
  • переводить
  • вращать
  • шкала
  • сохранять
  • восстановить
  • ширина линии
  • рисоватьизображение
  • создатьимажедата
  • getImageData
  • putImageData
  • начало пути
  • closePath
  • переместитьTo
  • линияTo
  • прямой
  • наполнять*
  • гладить*
* Текущая версия методов заливки и обводки не поддерживает дуги и кривые.

К сожалению, на данный момент автор отказался от разработки своего детища (последний коммит был сделан в апреле 2011 года), но в любом случае проект достоин внимания.

Теги: #webgl #canvas #JavaScript #html5 #графическое программирование #разработка веб-сайтов #JavaScript #canvas

Вместе с данным постом часто просматривают: