nabend mal wieder,
na dann will ich mich mal beteiligen. die klassen CVideoRam und CVideoRamManager sind ziemlich sinnlos. in meinen augen sind sie absolut nÃcht OOP und sehen aus als hätte da jemand auf zwang versucht, den videotreiber in klassen zu verpacken. einen vorteil aus dem inline zieht der code auch nicht, sondern macht ihn eher komplizierter. ich finde es außerdem sehr unelegant, dass ich jedesmal, wenn ich was ausgeben will, das objekt CVideoRamManager erzeugen muss, das darüber hinaus den bildschirm jedesmal löscht.
ich schlage deswegen vor den ganzen kram aus den klassen rauszuschmeissen und stattdessen in statischen methoden zu verpacken.
CVideoRam* const g_pVideoRam = (CVideoRam*)0x000B8000;
ist außerdem extra-"pr0nnig". das objekt g_pVideoRam wird nie initialisiert (der konstruktor wird nicht aufgerufen), ich bin nicht sicher ob garantiert ist, dass die daten (genauer gesagt m_woData) immer wie gewünscht an der stelle landen, und das ist mMn nicht compiler- und plattformunabhängig. (jaja, ich weiss was ihr sagen wollt. es geht mir aber ums prinzip.)
ich weiss, es soll später alles im grafikmodus laufen, der code wird also später kaum bis gar nicht benötigt, aber trotzdem entschuldigt das nicht so ein sehr unschönes stück code.
xormore