Здравствуйте, dmitry-tur, Вы писали:
DT>Что вы знаете об этом вопросе, подскажите ?
Кстати действительно, найти описание протокола на x.org не так просто (хотя он там есть на самом деле, на той же википедии ссылка на PDF — ftp://ftp.x.org/pub/X11R7.0/doc/PDF/proto.pdf). Вот что а-ля вики с сайтами делает...
Здравствуйте, dmitry-tur, Вы писали:
DT>Ни в wikipedia, ни в Google не могу найти информацию о формате данных между X-Server (X.org server) и X-Client (X.org client).
DT>Wikipedia указывает, что формат данных произволен,
Это какая википедия и что такое "формат данных" в Вашем понимании?
DT>но каков он в ныне существующих реализациях X-Server-а ?
DT>Что вы знаете об этом вопросе, подскажите ?
Внимательно узучил документы, на которые вы указываете, другие документы, на которые эти ссылались, а также документы по OpenGL.
Все они весьма общие и не позволяет разрешить мои вопросы:
1) библиотека OpenGL использоваться для построения сцены на экране _удаленного_ компьютера, при этом
OpenGL не сообщается с удаленным компьютером непосредственно, а только _через библиотеку X11_ ?
2) по X11 в окно отправляется 2-мерная проекция (3-мерной сцены, построенной OpenGL) — каким образом кодируется множество треугольников
(про triangle вообще нигде не говорится, с rectangle нет ни одного примера) ?
3) через какой TCP-порт происходит соединение X11 ?
4) _главный вопрос_: с какими трудностями столкнется X-клиент, который внутри открытого им окна открывает второе окно,
которое должно обслуживаться другим удаленным X-клиентом ?
Здравствуйте, dmitry-tur, Вы писали:
DT>1) библиотека OpenGL использоваться для построения сцены на экране _удаленного_ компьютера, при этом DT> OpenGL не сообщается с удаленным компьютером непосредственно, а только _через библиотеку X11_ ?
Да. Если не посредством собственно Xlib, то по упоминавшемуся протоколу на X-сервер — точно.
В случае локального соединения современные реализации OpenGL лезут напрямую к графической карте (забыл как называется режим, но он есть), а в случае удаленного обращаются к X-серверу.
DT>>3) через какой TCP-порт происходит соединение X11 ? _>$ grep x11 /etc/services _>x11 6000/tcp X # the X Window System _>x11-ssh-offset 6010/tcp # SSH X11 forwarding offset
Здравствуйте, Michael Chelnokov, Вы писали:
DT>>1) библиотека OpenGL использоваться для построения сцены на экране _удаленного_ компьютера, при этом DT>> OpenGL не сообщается с удаленным компьютером непосредственно, а только _через библиотеку X11_ ? MC>Да. Если не посредством собственно Xlib, то по упоминавшемуся протоколу на X-сервер — точно. MC>В случае локального соединения современные реализации OpenGL лезут напрямую к графической карте (забыл как называется режим, но он есть), а в случае удаленного обращаются к X-серверу.
Типичная ситуация: браузер получает (по http) документ с <frame> или <iframe> — и отображает несколько документов с _разных серверов_,
создавая внутри основного окна под-окна.
Модифицируем эту ситуацию.
Пусть в одном из под-окон браузер должен отобразить не 3-мерную сцену (пусть например, элемент <xserver> заставляет сделать это).
Может ли __под-окно__, "выданное" для этого, работать __как x-server__, а удаленный сервер работать как x-client
(связь по по X window system core protocol через 6000 порт) ?
Здравствуйте, dmitry-tur, Вы писали:
DT>Пусть в одном из под-окон браузер должен отобразить не 3-мерную сцену (пусть например, элемент <xserver> заставляет сделать это). DT>Может ли __под-окно__, "выданное" для этого, работать __как x-server__, а удаленный сервер работать как x-client DT>(связь по по X window system core protocol через 6000 порт) ?
Xnest is a client and a server. Xnest is a client of the real server
which manages windows and graphics requests on its behalf. Xnest is a
server to its own clients. Xnest manages windows and graphics requests
on their behalf. To these clients Xnest appears to be a conventional
server.
Здравствуйте, dmitry-tur, Вы писали:
DT>Пусть в одном из под-окон браузер должен отобразить не 3-мерную сцену (пусть например, элемент <xserver> заставляет сделать это). DT>Может ли __под-окно__, "выданное" для этого, работать __как x-server__, а удаленный сервер работать как x-client DT>(связь по по X window system core protocol через 6000 порт) ?
Ты что-то сложное придумал. Что мешает пойти по методу того же браузера, который получает с удаленных серверов *данные*, а сам занимается *отображением*? Т.е. зачем выносить X-клиенты на удаленные сервера? Пусть удаленные сервера снабжают *данными*, а локальный X-клиент занимается их *отображением* на локальном же X-сервере.
DT>>Пусть в одном из под-окон браузер должен отобразить 3-мерную сцену (пусть например, элемент <scene> заставляет сделать это). DT>>Может ли __под-окно__, "выданное" для этого, работать __как x-server__, а удаленный сервер работать как x-client DT>>(связь по по X window system core protocol через 6000 порт) ? MC>Ты что-то сложное придумал. Что мешает пойти по методу того же браузера, который получает с удаленных серверов *данные*
Мешает тот факт, что удаленный сервер уже обработал свои данные OpenGL-ю, а значит поставляет данные в формате и через протокол Х11.
Попытка отказаться от этого означает:
1) необходимость использования OpenGL браузером (уже не тонкий клиент),
2) передачу больших объемов информации обо _всей_ 3D-сцене (в т.ч. о ее невидимой части)
2-й пункт может означать отказ от передачи текстовых данных с пользу передачи банарных (полученных после того или иного сжатия текста).
Какой бинарный формат предложите ?
Передача данных в тексте о части сцены, догрузка необходимых данных по XmlHttpRequest невозможны, т.к. не обладая всей сценой браузер не может решить, какие объекты сцены появились в поле зрения.
Еще вопрос:
насколько я понимаю, получая в одном соединении http и x11 сообщения, возможно их различать (т.е. второе соединение не является обязательным) ?
Здравствуйте, dmitry-tur, Вы писали:
DT>1) необходимость использования OpenGL браузером (уже не тонкий клиент),
Так он же все равно будет вынужден отрисовывать трехмерную сцену, ему же не растр по X-протоколу будет приходить.
Кстати, о растре, это тоже как вариант
DT>>1) необходимость использования OpenGL браузером (уже не тонкий клиент), MC>Так он же все равно будет вынужден отрисовывать трехмерную сцену, ему же не растр по X-протоколу будет приходить. MC>Кстати, о растре, это тоже как вариант