Сравнение закадровых и встраиваемых браузеров (для использования в игре)

Мы искали, как добавить достойную поддержку браузера в наше приложение C++; этот вопрос касается библиотек браузера, не зависящих от графического интерфейса, поскольку наш проект включает в себя 3D-рендеринг и не совсем подходит для обычного графического интерфейса.

Двое из тех, кого я видел до сих пор, это Berkelium и Awesomium. Оба, похоже, работают одинаково, начиная с моего быстрого исследования, рендеринга в внеэкранный буфер, который вы помещаете в свое собственное окно / игру / что угодно. Awesomium является частной собственностью и стоит приличную сумму ($5 тыс.), Berkelium с открытым исходным кодом и бесплатно. Кто-нибудь сравнивал эти (и другие) такие инструменты? Кроссплатформенность - это преимущество, но не на 100%.

3 ответа

Взгляните на Chromium Embedded Framework. CEF 3 поддерживает рендеринг вне экрана во всех операционных системах: Windows/Mac/Linux.

Отказ от ответственности: я создал Awesomium. Тем не менее, я буду проявлять предельную объективность в своем ответе.

Awesomium стоит немного денег, но, безусловно, это лучший инструмент для работы, я буду защищать свои причины с помощью маркированного списка:

  • Простой, хорошо документированный API; Мы постарались сделать API максимально интуитивно понятным и читабельным. Это действительно важно, когда вы внедрили что-то такое же большое и сложное, как целая структура браузера. (Поверьте, вы не хотите встраивать WebKit напрямую - это все равно что глотать солнце.)

  • Рендеринг без окон; библиотека была разработана с самого начала для использования вне стандартной "оконной структуры". Мы действительно облегчаем рендеринг WebView в текстуру:

void update()
{
    if(webView->isDirty())
        webView->render()->copyTo(texture, width * bpp, bpp, false);
}
  • Надежная интеграция с Javascript; Если вы используете Awesomium в качестве средства визуализации HTML GUI для своей 3D-игры, вы определенно захотите воспользоваться нашей интеграцией Javascript <-> C++. Вы можете вызывать функции Javascript напрямую из C++ и наоборот, устанавливать обратные вызовы, выставлять глобальные свойства и многое другое. Я написал большое руководство в своем блоге здесь.

  • Хорошо поддерживается; Мы используем деньги, которые мы получаем от наших коммерческих лицензий высшего уровня, для финансирования поддержки и развития библиотеки. Если вам нужна помощь, пожалуйста, посетите http://support.awesomium.com/ и мы будем рады помочь.

Библиотека бесплатна для некоммерческого использования и очень доступна для независимых разработчиков. Если вы хотите использовать Awesomium в своем следующем проекте и беспокоитесь о цене, пожалуйста, напишите мне по адресу adam@khrona.com, и я посмотрю, не смогу ли я вам помочь.:-)

Berkelium действительно безболезненный в использовании. Я интегрировал его в свою игру за 6 дней, вы можете прочитать все об этом (и некоторых других вариантах) здесь: http://www.onemanmmo.com/index.php?cmd=newsitem&comment=news.1.31.0

Единственным недостатком является отсутствие отладочной сборки и 40 МБ двоичных файлов.

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