2017-01-16 19 views
0

Я смущен о «графическом контексте», используя библиотеку xcb. Есть несколько примеров вокруг www, все они показывают создание одного окна с одним графическим контекстом. Конечно, при настройке нескольких окон каждый будет иметь свой собственный графический контекст или, возможно, несколько.C & X11: как использовать графические контексты

Могу ли я создать несколько графических контекстов для одного и того же окна? Например, один для рисования цветов, другой для рек, третий для текстовых меток? Или лучше использовать только один и адаптировать его к заданию?

Что считается хорошим стилем программирования, в этом отношении?

+0

Для программирования X существует большая серия книг. Я использовал их, чтобы получить их из библиотеки, 20 лет назад. –

+1

@ZanLynx: Мои соболезнования. – EOF

+0

Это слишком большое для ответа здесь. –

ответ

1

Вы можете создать столько контекстов, сколько захотите. Эмпирическое правило:

  • Если вы рисуете все в одном стиле, используйте один контекст.
  • Если вы изменили стиль, но не очень часто, используйте один контекст.
  • Если вы часто меняете стили, следуйте своим чувствам и либо используйте один контент (и изменяйте его атрибуты по мере необходимости), либо создайте несколько содержимого. Последний подход выполняется быстрее, но если у вас слишком много GC, вы можете исчерпать их (существует ограничение на количество GC, которое может иметь окно).
+0

Есть ли способ узнать, сколько я могу выделить? Думаю, это зависит от многих факторов, поэтому его следует проверять во время выполнения? (и, кстати, если вы укажете «содержание», вы бы назвали «контексты»? Немного сбивает с толку ...) –

+1

Если вам нужно более нескольких десятков контекстов, вы можете подумать о своей стратегии ... Нет смысла в выделение контекста для каждого элемента GUI. Кроме того, если вам это больше не нужно, вы можете уничтожить контекст. – JvO

+0

@KarelAdams На странице руководства «XCreateGC» (кстати, это отличная страница) просто указывает, что «XCreateGC может генерировать« BadAlloc »... Сервер не смог выделить запрошенный ресурс или серверную память». – DyZ

 Смежные вопросы

  • Нет связанных вопросов^_^