p5py / p5

p5 is a Python package based on the core ideas of Processing.
https://p5.readthedocs.io
GNU General Public License v3.0
736 stars 120 forks source link

Program crashes upon resizing window to 0 #473

Open PsychoticTomato opened 1 month ago

PsychoticTomato commented 1 month ago

Describe the bug When resizing the p5 program window to a state where either the height or the width are zero, the program crashes with a ZeroDivisionError.

To Reproduce This is my code:

import p5

class DrawSquare():
    def __init__(self):
        p5.size(600, 600)
        p5.no_stroke()
        p5.background(204)

if __name__ == '__main__':
    p5.run(renderer="vispy")
    square = DrawSquare()

Expected behavior The program keeps running for a second with the window turning black, then crashes.

Screenshots image

System information:

github-actions[bot] commented 1 month ago

Thank you for submitting your first issue to p5py

tushar5526 commented 1 month ago

I am curious to know the use case behind setting height or width to 0.

PsychoticTomato commented 1 month ago

It's not a use case, it's a normal occurence when manually resizing the window with your cursor. Try resizing it in a way that minimizes one of the axes and the program crashes. Seems to happen because some of the screen update functions divide length by width or width by length. Having a minimum number of pixels for height/width would solve the issue.