From f82f9a8126c59029bbbd1fa0a52cf682baf0db3e Mon Sep 17 00:00:00 2001 From: "chris.double" Date: Tue, 28 Nov 2006 21:55:35 +0000 Subject: [PATCH] nehe: add tutorial 3 --- examples/nehe/nehe2.factor | 2 +- examples/nehe/nehe3.factor | 52 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 examples/nehe/nehe3.factor diff --git a/examples/nehe/nehe2.factor b/examples/nehe/nehe2.factor index 180a5b2818..1291f9c4b7 100644 --- a/examples/nehe/nehe2.factor +++ b/examples/nehe/nehe2.factor @@ -44,5 +44,5 @@ M: nehe2-gadget draw-gadget* ( gadget -- ) -1.0 -1.0 0.0 glVertex3f ] gl-begin ; -: run ( -- ) +: run2 ( -- ) "NeHe Tutorial 2" open-titled-window ; diff --git a/examples/nehe/nehe3.factor b/examples/nehe/nehe3.factor new file mode 100644 index 0000000000..8df0a8962d --- /dev/null +++ b/examples/nehe/nehe3.factor @@ -0,0 +1,52 @@ +IN: nehe +USING: kernel gadgets opengl math arrays ; + +TUPLE: nehe3-gadget ; + +: width 256 ; +: height 256 ; + +C: nehe3-gadget ( -- gadget ) + [ delegate>gadget ] keep ; + +M: nehe3-gadget pref-dim* ( gadget -- dim ) + drop width height 0 3array ; + +: gl-begin ( type quot -- ) + >r glBegin r> call glEnd ; inline + +M: nehe3-gadget draw-gadget* ( gadget -- ) + drop + GL_PROJECTION glMatrixMode + glLoadIdentity + 45.0 width height / >float 0.1 100.0 gluPerspective + GL_MODELVIEW glMatrixMode + glLoadIdentity + GL_SMOOTH glShadeModel + 0.0 0.0 0.0 0.0 glClearColor + 1.0 glClearDepth + GL_DEPTH_TEST glEnable + GL_LEQUAL glDepthFunc + GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST glHint + GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor glClear + glLoadIdentity + -1.5 0.0 -6.0 glTranslatef + GL_TRIANGLES [ + 1.0 0.0 0.0 glColor3f + 0.0 1.0 0.0 glVertex3f + 0.0 1.0 0.0 glColor3f + -1.0 -1.0 0.0 glVertex3f + 0.0 0.0 1.0 glColor3f + 1.0 -1.0 0.0 glVertex3f + ] gl-begin + 3.0 0.0 0.0 glTranslatef + 0.5 0.5 1.0 glColor3f + GL_QUADS [ + -1.0 1.0 0.0 glVertex3f + 1.0 1.0 0.0 glVertex3f + 1.0 -1.0 0.0 glVertex3f + -1.0 -1.0 0.0 glVertex3f + ] gl-begin ; + +: run3 ( -- ) + "NeHe Tutorial 3" open-titled-window ;