From: luc t. <luc...@gm...> - 2013-03-26 21:28:12
|
I am a bit clue less I have reduced to the bare minimum gr <- graphicsRendererCreateContextFromNativeWindow f graphicsContextDelete gr it compiles and segfault… any ideas ? mbp2-de-luc:wxcanvastest luc$ ghc --make Paint.hs [1 of 1] Compiling Main ( Paint.hs, Paint.o ) Linking Paint ... mbp2-de-luc:wxcanvastest luc$ ./Paint Segmentation fault: 11 mbp2-de-luc:wxcanvastest luc$ -------- module Main where import Graphics.UI.WXCore import Graphics.UI.WX main :: IO () main = start gui gui :: IO () gui = do f <- frame [text := "Paint demo", fullRepaintOnResize := False] -- sw <- scrolledWindow f [ on paint := onpaint -- , virtualSize := sz 500 500, scrollRate := sz 10 10 -- , fullRepaintOnResize := False] -- dcc <- paintDCCreate sw gr <- graphicsRendererCreateContextFromNativeWindow f -- pa <-graphicsPathCreate -- graphicsPathAddCircle pa (pt 30 30) 20 -- graphicsPathCloseSubpath pa graphicsContextDelete gr set f [clientSize := sz 150 150] --, layout := fill $ widget sw] return () On 2013-03-25 22:03:55 +0000, Luc TAESCH said: > I tried this so far > which is copied from the basic Paint.hs from the sample. > > - it compiles , run and break at run time if I omit Line [1] > gr <- graphicsContextCreate dc -- 1. this break for now > > and it does not compile when I leave it on. > > My sources are [1] and [2] > > [1]: http://docs.wxwidgets.org/trunk/classwx_graphics_context.html > [2]: http://chandlerproject.org/Projects/WxPythonGraphicsContext > > Ill keep you posted > ---------- > > module Main where > > import Graphics.UI.WXCore > import Graphics.UI.WX > > main :: IO () > main > = start gui > > gui :: IO () > gui > = do f <- frame [text := "Paint demo", fullRepaintOnResize := False] > sw <- scrolledWindow f [ on paint := onpaint > , virtualSize := sz 500 500, scrollRate > := sz 10 10 > , fullRepaintOnResize := False] > > set f [clientSize := sz 150 150, layout := fill $ widget sw] > return () > where > onpaint dc viewArea > = do > gr <- graphicsContextCreate dc -- 1. this break for now > > > pa <-graphicsPathCreate > graphicsPathAddCircle pa (pt 30 30) 20 > graphicsPathCloseSubpath pa > --circle dc (pt 30 30) 20 [penKind := PenSolid] > > > Paint.hs:13:45: > Couldn't match expected type `()' with actual type `CWindowDC a0' > Expected type: DC () -> Rect -> IO () > Actual type: WindowDC a0 -> t0 -> IO () > In the second argument of `(:=)', namely `onpaint' > In the expression: on paint := on paint > > > void MyCanvas::OnPaint(wxPaintEvent &event) > { > // Create paint DC > wxPaintDC dc(this); > > // Create graphics context from it > wxGraphicsContext *gc = wxGraphicsContext::Create( dc ); > > if (gc) > { > // make a path that contains a circle and some lines > gc->SetPen( *wxRED_PEN ); > wxGraphicsPath path = gc->CreatePath(); > path.AddCircle( 50.0, 50.0, 50.0 ); > path.MoveToPoint(0.0, 50.0); > path.AddLineToPoint(100.0, 50.0); > path.MoveToPoint(50.0, 0.0); > path.AddLineToPoint(50.0, 100.0 ); > path.CloseSubpath(); > path.AddRectangle(25.0, 25.0, 50.0, 50.0); > > gc->StrokePath(path); > > delete gc; > } > } > > -------------- > Luc > be.linkedin.com/in/luctaesch/ > Envoyé avec Sparrow > > Le lundi 25 mars 2013 à 22:52, Henk-Jan van Tuyl a écrit : > On Mon, 25 Mar 2013 19:00:58 +0100, Luc TAESCH <luc...@gm...> > wrote: > > ah many thanks ! I understand better now ( change quite a bit since > 2003 :-) > I indeed can see the classes . > > are these new renderers already mapped into wx, or should we use them as > such , directly ? > any sample / test available , out of chance ? > > Many thanks for your patience, anyway :-) > > Luc > > I can't find any renderer functions in wx, or any samples/tests; I suppose > the best thing to do is to try to translate C++ sample programs to Haskell. > > Regards, > Henk-Jan van Tuyl > > > -- > http://Van.Tuyl.eu/ > http://members.chello.nl/hjgtuyl/tourdemonad.html > Haskell programming > -- > > ------------------------------------------------------------------------------ > Own the Future-Intel® Level Up Game Demo Contest 2013 > Rise to greatness in Intel's independent game demo contest. > Compete for recognition, cash, and the chance to get your game > on Steam. $5K grand prize plus 10 genre and skill prizes. > Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d |