Shawn Hargreaves:
Jesse:
Do you think I could change the UV settings to fill with TransparentBlack where the range is outside 0.0 - 1.0 and then just draw the texture a pixel outside the texture and a pixel bigger?
Not directly. You could emulate such a thing in your pixel shader, but it would be a pretty complex calculation.
It seems like this should work:
device.SamplerStates[0].AddressU = TextureAddressMode.Border;
device.SamplerStates[0].AddressV = TextureAddressMode.Border;
device.SamplerStates[0].BorderColor = Color.TransparentBlack;
and then when using SpriteBatch.Draw pass it a source rectangle of Rectangle(-1, -1, width + 2, height + 2). I tried it, but for some reason it looks like it was still using TextureAddressMode.Clamp. So I was wondering if it was a flaw in the concept or my implementation.