Hallo,
mit der Abstraktionsebene meine ich das schon so ähnlich. Jedoch solltest du nicht jede einzelne Funktion getrennt kapseln, sondern immer funktionelle Gruppen: Code zur Schnittstellen Initialisierung, Code zum zeichnen von Vertices, Code zum setzen einer Lichtquelle, etc.
Mit "Interface" meinte ich (mehr oder weniger) wirklich den Interface-Abschnitt deiner 2D-Engine-Units. Du musst dir (bevor du anfängst zu Programmieren) überlegen was du später von deiner Engine erwartest und dementsprechend Klassen/Prozeduren schreiben.
Achja, das Buch beschäftigt sich nicht mit dem Programmieren einer 2D-Engine sondern nur mit der allgemeinen Verwendung von
DirectX (Direct3D/DirectInput/DirectSound).