LINUX.ORG.RU

устройство Xlib


0

0

если вызовать функцию вроде XChangeGC, произойдет ли простой вызов функции в .so или же там что-то по сети передаваться будет? имеет ли смысл в последнем случае уменьшать количество таких вызовов?

Вызов функции в .so. Далее сама xlib сделает запрос ChangeGC (код 56 X протокола) через сокет локальному X-серверу.

Zubok ★★★★★
()
Ответ на: комментарий от Valeriy_Onuchin

> локальному X-серверу

необязательно к локальному, если он удаленный, то к удаленному.
почти все GUI tookits (qt, gtk, fox, etc.) используют различные типы
локального кэширования GCs.

Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

>однозначно

ChangeGC/CopyGC/CreateGC, кстати, ответа от сервера не требуют, поэтому уменьшение количества вызовов ничего не даст. Затрудняют работу те запросы, которые требуют ответа и удерживают программу от дальнейшего выполнения.

Zubok ★★★★★
()
Ответ на: комментарий от jet_bird

> ChangeGC/CopyGC/CreateGC, кстати, ответа от сервера не требуют

По-моему, требуют - сам убеждался неоднократно,
потому что когда-то писал "свой" GUI toolkit.
На пример, когда меняешь/создаешь фонт, цвет, stipple, etc.
Поэтому, все эти qfontы и пр. и существуют, т.е. - это локальные,
кэшированные GCs. В Qt были (давно не смотрел сорцы) даже для
разного типа lines (комбинация толщина + цвет) hashed/cached GCs

Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

>По-моему, требуют - сам убеждался неоднократно,

100%, что не требуют. Весь X protocol сейчас в удобном виде систематизирован в xproto.xml в проекте XCB. У тех запросов, которые требуют ответа есть поле <reply>. У этих вот конктретно команд есть только поле запроса <request>.

По ссылке xproto.xml, поиском ChangeGC можно отыскать.

http://www.koders.com/xml/fidA3FA19A7187D6BFD864CDEC0A9E10E4E703CB974.aspx?s=...

Zubok ★★★★★
()
Ответ на: комментарий от Valeriy_Onuchin

> ответа от сервера не требуют
возможно, и не требуют, но все равно тормозят, по сравнению
с локальным вариантом , ведь X-request все равно отсылается.

Valeriy_Onuchin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.