Frage

Ich habe eine reife MFC C ++ Anwendung, die auf dem Bildschirm anzeigt und drucken CDC Umhüllungen auf dem Win32-GDI. Während es im Laufe der Jahre optimiert worden ist, würde Ich mag es ein bisschen schneller mit etwas zu ersetzen. Die Grafiken enthalten gemacht dreieckigen Oberflächenmodelle, komplexe Linien und Flächen und viel Text. Es muss die folgenden Kriterien erfüllen;

  • Die Anzahl der Vektoren angezeigt ist wahrscheinlich sehr groß sein. Zum Beispiel ist eine einzelne Oberfläche Dreieck wahrscheinlich eine Reihe Linien und Füllungen beim Rendern zu erzeugen. Derzeit diese Informationen nirgendwo gespeichert wird, wird sie erzeugt und im laufenden Betrieb gezogen. Das SDK sollte unterstützen, die Gesamtzahl von gepufferten Vektoren begrenzen, oder es haftet aus dem Speicher auszuführen.

  • Das SDK sollte jede CWnd abgeleiteten Klasse einschließlich CView und Scroll Klassen machen kann.

  • Die SDK Druck auf jedes Windows-Druckgerät unterstützen sollte,

  • Das SDK genug niedriges Niveau sein sollte, den Hafen von niedrigem Niveau CDC / GDI ruft relativ einfach.

  • machen
  • Open Source ist immer schön, aber ein einmalig Kosten von bis $ 2k zu sagen, mit optionalen Upgrades / Unterstützung wäre auch in Ordnung sein. Eine Lizenzgebühr pro Benutzer ist nicht akzeptabel,

  • Der Zugang zum Quellcode wäre ein großer Bonus, und zwar mit der Idee von Teilen des SDK auf Windows CE / Handy ausgeführt wird.

  • Ich currenly meinen eigenen 3D zu 2D-Darstellungsfeld-Management handhaben. Wenn ein anständiges niedriges Niveau SDK nicht verfügbar ist, ein höheres Niveau SDK muss 3d gut handhaben, und die Arbeit mit Millionen Dreiecken, Polygone und Textelementen auf einer 32-Bit-Windows-Plattform.

Irgendwelche Vorschläge? Auflisten der spezifischen Vor- und Nachteile in Ihrem vorgeschlagenen Vorschlag würde sehr geschätzt werden.

War es hilfreich?

Lösung

Ich habe einmal Fastgraph ( http://www.fastgraph.com ) für ein Projekt bewertet. Ich mochte es in dem kleinen Prüfprogramme ich schrieb, war es sehr schnell. Am Ende haben wir es nicht aus äußeren Gründen verwendet (nichts mit den Bibliotheken zu tun, die ich ausgewertet), so habe ich nicht mehr praktische Erfahrung.

Andere Tipps

Ich denke, DirectX oder SDL wird Ihre Bedürfnisse. Sie sind auch für 3D, aber die Arbeit für 2D entworfen. Beide unterstützt Windows CE / Mobile und SDL ist auch für eine Reihe von Nicht-Microsoft-Betriebssystem.

Leider direkte Kompatibilität mit GDI wird nicht in den Bibliotheken unterstützt. Aber man kann den Trick durch einen Konverter-Klasse erstellen, die alle Ausgangs Grafiken von Ihrer GDI entwickelt Anwendungsklassen akzeptieren und konvertieren das Format auf die Bedürfnisse von DirectX oder SDL Klassen passen (je was Sie verwenden möchten).

Persönlich habe ich solche Wandler Klasse einmal. Ich hatte ein Spiel für Pocket PC geschrieben, mit SDL und ich brauchte, um Portierung auf Palm-Gerät. Dort hatte ich verschiedene Grafik-Bibliothek verwendet werden (ich weiß nicht den Namen des lib erinnere jetzt), aber ich konnte zu portieren all SDL Funktionen Ausgabe an das Format, das von der anderen lib benötigt. Ich brauchte meine Anwendung zu ändern, um die Wandler (Wrapper) Funktionen aufrufen, die den Anruf zu Palm oder Pocket PC Bibliothek Forwarder, je nachdem, welches Gerät es derzeit ausgeführt wird. Also ich denke, Sie das gleiche tun kann für die Umwandlung von GDI -> DirectX oder GDI -.> SDL

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top