If you haven't already, start with any tutorial on surfaces as explaining the small details would be difficult. (there's a bit of stuff that needs to be done to make sure surfaces don't break/cause memory leaks).
Essentially I made my own surface that is the exact pixel width and height that I want (this would be the actual screen size NOT the pixels of the art ex, 1920 is my screen width vs visible pixels are 192).
We'll call it my_surf.
I draw the entire application surface (stretched) to my_surf and any GUI stuff is drawn after that again to my_surf.
finally, where the application surface is drawn normally in BJORTFX's GUI draw, I instead draw my_surf (stretched).