X-Git-Url: https://git.delphigl.com/?p=glBitmap.git;a=blobdiff_plain;f=examples%2FSimpleLoadFromFile%2FSimpleLoadFromFile.lpr;fp=examples%2FSimpleLoadFromFile%2FSimpleLoadFromFile.lpr;h=cb7cc15b1447422305affc03056c20fe455c00c9;hp=0000000000000000000000000000000000000000;hb=1f9d3b8b9ce7d5e05f7af88c7ab0fd094609d9e5;hpb=5a2eeb45d528c5a2406b2ae5d73a4c711b2ea7dc diff --git a/examples/SimpleLoadFromFile/SimpleLoadFromFile.lpr b/examples/SimpleLoadFromFile/SimpleLoadFromFile.lpr new file mode 100644 index 0000000..cb7cc15 --- /dev/null +++ b/examples/SimpleLoadFromFile/SimpleLoadFromFile.lpr @@ -0,0 +1,56 @@ +program SimpleLoadFromFile; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Classes, Windows, SysUtils, dglOpenGL, glBitmap, Helper; + +var + oglWindow: TOpenGLWindow; + running: Boolean = true; + tex: TglBitmap2D; + +function WindowProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; +begin + case Msg of + WM_DESTROY: begin + running := false; + end; + end; + result := DefWindowProc(hWnd, Msg, wParam, lParam); +end; + +procedure RenderLoop; +begin + tex.Bind(); + glColor4f(1, 1, 1, 1); + glBegin(GL_QUADS); + glTexCoord2f(0, 0); glVertex2f(100, 100); + glTexCoord2f(1, 0); glVertex2f(700, 100); + glTexCoord2f(1, 1); glVertex2f(700, 500); + glTexCoord2f(0, 1); glVertex2f(100, 500); + glEnd; + tex.Unbind(); +end; + +begin + oglWindow := CreateOpenGLWindow('SimpleLoadFromFile', 800, 600, @WindowProc); + try + // load texture + tex := TglBitmap2D.Create; + tex.LoadFromFile(ExtractFilePath(ApplicationName) + '../textures/BMP_24_RGB8.bmp'); + tex.GenTexture; + + while running and ProgressMesages do begin + RenderLoop; + SwapBuffers(oglWindow.DC); + end; + finally + FreeAndNil(tex); + DestroyOpenGLWindow(oglWindow); + end; +end. +