[GRASS-user] Re: [GRASS-dev] empty map window/map rendering doesn't
work (wxgui)
Huidae Cho
grass4u at gmail.com
Mon Mar 16 01:13:57 EDT 2009
Martin and Michael,
After investing some time, I found a note in
swig-1.3.38/Tools/pyname_patch.py saying that they have renamed PySwig*
to SwigPy* since swig 1.3.37. wxPython 2.8.9.2 (current stable version)
still uses old naming, so we have to stick to swig >= 1.3.31 and <=
1.3.36. Now, GUI works great!
BTW, gui/wxpython/README says that swig is required only for the vector
digitizer, but I got the error below even at startup OnPaint events. Am
I missing something? Or is swig now required for the entire gui?
Thank you.
Huidae
On Sun, Mar 15, 2009 at 03:49:15PM -0700, Michael Barton wrote:
>
>
> On Mar 15, 2009, at 3:19 PM, <[1]grass-dev-request at lists.osgeo.org>
> wrote:
>
> From: Huidae Cho <[2]grass4u at gmail.com>
>
> Date: March 15, 2009 3:21:14 PM GMT-07:00
>
> To: [3]grass-dev at lists.osgeo.org
>
> Cc: [4]grass-user at lists.osgeo.org, Martin Landa
> <[5]landa.martin at gmail.com>
>
> Subject: [GRASS-dev] empty map window/map rendering doesn't work
> (wxgui)
>
> Hi,
> I'm having a similar problem to this one after updating my
> repository
> (grass/trunk) yesterday. I installed SWIG, wxPython (version
> 2.8.9.2),
> and wxWidgets (version 2.8.9.2, --enable-graphics_ctx), but my Cairo
> version is 1.4.10, which means no g.cairocomp.
> My error message looks like this:
> ----------------
> Traceback (most recent call last):
> File "/home/geni/usr/grass/grass-trunk/dist.i686-pc-linux-
> gnu/etc/wxpython/gui_modules/mapdisp_window.py", line 448,
> in OnPaint
> self.pdc.DrawToDCClipped(dc, rgn)
> File "/home/geni/usr/grass/grass-trunk/dist.i686-pc-linux-
> gnu/etc/wxpython/vdigit/grass7_wxvdigit.py", line 384, in
> DrawToDCClipped
> def DrawToDCClipped(self, *args): return
> _grass7_wxvdigit.PseudoDC_DrawToDCClipped(self, *args)
> TypeError
> :
> in method 'PseudoDC_DrawToDCClipped', argument 2 of type
> 'void *'
> Traceback (most recent call last):
> File "/home/geni/usr/grass/grass-trunk/dist.i686-pc-linux-
> gnu/etc/wxpython/gui_modules/mapdisp_window.py", line 540,
> in OnIdle
> self.UpdateMap(render=True)
> File "/home/geni/usr/grass/grass-trunk/dist.i686-pc-linux-
> gnu/etc/wxpython/gui_modules/mapdisp_window.py", line 665,
> in UpdateMap
> self.Draw(self.pdc, self.img, drawid=id)
> File "/home/geni/usr/grass/grass-trunk/dist.i686-pc-linux-
> gnu/etc/wxpython/gui_modules/mapdisp_window.py", line 264,
> in Draw
> pdc.SetBackground(bg)
> File "/home/geni/usr/grass/grass-trunk/dist.i686-pc-linux-
> gnu/etc/wxpython/vdigit/grass7_wxvdigit.py", line 374, in
> SetBackground
> def SetBackground(self, *args): return
> _grass7_wxvdigit.PseudoDC_SetBackground(self, *args)
> TypeError
> :
> in method 'PseudoDC_SetBackground', argument 2 of type
> 'wxBrush const &'
> ----------------
> I took a closer look at the code of _wrap_PseudoDC_DrawToDCClipped
> (grass7_wxvdigit_wrap.cpp) and SWIG_IsOK, and SWIG_ConvertPtr
> (swig-1.3.38/Lib/python/pyrun.swg).
> To get the above error (i.e., !SWIG_IsOK(res2)),
> SWIG_ConvertPtr(obj1,
> SWIG_as_voidptrptr(&arg2), 0, 0) or
> SWIG_Python_ConvertPtrAndOwn(obj1,
> SWIG_as_voidptrptr(&arg2), 0, 0) should return a negative integer.
> What
> happens in SWIG_Python_ConvertPtrAndOwn is that it returns
> SWIG_ERROR
> (-1) when (obj1 is NULL) or (SWIG_Python_GetSwigThis(obj1) is NULL
> and flags (the last argument, 0) is 0).
> This error starts from self.pdc.DrawToDCClipped(dc, rgn) in
> mapdisp_window.py, and obj1 is dc in this call. Is dc NULL? No, it
> isn't. "print dc" displays "<wx._gdi.BufferedPaintDC; proxy of
> <Swig
> Object of type 'wxBufferedPaintDC *' at 0x9427940> >". Then, did
> SWIG_Python_GetSwigThis return NULL? Probably...
> This error occurs even before calling gwxPseudoDC_DrawToDCClipped,
> so I
> think just chaning the prototype of DrawToDCClipped in pseudodc.i as
> in
> revision 36252 cannot solve this problem (and, actually, it didn't).
> Could it be my wxWidget configure flags? --enable-unicode
> --enable-sound --enable-graphics_ctx --with-sdl --with-opengl
> Any ideas?
> Thanks.
> Huidae
>
> I updated last night and am having no problems like this with 6.5 or 7
> (on Mac OS X).
>
> Michael
>
> References
>
> 1. mailto:grass-dev-request at lists.osgeo.org
> 2. mailto:grass4u at gmail.com
> 3. mailto:grass-dev at lists.osgeo.org
> 4. mailto:grass-user at lists.osgeo.org
> 5. mailto:landa.martin at gmail.com
> _______________________________________________
> grass-dev mailing list
> grass-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-dev
More information about the grass-user
mailing list