クロスプラットフォームのテキストエディタのSublime Text 2のファンとして、私はそれがどのように開発されたかについていくつかの研究を行ってきました。開発者は、Linux用のGTKでは99%C++であり、 "Sublime GUI"と呼ばれるカスタムUI Toolkitを使用していることに気づいています。これはデベロッパーからの引用ですC++カスタムUI Toolkit - クロスプラットフォーム抽象化層のオプション
崇高なテキスト2自体がカスタムUIツールキットを使用しています。これは意味をなさないかもしれない多くのアプリがありますが、UIコントロールの多くがツールキットに関係なくカスタムでなければならないことがいつも分かっていたサブライムテキストにとっては、それほど不合理な選択ではありません(例えば、テキストコントロールとタブコントロール)。 UIツールキットは、クロスプラットフォーム抽象レイヤの上に位置します。これは、共通の分母ではなくプラットフォームの機能の集合体です。
私の質問は、クロスプラットフォームの抽象化レイヤーにはいくつかの選択肢がありますか?私はこれがGTK、QT、SDLよりも低いレベルだと考えています。私は、クロスプラットフォームでありコードを一度書くだけのカスタムUIツールキットを作成する方法を理解しようとしています。
私はUI Toolkitのメリットを高く評価していますが、手を汚してWindows、Linux、Macで自分のアプリケーションをサポートしたいと思ったら、どこから始めたらよいか分かりません。
私が見ていることに基づいて、おそらくGDIとXLibを使用しています。 Frapsのようなものを使用すると、gpuが使用されていてもデバッグ情報が表示されますが、デバッグ情報は表示されません。だから私はソフトウェアレンダリングをしていると信じています。また、gDEbuggerを実行すると、0のOpenGL呼び出しがあります。私はWindows上でしかテストしていませんが、他のプラットフォームでOpenGLを使用する可能性はありますが、疑問はあります。 – leetNightshade