No to mam kolejną rzecz do FAQ:
"Jak zainicjować tryb OpenGL na staticu (coś w stylu komponentu Panel z VCL - Delphi, BCB) ?"
Na początku zadeklarujmy zmienne których użyjemy:
static HDC hDC;
static HGLRC hRC;
static HWND hstat;%l$ĄyZicD@v{,)ĆŚ hstat=CreateWindow(\"static\",\"\",WS_CHILD|WS_VISIBLE,
LL
QSJM][[R[JS
KS$óy3zxśŚDDć)Ż7~r3.ÓĆ{K\"z7G#ĘipfBF6&ĆTVttBvćBD2D2t$2$2}ą5
Ą9U109U104(ąąŃ
ŃĄĄI4(ReleaseDC (hWnd, hDC);
}%LŁzlŁ^Ęhą)][JYYHOUÓWURU
CBBYYZÓYYJ&ś6rTRR$TdRG&ąŃ54(ŃĄ5);
}
else
{
DrawGLScene();
YĘĘNBCBH%7,ś'Łz]Ąś^jx-iŻ<i0ĘKkĘhliz7Ł<\"z7ł7'śb\"r$ąą4(ąą4(ąe <gl/glu.h>
/* Declare Windows procedure */
HWND\"BTSSP[YH
ÓRSTSK$ŚBG&tt66VćRtfBfBVć&ĆTVttB]!Ą!1IĄI4)ą=0Ą!]9Ą]DC hDC, HGLRC hRC);
static HDC hDC;
static HGLRC hRC;
staXÓ]BĘXZHH[YH[H[XZĆRŚ6\"76Ć74ćU$6FT&Ć65vćFw4#Ś]%9A$]5Ą!%9MQ9
ĄQĄ%Ń4( HINSTANCE hPrevInstance,
LPSTR lpr[Y[b[[[
CBBBvćCF22FRćFĆRf\"W\"vćFr\0ź4(5Mź!џѥąŃn are saved */
WNDCLASSEX wincl; /* Data structtHH[
BBĘH[XH
Bvć6ć7Fć6RF47Fć6Svć6ć76Ć74ć
ą94(ą]A]A /* This function is called by windows */
wincl.style#HŃÓĘ]XKXX
Bvć6ć6%6ŚR6ŚVbtD454UW6RFVfVB5Ńź4(Ą%1%Ą9U10%_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPNPUSÓNB[HY
SQTĘNvć6ć7VTćRTćVR4(
ąŃź9źŃbytes after the window class */
wincl.cbWndExtra = 0; ĘXHH[[[H
BW6RvćFw2w2FVfVB6Ć\"2FR&6św&VćBbFRuź4(Ą Ą! IUM
=1=I}
-I=U9
/* Register the window class, and if it fails quit vH[H
BY
TYŃ^
[[
JCB
&WGW&FR6Ć722&Vv7FW&VBĆWBw27&VFRĄź4(Ą]
Ń]4( /* Extended possibilites for variation */
Ó[YKĘ[YH
BFSŁ&Ć62FVĆFRvćFw2\"FFĆRFWB\0]M}=YI1AA]%9=źąź4( CW_USEDEFAULT, /* Windows decides the position */
TŃQQUSĘHH[[FR67&VVSCBFR&w%Ńź4(źĄĄŚ pixels */
HWND_DESKTOP, /* The window ipH[][
BS
ćVRF47Fć6R&w&ŃĄąź4(9U10ź9ź]Śdow Creation data */
);
/* Make the windmXHHY[
B[
[vćCvćCVć&ĆTVt7FBfśD2fĄI4(źIŃĄą%ąŃŃ5age() returns 0 */
while( msg.message!=WM_QUIT )
{YYZÓYYJ [sKKWSSH
HG& amp;6ĆFTW76vRfś6rŃĄ54(4(ą4(4
( DrawGLScene();
SwapBuffers(hDC);
}
CBBĘH[H]][YHHH[YH^7EVDW76vRvfR&WGW&6ru&ÓQĄŃąąŃĄ]ŃŃĄ5sage() */
LRESULT CALLBACK WindowProcedure (HWND hwnd, VSYYKTSH[KTSH[JCBB]
[76vRćFĆRFRW76vW2\0%]5}
IQ4(%ĄŃ
Ń]ĄpŃŃpąppą__CHILD|WS_VISIBLE,
10,10,200,200,hwnd,(HMENU)666,Ge[[R[JS
KS
NBXXZBHÓWŃT$F6&ĆTVt7FBĆD2Ć$2AŃEŃ5ź]5}EU%Pџѥueue */
break;
default: ĘYY]HX[]
B
&WGW&FVevćFu&2vćBW76vRu&&4(4(Ń4)4(4)1MĄ14)4( glLoadIdentity();
glClearColor (0.0f, 0.0f,NBX
ÓÓÓQTU
NB
v&VvtTE2v6Ć#6b\"ąYŃ4(ą
ąąYrtex2f(90,15);
glColor3f(0.9,0.1,1);glVertex2f*LL
NBKJN^MKLvVćBfBVć&ĆTVttBvćBĄ!1IĄI4)4(A%a1=I5QM
I%AQ=H4(int iFormat;
/* get the device context (DC) */
*H]
NBBĘ]H^[X]HŚW&V' ffB6ŚVbfBfBć6ŚPĄ4(Y4(ą
A_DRAW_TO_WINDOW |
PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFETBT^[HHTWNB]3#fBć4FWF&G2cfBćĆW%GRdE9}A194(
ĄAąĄ6 SetPixelFormat (*hDC, iFormat, &pfd);
/* creaH[[XHH[^
ĘH
B
HX^T6FWBŚD2vvśT7W'&VBŚD2Ś$2GWFąŃŃąŃ)
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrthl
NBX]^[JÓÓSŃSQUĘNBYY[]fBF6&ĆTVttBvćBD2D2t$2$2)4(ą5
Ą9U109U104(ąąŃ
ŃRC);
ReleaseDC (hWnd, hDC);
}
należy nie zapomnieć o podlinkowaniu libów opengl32 i glu32.