Hallo,
ich habe mich an
SelfDXD gehalten, wo vorbildlich alle erzeugten Interfaces am Ende auch wieder nil gesetzt werden (was ein Release für das Interface auslöst). Genau das passiert in meinen Destroy-Methoden. Wenn beim Reference-Counting das
COM-Objekt automatisch frei gegeben wird, hast Du natürlich recht. Allerdings hat man dann keine Kontrolle über den Zeitpunkt. Zudem entwarf ich die
Unit, um den doch recht komplexen Zugriff auf die Interfaces zu vereinfachen. Eine Objekt-Hierachy schien mir da angebracht, zumal meine Objekte auch einiges an eigener (objektorientierter) Funktionalität mitbringen.
Nun, das Thema
COM-Objekte ist für mich noch etwas gräulich, ich hoffe, Dich nicht falsch verstanden zu haben - andernfalls meld Dich nochmal. Es gibt bestimmt noch einiges zu verbessern. Den Vorteil von
DirectX sehe ich (durch erzwungen manuelles Freigeben) nicht gleich zunichte gemacht, den der besteht doch hauptsächlich aus der Hardware-Zugriffsgeschwindigkeit, was durch eine Kapselung doch nicht wirklich beeinträchtigt wird, oder?
Viele Grüße
xor