Hi,

It's not easy to answer these type of questions without looking at the code,
but I guess that you forgot "swapBuffers"; also "postRedisplay" is at the wrong place.
Idle callback shouldn't be used in normal circumstances.

In double-buffering mode, by default OpenGL draws on the back plane, and you see the
front page. After you finish the drawing, you swap the two using "swapBuffers".

"postRedisplay Nothing" tells GLUT that the screen is needing a refresh (normal
applications do not render continuously, just when something happens on the screen).
If you want continuous animation, I recommend the following code structure, where
swapBuffers and postRedisplay are at the end of the display callback:

-- This is the display callback. You do the drawing here.
-- Idle callback shouldn't be used at all. Animation should be depend
   -- only on time, not on frames.
display = do

  matrixMode $= Projection
  loadIdentity
  -- set projection matrix here, for example:
  ortho (-1) 1 (-1) 1 (-1) 1

  matrixMode $= Modelview 0
  loadIdentity

     t1 <- get elapsedTime
     let t = fromIntegral t1 * 0.001 :: Double        -- elapsed time in seconds

  -- do some drawing here, depending on "t"
  renderPrimitive Lines $ do
    vertex (Vertex2 ....)
    -- etc

  swapBuffers                  -- this is for correct double buffer
  postRedisplay Nothing   -- this is to ensure that the next frame will be rendered, too


Hope this helps,
Balazs


On Tue, Mar 15, 2011 at 11:19 PM, Francisco Listas <francisco.listas@gmail.com> wrote:
Hello all,

I am following the tutorial on
http://www.haskell.org/haskellwiki/OpenGLTutorial2 everything works
ok, but the moment I  add "postRedisplay Nothing" to the idle function
nothing is displayed.
I've tried passing the current window to postRedisplay, adding double
buffering (it is supposed to be done internally on mac) but no image.
If I comment out postRedisplay then I can see the image but no animation

I am using Snow Leopard 10.6 and GHC from the 32bit Haskell Platform 2010.2.0.0

Any clue to what's happening?

Thx,
Francisco

_______________________________________________
HOpenGL mailing list
HOpenGL@haskell.org
http://www.haskell.org/mailman/listinfo/hopengl