Giter VIP home page Giter VIP logo

Comments (16)

caseykneale avatar caseykneale commented on September 22, 2024 1

Screenshot from 2019-12-26 20-59-33
All I can do is confirm that whatever you all did everything works fine now?

from glfw.jl.

jayschwa avatar jayschwa commented on September 22, 2024

The GLFW library can be built with Wayland support, but GLFW.jl only builds for X11 right now. If there is something easy to check for the existence of Wayland (e.g. an environment variable), then perhaps it could switch to that during Pkg.build. I assume there would still need to be some development dependencies installed, but probably less than if it's using the X11 backend.

from glfw.jl.

caseykneale avatar caseykneale commented on September 22, 2024

How do you build it with Wayland support? I've been pulling my hair our trying to install this package - it seems really cool.

from glfw.jl.

caseykneale avatar caseykneale commented on September 22, 2024

So i did some reading on this... Turns out - I think - for the CMAKE specifying wayland is trivial
glfw/glfw#986

As far as detecting wayland it seems there are a few easy environment variables to look for -
https://stackoverflow.com/questions/45536141/how-i-can-find-out-if-a-linux-system-uses-wayland-or-x11

from glfw.jl.

caseykneale avatar caseykneale commented on September 22, 2024

Where could I implement this? I am not seeing where a Cmake gets called or anything anywhere? I made a thread on discourse asking for help - https://discourse.julialang.org/t/contributing-wayland-support-to-cimgui-jl-help-wanted/32576

from glfw.jl.

jayschwa avatar jayschwa commented on September 22, 2024

The build process is no longer managed by this repository. It is run elsewhere and this repo just references the built artifact. See https://github.com/JuliaPackaging/Yggdrasil/blob/master/G/GLFW/build_tarballs.jl

from glfw.jl.

caseykneale avatar caseykneale commented on September 22, 2024

Thanks Jayschwa!

Turns out, the julia wizards wrote a binary wrapper for wayland! It works beautifully now!

@hearnsj - you can close this now after you test it for yourself!

from glfw.jl.

jayschwa avatar jayschwa commented on September 22, 2024

@caseykneale, are you saying that GLFW.jl works with Wayland as-is? That's a little surprising to me since it doesn't look like the artifact is being provided Wayland build flags or dependencies. Is XWayland being run somewhere?

from glfw.jl.

caseykneale avatar caseykneale commented on September 22, 2024

I'm not 100% sure how it's working, but yes my experience so far is the GLFW successfully builds on wayland systems right now without any effort. The BinaryBuilders crew in julia slack could probably explain how its working :)

from glfw.jl.

giordano avatar giordano commented on September 22, 2024

To be honest, I'm also surprised that it works: as @jayschwa pointed out, the GLFW binary we provide in Yggdrasil doesn't currently know much about Wayland. However, as long as it works I think we can say we're happy? πŸ™‚

from glfw.jl.

Gnimuc avatar Gnimuc commented on September 22, 2024

image

from glfw.jl.

jayschwa avatar jayschwa commented on September 22, 2024

Are you able to make windows and stuff (see examples directory for sample code)?

Also, what does GLFW's version string say? That usually has information about the backend it was built for.

julia> import GLFW

julia> GLFW.GetVersionString()
"3.3.0 X11 GLX EGL OSMesa clock_gettime evdev shared"

If it's the case that it now works because of XWayland, then maybe that's Good Enoughβ„’ for now.

from glfw.jl.

caseykneale avatar caseykneale commented on September 22, 2024
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.3.0 (2019-11-26)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> import GLFW

julia> GLFW.GetVersionString()
"3.3.0 X11 GLX EGL OSMesa clock_gettime evdev shared"

I can see windows in CImGui, I haven't tried explicitly using GLFW

from glfw.jl.

adigitoleo avatar adigitoleo commented on September 22, 2024

@jayschwa

it now works because of XWayland

Are there any plans for supporting Wayland-only compositors? I'm not too knowledgable about all this (so I don't know how much effort this would take), but I'm coming from the Python+Matplotlib world which is working without XWayland.

from glfw.jl.

jayschwa avatar jayschwa commented on September 22, 2024

I personally probably won't put in the time to figure it out, but patches are welcome. The process will likely look something like:

  1. Independent of Julia, figure out how to build GLFW to support both Wayland and X11.
    • Dropping support for X11 is not an option for now.
  2. Adapt step 1 to the Julia binary builder process.
  3. When step 2 succeeds, update this repo's Project.toml to pull in the new build artifact.

from glfw.jl.

adigitoleo avatar adigitoleo commented on September 22, 2024

Since last month I've had to get XWayland running for other stuff anyway, and unfortunately I don't see myself putting much work into this very soon. Here are a few points in case anyone is interested in picking this up:

  • It looks like glfw supports a -DGLFW_USE_WAYLAND=ON flag for cmake that will build the wayland version (https://github.com/glfw/glfw/blob/master/CMakeLists.txt#L39). For supporting both X and Wayland automatically we would have to detect if XWayland is available. I don't know if building the bindings against a system install of GLFW is possible, maybe that's another option...
  • There are quite a few "Wayland" issues on the GLFW tracker still, so it might be best to wait until upstream wayland support is a bit more stable. Paraview builds against Wayland GLFW, and I'll be using that program more in the coming months (or years) so if anyone knows C please contribute upstream :)

from glfw.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.