- var
- glcontext : hglrc;
- procedure TForm1.FormCreate(Sender: TObject);
- var
- pfd: tpixelformatdescriptor;
- formatindex: integer;
- begin
- fillchar(pfd,sizeof(pfd),0);
- with pfd do
- begin
- nsize := sizeof(pfd);
- nversion := 1;
- dwflags := pfd_draw_to_window or pfd_support_opengl;
- ipixeltype := pfd_type_rgba;
- ccolorbits := 24;
- cdepthbits := 32;
- ilayertype := pfd_main_plane;
- end;
- formatindex := choosepixelformat(paintbox1.Canvas.Handle,@pfd);
- setpixelformat(canvas.Handle,formatindex,@pfd);
- glcontext := wglcreatecontext(paintbox1.Canvas.Handle);
- wglmakecurrent(paintbox1.canvas.Handle,glcontext);
- end;
- procedure TForm1.FormDestroy(Sender: TObject);
- begin
- wglmakecurrent(paintbox1.canvas.Handle,0);
- wgldeletecontext(glcontext);
- end;
- procedure TForm1.FormPaint(Sender: TObject);
- var
- errorcode : glenum;
- begin
- glclearcolor(0.0,0.4,0.0,0.0);
- glclear(gl_color_buffer_bit);
- errorcode := glgeterror;
- if errorcode<>gl_no_error then
- raise exception.Create('error' + #13 + gluerrorstring(errorcode));
- end;