|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
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
| |
|
|
| |