[PR]当たる!無料占いで運命鑑定:プロの占い師による本格運命鑑定が無料で

プログラム例


ボタンを一つ用意してクリックすると書くようにします。

procedure TForm1.Button1Click(Sender: TObject);
var
mhrc:hglrc;
ipixelformat:integer;
pfd:tpixelformatdescriptor;

上の3つの変数は必須です

begin

まずPFDという構造体に、どのようにOpenGLを使うかを設定します。

with pfd do
     begin
     nSize:=sizeof(pfd);
     nVersion:=1;
     dwFlags:=PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL;
     iPixelType:=PFD_TYPE_RGBA;
     cColorBits:=32;
     cRedBits:=0;
     cRedShift:=0;
     cGreenBits:=0;
     cGreenShift:=0;
     cBlueBits:=0;
     cBlueShift:=0;
     cAlphaBits:=0;
     cAlphaShift:=0;
     cAccumBits:=0;
     cAccumRedBits:=0;
     cAccumGreenBits:=0;
     cAccumBlueBits:=0;
     cAccumAlphaBits:=0;
     cDepthBits:=32;
     cStencilBits:=0;
     cAuxBuffers:=0;
     iLayerType:=PFD_MAIN_PLANE;
     bReserved:=0;
     dwLayerMask:=0;
     dwVisibleMask:=0;
     dwDamageMask:=0;
     end;

次に、デバイスコンテキスト(ここではイメージを使用)とあわせて「レンダリングコンテキスト」という値を作成します。

ipixelformat:=choosepixelformat(image1.canvas.handle,@pfd);
setpixelformat(image1.canvas.Handle,ipixelformat,@pfd);
mhrc:=wglcreatecontext(image1.canvas.handle);

この「レンダリングコンテキスト」を有効にすると、GLコマンドがそのウインドウに送られます。

wglmakecurrent(image1.canvas.handle,mhrc);

ここからは普通のOpenGLで書かれています。1本の線を書きます。

glclearcolor(0,1,0,0);
glclear(gl_color_buffer_bit);
glcolor3f(1,1,1);
glbegin(gl_lines);
                  glvertex2f(0.25,0.25);
                  glvertex2f(0.75,0.75);
glend();
glflush();

使い終わった「レンダリングコンテキスト」を開放します。

wglmakecurrent(0,0);
wgldeletecontext(mhrc);
end;
end.


[PR]≪占い奇跡の恋愛術≫初回無料:幸せな結婚へ導きます。本格結婚鑑定