Comments (16)
All I can do is confirm that whatever you all did everything works fine now?
from glfw.jl.
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.
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.
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.
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.
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.
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.
@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.
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.
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.
from glfw.jl.
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.
_
_ _ _(_)_ | 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.
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.
I personally probably won't put in the time to figure it out, but patches are welcome. The process will likely look something like:
- 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.
- Adapt step 1 to the Julia binary builder process.
- When step 2 succeeds, update this repo's Project.toml to pull in the new build artifact.
from glfw.jl.
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)
- EGL support? HOT 1
- inaccurate performance counters HOT 1
- Compatability with julia-vscode? HOT 1
- libGL error: failed to load driver: swrast HOT 12
- test fail for Manjaro on Renoir APU HOT 1
- Don't know how to install this?
- TagBot trigger issue HOT 3
- No matching fbConfigs or visuals found HOT 3
- How to add new user data to the window context?
- Going to fullscreen causes a crash on macOS (Apple M1) HOT 1
- Please replace deprecated Makie.primary_resolution() with GLFW.jl cross-platform function
- GLFWError (API_UNAVAILABLE): WGL: The driver does not appear to support OpenGL HOT 1
- GL dependencies kill CI capacity HOT 2
- GLFW crashes entire julia session after re-attaching in tmux HOT 2
- unable to load GLMakie HOT 2
- GLFW couldn't create an OpenGL window. HOT 8
- NSInternalInconsistencyException when calling display() HOT 1
- No GLXFBConfigs returned using X11 forwarding HOT 1
- Release latest changes? HOT 2
- Segfault in `_glfwGetMonitorPosX11` during GLMakie precompile HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from glfw.jl.