首先是初始化
①創建設備描述表(Device Context)
②設置相應的象素格式(PIXELFORMAT DESCRIPTOR)
③創建著色描述表(Rendering Context)
DC
DC
也可以用API函數GetDC獲得設備描述表
DC
也可以用函數CreateCompatibleDC或者BeginPaint
function SetupPixelFormat(var dc:HDC):Boolean;
var
ppfd:PPIXELFORMATDESCRIPTOR;
npixelformat:Integer;
begin
New(ppfd);
ppfd^
ppfd^
ppfd^
ppfd^
ppfd^
ppfd^
ppfd^
ppfd^
ppfd^
npixelformat:=ChoosePixelFormat(dc
if (nPixelformat=
begin
MessageBox(NULL
Result:=False;
Exit;
end;
if (SetPixelFormat(dc
begin
MessageBox(NULL
Result:=False;
Exit;
end;
Result:=True;
Dispose(ppfd);
end;
也可以向下面這樣進行設置如
var pfd: PixelFormatDescriptor;
nPixelFormat : Integer;
begin
FillChar(pfd
with pfd do
begin
nSize:=sizeof(pfd);
nVersion:=
dwFlags:=PFD_SUPPORT_OPENGL or PFD_DRAW_TO_BITMAP or PFD_DOUBLEBUFFER;
iPixelType:=PFD_TYPE_RGBA;
cColorBits:=
cDepthBits:=
iLayerType:=Byte(PFD_MAIN_PLANE);
end;
nPixelFormat:=ChoosePixelFormat(DC
SetPixelFormat(DC
{
// 使用DescribePixelFormat檢查象素格式是否設置正確
DescribePixelFormat(DC
if (pfd
< >
//SetupPalette是自定義函數
} end
上述工作完成以後
RC
RC:=wglCreateContext(DC);
wglMakeCurrent(DC
在程序結束之前
wglMakeCurrent(
if RC< >null then
wglDeleteContext(RC);
if ghDC< >null then
ReleaseDC(Handle
以下的代碼是從C++Builder
< a href=
程序中的OpenGL函數及象素格式在Delphi中的MSHelp中有比較詳細的解釋
From:http://tw.wingwit.com/Article/program/Delphi/201311/8539.html