На главную

On-line справка по OpenGL

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-L-M-N-O-P-R-S-T-U-V-W | Скачать Вниз

ChoosePixelFormat



The ChoosePixelFormat function attempts to find the pixel format supported by a device context that is the best match to a given pixel format specification.

int ChoosePixelFormat(

HDC hdc, //Device context to search for a best pixel format match
CONST PIXELFORMATDESCRIPTOR * ppfd //Pixel format for which a best match is sought
);


Parameters

hdc

Specifies the device context that the function shall examine for a pixel format that best matches the pixel format descriptor pointed to by ppfd.

ppfd

Pointer to a PIXELFORMATDESCRIPTOR structure that specifies the requested pixel format. In this particular context, the members of the pointed-to PIXELFORMATDESCRIPTOR structure are used as follows:

nSize

Specifies the size of the PIXELFORMATDESCRIPTOR data structure. Set this member to sizeof(
PIXELFORMATDESCRIPTOR).

nVersion

Specifies the version number of the PIXELFORMATDESCRIPTOR data structure. Set this member to 1.

dwFlags

A set of bit flags that specify properties of the pixel buffer. An application can combine the following bit flag constants by bitwise-ORing.
If any of the following flags is set, the function attempts to choose a pixel format that also has that flag set. Otherwise, it ignores that flag in the pixel formats:
PFD_DRAW_TO_WINDOW
PFD_DRAW_TO_BITMAP
PFD_SUPPORT_GDI
PFD_SUPPORT_OPENGL
If any of the following flags are set, the function attempts to match pixel formats with that flag set. Otherwise, it attempts to match pixel formats without that flag set:

PFD_DOUBLEBUFFER
PFD_STEREO
If the following flag is set, the function ignores the PFD_DOUBLEBUFFER flag in the pixel formats:
PFD_DOUBLEBUFFER_DONTCARE
If the following flag is set, the function ignores the PFD_STEREO flag in the pixel formats:
PFD_STEREO_DONTCARE

iPixelType

The function only considers pixel formats of the specified type. It is one of the following types:
PFD_TYPE_RGBA
PFD_TYPE_COLORINDEX

cColorBits

0 or greater.

cRedBits

Not used.

cRedShift

Not used.

cGreenBits

Not used.

cGreenShift

Not used.

cBlueBits

Not used.

cBlueShift

Not used.

cAlphaBits

0 or greater.

cAlphaShift

Not used.

cAccumBits

0 or greater.

cAccumRedBits

Not used.

cAccumGreenBits

Not used.

cAccumBlueBits

Not used.

cAccumAlphaBits

Not used.

cDepthBits

0 or greater.

cStencilBits

0 or greater.

cAuxBuffers

0 or greater.

iLayerType

One of the following values:
PFD_MAIN_PLANE
PFD_OVERLAY_PLANE
PFD_UNDERLAY_PLANE

bReserved

Not used.

dwLayerMask

Not used.

dwVisibleMask

Not used.

dwDamageMask

Not used.

Return Value

If the function succeeds, the return value is a pixel format index (one-based) that is the closest match to the specification of the pixel format descriptor.
If the function fails, the return value is zero. Call GetLastError for extended error information.

Remarks

It is an application's responsibility to ensure that the pixel format selected by the ChoosePixelFormat function satisfies its requirements. For example, if an application requests a pixel format with a 24-bit RGB color buffer, but the device context offers only 8-bit RGB color buffers, then the function returns a pixel format with an 8-bit RGB color buffer.
Here is a code fragment sample:

PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd
1, // version number
PFD_DRAW_TO_WINDOW | // support window
PFD_SUPPORT_OPENGL | // support OpenGL
PFD_DOUBLEBUFFER, // double buffered
PFD_TYPE_RGBA, // RGBA type
24, // 24-bit color depth
0, 0, 0, 0, 0, 0, // color bits ignored
0, // no alpha buffer
0, // shift bit ignored

0, // no accumulation buffer
0, 0, 0, 0, // accum bits ignored
32, // 32-bit z-buffer
0, // no stencil buffer
0, // no auxiliary buffer
PFD_MAIN_PLANE, // main layer
0, // reserved
0, 0, 0 // layer masks ignored
};
HDC hdc;
int iPixelFormat;

iPixelFormat = ChoosePixelFormat(hdc, &pfd);


See Also

DescribePixelFormat, GetPixelFormat, SetPixelFormat


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

ChoosePixelFormat



Функция ChoosePixelFormat пытается находить формат пикселя поддерживанный контекстом устройства, который - наилучшее сопоставление в спецификации формата данного пикселя.

int ChoosePixelFormat(

HDC hdc, //КОНТЕКСТ Устройства, чтобы искать сопоставление формата наилучшего пикселя CONST PIXELFORMATDESCRIPTOR * ppfd //формат Пикселя для которого наилучшее сопоставление поискано
);


Параметры

hdc

Определяет контекст устройства, что функция должна изучать на наличие формата пикселя, что наилучшим образом соответствует дескриптору формата пикселя указывался, чтобы ppfd.

ppfd

Указатель в структуру PIXELFORMATDESCRIPTOR, которая определяет запрошенный формат пикселя. В этом индивидуальном контексте, участники заостренного-в структуру PIXELFORMATDESCRIPTOR используются следующим образом:

nSize

Определяет размер структуры данных PIXELFORMATDESCRIPTOR. Установите этот элемент, чтобы sizeof( PIXELFORMATDESCRIPTOR).

nVersion

Определяет номер версии структуры данных PIXELFORMATDESCRIPTOR. Установите этот элемент на 1.

dwFlags

Установка бита сигнализирует, что определяет свойства буфера пикселя. Приложение может объединить константы битового флага следующего поразрядным-ORing.
Если любой из следующих флагов установлены, функция пытается выбирать формат пикселя, который также имеет этот флаг был установлен. В противном случае, это игнорирует этот флаг в форматах пикселя:
PFD_DRAW_TO_WINDOW PFD_DRAW_TO_BITMAP PFD_SUPPORT_GDI PFD_SUPPORT_OPENGL
Если любой из следующих флагов установлены, функция пытается соответствовать форматам пикселя с этим флагом установленным. В противном случае, это пытается соответствовать форматам пикселя без этого флага установленного:

PFD_DOUBLEBUFFER PFD_STEREO
Если следующий флаг установлен, функция игнорирует флаг PFD_DOUBLEBUFFER в форматах пикселя:
PFD_DOUBLEBUFFER_DONTCARE
Если следующий флаг установлен, функция игнорирует флаг PFD_STEREO в форматах пикселя:
PFD_STEREO_DONTCARE

iPixelType

Функция только рассматривает пикселю форматы определенного типа. Это - одно из следующего типов:
PFD_TYPE_RGBA PFD_TYPE_COLORINDEX

cColorBits

0 или больше.

cRedBits

Не использованное.

cRedShift

Не использованное.

cGreenBits

Не использованное.

cGreenShift

Не использованное.

cBlueBits

Не использованное.

cBlueShift

Не использованное.

cAlphaBits

0 или больше.

cAlphaShift

Не использованное.

cAccumBits

0 или больше.

cAccumRedBits

Не использованное.

cAccumGreenBits

Не использованное.

cAccumBlueBits

Не использованное.

cAccumAlphaBits

Не использованное.

cDepthBits

0 или больше.

cStencilBits

0 или больше.

cAuxBuffers

0 или больше.

iLayerType

Одно из следующего оценивает:
PFD_MAIN_PLANE PFD_OVERLAY_PLANE PFD_UNDERLAY_PLANE

bReserved

Не использованное.

dwLayerMask

Не использованное.

dwVisibleMask

Не использованное.

dwDamageMask

Не использованное.

Обратная Величина

Если функция добивается успеха, обратная величина является индексом формата пикселя (один-основанное), что - ближайшее сопоставление в спецификации дескриптора формата пикселя.
Если функция терпит неудачу, обратная величина нулевая. Призовите GetLastError к расширенной информации ошибки.

Замечания

Это - прикладная ответственность, чтобы гарантировать, что формат пикселя выбранный функцией ChoosePixelFormat удовлетворяет свои требования. Например, если приложение запрашивает формат пикселя с 24- битовым цветным буфером RGB, но контекст устройства предлагает только 8- битовые цветные буферы RGB, тогда функция возвращает формат пикселя с 8- битовым цветным буфером RGB.
Вот кодовый образец фрагмента:

PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), // РАЗМЕР этого pfd 1, // номер версии PFD_DRAW_TO_WINDOW | // поддержка окна PFD_SUPPORT_OPENGL | // поддержка OpenGL PFD_DOUBLEBUFFER, // двойное количество буферизовало PFD_TYPE_RGBA, // тип RGBA 24, // 24- битовая цветная глубина 0, 0, 0, 0, 0, 0, // цветные биты игнорировали 0, // никакой буквенный буфер 0, // бит сдвига игнорировался

0, // никакой буфер накопления 0, 0, 0, 0, // accum биты проигнорировавшие 32, // 32- бит z-buffer 0, // никакой буфер шаблона 0, // никакой вспомогательный буфер PFD_MAIN_PLANE, // основной слой 0, // зарезервировавшее 0, 0, 0 // маски слоя проигнорированные
};
hdc HDC;
int iPixelFormat;

iPixelFormat = ChoosePixelFormat(hdc, &pfd);


Смотри Также

DescribePixelFormat, GetPixelFormat, SetPixelFormat


Вверх Version 1.1, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод Win32 API  Русский перевод OpenGL
 
Hosted by uCoz