Объясню суть проблемы: есть десктопное графическое приложение ,написанное на с++, появилась срочная необходимость доступа к нему через web браузер, а именно чтобы сервер, при обращении к нему, поднимал на своей стороне эту программу и достаточно того чтобы он каким-либо способом передавал на сторону клиента вывод самого приложения.
Платформа: windows; графический API: OpenGL | GLFW;
Была мысль того, чтобы переписать часть кода, отвечающую за отрисовку, так чтобы картинка непосредственно преобразовывалась в поток байт, который затем и будет пересылаться клиенту, но способ весьма время-затратный, существуют ли другие возможности для реализации этой "фичи"?
(Времени переписать код на другой язык попросту нет)
Поднимаете VNC сервер, потом поднимаете сервер noVNC, который транслирует протокол VNC в HTML5. Собственно, на этом вопрос "показать десктопное приложение на вебе" заканчивается.
Дальше начинаются частные вопросы - вопрос с качеством и отзывчивостью картинки, вопрос с авторизацией пользователей, вопрос с запуском этого дела на каком-то сервере.
Первое решается использованием видеокарты с аппаратной поддержкой сжатия видео - и венда, и линукс позволяют рисовать из OpenGL прямо в буфер компрессора на видеокарте, и снимать с видеокарты уже поток сжатого видео.
Второе зависит от политики предоставляемого сервиса.
Третий вопрос таки уже сильно зависит от используемой ОС и серверной платформы.
Это конечно не панацея, однако, Взгляните на emscripten
Цитата из википедии
Целью развития проекта Emscripten является создание инструмента, который позволил бы выполнять в Интернете код независимо от языка программирования, на котором этот код написан.
Emscripten позволяет осуществить компиляцию байткода LLVM в код на языке JavaScript, который может быть выполнен внутри веб-браузера. Байткод LLVM может быть сгенерирован с исходных текстов C / C ++ с помощью компиляторов llvm-gcc и clang, а также из кода на другом языке программирования, для которого существует LLVM-фронтенд.
Emscripten поддерживает трансляцию вывода библиотеки SDL через canvas, а также оказывает поддержку OpenGL через WebGL.
Вот примеры, доступные в сети:
DOOM3
Broadway.js - H264 кодек
https://homepages.loria.fr/BLevy/GEOGRAM/vorpaview.html
https://homepages.loria.fr/BLevy/GEOGRAM/geogram_demo_Delaunay2d.html
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пользователь вводит размер фигуры сам и программа печатает в консоли прямоугольник следующим образом:
Есть следующая функция, она должна возвращать ссылку на значение ключа, если ключ такой существует в словаре, иначе выбрасывать исключение,...
Иногда работаю с IDE на Андроиде (в основном Dcoder)Как можно подключить (и можно ли вообще) заголовочный либо любой другой файл средствами языка,...