C
Um das vielleicht nochmal deutlicher zu fassen. Man könnte stark vereinfacht und mit beschränkung der Allgemeinheit sagen das ne Engine eine Schnittstelle ist die den OpenGL/Direct3D Zugriff kapselt.
Allgemein und auch im Speziellen ist eine Engine natürlich noch viel mehr.
Mit Direct3D und OpenGL kannst du zum Beispiel deine Linie zeichnen (meistens wirst du Polygone rendern etc... ausserdem jede Menge Funktionalität was die Zusammenarbeit mit der GK angeht (Shader, Buffer, Texturen etc...)
Eine GrafikEngine (worauf du warscheinlich hinaus willst würde jetzt in diesem simplen Beispiel z.B. einen Dateiloader für Bestimmte Bildformate (bmp, jpg, etc..) bereitstellen und vielleicht bestimmte Scenegraphen und Funktionalität um Modelle zu laden, sie zu animieren, vielleicht Kollisionsüberprüfung implementieren. Das ganze intern hübsch in eine Datenstruktur verpackt damit sie die Berechnungen auch schnell ausführen kann.
Das wäre der simple View auf eine Engine.
In richtigen Engines gehört dann natürlich noch einiges mehr hinzu wie ScriptingSysteme, ModulImport, gutes ThreadHandling für MultiCoreProzessoren etc... All sowas kann in eine Engine mit rein.
Ziel ist es das jemand anders (oder auch die selbe Firma/Person) damit effizienter ein/mehrere Spiele entwickeln kann ohne sich um dies alles zu kümmern.
Hoffe das drückt das ganze etwas klarer aus.