Я устанавливаю соединение с X-сервером следующим образом:
display = XOpenDisplay(NULL);
screen = DefaultScreen(display);
depth = DefaultDepth(display, screen);
Мне интересно, почему «глубина» всегда установлена на 24. Я ожидаю, что это только 24, когда композитинг выключен, но на самом деле, это все еще 24, даже когда я включаю композитинг. Поэтому, чтобы получить 32-битный ARGB-визуал, мне нужно сначала вызвать XGetVisualInfo () с явно заданной глубиной 32.
Теперь на мой вопрос: будет ли DefaultDepth () вообще никогда не возвращать больше 24 или это только в моей системе? (моя графическая плата несколько устарела ...). Я знаю, что он может вернуть 15, 16 или даже 8 для дисплея CLUT, но может ли он вернуть 32? Или мне всегда нужно сначала использовать XGetVisualInfo (), чтобы получить ARGB 32-битный визуал?
Спасибо
Энди