I'm currently learning the very fundamentals of C++ from the perspective of a game programmer. I use the "Beginning C++ Through Game Programming, Third Edition" book (from Michael Dawson) for this. I like this book very much and it's not so dry like some other books and tutorials I found on the internet. My question is now, what book should I read once I'm done with this one? I noticed that Michael Dawson hasn't wrote a more advanced game programming book which can be used after the one I'm studying now, so I'm looking for some good suggestions.

Another note is that this book only focuses on simple DOS games, so there are no visuals or sound effects whatsoever. I'm not very familiar with it yet, but I understand that OpenGL is an universal code (?) that can be used to incorporate visuals and sound effects in C++ programs, which will be compatible on Windows, Mac and Linux. This is something that, as far as I know, DirectX does not. What would be a good place to start learning about OpenGL or am I going too far ahead of myself and do I first need to focus on something else? I would like some advice.

Thanks in advance!