Портирование моего приложения C ++ для запуска в браузере - PullRequest
6 голосов
/ 27 января 2012

Есть ли простой способ перенести приложение C ++ OpenGL в браузер? Он уже портирован на ПК, Mac и iOS. Если есть какой-то относительно простой способ, будет ли он переносимым между браузерами компьютеров? Конечно, мне придется использовать разные бинарные файлы для разных платформ. Я помню, что слышал кое-что о какой-то изолированной среде для Chrome некоторое время назад, но это исключило бы другие браузеры. Как они (id?) Сделали с Quake в браузере?

Ответы [ 4 ]

4 голосов
/ 27 января 2012

Если вы уже используете ES 2.0 для iOS, ваши шейдеры должны работать как есть с WebGL . JavaScript ахой!

id Software использует гигантский плагин для Quake Live.

2 голосов
/ 27 января 2012

Вы можете использовать Mandreel , если вы хотите наименьшее количество работы. Другой вариант - Emscripten , но он конвертирует только ваш C ++, он не предоставляет все API, как Mandreel.

2 голосов
/ 27 января 2012

Попробуйте Google Native Client или NaCl, если вам нужен ленивый порт.

Но если вы хотите использовать порт real - обратитесь кэти два примера:

  • серия блогов о портировании существующей игры C ++ на html5 (при поддержке Opera)
  • короткая статья о портировании существующихИгра Objective-C на html5 (спонсор Microsoft).
  • печальный пример переноса популярной защищенной авторским правом игры с C на JavaScript (спонсор Mozilla, с дополнительной помощью Zenimax * 1023)*)

Если вы спрашивали о QuakeLive - это пользовательский плагин, разработанный Id Software.Подобная функциональность может быть достигнута с помощью плагинов Flash или Unity.

1 голос
/ 27 января 2012

Есть ли простой способ перенести приложение C ++ OpenGL в браузер? Он уже портирован на ПК, Mac и iOS. Если есть какой-то относительно простой способ, будет ли он переносимым между компьютерными браузерами?

Вы можете попробовать перекомпилировать его в JavaScript, это то, что выполняют браузеры. Если вы не ожидаете, что пользователь установит какой-либо плагин для браузера, вы не сможете дать ему собственный код. Конечно, в среде JavaScript многие вещи, к которым вы привыкли из нативных исполняемых файлов, не работают. Например, вы больше не можете получить доступ к файловой системе. Вы должны использовать хранилище DOM, файлы cookie, ресурсы для загрузки / выгрузки с сервера.

...