Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
26
NowoczesnyOpenGL
(listing1.13).NależydodaćjejdeklaracjędoklasyOknoGLzplikunagłówkowego,
asamądenicjęumieścićwplikuOknoGL.cpp.
Listing1.13.Ustalanieformatupikseli
boolOknoGL::UstalFormatPikseli(HDCuchwytDC)const
{
PIXELFORMATDESCRIPTORopisFormatuPikseli;
ZeroMemory(&opisFormatuPikseli,sizeof(opisFormatuPikseli));
opisFormatuPikseliinVersion=1;
opisFormatuPikseliidwFlags=PFD_SUPPORT_OPENGL|&
PFD_DRAW_TO_WINDOW|PFD_DOUBLEBUFFER;
//woknie,podwójnebuforowanie
opisFormatuPikseliiiPixelType=PFD_TYPE_RGBA;//typ
koloruRGBzkanałemalfa
opisFormatuPikseliicColorBits=32;
//jakośćkolorów4bajty(pobajcienakażdykanał)
opisFormatuPikseliicDepthBits=32;
//głębokośćbuforagłębi(z-buffer)
opisFormatuPikseliiiLayerType=PFD_MAIN_PLANE;
intformatPikseli=ChoosePixelFormat(uchwytDC,
&opisFormatuPikseli);
if(formatPikseli==0)returnfalse;
if(!SetPixelFormat(uchwytDC,formatPikseli,
&opisFormatuPikseli))returnfalse;
returntrue;
}
Następnykroktoutworzeniekonteksturenderowaniamożnagorozumieć
jakofipunktzbiorczy”,wktórymgrakatrójwymiarowa,przekształconajużna
dwuwymiarowyzbiórpikseli,udostępnianajestkarciegracznej.Zajegotworze-
nieodpowiedzialnabędziefunkcjaskładowaOknoGL::InicjujWGL(listing1.14).
Uchwytydokonteksturenderowaniaidokontekstuurządzeniaodpowiedzialnego
zasamowyświetlanieobrazuzostanązapisanewpolachuchwytRCiuchwytDC,
zdeniowanychwklasieOknoGL.Wtejmetodzieiwsposobietworzeniakontek-
sturenderowanianastąpisporozmian,gdywrozdziale4będziemyuruchamiać
nowoczesnyOpenGL.
Listing1.14.Tworzeniekonteksturenderowania
boolOknoGL::InicjujWGL(HWNDuchwytOkna)
{
uchwytDC=::GetDC(uchwytOkna);