Описание тега cobalt
Целевые аудитории
Документация Cobalt написана для двух аудиторий:
Портеры позволяют Cobalt работать на других платформах, используя Starboard, уровень переноса Cobalt и абстракцию ОС, чтобы реализовать специфические для платформы функциональные возможности, которые использует Cobalt. Каждый модуль Starboard (память, сокет, поток и т. Д.) Определяет функции, которые должны быть реализованы для платформы носильщика.
Разработчики хотят создавать приложения в знакомых средах с расширенными инструментами отладки, не беспокоясь о совместимости с сильно фрагментированным набором браузеров. В то же время они хотят иметь полный контроль над своей кодовой базой, чтобы они могли поставлять функции для ограниченных платформ, таких как телевизоры, вовремя и без технического риска.
Преимущества кобальта
Cobalt значительно снижает стоимость поддержки браузера на нестандартных платформах и платформах с ограниченными ресурсами. Кроме того, поскольку Cobalt работает на консолидированном уровне абстракции платформы с поддержкой версий, его усилия по переносу составляют человеко-недели, а последующие перезагрузки практически бесплатны.
Вот некоторые другие преимущества, которые предоставляет Cobalt:
Больше платформ
Cobalt не требует, чтобы платформы поддерживали JIT-компиляцию, и может работать на платформах, которые запрещают выполнение динамически сгенерированного кода. Cobalt - это однопроцессное приложение, которое не зависит от возможности запускать несколько процессов. Cobalt предварительно компилирует набор шейдеров, достаточных для выражения всех графических эффектов, что позволяет использовать платформы, которые не могут компилировать шейдеры во время выполнения. Cobalt требует совместимого компилятора C++03, что позволяет ему достигать платформ с устаревшими инструментами. Маленький след
Кобальт оптимизирован для памяти. Его поверхностный кеш никогда не превышает заранее установленный бюджет, и он никогда не создает дублирующихся слоев, что снижает вероятность сбоев из-за нехватки памяти. Небольшой двоичный файл Cobalt разработан так, чтобы занимать как можно меньше места. Благодаря поддержке подмножества HTML5/CSS/JS, уменьшенный размер пакета Cobalt даже позволяет объединять шрифты CJK на устройствах низкого уровня. Сниженная задержка ввода
Cobalt создает согласованные анимации со скоростью 60 кадров в секунду, поддерживая анимацию только тех свойств, которые не влияют на макет, таких как преобразование, и всегда запускает анимацию в отдельном потоке. Cobalt оптимизирован для работы на одноядерных процессорах, что приводит к лучшей задержке ввода, поскольку средство визуализации и загрузчик ресурсов не конкурируют с операциями макета. На платформах, поддерживающих GLES2, Cobalt избегает рисования CPU, выполняя почти все операции рендеринга на GPU.
Ссылки:
1.1 Обзор и источник http://youtube.github.io/cobalt/overview.html
1.2 Перенос http://youtube.github.io/cobalt/starboard/porting.html
1.3 Разработка http://youtube.github.io/cobalt/development/setup-linux.html
1.4 Вспомогательные функции http://youtube.github.io/cobalt/development/reference/supported-features.html
1.5 Тестирование http://youtube.github.io/cobalt/starboard/testing.html
1.6 Исходный код https://cobalt.googlesource.com/cobalt/
1.7 h5vcc https://github.com/youtube/h5vcc
1.8 Сборка в Linux https://cobalt.googlesource.com/cobalt/+/e9b4b99dab6e774b8b6e63add74c352cc5dd395a/src/README.md