[ Назад ] | [ Содержание ] | [ Далее ] |
Весь вывод графической информации на X-сервере происходит через контекст вывода графики, или просто графический контекст (graphics context). Контекст вывода графики создается для объектов вывода графики (drawable). Объектом вывода графики может быть либо окно InputOutput, либо графический образ, хранящийся на X-сервере (pixmap).
Когда создается новый контекст, указывается объект вывода графики, для которого он создается. Однако, один и тот же контекст может использоваться для разных объектов. Главное, чтобы эти объекты принадлежали одному и тому же корневому окну и имели одинаковую глубину цветности.
Для одного объекта вывода графики одновременно можно создавать и использовать несколько контекстов. Переключение с одного контекста на другой делается автоматически, но эта задача для сервера может оказаться довольно трудоёмкой. Впрочем, изменение параметров контекста тоже трудоемкая задача. Поэтому оптимальнее будет выстраивать графические операции таким образом, чтобы было как можно меньше смен контекстов и изменений их параметров.
Сам графический контекст хранится на X-сервере в виде ресурса. Однако для указания на контекст из программы используется не идентификатор ресурса, а дескриптор контекста. Его тип определен как GC. Идентификатор ресурса графического контекста хранится в этом дескрипторе, а сам дескриптор хранится в памяти клиентской машины.
Создание нового контекста вывода графики делается при помощи функции XCreateGC. При вызове этой функции сразу указываются все необходимые параметры графического контекста. Параметры, которые могут устанавливаться графическму контексту можно узнать в описании структуры XGCValues.
После завершения работы с контекстом его удаляют функцией XFreeGC.
[ Назад ] | [ Содержание ] | [ Далее ] |