Welchen Typ hat D3DDevice in deinem Hauptprogramm?
Warum castest du D3DDevice in einen Pointer, bevor du es der Render-Methode übergibst?
Ein D3DDevice kann man doch nur als Zeiger (oder als Zeiger auf einen Zeiger) haben, das liegt ja in der Natur von
COM. Möglicherweise macht Delphi hier etwas anders als ich es gewohnt bin
Vielleicht anstelle des Casts einfach mal den Adressoperator benutzen (also @D3DDevice an die Render-Methode übergeben)?
Überprüfe doch einfach mal im Debugger, ob der richtige Zeiger in der Render-Methode angekommen ist, wenn nein, ist hier tatsächlich der Fehler zu suchen. Anders gefragt, muss man
COM-Objekte in Delphi eigentlich überhaupt explizit als Zeiger übergeben?