USING: arrays kernel math opengl opengl.gl opengl.glu
-opengl.demo-support ui ui.gadgets ui.render literals accessors ;
+opengl.demo-support ui ui.gadgets ui.render ui.pixel-formats
+literals accessors ;
IN: nehe.2
TUPLE: nehe2-gadget < gadget ;
CONSTANT: height 256
: <nehe2-gadget> ( -- gadget )
- nehe2-gadget new ;
+ nehe2-gadget new ;
M: nehe2-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 [
- 0.0 1.0 0.0 glVertex3f
- -1.0 -1.0 0.0 glVertex3f
- 1.0 -1.0 0.0 glVertex3f
- ] do-state
- 3.0 0.0 0.0 glTranslatef
- 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
- ] do-state ;
+ 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 [
+ 0.0 1.0 0.0 glVertex3f
+ -1.0 -1.0 0.0 glVertex3f
+ 1.0 -1.0 0.0 glVertex3f
+ ] do-state
+ 3.0 0.0 0.0 glTranslatef
+ 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
+ ] do-state ;
MAIN-WINDOW: run2
{
T{ depth-bits { value 16 } }
} }
}
- <nehe2-gadget> >>gadgets ;
+ <nehe2-gadget> >>gadgets ;
USING: arrays kernel math opengl opengl.gl opengl.glu
-opengl.demo-support ui ui.gadgets ui.render threads accessors
-calendar literals ;
+opengl.demo-support ui ui.gadgets ui.render ui.pixel-formats
+threads accessors calendar literals ;
IN: nehe.4
TUPLE: nehe4-gadget < gadget rtri rquad thread quit? ;
: redraw-interval ( -- dt ) 10 milliseconds ;
: <nehe4-gadget> ( -- gadget )
- nehe4-gadget new
+ nehe4-gadget new
0.0 >>rtri
0.0 >>rquad ;
M: nehe4-gadget draw-gadget* ( gadget -- )
- 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
- dup rtri>> 0.0 1.0 0.0 glRotatef
+ 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
+ dup rtri>> 0.0 1.0 0.0 glRotatef
- 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
- ] do-state
+ 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
+ ] do-state
- glLoadIdentity
+ glLoadIdentity
- 1.5 0.0 -6.0 glTranslatef
- dup rquad>> 1.0 0.0 0.0 glRotatef
- 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
- ] do-state
- [ 0.2 + ] change-rtri
- [ 0.15 - ] change-rquad drop ;
+ 1.5 0.0 -6.0 glTranslatef
+ dup rquad>> 1.0 0.0 0.0 glRotatef
+ 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
+ ] do-state
+ [ 0.2 + ] change-rtri
+ [ 0.15 - ] change-rquad drop ;
: nehe4-update-thread ( gadget -- )
- dup quit?>> [ drop ] [
- redraw-interval sleep
- dup relayout-1
- nehe4-update-thread
- ] if ;
+ dup quit?>> [ drop ] [
+ redraw-interval sleep
+ dup relayout-1
+ nehe4-update-thread
+ ] if ;
M: nehe4-gadget graft* ( gadget -- )
- f >>quit?
- [ nehe4-update-thread ] curry in-thread ;
+ f >>quit?
+ [ nehe4-update-thread ] curry in-thread ;
M: nehe4-gadget ungraft* ( gadget -- )
- t >>quit? drop ;
+ t >>quit? drop ;
MAIN-WINDOW: run4
{
USING: arrays kernel math opengl opengl.gl opengl.glu\r
-opengl.demo-support ui ui.gadgets ui.render threads accessors\r
-calendar literals ;\r
+opengl.demo-support ui ui.gadgets ui.render ui.pixel-formats\r
+threads accessors calendar literals ;\r
IN: nehe.5\r
\r
TUPLE: nehe5-gadget < gadget rtri rquad thread quit? ;\r
: redraw-interval ( -- dt ) 10 milliseconds ;\r
\r
: <nehe5-gadget> ( -- gadget )\r
- nehe5-gadget new\r
+ nehe5-gadget new\r
0.0 >>rtri\r
0.0 >>rquad ;\r
\r
M: nehe5-gadget draw-gadget* ( gadget -- )\r
- GL_PROJECTION glMatrixMode\r
- glLoadIdentity\r
- 45.0 width height / >float 0.1 100.0 gluPerspective\r
- GL_MODELVIEW glMatrixMode\r
- glLoadIdentity\r
- GL_SMOOTH glShadeModel\r
- 0.0 0.0 0.0 0.0 glClearColor\r
- 1.0 glClearDepth\r
- GL_DEPTH_TEST glEnable\r
- GL_LEQUAL glDepthFunc\r
- GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST glHint\r
- GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor glClear\r
- glLoadIdentity\r
- -1.5 0.0 -6.0 glTranslatef\r
- dup rtri>> 0.0 1.0 0.0 glRotatef\r
-\r
- GL_TRIANGLES [\r
- 1.0 0.0 0.0 glColor3f\r
- 0.0 1.0 0.0 glVertex3f\r
- 0.0 1.0 0.0 glColor3f\r
- -1.0 -1.0 1.0 glVertex3f\r
- 0.0 0.0 1.0 glColor3f\r
- 1.0 -1.0 1.0 glVertex3f\r
-\r
- 1.0 0.0 0.0 glColor3f\r
- 0.0 1.0 0.0 glVertex3f\r
- 0.0 0.0 1.0 glColor3f\r
- 1.0 -1.0 1.0 glVertex3f\r
- 0.0 1.0 0.0 glColor3f\r
- 1.0 -1.0 -1.0 glVertex3f\r
-\r
- 1.0 0.0 0.0 glColor3f\r
- 0.0 1.0 0.0 glVertex3f\r
- 0.0 1.0 0.0 glColor3f\r
- 1.0 -1.0 -1.0 glVertex3f\r
- 0.0 0.0 1.0 glColor3f\r
- -1.0 -1.0 -1.0 glVertex3f\r
-\r
- 1.0 0.0 0.0 glColor3f\r
- 0.0 1.0 0.0 glVertex3f\r
- 0.0 0.0 1.0 glColor3f\r
- -1.0 -1.0 -1.0 glVertex3f\r
- 0.0 1.0 0.0 glColor3f\r
- -1.0 -1.0 1.0 glVertex3f\r
- ] do-state\r
-\r
- glLoadIdentity\r
-\r
- 1.5 0.0 -7.0 glTranslatef\r
- dup rquad>> 1.0 0.0 0.0 glRotatef\r
- GL_QUADS [\r
- 0.0 1.0 0.0 glColor3f\r
- 1.0 1.0 -1.0 glVertex3f\r
- -1.0 1.0 -1.0 glVertex3f\r
- -1.0 1.0 1.0 glVertex3f\r
- 1.0 1.0 1.0 glVertex3f\r
-\r
- 1.0 0.5 0.0 glColor3f\r
- 1.0 -1.0 1.0 glVertex3f\r
- -1.0 -1.0 1.0 glVertex3f\r
- -1.0 -1.0 -1.0 glVertex3f\r
- 1.0 -1.0 -1.0 glVertex3f\r
-\r
- 1.0 0.0 0.0 glColor3f\r
- 1.0 1.0 1.0 glVertex3f\r
- -1.0 1.0 1.0 glVertex3f\r
- -1.0 -1.0 1.0 glVertex3f\r
- 1.0 -1.0 1.0 glVertex3f\r
-\r
- 1.0 1.0 0.0 glColor3f\r
- 1.0 -1.0 -1.0 glVertex3f\r
- -1.0 -1.0 -1.0 glVertex3f\r
- -1.0 1.0 -1.0 glVertex3f\r
- 1.0 1.0 -1.0 glVertex3f\r
-\r
- 0.0 0.0 1.0 glColor3f\r
- -1.0 1.0 1.0 glVertex3f\r
- -1.0 1.0 -1.0 glVertex3f\r
- -1.0 -1.0 -1.0 glVertex3f\r
- -1.0 -1.0 1.0 glVertex3f\r
-\r
- 1.0 0.0 1.0 glColor3f\r
- 1.0 1.0 -1.0 glVertex3f\r
- 1.0 1.0 1.0 glVertex3f\r
- 1.0 -1.0 1.0 glVertex3f\r
- 1.0 -1.0 -1.0 glVertex3f\r
- ] do-state \r
- [ 0.2 + ] change-rtri\r
- [ 0.15 - ] change-rquad drop ;\r
-\r
-: nehe5-update-thread ( gadget -- ) \r
- dup quit?>> [\r
- drop\r
- ] [\r
- redraw-interval sleep \r
- dup relayout-1 \r
- nehe5-update-thread \r
- ] if ;\r
+ GL_PROJECTION glMatrixMode\r
+ glLoadIdentity\r
+ 45.0 width height / >float 0.1 100.0 gluPerspective\r
+ GL_MODELVIEW glMatrixMode\r
+ glLoadIdentity\r
+ GL_SMOOTH glShadeModel\r
+ 0.0 0.0 0.0 0.0 glClearColor\r
+ 1.0 glClearDepth\r
+ GL_DEPTH_TEST glEnable\r
+ GL_LEQUAL glDepthFunc\r
+ GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST glHint\r
+ GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor glClear\r
+ glLoadIdentity\r
+ -1.5 0.0 -6.0 glTranslatef\r
+ dup rtri>> 0.0 1.0 0.0 glRotatef\r
+\r
+ GL_TRIANGLES [\r
+ 1.0 0.0 0.0 glColor3f\r
+ 0.0 1.0 0.0 glVertex3f\r
+ 0.0 1.0 0.0 glColor3f\r
+ -1.0 -1.0 1.0 glVertex3f\r
+ 0.0 0.0 1.0 glColor3f\r
+ 1.0 -1.0 1.0 glVertex3f\r
+\r
+ 1.0 0.0 0.0 glColor3f\r
+ 0.0 1.0 0.0 glVertex3f\r
+ 0.0 0.0 1.0 glColor3f\r
+ 1.0 -1.0 1.0 glVertex3f\r
+ 0.0 1.0 0.0 glColor3f\r
+ 1.0 -1.0 -1.0 glVertex3f\r
+\r
+ 1.0 0.0 0.0 glColor3f\r
+ 0.0 1.0 0.0 glVertex3f\r
+ 0.0 1.0 0.0 glColor3f\r
+ 1.0 -1.0 -1.0 glVertex3f\r
+ 0.0 0.0 1.0 glColor3f\r
+ -1.0 -1.0 -1.0 glVertex3f\r
+\r
+ 1.0 0.0 0.0 glColor3f\r
+ 0.0 1.0 0.0 glVertex3f\r
+ 0.0 0.0 1.0 glColor3f\r
+ -1.0 -1.0 -1.0 glVertex3f\r
+ 0.0 1.0 0.0 glColor3f\r
+ -1.0 -1.0 1.0 glVertex3f\r
+ ] do-state\r
+\r
+ glLoadIdentity\r
+\r
+ 1.5 0.0 -7.0 glTranslatef\r
+ dup rquad>> 1.0 0.0 0.0 glRotatef\r
+ GL_QUADS [\r
+ 0.0 1.0 0.0 glColor3f\r
+ 1.0 1.0 -1.0 glVertex3f\r
+ -1.0 1.0 -1.0 glVertex3f\r
+ -1.0 1.0 1.0 glVertex3f\r
+ 1.0 1.0 1.0 glVertex3f\r
+\r
+ 1.0 0.5 0.0 glColor3f\r
+ 1.0 -1.0 1.0 glVertex3f\r
+ -1.0 -1.0 1.0 glVertex3f\r
+ -1.0 -1.0 -1.0 glVertex3f\r
+ 1.0 -1.0 -1.0 glVertex3f\r
+\r
+ 1.0 0.0 0.0 glColor3f\r
+ 1.0 1.0 1.0 glVertex3f\r
+ -1.0 1.0 1.0 glVertex3f\r
+ -1.0 -1.0 1.0 glVertex3f\r
+ 1.0 -1.0 1.0 glVertex3f\r
+\r
+ 1.0 1.0 0.0 glColor3f\r
+ 1.0 -1.0 -1.0 glVertex3f\r
+ -1.0 -1.0 -1.0 glVertex3f\r
+ -1.0 1.0 -1.0 glVertex3f\r
+ 1.0 1.0 -1.0 glVertex3f\r
+\r
+ 0.0 0.0 1.0 glColor3f\r
+ -1.0 1.0 1.0 glVertex3f\r
+ -1.0 1.0 -1.0 glVertex3f\r
+ -1.0 -1.0 -1.0 glVertex3f\r
+ -1.0 -1.0 1.0 glVertex3f\r
+\r
+ 1.0 0.0 1.0 glColor3f\r
+ 1.0 1.0 -1.0 glVertex3f\r
+ 1.0 1.0 1.0 glVertex3f\r
+ 1.0 -1.0 1.0 glVertex3f\r
+ 1.0 -1.0 -1.0 glVertex3f\r
+ ] do-state\r
+ [ 0.2 + ] change-rtri\r
+ [ 0.15 - ] change-rquad drop ;\r
+\r
+: nehe5-update-thread ( gadget -- )\r
+ dup quit?>> [\r
+ drop\r
+ ] [\r
+ redraw-interval sleep\r
+ dup relayout-1\r
+ nehe5-update-thread\r
+ ] if ;\r
\r
M: nehe5-gadget graft* ( gadget -- )\r
- f >>quit?\r
- [ nehe5-update-thread ] curry in-thread ;\r
+ f >>quit?\r
+ [ nehe5-update-thread ] curry in-thread ;\r
\r
M: nehe5-gadget ungraft* ( gadget -- )\r
- t >>quit? drop ;\r
+ t >>quit? drop ;\r
\r
-MAIN-WINDOW: run4\r
+MAIN-WINDOW: run5\r
{\r
{ title "NeHe Tutorial 5" }\r
{ pref-dim { $ width $ height } }\r