Ano, mame Linear Frame Buffer, zabalme to do COM objektu a s velkou famfarou to "prodavejme" jako DirectDraw (zaklad DirectX) - velkou novinku pro programatory her na Woknech :-)
Přesně tak :-) Potom k tomu ještě přidali detekci a výběr grafických režimů, double a triple buffering a diskutabilni podporu BitBltu a regionů. K tomu jsou pro hodně grafických karet špatně napsané ovladače, například na některých noteboocích "prý" (podle DirectDraw) není podporovaný režim 320x200x256, ale DOSová úloha v tomto režimu bez problémů pracuje.
Ještě, že se dal COM obejít a používat DirectDraw v čistém C-čku (to znamená, že ta objektovost byla pouze "jako").
No, ono to neni celkem pravda. Ten COM model je v pozadi vzdy. Jenom pokud to clovek pise v C/C++ je to jakoby nahrazene makrama. Ale nejhorsi situace je v cistem C, kde si clovek opravdu uzije (a obcas je aj problem sehnat spravne hlavicky :-{
Jasně, ve skutečnosti se volají funkce (metody) pomocí COM. Jde pouze o to, aby se to správně předhodilo kompilátoru C-čka, ten by samozřejmě na objekty řval. Hlavičky obalujících funkcí jsou přímo v hlavičkových souborech od Microsoftu, například v ddraw.h apod. Pomocí #ifdef __cplusplus to tam mají docela dobře oddělený, že ani GCC (MinGW) neřve žádné warningy. Ale je to už dávno, co jsem pracoval v Directech (musel jsem kvůli HW omezením, ale to je delší historie).