|
* Drawing
Monoは2つの描画機構を提供します。ひとつめはMicrosoftの System.Drawing API、ふたつめはCairo API です。
System.Drawing
MonoにおけるSystem.Drawingの実装はMicrosoft API互換になるよう設計されています。そのイメージモデルはPDF 1.4の文法を基にしたものにとても似ています。
われわれの実装はGDI+ C API(”GDI+ フラットAPI”とも呼ばれています)のC#ラッパーです。
Windows上では、MonoはOSに含まれるGDI+ライブラリを使用します。一方、Unix上ではわれわれがこのAPIの実装を提供しています。この作業は大変なのでAPIの実装にはCairoを用いています。
GDI+の実装は、mcs/class/System.Drawingディレクトリの中の、さらにgdiplusディレクトリの中にあります。パッケージのビルドにはCairoがインストールされている必要があります。
System.Drawingを実装しているC#コードは、Windows用とUnix用のビルドで同一です。
これは既存のMicrsosoft APIの実装であるため、アーキテクチャの変更はありません。
Mono.Cairo
Mono.Cairo.dllアセンブリはマネージアプリケーションにCairo APIを公開します。APIのマッピングはとても単純で、C APIのプログラミングモデルにかなり近いものになっています。
基盤となっているCairoのAPIの性質上、Mono.CairoのAPIはまだ確定したものではありません。Cairoの進展に合わせて見直されるでしょう。
|