Eto: [Req] Dukungan backend wayland asli (C# murni)

Dibuat pada 21 Nov 2015  ·  17Komentar  ·  Sumber: picoe/Eto

Wayland adalah protokol - https://en.wikipedia.org/wiki/Wayland_ (display_server_protocol)

Protokol dapat diimplementasikan dalam C# murni, atau sebagai pengikat untuk libwayland-client
http://www.jlekstrand.net/jason/projects/wayland/language-bindings-guide/
libwayland-server dan libwayland-client dirilis di bawah Lisensi MIT.

Toolkit yang paling terhormat memiliki dukungan Wayland - http://wayland.freedesktop.org/toolkits.html

"Secara khusus, ini harus memberikan transparansi jaringan yang bisa diterapkan untuk audio" (???)

help wanted

Semua 17 komentar

Terima kasih untuk sarannya! Padahal, mengapa kita mengikat langsung ke wayland ketika kita sudah menggunakan GTK (yang berada di atas wayland)? Bukankah ini menciptakan kembali roda? Dari apa yang saya pahami, kita harus mengimplementasikan semua widget, fungsionalitas windowing, dll.

Apa yang Anda lihat sebagai manfaat dari pendekatan ini?

Itu ide yang bagus, tetapi untuk kerangka kerja mono atau .net core bukan untuk kerangka kerja eto. Keuntungannya jelas. Eto -> gtk# -> inti mono/.net -> gtk+ -> xwindow. Hanya eto -> mono/.net core -> wayland.

Saya bisa saja salah, tetapi tampaknya Wayland hanya menyediakan pembuat komposit. Tampaknya tidak menyediakan api gambar untuk menggambar garis, gradien, tekstur, dll. Inilah yang akan disediakan oleh sesuatu seperti cairo dan melakukannya dengan sangat baik. Saya tidak membayangkan Eto.Forms mengimplementasikan api gambarnya sendiri yang merender ke buffer, karena ini akan menemukan kembali roda dan mungkin melakukannya dengan buruk.

Namun, saya sering berpikir untuk membuat handler yang digambar khusus untuk setiap kontrol Eto (seperti Button, TextBox, dll) menggunakan api Eto.Drawing. Ini berarti bahwa seseorang hanya perlu membungkus penangan Eto.Drawing untuk platform untuk mendukungnya (jika Anda tidak peduli dengan tampilannya secara visual).

Eto.Forms sudah membungkus cairo (yang mendukung wayland), jadi itu hanya masalah membuat penangan yang digambar khusus untuk setiap kontrol dan setidaknya kita bisa memotong GTK+. Ini, bagaimanapun, masih banyak pekerjaan. Jika seseorang cukup tertarik, ini akan menjadi tambahan yang disambut baik dan saya dapat membantu memulai ini, tetapi tidak akan dapat melakukan banyak pekerjaan.

Apakah masih ada yang tertarik dengan ide ini? Saya telah berhasil membuat pengikatan ke Wayland yang memungkinkan C # menggunakan Wayland untuk membuat Antarmuka Pengguna dengan mudah. Saya berencana untuk menyelesaikan desain sebelum mengunggah repo untuk itu. (Ini pada dasarnya menggunakan perpustakaan DL untuk secara dinamis memuat perpustakaan Wayland asli yang merupakan perpustakaan yang sama yang digunakan Mono untuk mengimpor fungsi DLL dan antarmuka langsung dengannya. Tidak perlu perpustakaan perantara untuk menangani P/Memanggil antara Wayland dan C#.) Saya juga memanfaatkan ImageSharp alih-alih Kairo (Kairo tampaknya tidak dapat berinteraksi dengan buffer memori bersama secara langsung meremehkan upaya saya.)

Saya benar-benar tidak mengerti mengapa masalah ini menjadi masalah... Apa yang akan Anda dapatkan?

Menghilangkan kebutuhan dependensi GTKSharp dan GTK adalah hal yang besar. Wayland relatif cepat dan cukup fleksibel sehingga kita dapat menggunakan perpustakaan seperti Skia, OpenGL, ImageSharp, atau lainnya yang belum mencantumkan perpustakaan untuk merender Eto.Form kita daripada menggunakan perpustakaan yang sangat kecil seperti GTK, kita dapat memilih yang lebih kecil dan lebih ramping antarmuka pengguna yang memberikan lebih banyak opsi kepada pengguna terutama di lingkungan tertanam ( https://www.youtube.com/watch?v=GtXQJ0c5q0k untuk melihat bagaimana Wayland digunakan pada perangkat ARM).

Bagaimana Anda bisa merender tombol hanya dengan wayland tanpa menyampaikan pada gtk/qt dan tetap membuatnya terlihat asli?

Anda menggambarnya, baik dengan gambar untuk membuat batas atau dengan kode. Ini lebih mudah dari yang Anda pikirkan dan sangat mirip dengan desain web HTML. ImageSharp menyediakan banyak fitur yang mirip dengan Gimp untuk C# untuk mempermudah tugas itu sehingga satu hal yang sudah kita lakukan.

Anda menggambarnya, baik dengan gambar untuk membuat batas atau dengan kode. Ini lebih mudah dari yang Anda pikirkan dan sangat mirip dengan desain web HTML.

Inti dari Eto Forms adalah untuk menyediakan antarmuka pengguna asli untuk platform, apa yang ditanyakan masalah ini akan lebih cocok untuk proyek seperti: https://github.com/AvaloniaUI/Avalonia

Dan poin saya tetap, kita dapat membuat Platform C# di bawah Eto untuk menyediakan antarmuka pengguna asli yang dapat bekerja di semua platform, bukan hanya Linux.

Dan poin saya tetap, kita dapat membuat Platform C# di bawah Eto untuk menyediakan antarmuka pengguna asli yang dapat bekerja di semua platform, bukan hanya Linux.

Anda akan menggambar kustom, UI tidak akan terlihat asli.

Saya kira di lingkungan ini, tidak akan ada toolkit UI lain sehingga tidak akan ada yang namanya 'asli'. Saya sering berpikir untuk membuat penangan bertema yang semuanya bermuara pada kontrol Drawable, yang hanya membutuhkan tumpukan gambar untuk diimplementasikan. Namun, @cra0zy benar karena Avalonia sudah lebih sesuai dengan itu dan saya yakin sudah memiliki backend skia dalam pengerjaan.

Jadi Anda mengatakan bahwa proyek Eto tidak akan terbuka untuk alternatif dan hanya akan tetap menggunakan perpustakaan yang membengkak seperti GTK, meskipun mungkin untuk menjauh dari itu?

@CsharpOnLinuxDev tidak, saya terbuka untuk ini. Membatasi apa itu Eto tidak masuk akal, dan jika Anda (atau siapa pun) berpikir itu akan menjadi kerangka kerja yang bagus untuk mendasarkan platform alternatif, maka saya sepenuhnya mendukung itu. Saya pikir pasti ada kasus penggunaan untuk mendukung platform tanpa toolkit UI yang ada seperti GTK atau QT untuk platform yang disematkan. Itu juga dapat digunakan untuk mendukung windows dengan .NET Core, yang tampaknya banyak orang yang mengunyahnya.

Karena itu, saya tidak memiliki siklus untuk mengembangkan atau memelihara platform seperti itu sehingga kemajuan apa pun dalam hal ini harus berasal dari komunitas. Itu juga tidak harus menjadi bagian dari repo Eto utama, siapa pun dapat membuat implementasi platform untuk Eto dan mempublikasikannya sesuka mereka. (;

Saya (seperti biasa) dapat memberikan bantuan dan bimbingan sekalipun, bagi siapa saja yang bertanya.

Hai, apakah ada kemajuan dalam hal ini? Akankah wayland diintegrasikan ke Eto?

Nah jika Anda menggunakan backend Gtk 3 Anda sudah menggunakan wayland ...

@cra0zy Terima kasih atas balasan Anda!
Tapi maksud saya eto -> mono/.net core -> wayland , bukan Eto -> gtk# -> mono/.net core -> gtk3 -> wayland .

Sebenarnya saya sedang mencoba menemukan wayland C# warpper. 😃

Apakah halaman ini membantu?
0 / 5 - 0 peringkat