Thanks for the quick response Slava. The following code is example 1-3
from the OpenGL Programming Guide - a square that spins when the left
mouse button is pressed. I am setting the background color and shade
model in graft* after calling find-gl-context (I didn't find
libs/canvas you mentioned in Factor .89 but I did find this word in
libs/gadgets/lib/lib.factor). These words don't have any effect. If
however I uncomment out the calls to these words at the top of
draw-gadget* it works fine. Am I doing something wrong here? Also I
expected to find some sort of resize generic word for the gadget where I
could place the call to glViewport. Wasn't able to find anything that
looked like what I wanted in the documentation - is there such a thing?
IN: red-book
USE: modules
"libs/gadgets/lib/lib" require
USING: kernel gadgets opengl arrays timers math sequences gadgets.lib ;
: width ( gadget -- n )
rect-dim 0 swap nth ;
: height ( gadget -- n )
rect-dim 1 swap nth ;
TUPLE: example-1-3-gadget spin ;
C: example-1-3-gadget ( -- gadget )
[ 0.0 swap set-example-1-3-gadget-spin ] keep
[ delegate>gadget ] keep ;
M: example-1-3-gadget pref-dim* ( gadget -- dim )
drop { 250 250 } ;
M: example-1-3-gadget draw-gadget* ( gadget -- )
#! 0.0 0.0 0.0 0.0 glClearColor
#! GL_FLAT glShadeModel ;
0 0 pick [ width ] keep height glViewport
GL_PROJECTION glMatrixMode
glLoadIdentity
-50.0 50.0 -50.0 50.0 -1.0 1.0 glOrtho
GL_MODELVIEW glMatrixMode
glLoadIdentity
GL_COLOR_BUFFER_BIT glClear
glPushMatrix
example-1-3-gadget-spin 0.0 0.0 1.0 glRotatef
1.0 1.0 1.0 glColor3f
-25.0 -25.0 25.0 25.0 glRectf
glPopMatrix ;
M: example-1-3-gadget tick ( gadget -- )
dup example-1-3-gadget-spin
2.0 + dup
360.0 > [ 360.0 - ] when
over set-example-1-3-gadget-spin
relayout-1 ;
M: example-1-3-gadget graft* ( gadget -- )
find-gl-context
0.0 0.0 0.0 0.0 glClearColor
GL_FLAT glShadeModel ;
example-1-3-gadget H{
{ T{ button-down f f 1 } [ dup remove-timer 1 1 add-timer ] }
{ T{ button-down f f 2 } [ remove-timer ] }
} set-gestures
: run-example-1-3 ( -- )
<example-1-3-gadget> "Example 1-3" open-window ;
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk