向DELPHI OPENGL高手求救
边缘998 2008-10-20 04:57:33 Function WinMain(hInstance: HINST; hPrevInstance: HINST;
lpCmdLine: PChar; nCmdShow: Integer): Integer; stdcall;
Var
msg : TMsg;
finished : Boolean;
DemoStart, LastTime: DWord;
Begin
finished := False;
If Not glCreateWnd(800, 600, false, 32) Then
Begin
Result := 0;
Exit;
End;
DemoStart := GetTickCount();
SetCursorPos(400, 300);
While Not finished Do
Begin
If (PeekMessage(msg, 0, 0, 0, PM_REMOVE)) Then
Begin
If (msg.message = WM_QUIT) Then
finished := True
Else
Begin
TranslateMessage(msg);
DispatchMessage(msg);
End;
End
Else
Begin
Inc(FPSCount);
FrameTime := GetTickCount() - ElapsedTime - DemoStart;
LastTime := ElapsedTime;
ElapsedTime := GetTickCount() - DemoStart;
ElapsedTime := (LastTime + ElapsedTime) Div 2;
If GetForegroundWindow = h_Wnd Then
Begin
GetCursorPos(mpos);
SetCursorPos(400, 300);
Heading := Heading + (mpos.x - 400) / 100 * MouseSpeed;
Tilt := Tilt - (300 - mpos.y) / 100 * MouseSpeed;
If Tilt > 60 Then
Tilt := 60;
If Tilt < -60 Then
Tilt := -60;
End;
glDraw();
SwapBuffers(h_DC);
If (keys[VK_ESCAPE]) Then
finished := True
Else
ProcessKeys;
End;
End;
glKillWnd(FALSE);
Result := msg.wParam;
End;
上面在红色代码在DELPHI的FORM窗体如何实现.即APPLICATION WIN32 应用程FORM下.