2010-12-10 12 views
5

Gestern fand ich Quellcodes für meine Tetris-Spiel entwickelt vor vielen Jahren in C++, Win32 API und DirectDraw 7. Ich versuchte, Lösung ohne Erfolg zu bauen, weil neueste DirectX SDK (June 2010) DDraw.h und DDraw nicht enthält. lib nicht mehr.Ersetzen Legacy-DirectDraw-Code

Gibt es einen empfohlenen Ansatz (hoffentlich mit Beispielen), um Code von DirectDraw auf neuere API zu aktualisieren? Oder sollte ich einfach älteres DirectX SDK installieren?

+0

Sie wurden in das Windows SDK verschoben. –

Antwort

3

Wenn Sie die DirectDraw-Blit-Funktionalität verwenden, ist es eine ziemliche Aufgabe, sie zu portieren. Meiner Meinung nach ist es die beste Option, sie an die GDI zu portieren. Es kann jedoch bedeuten, dass Sie Ihre eigenen Funktionen schreiben.

Wenn Sie es nicht schaffen, dass Sie auf D3D portieren können, wird dies eine ziemliche Aufgabe sein und hängt wirklich davon ab, wie Sie Ihr Rendering durchführen. Wenn all Ihr Rendering mit Blits (und ohne direkten Frame-Buffer-Zugriff) durchgeführt wird, sollte es relativ einfach sein, es nach D3D zu portieren. Es wird Ihnen auch riesige Geschwindigkeitsbooster zur Verfügung stellen.

Das heißt, Sie können nur die DirectDraw-Header (ich glaube, sie sind in der Windows-SDK) und weiterhin DirectDraw verwenden.

+0

Ich habe gerade heruntergeladen und installiert neuesten Windows SDK ddraw.h ist enthalten, aber ddraw.lib ist nicht da. Aber ich markiere deine Antwort, weil du mich in die richtige Richtung weistest. Eigentlich muss ich ddraw.dll direkt verwenden, es ist in dem Link beschrieben, den ich in meiner ersten Frage geschrieben habe. –

+0

Das sind schlechte Nachrichten für mich. Ich habe einen Code, der während der DirectX 6-Ära entwickelt wurde, er verwendet Direct2D/DirectDraw BitBlt. Ich möchte es nicht auf D3D portieren, da es überhaupt kein 3D ist. Wenn Windows SDK die Header hat, sollte die Funktionalität auch irgendwo sein. –

0

Es gibt keine Ddraw-Engine im DirectX SDK (Juni 2010).

Sie sollten ddraw in Windows SDK finden.

Sie können ddraw.h in Windows SDK finden, aber es gibt auch keine ddraw.lib.

wie zu verwenden? Verwenden Sie ddraw.dll.