Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Allow using X11 / Wayland on platforms that have another standard backend (macOS, Android)

Ouverte
#211 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
30/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
android, linux, macos, rust

Piste de recherche

Reproduisez l’échec signalé de cargo build --target x86_64-linux-android, puis examinez src/lib.rs, src/backend_dispatch.rs et src/backend_interface.rs, en particulier le dispatch générique du backend et les contraintes des handles. La tâche est terminée lorsque la target concernée se compile sans les erreurs signalées liées aux paramètres génériques et à l’inférence de types.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

DS - Android NDK DS - CoreGraphics DS - Wayland DS - X11 enhancement

Partially related to #44 I am trying to compile some rust application targeting termux (x11) and am getting the below errors. I have tried both compiling within termux, as well as on my desktop

command: cargo build --target x86_64-linux-android

Error log
error[E0392]: parameter `D` is never used
  --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:33:20
   |
33 | pub struct Context<D> {
   |                    ^ unused parameter
   |
   = help: consider removing `D`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `D` to be a const parameter, use `const D: usize` instead

error[E0392]: parameter `D` is never used
  --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:74:20
   |
74 | pub struct Surface<D, W> {
   |                    ^ unused parameter
   |
   = help: consider removing `D`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `D` to be a const parameter, use `const D: usize` instead

error[E0392]: parameter `W` is never used
  --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:74:23
   |
74 | pub struct Surface<D, W> {
   |                       ^ unused parameter
   |
   = help: consider removing `W`, referring to it in a field, or using a marker such as `PhantomData`
   = help: if you intended `W` to be a const parameter, use `const W: usize` instead

error[E0392]: parameter `'a` is never used
   --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:197:19
    |
197 | pub struct Buffer<'a, D, W> {
    |                   ^^ unused parameter
    |
    = help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`

error[E0392]: parameter `D` is never used
   --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:197:23
    |
197 | pub struct Buffer<'a, D, W> {
    |                       ^ unused parameter
    |
    = help: consider removing `D`, referring to it in a field, or using a marker such as `PhantomData`
    = help: if you intended `D` to be a const parameter, use `const D: usize` instead

error[E0392]: parameter `W` is never used
   --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:197:26
    |
197 | pub struct Buffer<'a, D, W> {
    |                          ^ unused parameter
    |
    = help: consider removing `W`, referring to it in a field, or using a marker such as `PhantomData`
    = help: if you intended `W` to be a const parameter, use `const W: usize` instead

error[E0392]: parameter `D` is never used
   --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/backend_dispatch.rs:180:6
    |
180 |     <D, W> =>
    |      ^ unused parameter
    |
    = help: consider removing `D`, referring to it in a field, or using a marker such as `PhantomData`
    = help: if you intended `D` to be a const parameter, use `const D: usize` instead

error[E0392]: parameter `W` is never used
   --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/backend_dispatch.rs:180:9
    |
180 |     <D, W> =>
    |         ^ unused parameter
    |
    = help: consider removing `W`, referring to it in a field, or using a marker such as `PhantomData`
    = help: if you intended `W` to be a const parameter, use `const W: usize` instead

error[E0392]: parameter `'a` is never used
   --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/backend_dispatch.rs:119:40
    |
119 |           pub(crate) enum BufferDispatch<'a, $dgen, $wgen> {
    |                                          ^^ unused parameter
...
179 | / make_dispatch! {
180 | |     <D, W> =>
181 | |     #[cfg(x11_platform)]
182 | |     X11(Rc<backends::x11::X11DisplayImpl<D>>, backends::x11::X11Impl<D, W>, backends::x11::BufferImpl<'a, D, W>),
...   |
194 | |     Orbital(D, backends::orbital::OrbitalImpl<D, W>, backends::orbital::BufferImpl<'a, D, W>),
195 | | }
    | |_- in this macro invocation
    |
    = help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`
    = note: this error originates in the macro `make_dispatch` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0283]: type annotations needed
  --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:83:15
   |
83 |         match SurfaceDispatch::new(window, &context.context_impl) {
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type for type parameter `D` declared on the trait `SurfaceInterface`
   |
   = note: cannot satisfy `_: HasDisplayHandle`
   = help: the following types implement trait `HasDisplayHandle`:
             NoDisplayHandle
             Box<H>
             DisplayHandle<'a>
             Rc<H>
             Arc<H>
             &H
             &mut H
note: required by a bound in `backend_interface::SurfaceInterface::new`
  --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/backend_interface.rs:15:38
   |
15 | pub(crate) trait SurfaceInterface<D: HasDisplayHandle + ?Sized, W: HasWindowHandle + ?Sized> {
   |                                      ^^^^^^^^^^^^^^^^ required by this bound in `SurfaceInterface::new`
...
21 |     fn new(window: W, context: &Self::Context) -> Result<Self, InitError<W>>
   |        --- required by a bound in this associated function

error[E0282]: type annotations needed
   --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:137:12
    |
137 |           Ok(Buffer {
    |  ____________^
138 | |             buffer_impl: self.surface_impl.buffer_mut()?,
139 | |             _marker: PhantomData,
140 | |         })
    | |_________^ cannot infer type of the type parameter `D` declared on the struct `Buffer`
    |
help: consider specifying the generic arguments
    |
137 |         Ok(Buffer::<D, W> {
    |                  ++++++++

error[E0283]: type annotations needed
   --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:147:14
    |
147 |         self.window()
    |              ^^^^^^ cannot infer type for type parameter `D`
    |
    = note: cannot satisfy `_: HasDisplayHandle`
    = help: the following types implement trait `HasDisplayHandle`:
              NoDisplayHandle
              Box<H>
              DisplayHandle<'a>
              Rc<H>
              Arc<H>
              &H
              &mut H
note: required by a bound in `Surface::<D, W>::window`
   --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:80:9
    |
80  | impl<D: HasDisplayHandle, W: HasWindowHandle> Surface<D, W> {
    |         ^^^^^^^^^^^^^^^^ required by this bound in `Surface::<D, W>::window`
...
101 |     pub fn window(&self) -> &W {
    |            ------ required by a bound in this associated function

error[E0282]: type annotations needed
   --> /home/quack/.cargo/registry/src/index.crates.io-6f17d22bba15001f/softbuffer-0.4.2/src/lib.rs:156:23
    |
156 |         self.window().window_handle()
    |                       ^^^^^^^^^^^^^ cannot infer type for type parameter `W`

Some errors have detailed explanations: E0282, E0283, E0392.
For more information about an error, try `rustc --explain E0282`.
error: could not compile `softbuffer` (lib) due to 13 previous errors
warning: build failed, waiting for other jobs to finish...
Langage dominant
Rust
Étoiles
509
Forks
87
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de rust-windowing/softbuffer

Toutes les issues de rust-windowing/softbuffer

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.