На главную

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

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

SetPixelFormat



The SetPixelFormat function sets the specified device context's pixel format to the format specified by the iPixelFormat index.

BOOL SetPixelFormat(

HDC hdc, //Device context whose pixel format the function attempts to set
int iPixelFormat, //Pixel format index (one-based)
CONST PIXELFORMATDESCRIPTOR * ppfd //Pointer to logical pixel format specification
);


Parameters

hdc

Specifies the device context whose pixel format the function attempts to set.

iPixelFormat

Index that identifies the pixel format to set. The various pixel formats supported by a device context are identified by one-based indices.

ppfd

Pointer to a PIXELFORMATDESCRIPTOR structure that contains the logical pixel format specification. The system's metafile component uses this structure to record the logical pixel format specification. The structure has no other effect upon the behavior of the SetPixelFormat function.

Return Value

If the function succeeds, the return value is TRUE.
If the function fails, the return value is FALSE. Call GetLastError for extended error information.

Remarks

If hdc references a window, calling the SetPixelFormat function also changes the pixel format of the window. Setting the pixel format of a window more than once can lead to significant complications for the window manager and for multithreaded applications, so it is not allowed. An application may only set the pixel format of a window one time. Once a window's pixel format is set, it cannot be changed.
An application should select a pixel format in the device context before calling the wglCreateContext function. The wglCreateContext function creates a rendering context for drawing on the device in the device context's selected pixel format.

An OpenGL window has its own pixel format. Because of this, only device contexts retrieved for the client area of an OpenGL window are allowed to draw into the window. As a result, an OpenGL window should be created with the WS_CLIPCHILDREN and WS_CLIPSIBLINGS styles. Additionally, the window class attribute should not include the CS_PARENTDC style.
Here is a skeletal example of SetPixelFormat usage:

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;

// get the device context's best-available-match pixel format
iPixelFormat = ChoosePixelFormat(hdc, &pfd);


// make that the device context's current pixel format
SetPixelFormat(hdc, iPixelFormat, &pfd);


See Also

ChoosePixelFormat, DescribePixelFormat, GetPixelFormat


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

SetPixelFormat



Функция SetPixelFormat устанавливает контекстный пиксель определенного формата устройства в формат определенный индексом iPixelFormat.

BOOL SetPixelFormat(

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


Параметры

hdc

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

iPixelFormat

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

ppfd

Указатель в структуру PIXELFORMATDESCRIPTOR, которая содержит спецификацию формата логического пикселя. Системный компонент метафайла использует эту структуру, чтобы записывать спецификацию формата логического пикселя. Структура не имеет другой эффект в поведении функции SetPixelFormat.

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

Если функция добивается успеха, обратная величина является ИСТИНОЙ.
Если функция терпит неудачу, обратная величина ЛОЖНАЯ. Призовите GetLastError к расширенной информации ошибки.

Замечания

Если hdc ссылки окно, вызывающее функцию SetPixelFormat также изменяет формат пикселя окна. Установка формата пикселя окна неоднократно может провести к значимым осложнениям для менеджера окна и для multithreaded приложений, так что это не допущено. Приложение может только установить формату пикселя окна одно время. Как только формат пикселя окна установлен, он не может быть изменен.
Приложение должно выбираться формат пикселя в контексте устройства перед вызовом функции wglCreateContext. Функция wglCreateContext создает предоставляющий контекст для чертежа на устройстве на контекстном выбранном пикселе формата устройства.

Окно OpenGL имеет собственный формат пикселя. Из-за этого, контексты только устройства извлеченные для области клиента окна OpenGL позволены проводить в окно. В результате, окно OpenGL должно быть создано WS_CLIPCHILDREN и стилями WS_CLIPSIBLINGS. К тому же, атрибут класса окна не должен включать стиль CS_PARENTDC.
Вот скелетный пример использования SetPixelFormat:

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);


// сделайте, что контекстный текущий пиксель формата устройства SetPixelFormat(hdc, iPixelFormat, &pfd);


Смотри Также

ChoosePixelFormat, DescribePixelFormat, GetPixelFormat


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