2009-04-01 5 views
2

Ich möchte ein glattes abgerundetes Rechteck auf einem ARM-Gerät mit Windows CE 6.0 anzeigen.Anti-Aliasing abgerundete Ecken in Windows CE 6.0

Ich begann mit RoundRect, aber das Ergebnis hatte gezackte Ecken, da Windows CE GDI und doesn't support GDI+ wie Windows Mobile 5+ verwendet. Meine derzeitige provisorische Lösung bestand darin, eine Menge kleiner Eck-Bitmaps zu erstellen, aber da der Rest des GUI-Designs Transparenz, Farbverlaufsfüllungen und variable Breitengrenzen enthält, bedeutet diese Lösung das Erstellen und Verwalten einer großen Anzahl von Permutationen dieser Bitmaps.

Gibt es eine Möglichkeit, GDI + -ähnliche Grafikgrundelemente in Windows CE zu erhalten? Ich habe die Kontrolle über mein Windows CE-Image, sodass ich alles nach Bedarf erstellen kann.

Antwort

1

Ich wusste nicht, dass die CF-Unterstützung dafür so schlecht ist. Gibt es wirklich keine Möglichkeit, GDI + auf das System zu setzen? Ich habe keinen Platform Builder zur Verfügung, also kann ich nicht auf mich selbst schauen.

Die Lösung, die ich verwende, ist OpenVG. Es ist wirklich schnell, wenn Ihr Gerät es in Hardware unterstützt (wie viele OpenGL ES 2.0-Geräte scheinen), und es gibt Software-Implementierungen, die ebenfalls schnell genug funktionieren sollten (auf dem Desktop verwende ich AmanithVG SRE für die Emulation). Ich habe AmanithVG SRE nicht auf meinem CE-Gerät getestet, und ich denke, dass Sie sie kontaktieren müssen, um eine Binärdatei zu erhalten (die Desktop-Binärdatei ist auf der Website verfügbar). Wenn Ihr Gerät über einen PowerVR-Chip verfügt (z. B. TI OMAP35x), stellt PowerVR den OpenVG-Hardware-Renderer bereit (Sie benötigen jedoch noch einen für den Desktop).

OpenVG hat eine hässliche API, wie alle OpenXX-APIs (das heißt, wenn Sie an die .NET-BCL gewöhnt sind), aber sie sind in Ordnung und OpenVG war wirklich einfach in .NET zu übersetzen, weil sogar obwohl es prozedural ist, ist es mehr oder weniger objektorientiert und sie haben alle ihre Konstanten in enums anstatt definiert.

+0

Danke für die Empfehlung, ich schaue mir an, ob AmanithVG auf meiner Plattform läuft. Verstehe ich richtig, dass Sie OpenVG auf einem CE-Gerät mit Hardware-Unterstützung ausgeführt haben? –

+0

BTW, meinst du CE oder CF? Ich benutze das Compact Framework, aber ich suche nach einer Lösung, die ich aufrufen kann. –

+0

OpenVG ist, wie OpenGL, eine prozedurale C-API, aber es ist ziemlich einfach zu P/Invoke. Also meinte ich sowohl CE als auch CF :) Leider habe ich es nicht auf dem Gerät ausgeführt, weil das aktuelle Bild, das ich habe, kein CF hat und ich keinen PlatformBuilder habe. Unter Linux läuft es auf demselben Gerät. – OregonGhost

0

Windows Mobile 6 Professional enthält eine eingeschränkte Version von gdiplus.dll.

+0

Danke für die Antwort. Ich denke, es gibt sowohl technische als auch rechtliche Hürden, die gdiplus.dll von Windows Mobile auf Windows CE zu verwenden. Wenn Sie denken, dass es möglich ist, lassen Sie es mich wissen. Von meiner ursprünglichen Frage: http://community.opennetcf.com/articles/cf/archive/2007/10/31/using-gdi-on-windows-mobile.aspx –