[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Re: BUG: problem with surface clipping region

Yay!  It works as expected with set_clip() with no parameters!

So, there are two possible solutions for this:  fix the behavior of set_clip(None), or change the documentation:

    Surface.set_clip(None): return None
    If None is passed for the rectangle the full Surface will be available for changes.

Thanks a lot, Jason!

On 3/15/07, Jason Massey <jason.massey@xxxxxxxxx> wrote:
I'm still running 1.6 (it's on my machine at work), but when I try to pass in None to set_clip I get segmentation faults.  If I just call s.set_clip() I get the expected results:

<rect(10, 10, 10, 10)>
<rect(10, 10, 10, 10)>
<rect(0, 0, 800, 600)>

So if there's a bug it'd probably be fairly easy to track down. Have you tried just calling the function without any parameters?

On 3/15/07, Diego Essaya <dessaya@xxxxxxxxx> wrote:
So, any hints about this?  Can anyone confirm that this is a bug?  If that is the case, I might find some spare time to try to make a patch (no promises here, I have never read the pygame source code :-).

I'm getting the same odd behavior on both Linux and Windows versions of pygame, using Python 2.4.  Didn't try with 2.5.


On 3/12/07, Diego Essaya <dessaya@xxxxxxxxx> wrote:
I'm having this problem with the Surface.set_clip() method that appears to be a bug:

    import pygame
    print pygame.__version__
    s = pygame.display.set_mode((800, 600))
    r = pygame.Rect(10, 10, 10, 10)
    print s.get_clip()
    r.move_ip(10, 0)
    print s.get_clip()
    print s.get_clip()

This yields the following output:

    <rect(10, 10, 10, 10)>
    <rect(10, 10, 10, 10)>
    <rect(25708, 0, 0, 600)>

After this, the clip region of the display surface is garbled and operations on the surface fail.  Running the script again yields a different garbled value.

I tried modifying the line with set_clip() with:


but this did not solve the problem.

Is this really a bug, or am I doing something wrong?  Also, my apologies if this has been discussed before.