В чем смысл alloc_color() в gtk?

Различные примеры всегда используют alloc_color() и такие вещи, как gtk.color.parse('red') и т. д. Я просто делаю gtk.gdk.Color(65535,0,0), и это работает. Зачем нужен alloc_color?


person Claudiu    schedule 07.08.2009    source источник


Ответы (1)


Если вы работаете в системе, которая использует отображение палитры (в отличие от отображения в реальном цвете), то вы должны выделить новые цвета в палитре, прежде чем сможете их использовать. Это связано с тем, что дисплеи на основе палитры могут одновременно отображать только ограниченное количество цветов (обычно 256 или иногда 65536).

Большинство дисплеев в наши дни способны отображать истинные цвета, которые могут отображать все доступные цвета одновременно, поэтому это не будет проблемой, и вы можете напрямую запрашивать определенные цвета.

person Greg Hewgill    schedule 07.08.2009
comment
выделяет ли он наиболее подходящий цвет, если работает в 256- или 16-битном цветовом режиме? - person Claudiu; 07.08.2009
comment
(я хочу сказать: если это так, я не понимаю, почему я должен делать это явно. Если это не так - почему бы и нет? это явно было бы моим намерением) - person Claudiu; 07.08.2009
comment
Это зависит от конкретной графической библиотеки. Я недостаточно знаком с GTK, чтобы сказать, выполняет ли alloc_color() какие-либо сопоставления. - person Greg Hewgill; 07.08.2009