Hi Oskar,

> Thus I added the following definition from glut to OpenGL:
> : (de glutMainLoopEvent () (native `*GlutLib "glutMainLoopEvent") )
> 
> I set up some kind of main loop:
> : (mouseFunc '((Btn State X Y) (setq _run NIL))) # Exit upon mouse click
> : (de go () (setq _run T)(while _run (glutMainLoopEvent)))
> 
> Is there a function to keep the REPL in the console alive, like
> 
> (de go () (setq _run T)(while _run (glutMainLoopEvent DO_THE_REPL)))
> 
> or is there another (better) way to create a OpenGL window without
> loosing control to "glutMainLoop"?

I would simply use catch and throw:

   (mouseFunc
      '((Btn State X Y)
         (if (= Btn 1)
            (throw 'quit)  # Stop on middle button press
            ... do something with other button presses ... ) ) )

   (catch 'quit (glutMainLoop))


'glutMainLoopEvent' might also be useful. Can we find out the socket fd
where the events arrive on?

If so, then I would trigger 'glutMainLoopEvent' whenever an event
arrives:

   (task <socketFd> (glutMainLoopEvent))

♪♫ Alex
-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to