I'm pretty new to XNA and am making a 2D RPG and I have a quick question regarding drawing in XNA.
Currently, I have a large background texture, so I would rather not re-draw the entire background every frame. I have multiple sprites I update and process and draw. I understand the GPU culls offscreen pixels, however to achieve even higher optimization for sprites I check if the sprites texture bound is inside my camera view (using the view transform matrix) bounding frustum. If the sprite is not inside the view bounding frustum I do not even make a call to draw the sprite.
However for the large background, I check if the background is currently in view, if it is I use source atlasing to determine the top left coordinate of the background I will be using, and only draw that section of the background (size of the screen).
I feel like my way of avoiding drawing the background is pretty hack because I have to constantly calculate the new origin position within my background, and see if I will be drawing the entire section of the background or a piece of it ( for edge cases of the background).
Is there a better way of avoiding drawing the large texture every frame besides the one I gave? Do these optimizations even matter in XNA?
Thanks for any help!