Ответ 1
Взгляните на Chromium Embedded Framework. CEF 3 поддерживает внеэкранную визуализацию во всех операционных системах: Windows/Mac/Linux.
Мы смотрели на добавление достойной поддержки браузера нашему С++-приложению; этот вопрос связан с независимыми от GUI библиотеками браузеров, так как наш проект включает 3D-рендеринг и не совсем соответствует нормальному графическому интерфейсу.
Двое, которые я видел до сих пор, Berkelium и Awesomium. Оба, похоже, работают так же, как и мое быстрое исследование, переводящий в экранный буфер, который вы вложили в свое окно/игру/все. Awesomium является собственностью и стоит довольно много ($ 5 тыс.), Berkelium - с открытым исходным кодом и бесплатно. Кто-нибудь сравнивал эти (и другие) такие инструменты? Кросс-платформенное преимущество, но не на 100% важно.
Взгляните на 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 для вашей 3D-игры, вы обязательно захотите воспользоваться нашей интеграцией Javascript ↔ С++. Вы можете вызывать функции Javascript непосредственно из С++ и наоборот, устанавливать обратные вызовы, выставлять глобальные свойства и многое другое. Я написал большое руководство в моем блоге здесь.
Хорошо поддерживается; мы используем деньги, которые мы получаем от наших лучших коммерческих лицензий для финансирования поддержки и развития библиотеки. Если вам нужна помощь, посетите http://support.awesomium.com, и мы будем рады оказать вам помощь.
Библиотека бесплатна для некоммерческого использования и очень доступна для разработчиков indie. Если вы хотите использовать Awesomium в своем следующем проекте и беспокоитесь о цене, напишите мне по адресу [email protected], и я посмотрю, не могу ли я помочь вам.: -)
Berkelium действительно безболезнен в использовании. Я интегрировал его в свою игру через 6 дней, вы можете прочитать все об этом (и некоторые другие варианты) здесь: http://www.onemanmmo.com/index.php?cmd=newsitem&comment=news.1.31.0
Единственный недостаток - это отладочная сборка и 40 Мбайт двоичных файлов.