in my only publicly released game (mino bueno) there's several different "styles" which have a variety of different resolutions (and aspect ratios) and are self-contained backgrounds with their own scripts and sounds. most of them are around 240p, two of them are 1080p. the bulk of the rendering load is just background textures that fill the screen, though some of the fancy ones have several canvas layers with shaders. my thinking is, devices powerful enough to run the shaders can show a 1080p canvas and have at least a 1080p screen (though I do plan to add a half-res option, whether your device needs it or you just want the battery life.) I also have some games that are pixel art, around 240p, but with variable aspect ratios. the DPI stuff doesn't really help that either.slime wrote: ↑Tue Jan 08, 2019 1:26 am So you're hard-coding your render resolution? Documentation about the units of numbers in love.graphics APIs might be a bit lacking right now, and the fact that the dpi scale value is optional instead of required in newCanvas doesn't help this use-case, but that also doesn't seem very flexible in terms of performance across devices. I know some older / low-end phone GPUs really struggle with 1080p.
I don't consider dpiscale=1 to be a hack FWIW, it's the way you set the DPI scale for anything which has a DPI scale (aside from the screen, which is set by the device manufacturer and OS).
my main issue is that DPI scaling is a confusing abstraction you can't disable on one platform for some reason (why is it just android, anyway?)
I think a lot of people are going to make games with no use for the feature and not even know they're making a bunch of canvases that are 12x larger for no reason, and it will only show up on the platform that is affected by it most (where texture drawing alone is hard and battery life matters)
I don't consider just {dpiscale=1} to be a hack, but I do consider redefining a game engine function to work around a specific platform ignoring a configuration flag to be a bit of a hack.