pygame-community / pygame-ce

🐍🎮 pygame - Community Edition is a FOSS Python library for multimedia applications (like games). Built on top of the excellent SDL library.
https://pyga.me
767 stars 120 forks source link

Add pygame.transform.bloom function #2872

Open damusss opened 1 month ago

damusss commented 1 month ago

I implemented the bloom algorithm to add it to pygame.transform. I also added documentation and stubs.

I think this is the best implementation. This is the steps, if someone needs them to review:

Please tell me if there are any C improvements, structure improvements or performance improvements.

robertpfeiffer commented 1 month ago

I see no reason not to merge this, but I think this might be more flexible as three separate operations: Threshold, blur, and blit. At least, I think this could be more useful as a function that computes the bloom overlay with a black or transparent background.

damusss commented 1 month ago

I see no reason not to merge this, but I think this might be more flexible as three separate operations: Threshold, blur, and blit. At least, I think this could be more useful as a function that computes the bloom overlay with a black or transparent background.

Maybe it would be more flexible but not more performant as the blit is implemented within the blur using only 2 loops. I'd like for @itzpr3d4t0r to have a word about what you mentioned. I can always modify it as requested.

damusss commented 1 month ago

To add to what I just said, what i think would be best is to keep bloom as a function and maybe add the luminance filter as another function that can reuse the same code this pull request is using.