summaryrefslogtreecommitdiff
path: root/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/lesson02.pp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/libndsfpc/examples/graphics/3D/nehe/lesson02/lesson02.pp')
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson02/lesson02.pp124
1 files changed, 65 insertions, 59 deletions
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/lesson02.pp b/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/lesson02.pp
index a4b6219fc2..35d15fb86e 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/lesson02.pp
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/lesson02.pp
@@ -1,6 +1,6 @@
(****************************************
- * NDS NeHe Lesson 02 *
- * Author: Dovoto *
+ * NDS NeHe Lesson 02 *
+ * Author: Dovoto *
****************************************)
program Lesson02;
@@ -12,72 +12,78 @@ uses
function DrawGLScene(): boolean;
begin
- glLoadIdentity(); // Reset The Current Modelview Matrix
+ glLoadIdentity(); // Reset The Current Modelview Matrix
- glTranslatef(-1.5,0.0,-6.0); // Move Left 1.5 Units And Into The Screen 6.0
- glBegin(GL_TRIANGLES); // Drawing Using Triangles
- glVertex3f( 0.0, 1.0, 0.0); // Top
- glVertex3f(-1.0,-1.0, 0.0); // Bottom Left
- glVertex3f( 1.0,-1.0, 0.0); // Bottom Right
- glEnd(); // Finished Drawing The Triangle
+ glTranslatef(-1.5,0.0,-6.0); // Move Left 1.5 Units And Into The Screen 6.0
+ glBegin(GL_TRIANGLES); // Drawing Using Triangles
+ glVertex3f( 0.0, 1.0, 0.0); // Top
+ glVertex3f(-1.0,-1.0, 0.0); // Bottom Left
+ glVertex3f( 1.0,-1.0, 0.0); // Bottom Right
+ glEnd(); // Finished Drawing The Triangle
- glTranslatef(3.0,0.0,0.0); // Move Right 3 Units
- glBegin(GL_QUADS); // Draw A Quad
- glVertex3f(-1.0, 1.0, 0.0); // Top Left
- glVertex3f( 1.0, 1.0, 0.0); // Top Right
- glVertex3f( 1.0,-1.0, 0.0); // Bottom Right
- glVertex3f(-1.0,-1.0, 0.0); // Bottom Left
- glEnd(); // Done Drawing The Quad
+ glTranslatef(3.0,0.0,0.0); // Move Right 3 Units
+ glBegin(GL_QUADS); // Draw A Quad
+ glVertex3f(-1.0, 1.0, 0.0); // Top Left
+ glVertex3f( 1.0, 1.0, 0.0); // Top Right
+ glVertex3f( 1.0,-1.0, 0.0); // Bottom Right
+ glVertex3f(-1.0,-1.0, 0.0); // Bottom Left
+ glEnd(); // Done Drawing The Quad
- result := true; // Keep Going
+ result := true; // Keep Going
end;
-begin
+var
+ keys: integer;
- // Setup the Main screen for 3D
- videoSetMode(MODE_0_3D);
+begin
- // initialize the geometry engine
- glInit();
-
- // enable antialiasing
- glEnable(GL_ANTIALIAS);
+ // Setup the Main screen for 3D
+ videoSetMode(MODE_0_3D);
- // setup the rear plane
- glClearColor(0,0,0,31); // BG must be opaque for AA to work
- glClearPolyID(63); // BG must have a unique polygon ID for AA to work
- glClearDepth($7FFF);
-
- // Set our viewport to be the same size as the screen
- glViewPort(0,0,255,191);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(70, 256.0 / 192.0, 0.1, 100);
- // Set the color of the vertices
- glColor3f(1, 1, 1);
-
+ // initialize the geometry engine
+ glInit();
+
+ // enable antialiasing
+ glEnable(GL_ANTIALIAS);
+
+ // setup the rear plane
+ glClearColor(0,0,0,31); // BG must be opaque for AA to work
+ glClearPolyID(63); // BG must have a unique polygon ID for AA to work
+ glClearDepth($7FFF);
+
+ // Set our viewport to be the same size as the screen
+ glViewPort(0,0,255,191);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(70, 256.0 / 192.0, 0.1, 100);
+ // Set the color of the vertices
+ glColor3f(1, 1, 1);
+
while true do
- begin
- //ds specific, several attributes can be set here
- glPolyFmt(POLY_ALPHA(31) or POLY_CULL_NONE);
-
- // Set the current matrix to be the model matrix
- glMatrixMode(GL_MODELVIEW);
-
- //Push our original Matrix onto the stack (save state)
- glPushMatrix();
+ begin
+ //ds specific, several attributes can be set here
+ glPolyFmt(POLY_ALPHA(31) or POLY_CULL_NONE);
+
+ // Set the current matrix to be the model matrix
+ glMatrixMode(GL_MODELVIEW);
+
+ //Push our original Matrix onto the stack (save state)
+ glPushMatrix();
- DrawGLScene();
-
- // Pop our Matrix from the stack (restore state)
- glPopMatrix(1);
+ DrawGLScene();
+
+ // Pop our Matrix from the stack (restore state)
+ glPopMatrix(1);
- //a handy little built in function to wait for a screen refresh
- swiWaitForVBlank();
-
- // flush to screen
- glFlush(0);
- end;
-
+ //a handy little built in function to wait for a screen refresh
+ swiWaitForVBlank();
+
+ // flush to screen
+ glFlush(0);
+ scanKeys();
+ keys := keysDown();
+ if (keys and KEY_START) <> 0 then break;
+ end;
+
end.