Direct2D die zweite



  • Decimad schrieb:

    Zum einen müsste ich also das Scrollen im Datenbereich auf eine Quantisierung beschränken, die nach Projektion genau auf ganze Pixel-Verschiebung kommt (mit allen Rundungsfehlern, die dabei wohl so auftreten können).

    Ich bezweifle, dass du wirklich mit Subpixelgenauigkeit wirst scrollen müssen. Könnte mir sogar vorstellen, dass das eher weniger gut aussehen würde...

    Decimad schrieb:

    Was also früher mit GDI ein Einzeiler war und mit Direct3D ein vierzeiler wäre, würde hier zu einem komplexen Algorithmus, der Auswirkungen auf das Datenmodell von Controls hat, der für den worstcase immernoch extrem langsam ist.

    Wenn das, was du machen willst, mit Direct3D soviel einfacher wäre, dann mach es doch mit Direct3D und mach alles andere mit Direct2D, gibt ja Interop... 😉

    Decimad schrieb:

    Bezüglich der Unterabtastung: Hier müsste ich Punkte adaptiv auslassen, weil die Pixelabstände ja nicht konstant sind. Das wäre eine Option, die ich mal auf ein paar Datensätzen durchspielen könnte.

    Das wirst du aber sowieso machen wollen, denn sobald deine Geometrie eine höhere Auflösung hat als dein Bildschirm, gibts nämlich wieder Aliasing, nur in die andere Richtung... 😉



  • Interop funktioniert leider nur, wenn die Hardware DirectX Hardware Level 10.1 mitmacht: Ausschlusskriterium.

    Zur Subpixel-scroll-genauigkeit: Ich muss sie nicht unbedingt haben, aber sie kommt im Moment automatisch und ich muss mich aktiv darum bemühen, in festen Pixelintervallen zu scrollen. Das heißt, mein Intervall-Scroll-Algorithmus muss irgendwie die Projektion im Hinterkopf behalten. Das ist alles keine Raketenwissenschaft, ich weiß, aber die Controls müssen auf einmal Optimierungen verwenden für Dinge, die in keiner anderen 2D-API, die ich jemals gesehen habe, vonnöten wären. In der Tat frage ich mich gerade, ob Direct2D überhaupt in irgendeiner Art und Weise schneller ist, wenn es nicht gerade um große texturierte, rotierte und skalierte Vierecke geht. Es ist echt nicht einladend, wenn man gleich innerhalb der ersten Minuten mit einer API gegen eine Wand rennt...

    Und irgendwann werde ich wieder auf die Idee kommen, dass es praktisch wäre, an die darunterliegende Grafik-API zu gelangen. Ich verstehe einfach nicht, warum Direct2D nicht auch nach außen als eine Bibliothek überhalb von Direct3D implementiert ist und man auf komische Interop-Geschichten angewiesen ist, statt Zugriff auf das Device zu bekommen.


Anmelden zum Antworten