Yes, I did consider that - I guess it should be quite easy: just take the fractional part of (bgPixelCoord.xy * INV_BG_TEXTURE_SIZE) when sampling the background.
The only awkward bit is getting the texture size. I couldn’t find a way to determine this programmatically, so you’d need hard-coded values that you’d have to change whenever you wanted to try a different background. If I make all the images fixed-sized in advance, I don’t have to worry about this.
If you can come up with a better way of handling this stuff, I would be grateful!
As an aside, how does the external texture vertex coordinate work in the GLSL shader? I determined via brief experimentation that you have to scale TEX0 by ((OutputSize / InputSize) * 256) to get 1:1 pixel mapping on the screen, but I have no idea why… In the SLANG version, it is far more rational…