Eto: [必須]ネイティブ(純粋なC#)ウェイランドバックエンドのサポート

作成日 2015年11月21日  ·  17コメント  ·  ソース: picoe/Eto

Waylandはプロトコルです-https ://en.wikipedia.org/wiki/Wayland_ (display_server_protocol)

プロトコルは、純粋なC#で実装することも、libwayland-clientのバインディングとして実装することもできます。
http://www.jlekstrand.net/jason/projects/wayland/language-bindings-guide/
libwayland-serverとlibwayland-clientはMITライセンスの下でリリースされました。

ほとんどの敬意を表するツールキットはWaylandをサポートしています-http ://wayland.freedesktop.org/toolkits.html

「特に、これはオーディオの実行可能なネットワーク透過性を与えるはずです」(???)

help wanted

全てのコメント17件

提案をありがとう! しかし、GTK(ウェイランドの上にある)をすでに使用しているのに、なぜウェイランドに直接バインドするのでしょうか? これは車輪の再発明ではありませんか? 私が理解していることから、すべてのウィジェット、ウィンドウ機能などを実装する必要があります。

このアプローチのメリットは何だと思いますか?

良い考えですが、etoフレームワークではなくmonoフレームワークまたは.netコアの場合です。 利点は明らかです。 Eto-> gtk#-> mono /.netコア-> gtk +-> xwindow。 eto-> mono /.netコア->ウェイランドのみ。

私は間違っているかもしれませんが、Waylandはコンポーザーを提供しているようです。 線、グラデーション、テクスチャなどを描画するための描画APIを提供していないようです。これは、cairoのようなものが提供するものであり、非常にうまく機能します。 Eto.Formsがバッファにレンダリングする独自の描画APIを実装することは想定していません。これは、車輪の再発明を行い、おそらくうまく機能しないためです。

ただし、Eto.Drawing APIを使用して、Etoの各コントロール(Button、TextBoxなど)のカスタム描画ハンドラーを作成することをよく考えました。 これは、プラットフォームをサポートするために、プラットフォームのEto.Drawingハンドラーをラップするだけでよいことを意味します(視覚的にどのように見えるかを気にしない場合)。

Eto.Formsはすでにcairo(waylandをサポート)をラップしているので、コントロールごとにカスタム描画ハンドラーを作成するだけで、少なくともGTK +を切り取ることができます。 ただし、これはまだ多くの作業です。 誰かが十分に熱心であれば、これは歓迎すべき追加であり、私はこれを始めるのを手伝うことができますが、多くの仕事をすることはできません。

このアイデアにまだ興味を持っている人はいますか? 私は、C#がWaylandを使用してユーザーインターフェイスを簡単に作成できるようにするWaylandへのバインディングを作成することができました。 リポジトリをアップロードする前に、デザインを完成させる予定です。 (基本的にDLライブラリを使用して、MonoがDLL関数をインポートして直接インターフェイスするために使用するのと同じライブラリであるネイティブWaylandライブラリを動的にロードします。WaylandとC#の間のP / Invokeを処理するための中間ラ​​イブラリは必要ありません。)私もCairoの代わりにImageSharpを使用する(Cairoは共有メモリバッファーと直接対話できないようで、私の努力を直接軽蔑しているようです)。

なぜこの問題が問題なのか本当にわかりません...あなたは何を得るでしょうか?

GTKSharpとGTKの依存関係の必要性を排除することは大きな問題です。 Waylandは比較的高速で柔軟性が高いため、GTKのような非常に厄介なライブラリに固執するのではなく、Skia、OpenGL、ImageSharpなどのライブラリを使用して、ライブラリを一覧表示してEto.Formをレンダリングできます。特に組み込み環境でユーザーにより多くのオプションを提供するユーザーインターフェイス(https://www.youtube.com/watch?v=GtXQJ0c5q0kでWaylandがARMデバイスでどのように使用されるかを確認してください)。

gtk / qtを中継せずに、ウェイランドだけでボタンをレンダリングし、それでもネイティブに見えるようにするには、世界でどのようにしたらよいでしょうか。

境界線をレンダリングするための画像またはコードのいずれかによって描画します。 思ったより簡単で、HTMLWebデザインによく似ています。 ImageSharpは、Gimp for C#に似た多くの機能を提供して、そのタスクを簡単にします。

境界線をレンダリングするための画像またはコードのいずれかによって描画します。 思ったより簡単で、HTMLWebデザインによく似ています。

Eto Formsのポイントは、プラットフォームにネイティブユーザーインターフェイスを提供することです。この問題が求めているのは、 httpsます。

そして、私の主張は今でも変わりません。Etoの下にC#プラットフォームを作成して、Linuxだけでなくすべてのプラットフォームで機能するネイティブユーザーインターフェイスを提供できます。

そして、私の主張は今でも変わりません。Etoの下にC#プラットフォームを作成して、Linuxだけでなくすべてのプラットフォームで機能するネイティブユーザーインターフェイスを提供できます。

あなたはカスタム描画になります、UIはネイティブに見えません。

この環境では、他のUIツールキットはないので、「ネイティブ」のようなものはありません。 私はよく、すべてDrawableコントロールに要約されるテーマハンドラーを作成することを考えました。これは、描画スタックを実装するだけで済みます。 ただし、 @ cra0zyは、

つまり、Etoプロジェクトは代替案を受け入れることはなく、GTKのような肥大化したライブラリに固執するだけで、それらから離れることが可能であると軽蔑しているということですか?

@CsharpOnLinuxDevいいえ、私はこれを

そうは言っても、私にはそのようなプラットフォームを開発または維持するためのサイクルがないので、これに関する進歩はコミュニティからもたらされなければなりません。 また、必ずしもメインのEtoリポジトリの一部である必要はありません。誰でも、Etoのプラットフォーム実装を作成し、好きなように公開できます。 (;

私は(いつものように)尋ねる人のために、助けとガイダンスを提供することができます。

こんにちは、これについて何か進展はありますか? ウェイランドは江藤に統合されますか?

Gtk 3バックエンドを使用している場合は、すでにwaylandを使用しています...

@ cra0zy返信ありがとうございます!
しかし、私は意味eto -> mono/.net core -> wayland 、ないEto -> gtk# -> mono/.net core -> gtk3 -> wayland

実際、私はウェイランドC#ワーパーを見つけようとしています。 😃

このページは役に立ちましたか?
0 / 5 - 0 評価