I've spent the few hours or so investigating SDL Hardware/Acceleration related stuff. I would like to share what I have learned, and also point out a mistake in this article.
The mistake is this line:
if (0 == screen->flags & SDL_HWSURFACE)
Because of operator precedence, this will do the exact opposite of what the author wanted. If hardlines.cpp works on your machine, it is because you do not have hardware surfaces enabled. The line should read as follows:
if (!(screen->flags & SDL_HWSURFACE)
Also, I discovered that linux nvidia drivers (proprietary and w/ 3d accel) do not support dga. Sure would have been nice if that were mentioned here. In fact, I got a lot of misinformation in my searching, because, apparently, dga used to be supported by nvidia. It has not been for some time. I think, but am not sure, that the open source nv driver supports dga.