]> gitweb.factorcode.org Git - factor.git/blob - extra/nehe/3/3.factor
factor: trim using lists
[factor.git] / extra / nehe / 3 / 3.factor
1 USING: accessors kernel literals math opengl.demo-support
2 opengl.gl opengl.glu ui ui.gadgets ui.render ;
3 IN: nehe.3
4
5 TUPLE: nehe3-gadget < gadget ;
6
7 CONSTANT: width 256
8 CONSTANT: height 256
9
10 : <nehe3-gadget> (  -- gadget )
11   nehe3-gadget new ;
12
13 M: nehe3-gadget draw-gadget* ( gadget -- )
14   drop
15   GL_PROJECTION glMatrixMode
16   glLoadIdentity
17   45.0 width height / >float 0.1 100.0 gluPerspective
18   GL_MODELVIEW glMatrixMode
19   glLoadIdentity
20   GL_SMOOTH glShadeModel
21   0.0 0.0 0.0 0.0 glClearColor
22   1.0 glClearDepth
23   GL_DEPTH_TEST glEnable
24   GL_LEQUAL glDepthFunc
25   GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST glHint
26   GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor glClear
27   glLoadIdentity
28   -1.5 0.0 -6.0 glTranslatef
29   GL_TRIANGLES [
30     1.0 0.0 0.0 glColor3f
31     0.0 1.0 0.0 glVertex3f
32     0.0 1.0 0.0 glColor3f
33     -1.0 -1.0 0.0 glVertex3f
34     0.0 0.0 1.0 glColor3f
35     1.0 -1.0 0.0 glVertex3f
36   ] do-state
37   3.0 0.0 0.0 glTranslatef
38   0.5 0.5 1.0 glColor3f
39   GL_QUADS [
40     -1.0 1.0 0.0 glVertex3f
41     1.0 1.0 0.0 glVertex3f
42     1.0 -1.0 0.0 glVertex3f
43     -1.0 -1.0 0.0 glVertex3f
44   ] do-state ;
45
46 MAIN-WINDOW: run3 { { title "NeHe Tutorial 3" } { pref-dim { $ width $ height } } }
47   <nehe3-gadget> >>gadgets ;