• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

GameMaker Redrawing Application Surface causes Lag upon Resizing Window

The game I'm currently developing requires a camera system where the graphics never scale up, and resizing the window increases the amount of the room you can see instead of the size of the graphics [it's a top-down single-player puzzle game, justifying this sort of camera]. I have already made a functional system for this, the cornerstone of which is disabling the default application surface and drawing a new one in the Post-Draw event with fixed scaling. This system functions just fine, but there is one problem: whenever I resize the window [by dragging the sides or by hitting full-screen], or whenever I load into a new room [including the first one], there is a brief moment where the game's graphics are shown stretched and distorted before they properly return to their intended position. Several long, laborious hours of rooting through the system has revealed that the cause of this is my redrawing of the application surface- when I remove this function and let the default surface draw, there is no such graphics "bugout". However, as previously stated, the default application surface does not meet my requirements, as I am custom-drawing the current one to not only have a fixed scale, but to appear centered on the window when the window is larger than the current room. I was hoping that somebody here would be able to explain why this "draw lag" on the application surface occurs, and how I could go about fixing it, either by resolving the "draw lag", or by making the default application surface serve my requirements.

TL;DR: My game's camera system relies on redrawing the application surface, as the original does not serve my needs, but whenever I resize the window or load into a room, there's a brief second where the graphics appear stretched before the redrawn surface "catches up", so to speak. I would like to remove this "catchup" time.
 
Still looking for a solution, to anyone who had any ideas. Even some more information as to why this is happening would be great!

~Pir
 
Top