diff --git a/src/gamestates/overworld.py b/src/gamestates/overworld.py index 3aae803..49775db 100644 --- a/src/gamestates/overworld.py +++ b/src/gamestates/overworld.py @@ -92,14 +92,13 @@ def update(game, dt): btrans_timer += dt if btrans_timer >= BTRANS_DURATION: - game.mos_enabled = False + game.mosaic = 1 btrans_active = False btrans_sound.stop() gamestate.switch_gamestate(game, "battle") - game.mos_enabled = True cycle_progress = (btrans_timer % BTRANS_PULSE_DUR) / BTRANS_PULSE_DUR - game.mosaic = max(1, math.floor(cycle_progress * 16)) + game.mosaic = max(1, math.floor(cycle_progress * 8)) return balthasar.update() diff --git a/src/main.py b/src/main.py index f9d5ac2..8a4149a 100644 --- a/src/main.py +++ b/src/main.py @@ -21,7 +21,6 @@ class Game(arcade.Window): self.screen_width = SCREEN_WIDTH self.screen_height = SCREEN_HEIGHT self.mosaic = 1 - self.mos_enabled = False self.game_texture = self.ctx.texture( (SCREEN_WIDTH, SCREEN_HEIGHT), @@ -76,8 +75,9 @@ class Game(arcade.Window): y, scaled_width, scaled_height, - self.mosaic, - self.mos_enabled + SCREEN_WIDTH, + SCREEN_HEIGHT, + self.mosaic ) game = Game() diff --git a/src/renderers.py b/src/renderers.py index ba3be06..5e89457 100644 --- a/src/renderers.py +++ b/src/renderers.py @@ -34,13 +34,13 @@ class TextureRenderer: """, fragment_shader=""" #version 330 - #define INV_RESOLUTION_X (1. / bounds.z) - #define INV_RESOLUTION_Y (1. / bounds.w) + #define INV_RESOLUTION_X (1. / orig_size.x) + #define INV_RESOLUTION_Y (1. / orig_size.y) uniform vec4 bounds; + uniform vec2 orig_size; uniform sampler2D tex; uniform float mosaic; - uniform bool mos_enabled; in vec2 uv; out vec4 color; @@ -51,19 +51,20 @@ class TextureRenderer: (floor((uv.y / INV_RESOLUTION_Y) / mosaic) * INV_RESOLUTION_Y) * mosaic ); - color = texture(tex, mos_enabled ? new_uv : uv); + color = texture(tex, new_uv); } """, ) self.quad = arcade.gl.geometry.quad_2d_fs() - def render(self, texture, x, y, width, height, mosaic, mos_enabled): + def render(self, texture, x, y, width, height, orig_width, orig_height, mosaic): self.program["screen_size"] = (self.ctx.screen.width, self.ctx.screen.height) + self.program["orig_size"] = (orig_width, + orig_height) self.program["bounds"] = (x, y, width, height) self.program["mosaic"] = mosaic - self.program["mos_enabled"] = mos_enabled texture.use(0) self.program["tex"] = 0