Servus,
mal ganz grob ins blaue gefragt: Muß man bei der Verwendung der neuen PB-Version irgendetwas beachten, bezogen auf DirectX 7/9?
Ich habe gerade versucht ein altes Projekt von mir mit der neuesten PB-Version zu kompilieren. Allerdings läuft diese Version nicht richtig, es werden fast keine Grafiken angezeigt (im Moment nur die 2D-Drawing-Sachen, aber keine Sprites). Erst wenn ich als Subsystem DirectX 7 angebe, funktioniert es wie gehabt.
Mit einem anderen Projekt habe ich es daraufhin auch probiert, da lief das ganze schon besser.
Ich weiß daß meine Ausführungen etwas dürftig sind, und Code kann ich auch keinen posten (der ist grottenschlecht, extrem umfangreich und ich verstehe ihn selbst nicht mehr richtig) - daher frage ich einfach nur, ob jemandem vielleicht ganz spontan irgendwas einfällt? Ansonsten muß ich halt Stück für Stück den Code isolieren und schauen, wo das Problem liegt...
DirectX 7 und DirectX 9
DirectX 7 und DirectX 9

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Re: DirectX 7 und DirectX 9
In der Tat gibt es eine menge Unterschiede zwischen DX7 und DX9 bezogen auf die PB-Befehle und Versionen.
Zum einen geht UseBuffer() nur unter DX7.
Zum anderen unterscheiden sich die Auswirkungen von Sprite3DBlendingMode() unter DX7 und DX9
Unter DX9 sind die Drawing-Befehle "irgendwie" langsammer (zumindest meine Erfahrung)
Unter DX7 Subsystem geht SpriteOutput() nicht mehr.
Fazit:
In den neuen Versionen würde ich auf SubSystem DX7 verzichten, dort gibt es inzwischen zu viele Bugs.
Dort würde ich nur noch DX9 benutzten.
Alte Projekte solltest du auch mal alten PB-Versionen kompilieren, wo DX7 noch Default war.
So meine Erfahrungen.
Zum einen geht UseBuffer() nur unter DX7.
Zum anderen unterscheiden sich die Auswirkungen von Sprite3DBlendingMode() unter DX7 und DX9
Unter DX9 sind die Drawing-Befehle "irgendwie" langsammer (zumindest meine Erfahrung)
Unter DX7 Subsystem geht SpriteOutput() nicht mehr.
Fazit:
In den neuen Versionen würde ich auf SubSystem DX7 verzichten, dort gibt es inzwischen zu viele Bugs.
Dort würde ich nur noch DX9 benutzten.
Alte Projekte solltest du auch mal alten PB-Versionen kompilieren, wo DX7 noch Default war.
So meine Erfahrungen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: DirectX 7 und DirectX 9
Ahh okay, dann kann ich mir schon ungefähr vorstellen woran es liegen könnte...
Naja der Vorteil bei DX9 wäre, daß es auch mit meiner Laptop-Grafikkarte auf Win XP läuft... die DX7-Version kackt dort immer ab (mit Bluescreen!), läuft also nur unter Win7. Die DX9-Version lief jedoch auch unter XP (nur halt mit entsprechenden Fehlern)
Naja der Vorteil bei DX9 wäre, daß es auch mit meiner Laptop-Grafikkarte auf Win XP läuft... die DX7-Version kackt dort immer ab (mit Bluescreen!), läuft also nur unter Win7. Die DX9-Version lief jedoch auch unter XP (nur halt mit entsprechenden Fehlern)

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Re: DirectX 7 und DirectX 9
Okay ich hab mir das jetzt nochmal angeschaut. Liegt tatsächlich an der Verwendung von UseBuffer (was im anderen Projekt nicht vorkam, obwohl ich eigentlich dachte, das wäre dort auch vorhanden).
Gibt es denn einen Ersatz, den man verwenden kann? Ich möchte halt in eine Textur schreiben können, um diese dann per Sprite3D anzuzeigen. Aber DirectX9 würde ich schon ganz gerne verwenden...
Gibt es denn einen Ersatz, den man verwenden kann? Ich möchte halt in eine Textur schreiben können, um diese dann per Sprite3D anzuzeigen. Aber DirectX9 würde ich schon ganz gerne verwenden...
Das hab ich grad in der Hilfe gefunden... bei mir lief die DX7-Version aber unter Win7 64bit... gilt obiges nur für Vista? Oder wie muß man das deuten...PB Hilfe hat geschrieben:Es sind zwei alternative Subsysteme auf Windows verfügbar: 'OpenGL' und 'DirectX7', welche nützlich für bessere Kompatibilität mit älteren Windows-Versionen sein können. Hinweis: DirectX7 wird auf der 64 Bit Edition von Windows nicht unterstützt.

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Re: DirectX 7 und DirectX 9
Ich denke mal, es ist der 64-Bit-Compiler gemeint, nicht Windows in 64 Bit. Ich kann zumindest hier definitiv alte 32Bit-Programme, die D7 nutzen starten.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: DirectX 7 und DirectX 9
wenn die Textur nicht größer als der Screen ist kannst du GrabSprite() verwenden.ZeHa hat geschrieben:Okay ich hab mir das jetzt nochmal angeschaut. Liegt tatsächlich an der Verwendung von UseBuffer (was im anderen Projekt nicht vorkam, obwohl ich eigentlich dachte, das wäre dort auch vorhanden).
Gibt es denn einen Ersatz, den man verwenden kann? Ich möchte halt in eine Textur schreiben können, um diese dann per Sprite3D anzuzeigen. Aber DirectX9 würde ich schon ganz gerne verwenden...
Re: DirectX 7 und DirectX 9
Und zeichnen mit SpriteOutput(). UseBuffer war doch zum kompletten rendernKevin hat geschrieben:wenn die Textur nicht größer als der Screen ist kannst du GrabSprite() verwenden.
in einen anderen Buffer da, aber nur zum zeichnen sollte doch SpriteOutput
reichen.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: DirectX 7 und DirectX 9
Ich weiß nicht ob du damals schon wieder da warst: ZeHa hat mal ein paar Experimente mit dem automatischen Vergrößern von Bildschirmdarstellungen gemacht, damit es immer noch pixelig aussieht und nicht weichgezeichnet wird. Er hat damals die Szene glaube ich direkt in ein Sprite3D gerendert und dieses dann auf die Bildschirmgröße gebracht (mit Beachtung vom Seitenverhältnis). Deshalb geht es ihm wohl um UseBuffer und nicht um SpriteOutput.Danilo hat geschrieben:Und zeichnen mit SpriteOutput(). UseBuffer war doch zum kompletten rendernKevin hat geschrieben:wenn die Textur nicht größer als der Screen ist kannst du GrabSprite() verwenden.
in einen anderen Buffer da, aber nur zum zeichnen sollte doch SpriteOutput
reichen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.