1 program SimpleLoadFromFile;
6 {$IFDEF UNIX}{$IFDEF UseCThreads}
9 Classes, Windows, SysUtils, dglOpenGL, glBitmap, Helper;
12 oglWindow: TOpenGLWindow;
13 running: Boolean = true;
15 function WindowProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
25 if wParam = VK_RETURN then begin
26 data := TglBitmapData.Create; // create texture data object
28 TglBitmap2D.GrabScreen(0, 0, 800, 600, tfRGBA8ui1, data); // read pixels from frame buffer
29 data.SaveToFile( // save data to file
30 ExtractFilePath(ApplicationName) +
32 WriteLn('screen saved to screen.bmp');
34 FreeAndNil(data); // free texture data object when done
39 result := DefWindowProc(hWnd, Msg, wParam, lParam);
44 glBegin(GL_TRIANGLES);
45 glColor4f(1, 0, 0, 1); glVertex2f(400, 100);
46 glColor4f(0, 1, 0, 1); glVertex2f(100, 500);
47 glColor4f(0, 0, 1, 1); glVertex2f(700, 500);
52 oglWindow := CreateOpenGLWindow('GrapScreen (hit enter to grab screen)', 800, 600, @WindowProc);
53 while running and ProgressMesages do begin
55 SwapBuffers(oglWindow.DC);
57 DestroyOpenGLWindow(oglWindow);