2010-10-22 4 views
2

Je pensais utiliser Mono.Cairo comme base pour un système CAO léger. Mais n'était pas sûr de ce que la performance était. Les systèmes CAO produisent beaucoup de redessins et peuvent contenir beaucoup de données, avec une tonne de texte.Comment sont les performances de Mono.Cairo?

Si ce n'est pas le Caire alors d'autres suggestions sont les bienvenues. Je veux que l'application fonctionne sur Windows, Mac et Linux.

Répondre

3

Ce serait vraiment dépendre de l'utilisation, mais l'OMI il est le meilleur choix pour une API de dessin multi-plateforme.

En pratique, les utilisateurs utilisent Cairo dans des opérations raisonnablement sensibles aux performances sans problème. MonoDevelop utilise Cairo pour son éditeur de texte et Banshee utilise Cairo pour un tas de widgets personnalisés, y compris sa vue de liste. Je crois que le toolkit GTK et le plugin du navigateur Moonlight utilisent Cairo pour tous leur dessin.

En théorie du Caire peut être accéléré par le matériel, soutenu par OpenGL, bien que je ne connais pas l'état actuel de ce back-end. Un avantage du Caire est qu'il a un backend PDF décent, qui est également utile pour l'impression.

Peu importe ce que vous utilisez pour dessiner, vous allez devoir faire différents types de mise en cache et d'autres optimisations. Par exemple, dans l'éditeur de texte de MonoDevelop, nous mettons en cache les mises en page de texte Pango visibles, car la mise en page du texte est beaucoup plus coûteuse que le rendu réel. Et le défilement fonctionne beaucoup plus facilement si vous bloquez une partie de la surface existante et ne redessinez que la région nouvellement exposée. Et certaines opérations (comme les dégradés) sont beaucoup plus lentes que d'autres.

Questions connexes