TBGL
Lesson #1
Initializing TBGL window, displaying triangle

In this lesson you will learn the basics of setup of TBGL OpenGL window, and you will make your first polygon !


  Lessons on this site are based on the idea of commented source code.
You can obtain the complete source by downloading it from the bottom of the article.

So get ready, here comes TBGL coding...



  USES "TBGL"
  USES "UI"
 


  As you can see, every TBGL source code should start with the definition of the used libraries.
The TBGL library provides the 3D functions, UI is module for handling user interface. We will need it to manage the TBGL window



  DIM hDlg AS DWORD

  MsgBox (0, "You should see black screen with white triangle soon"+ _
            $LF+$LF+ _
            "Press ESCAPE to quit window", %MB_ICONINFORMATION, "Lesson 1")

  hDlg = tbgl_CreateWindow   
  tbgl_ShowWindow
 


  Here we display informative message before the show starts :)
the tbgl_CreateWindow functions initializes all necessary for work with OpenGL, tbgl_ShowWindow just displays it



  GetAsyncKeyState(%VK_ESCAPE)

  WHILE IsWindow( hDlg )

    tbgl_ClearFrame

    tbgl_Camera 0,0,5,0,0,0

    tbgl_BeginPoly %GL_TRIANGLES
      tbgl_Vertex -1, 0, 0
      tbgl_Vertex 1, 0, 0
      tbgl_Vertex 0, 1, 0
    tbgl_EndPoly

    tbgl_DrawFrame

    IF GetAsyncKeyState( %VK_ESCAPE) THEN EXIT WHILE
  WEND
 


  This is the most important piece of code.
We will use ESCAPE key to exit program, so we must reset its status before checking it using GetAsyncKeyState(%VK_ESCAPE)

Then begins the main 3D code loop.
tbgl_ClearFrame must be used on every start of the painting of scene

tbgl_Camera function is important function, which says to the TBGL, that we want to look from one place in 3D to another. In this case we will look from 0, 0, 5 to the origin of the coordenates.

tbgl_BeginPoly and tbgl_EndPoly are something like "parenthesis" for declaring polygon. In this case we are using %GL_TRIANGLES polygon style. So we will need 3 vertexes to create one triangle.
Vertexes are defined using the tbgl_Vertex

The last line in the loop tests, if ESCAPE is pressed. If yes, it will exit the loop and then ...



  tbgl_DestroyWindow
 


... destroy the window and end the application.

Congratulations, you have passed the first lesson. I hope you have at least some idea how it works :)


To test it just download this source code: Lesson 1 source code


It should produce this image


PreviousHomeNext lesson


© Petr Schreiber, 2006