Patrick Scheibe wrote:
> A friend of mine helped me solving the problem.
> It was really confusing. I just added any printouts in the display function of
> opengl and found out that wxhaskell called this display func. But why should
> it be called and even though nothing appeared in the frame.
Ah, this is really good to hear,
I have been playing with the sample but couldn't find
a solution myself.
Good luck with your further experiments,
> We figured out that it is probably the best way to have a look at the GTK
> opengl sample. So we changed some lines in the source relating to the c++
> sample code.
> I won't have time to find some more out but here is the modified sample that
> runs on our machines.. (mainly for Mike who wants the news)
> It shows just a white square on a black background. Compilation with
> ghc -package wx -package OpenGL foobar.hs
> module Main
> import Graphics.Rendering.OpenGL
> import qualified Graphics.UI.WX as WX
> import qualified Graphics.Rendering.OpenGL as GL
> main = start gui
> convWG (WX.Size w h) = (GL.Size (convInt32 w) (convInt32 h))
> convInt32 = fromInteger . toInteger
> gui = do
> f <- frame [ text := "Simple OpenGL" ]
> glCanvas <- glCanvasCreateEx f 0 (Rect 0 0 200 200)
> 0 "GLCanvas" [GL_RGBA] nullPalette
> initme glCanvas
> let glWidgetLayout = (fill . widget) glCanvas
> WX.set f [ on paintRaw := paintGL glCanvas
> , layout := glWidgetLayout
> paintGL :: GLCanvas a -> DC() -> WX.Rect -> [WX.Rect] -> IO ()
> paintGL canvas dc rect _ = do
> reshape $ convWG $ rectSize rect
> display canvas
> return ()
> initme :: GLCanvas a -> IO ()
> initme canvas = do
> glCanvasSetCurrent canvas
> display canvas = do
> clear [ ColorBuffer]
> preservingMatrix $ do
> putStrLn "Display"
> glCanvasSwapBuffers canvas
> reshape size@... w h) = do
> viewport $= (Position 0 0, size)
> matrixMode $= Projection
> let wf = fromIntegral w
> hf = fromIntegral h
> if w <= h
> then ortho (-4.0) 4.0 (-4.0*hf/wf) (4.0*hf/wf) (-4.0) 4.0
> else ortho (-4.0*wf/hf) (4.0*wf/hf) (-4.0) 4.0 (-4.0) 4.0
> matrixMode $= Modelview 0
> vertex3f :: Vertex3 GLfloat -> IO ()
> vertex3f = vertex :: Vertex3 GLfloat -> IO ()
> stdQuad :: IO ()
> stdQuad = do
> renderPrimitive Polygon $ mapM_ vertex3f [
> Vertex3 0 0 0,
> Vertex3 0 1 0,
> Vertex3 1 1 0,
> Vertex3 1 0 0
> On Tuesday 04 January 2005 19:58, Mike Gunter wrote:
>>Too bad. Do let me know if you figure this out.
>>Patrick Scheibe <mai99dnn@...> writes:
>>>I try to run the GLCanvas sample from the source of wxHaskell and the
>>>only thing I get is a blank screen. Mike said I should try to recompile
>>>all stuff (wxGTK and wxHaskell) with the --with-opengl option.
>>>But this was what I did in the first time. The opengl sample in the wxGTK
>>>source (penguin and so on) runs perfectly.
>>>I can compile wxHaskell with opengl without any error.
>>>But the sample shows just the blank screen.
>>>I figured out that it doesn't matter when I don't give the -package
>>>OpenGL option to ghc. The sample compiles without error and runs in the
>>>same way. Does wxHaskell add the Gl libs itself?
>>>Has anybody a compiled wxhaskell where this sample runs and can he help
>>>me by showing his configuration of ghc, gtk, wxgkt, glib, wxhaskell, ...
>>>I have a running SuSe distribution.
>>>On Monday 03 January 2005 19:50, Mike Gunter wrote:
>>>>I was seeing the same behavior. Responding to my question, Sean
>>>>Seefried pointed out that both wxWidgets and wxHaskell must be built
>>>>with OpenGL support (by passing --with-opengl to their configure
>>>>scripts). I haven't had time to determine if that's the issue for me.
>>>>Perhaps it is for you? (If you do figure out why you're seeing the
>>>>behavior you are, please let me know ...)
> The SF.Net email is sponsored by: Beat the post-holiday blues
> Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
> It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
> wxhaskell-users mailing list