Let HUD use square pixels without ignoring scale

Mon Aug 23, 2021 12:44 pm

Being able to define a HUD that always uses square pixels but does NOT ignore scaling options doesn't seem like a crazy idea. But currently it's basically impossible. If you use BeginHUD with forcescaled, it'll ignore both aspect ratio and scale.

I've been using hacky workarounds, such as having a wrapper for DrawImage that multiplies scale.y by 0.83333 when hud_aspectscale CVAR is true, but we can agree that's a little silly. Besides, this method doesn't work everywhere: for example, DrawRotatedImage completely ignores the Y part of its scale argument, meaning rotated images will always be stretched when hud_aspectscale is true.

Y-stretching is annoying, and I'd really like an easy option to get rid of it without robbing the player of an ability to change the size of their HUD. I imagine this could be a new argument in BeginHUD.