StartSpecialFX()
Syntax
StartSpecialFX()Beschreibung
PureBasic erlaubt das Ausführen von Echtzeit-Effekten wie Alpha-Blending, Shadow, Color-Filter etc... Deren Darstellung ist sehr CPU-intensiv (auch wenn die Befehle sehr optimiert sind) und muss deshalb zur schnellen Ausführung einen Trick benutzen. StartSpecialFX() erstellt einen Speicherbuffer, worin das gesamte Rendering durchgeführt wird. Das Ergebnis wird zurück in den Video-Speicher kopiert, sobald StopSpecialFX() aufgerufen wird. Dies bedeutet, dass während dieser Periode keine Hardware-Beschleunigung (z.B. Grafikkarten-Chips) benutzt werden kann. Alle Operationen werden durch den Hauptprozessor ausgeführt. Es ist wichtig, dies zu verstehen, da andernfalls die Spiele-Performance gewaltig sinkt.
Zum Beispiel sollte der gesamte SpecialFX()-Code zusammengefasst und mit einmal gerendert werden (Shadow, Translucent Sprite etc...). Standard-Sprites sollten nach einem StopSpecialFX() dargestellt werden, um die Hardwarebeschleunigung auszunutzen. Wenn Sie ClearScreen() verwenden, platzieren Sie diesen Befehl innerhalb des StartSpecialFX() : ... : StopSpecialFX() Programmblocks. Die aktuelle Anzeige wird nicht in den Buffer kopiert (wäre zu langsam) - gehen Sie also sicher, vor dem Aufruf von StartSpecialFX() keine Befehle zum Anzeigen aufzurufen, da sie ignoriert werden.
Da alle Operationen im Systemspeicher (nicht im Videospeicher) ausgeführt werden, sollten die Sprites mit dem #PB_Sprite_Memory Flag geladen werden, um die Geschwindigkeit der Sprite-Anzeige drastisch zu erhöhen.
Befehle welche den SpezialFX Modus nutzen: DisplayAlphaSprite(), DisplaySolidSprite(), DisplayShadowSprite(), DisplayRGBFilter(), DisplayTranslucentSprite()
Unterstützte OS
Windows (DirectX), Linux (SDL)