DirectDraw deaktivieren, aber noch Direct3D verwenden?

1894
GodsBoss

Ich habe einen Windows XP SP3-Computer mit aktuellen Patches. Es hat DirectX 9.0c, Versionsnummer 4.09.00.0904.

Kann ich DirectDraw deaktivieren, aber Direct3D noch aktiv sein?

Ich habe die Wikipedia-Artikel über DirectDraw und Direct3D gelesen, weiß aber nicht, ob ich sie richtig verstehe:

Das heißt, es enthält viele Befehle für das 3D-Rendering. Seit Version 8 hat Direct3D jedoch das alte DirectDraw-Framework ersetzt und auch das Rendering von 2D-Grafiken übernommen.

Bedeutet das, dass DirectDraw jetzt Teil von Direct3D ist? Ich kann DirectDraw nicht deaktivieren, ohne Direct3D zu deaktivieren, aber es funktioniert andersherum.

2
DirectDraw ist in Direct3D9 nicht vorhanden. Wie kamen Sie auf die Idee, DirectDraw zu deaktivieren? Der Hochstapler vor 12 Jahren 3
Ich untersuche Optionen gegen [Absturz von AoE II beim Klicken auf Chat oder Diplomatie] (http://www.neoseeker.com/forums/2359/t1367195-crash-clicking-chat-diplomacy/). Mit dxdiag.exe kann ich "DirectDraw", "Direct3D" und "AGP-Beschleunigung" deaktivieren (der letzte Punkt ist mir nicht sicher). Es ist jedoch keine Option, es jedes Mal zu deaktivieren, wenn das Spiel gespielt wird, es sei denn, es wird programmgesteuert gemacht, aber ich versuche, meinen Hass gegen die Win32-Programmierung erneut zu durchdringen. GodsBoss vor 12 Jahren 0

2 Antworten auf die Frage

3
Synetech

Die Wikipedia-Seite für DirectDraw (und die anderen DirectX-Komponenten) macht die Situation ziemlich klar. Aber ich werde die relevanten Bits zusammenfassen und trösten (natürlich umformulieren):


1: 1 Zuerst gab es nur Dunkelheit und grafisches Chaos. 1: 2 Eines Tages sagte Microsoft, dass es ein einziges, konsistentes grafisches Rahmenwerk gibt und DirectDraw erstellt hat, und das gab es, und es war gut. 1: 3 Microsoft sagte, er solle im Garten der Hardware herumtollen und viele schöne 2D-Bilder erstellen. 1: 4 DirectDraw und es war auch gut.

2: 1 Eines Tages kam die Schlange des Ehrgeizes zu DirectDraw und erzählte von wundersamen 3D-Bildern. 2: 2 Die Schlange überzeugte DirectDraw davon, dass sie 3D-Bilder erzeugen kann, indem sie die Früchte des Wissensbaums isst. Deshalb aß DirectDraw die Früchte und versuchte, 3D-Bilder zu erstellen.

3: 1 Als Microsoft erkannte, dass DirectDraw einsam war und zu hart an der Erstellung von 3D-Grafiken arbeitete, erbarmte sich dies und erstellte Direct3D mit Teilen von DirectDraw. 3: 2 DirectDraw und Direct3D lebten eine Zeit lang glücklich miteinander.

4: 1 DirectDraw und Direct3D begannen mit Hilfe ihrer Nachbarn DirectX. 4: 2 DirectX war ein bescheidenes Kind, aber voller Potential. 4: 3 DirectX war auch ein eifersüchtiges Kind, das seinen Bruder OpenGL zerstören wollte, der nur in den prächtigen Burgen von Mainframe lebte.

5: 1 DirectX 1 wurde von DirectX 2 und DirectX 2a entwickelt, die im Gegensatz zu DirectX 1 und 2 zur Stadt Windows gehörten. DirectX 2a entwickelte sich für vier und zwei Generationen und vervielfachte sich, wodurch Rahmenbedingungen geschaffen wurden, in denen Schönheit und Spiele aufblühten.

6: 1 Zum Zeitpunkt von DirectX 6, Sohn von DirectX 5, war die DirectX-Familie langsam und fett geworden und schwer zu handhaben.

7: 1 Die Bevölkerung des Landes beklagte sich über die Inzucht von DirectX 7. 7: 2 Die inzestuöse Überschneidung der Funktionen von DirectDraw und Direct3D war ihnen nicht gefallen. 7: 3 Als Microsoft die Korruption seiner Kreationen sah, ordnete er an, dass es nur ein Framework gibt. 7: 4 Um DirectDraw von den Sünden des Neides, des Stolzes und der Völlerei zu reinigen, schickte ER eine mächtige Entwicklungsflut sowie objektorientiertes Feuer und Schwefel und eine Säule aus kryptografischem Salz in die Stadt DirectDraw.

8: 1 Bei DirectX 8 ließ HE DirectDraw hinter sich und begann mit Direct3D neu zu beginnen, der überlebt hatte, weil er Anweisungen befolgt hatte und nicht zurückblickte, als DirectDraw offiziell starb. 8: 2 Direct3D beklagte sich nicht über den Verlust seines geliebten DirectDraw, und als Microsoft diese Treue sah, gab Microsoft ihm einen neuen und noch besseren Partner. 8: 3 HE übernahm die noch immer reinen 2D-Funktionen von DirectDraw und erstellte DirectX Graphics, damit Direct3D glücklich und voll funktionsfähig sein kann.

DirectX 8, Sohn von Direct3D und DirectX Graphics (und deren Nachbarn), zeugte DirectX 9, was ein gutes Kind war. 9: 2 DirectX 9 lebte viele, viele Jahre länger als jeder andere. 9: 3 Es hat viele wundersame Dinge vollbracht und seine Vorfahren stolz gemacht. 9: 4 Die Dorfbewohner von XP, wo DirectX 9 jetzt lebte, verehrten zwar Microsoft, begannen aber auch, Götzen von goldenen Pinguinen anzubeten und aßen von den verbotenen Äpfeln. 9: 5 Dies machte Microsoft wütend und er verbannte das Dorf von XP. 9: 6 Er verließ die lange und graubärtige DirectX 9 in XP und gründete mit dem stolzen neuen Kind DirectX 10 die Stadt Vista. 9: 7 In der Stadt Vista mussten viele Menschen ihre Häuser aufrüsten, um den hohen Preis zu zahlen Steuern von DirectX 10.

10: 1 Später entwickelte DirectX 10 Direct2D, was DirectDraw ++ ähnelte, und es war so lala. 10: 2 Es war ein stolzes und forderndes Kind, nicht mit guten Häusern wie XP zufrieden, sondern bestand darauf, innerhalb des Königreichs von Windows 7 zu leben. 10: 3 Es war auch ein gieriges Kind, das den Bedarf an viel Grafikkarte erklärte. obwohl es wirklich nur ein kleines 2D-Framework war. 10: 4 Die Leute beschwerten sich und Microsoft stellte es den Bürgern von Vista zur Verfügung. 10: 5 Die XP-Leute, die immer noch in kleinen Hütten lebten, waren nicht zufrieden damit, dass sie Vista einnahmen und eroberten, wo sie DirectX 10 in XP plünderten, plünderten und entführten. 10: 6 DirectX 10 beugte sich schließlich vor dem Willen der Menschen und lernte, mit XP zu leben und zu arbeiten, aber niemals mit vollem Herzen.

11: 1 DirectX 10 wurde zu DirectX 11, aber diesmal konnten die Leute es nicht in ihr Dorf XP entführen. 11: 2 Sie sahen, dass viele der neuen Ritter, Soldaten, Zerg und anderer ausländischer Adliger die Anwesenheit von König DirectX 11 oder Königin DirectX 11 verlangten, und so stimmten sie zu und legten entweder zu, was sie hatten, oder legten die Vielzahl von Steuern dafür ab dass die Größe von DirectX 10 und 11 darauf zu sehen ist.

12: 17: 12: 6: 2 Ganz in der Nähe des Randes der Welt, in der Meeresbewohner, Drachen und Lamas Angst auslösen, wurde ein großartiger und uralter Kalender des Maya-Königreichs entdeckt, in dem das Ende der Welt lag vorhergesagt ( nicht wirklich, aber lassen Sie uns nur so tun)

13: 0: 0: 0: 0 Als der Gott von Microsoft den Götzendienst und die Bestechung in der Welt sah, sandte er vier große Sonneneruptionen in Weiß, Rot, Schwarz und Bleich auf die Welt und zerstörte die gesamte Elektronik. Nur die Astronauten, die auf der Arche entrückt wurden, überlebten, während der Rest der Welt für sieben, sieben Jahre in Chaos und Aufruhr geriet.


Wenn Sie also nicht DirectX 7 oder eine niedrigere Version (was Sie nicht sind) verwenden, können Sie nicht nur DirectDraw (insgesamt) deaktivieren, da es nicht mehr als eigenständiges Framework vorhanden ist. Sie können stattdessen nur die DirectDraw-Funktionen von DirectX aus deaktivieren.

Dies kann sich natürlich auf Direct3D auswirken oder auch nicht, da einige 3D-Funktionen auf 2D-Funktionen angewiesen sind (ah, uni comp.graphics-Kurse, wie interessant waren Sie…).

Ich kann nicht kategorisch sprechen, aber aufgrund anderer ähnlicher Szenarien und der Geschichte von Microsoft bezweifle ich sehr, dass sie so konzipiert wurden, dass Teile des Frameworks ein- oder ausgeschaltet werden können. Es ist ziemlich garantiert, eine Alles-oder-Nichts-Angelegenheit zu sein. Das heißt, wenn Sie DirectDraw deaktivieren, fällt auch Direct3D aus, weil es erstellt wurde und auf 2D basiert. Wenn Sie 3D deaktivieren, funktioniert 2D weiterhin, da für die 2D-Arbeit keine 3D-Berechnungen erforderlich sind.


Trotzdem deaktivieren Sie weder DirectDraw noch Direct3D. Die Schaltflächen, auf die Sie sich beziehen (unten), deaktivieren die Frameworks nicht, sie deaktivieren nur die Hardwarebeschleunigung . Die Funktionen sind noch vorhanden und für die Software verfügbar; Sie laufen nur viel langsamer, weil sie über die CPU / RAM statt über die GPU / VRAM ausgeführt werden.

Wenn das Deaktivieren der Beschleunigung das Problem behebt, liegt dies daran, dass die Software alt ist und nicht mit neuerer Hardware / Treiber kompatibel ist. Möglicherweise müssen Sie einen Kompromiss eingehen, indem Sie die Unannehmlichkeit akzeptieren, die Beschleunigung ein- oder auszuschalten, bevor Sie das Spiel laufen lassen (oder einfach nur ohne Beschleunigung).

DXDiag DirectX acceleration

Beeindruckend! Vielen Dank, besonders für diesen biblischen Teil. Ich werde dann eine der Alternativen nehmen. GodsBoss vor 12 Jahren 0
Wenn Ihre Grafikkarte noch vom Hersteller unterstützt wird, können Sie versuchen, einen Fehlerbericht zu veröffentlichen, in der Hoffnung, dass sie das Problem mit einer zukünftigen Treiberversion beheben. Synetech vor 12 Jahren 0
2
Der Hochstapler

Angesichts der Tatsache, dass DirectDraw jetzt in Direct3D implementiert ist, wäre dies jetzt eine Untergruppe von Direct3D.

Wenn Sie also die DirectDraw-Schnittstelle in Ihrer Direct3D-Laufzeitumgebung deaktivieren, sollten Ihre anderen Direct3D-Rendering-Funktionen nicht beeinträchtigt werden.

Um ein wenig technisch zu werden, könnte ich mir vorstellen, dass durch das Deaktivieren von DirectDraw alle Versuche, eine IDirectDraw7- Instanz abzurufen, fehlschlagen. Versuche, eine IDirect3D9- Instanz abzurufen, funktionieren weiterhin einwandfrei .

Warum habe ich nicht daran gedacht? Ich werde es versuchen und testen, ob ich Instanzen in einem kleinen Testprogramm erstellen kann. Danke vielmals! GodsBoss vor 12 Jahren 0