Глубина цвета PIXELFORMATDESCRIPTOR

Мне интересно, какие значения изменить в объекте PIXELFORMATDESCRIPTOR, чтобы изменить глубину цвета.

Согласно вики OpenGL, именно так вы создаете объект PIXELFORMATDESCRIPTOR для контекста OpenGL:

PIXELFORMATDESCRIPTOR pfd =
{
    sizeof(PIXELFORMATDESCRIPTOR),
    1,
    PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,    //Flags
    PFD_TYPE_RGBA,            //The kind of framebuffer. RGBA or palette.
    32,                        //Colordepth of the framebuffer.
    0, 0, 0, 0, 0, 0,
    0,
    0,
    0,
    0, 0, 0, 0,
    24,                        //Number of bits for the depthbuffer
    8,                        //Number of bits for the stencilbuffer
    0,                        //Number of Aux buffers in the framebuffer.
    PFD_MAIN_PLANE,
    0,
    0, 0, 0
};

Но у него есть разные переменные, влияющие на глубину цвета.

Какие из них мне нужно изменить, чтобы соответствующим образом настроить глубину цвета?


person PIZZAPERSON    schedule 23.09.2013    source источник


Ответы (1)


Первое число, 32 в вашем конкретном примере, указывает количество цветовых битовых плоскостей, доступных для буфера кадра. Другие числа определяют количество битовых плоскостей, используемых для каждого компонента. Вполне возможно разместить формат 5-6-5 пикселей в буфере кадра с 32 битовыми плоскостями, что является правильным выбором.

Когда вы передаете PIXELFORMATDESCRIPTOR в ChoosePixelFormat, значения принимаются как минимальные. Однако алгоритм, используемый ChoosePixelFormat, может не дать оптимального результата для желаемого приложения. Тогда может быть лучше перечислить все доступные форматы пикселей и выбрать из них, используя собственный набор правил.

person datenwolf    schedule 23.09.2013