From 30033e3496da23b505e05fe098b28580105a5fdc Mon Sep 17 00:00:00 2001 From: Martinus2004 Date: Mon, 17 Aug 2026 11:12:29 +0200 Subject: [PATCH] Added per pixel alpha for rendered output The read method simply didn't extract the alpha value from the framebuffer, so the per pixel alpha value was not correctly applied in the rendered surface. --- pygame_shaders/pygame_shaders.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pygame_shaders/pygame_shaders.py b/pygame_shaders/pygame_shaders.py index 8a86da3..5a7eb8e 100644 --- a/pygame_shaders/pygame_shaders.py +++ b/pygame_shaders/pygame_shaders.py @@ -156,7 +156,7 @@ def render(self, update_surface: bool=True) -> pygame.Surface: with self.scope: self.framebuffer.use() self.render_rect.vao.render() - surf = pygame.image.frombuffer(self.framebuffer.read(), self.target_surface.get_size(), "RGB") + surf = pygame.image.frombuffer(self.framebuffer.read(components=4), self.target_surface.get_size(), "RGBA") return pygame.transform.flip(surf, False, True) def to_surface(self, update_surface: bool=True):