[Sugar-devel] PyGame can be run only once assertion error
James Cameron
quozl at laptop.org
Mon Sep 30 17:50:52 EDT 2013
On Mon, Sep 30, 2013 at 04:24:52PM -0300, Manuel Quiñones wrote:
> 2013/9/30 Alan Jhonn Aguiar Schwyn <alanjas at hotmail.com>:
> > Good job!
> >
> > I have one question about other thing:
> >
> > Check this request:
> >
> > http://git.sugarlabs.org/sugargame/mainline/merge_requests/1#db3f934e9aea80f9effc98ba68516d69e7856a81-db3f934e9aea80f9effc98ba68516d69e7856a81
>
> Looks good, I will rebase it (we use GTK3 now) and push.
>
> > That fixes something? Because sometimes I get in the activities log
> > something like this:
> >
> > The error was 'BadDrawable (invalid Pixmap or Window parameter)'.
> > (Details: serial 953 error_code 9 request_code 130 minor_code 3)
> > (Note to programmers: normally, X errors are reported asynchronously;
> > that is, you will receive the error a while after causing it.
> > To debug your program, run it with the --sync command line
> > option to change this behavior. You can then get a meaningful
> > backtrace from your debugger if you break on the gdk_x_error() function.)
>
> I don't think that this error is a consequence of not connecting the
> visibility_notify_event or screen-changed event. Looks more a
> consequence of embedding the PyGame display in a GTK window, which
> according to the PyGame documentation has side effects:
>
> http://www.pygame.org/docs/ref/display.html#pygame.display.init
>
> "Be aware that there can be many strange side effects when running in
> an embedded display."
Hmm, I doubt this error would be part of what they are talking about
there.
The error means that the X server has received a request to draw, but
the request mentions a Pixmap or Window parameter that the X server
doesn't know about. It almost always means a programming error of
some sort, by the program sending the X requests; which in this case
will be either SDL or GTK.
Not finding the cause of this error could lead to problems later on.
I would first check to see exactly when the error appears in the
activity log (using tail --follow).
Then I would discover if the error occurs when the Pygame program is
run without sugargames.
Then I would remove actions that cause drawing until the error stops,
in order to learn what action is causing the error.
I speculate that the error might be part of the activity quit
sequence, which may need refining.
--
James Cameron
http://quozl.linux.org.au/
More information about the Sugar-devel
mailing list