Wayland Server

In linux platforms, does blender still use X-server and GLX. with Clutter ported to Wayland. I’m assuming that it supports full OpenGL(or it just XWayland??). I read a post on wayland-devel mailing list about ideasman trying to port Blender to wayland two years ago. is it finished. latest blender code does include X specific code. doesn’t it?? If it is not done yet. I’m ready to do it. need to do some homework though.

@blendermad, I got blender running in SDLv2.0 - Which should be able to run in Wayland, though I didnt test it yet.

Nevertheless - using SDL means we can run on any system SDL supports.

Since wayland is now 1.0+, I may check on using it directly.

I digging it a little, SDL use X backend. isn’t?? also I read on mailing lists of SDL someone posted(I am not sure), using X, the video is copied twice, from application to X-server and X-server to VRAM. isn’t that a overhead. well my point is Wayland is more modern and if it doesn’t affect blender development in anyway, what is the harm in porting to it. I’d be happy to do it, with some guidance from developers of course…

@blendermad, no

But there is no harm in supporting wayland, Feel free to do this! - if you show you have basics going we can get you a branch (or you may like to use github or so - up to you).

edit - you can check on X11 and SDL ghost backends to get an idea of how to start, SDL is the most minimal so maybe better start there.

GHOST System is the place, I should look right? I use git repo cloned from here git://gitorious.org/blenderprojects/blender.git
Will get to you soon…

@blendermad

GHOST is a C++ class which handles OS specific interactions (windowing, opengl initialization, mouse/kb events)

The drawing is done in OpenGL so GHOST really doesn’t have to do all that much.

It solves similar problems as SDL and infact SDL could probably replace GHOST however their multi-window support isn’t as good (Gives opengl context switching issues, they know about this), and AFAIK SDL doesn’t handle tablet events.

  • So we continue to use GHOST :slight_smile:

Check these files…


find -name "GHOST*SDL*" | sort

./intern/ghost/intern/GHOST_DisplayManagerSDL.cpp
./intern/ghost/intern/GHOST_DisplayManagerSDL.h
./intern/ghost/intern/GHOST_SystemSDL.cpp
./intern/ghost/intern/GHOST_SystemSDL.h
./intern/ghost/intern/GHOST_WindowSDL.cpp
./intern/ghost/intern/GHOST_WindowSDL.h

or…


find -name "GHOST*SDL*" | sort
./intern/ghost/intern/GHOST_DisplayManagerX11.cpp
./intern/ghost/intern/GHOST_DisplayManagerX11.h
./intern/ghost/intern/GHOST_DropTargetX11.cpp
./intern/ghost/intern/GHOST_DropTargetX11.h
./intern/ghost/intern/GHOST_NDOFManagerX11.cpp
./intern/ghost/intern/GHOST_NDOFManagerX11.h
./intern/ghost/intern/GHOST_SystemPathsX11.cpp
./intern/ghost/intern/GHOST_SystemPathsX11.h
./intern/ghost/intern/GHOST_SystemX11.cpp
./intern/ghost/intern/GHOST_SystemX11.h
./intern/ghost/intern/GHOST_WindowX11.cpp
./intern/ghost/intern/GHOST_WindowX11.h