|
|
+1 looking forward to test it in the future (waiting for Slackware
upgrade first).
Best,
Sanel
Manolo <manolo.gouy@gmail.com> writes:
> I'd like to invite fellow FLTK developers to vote about
> adding a Wayland platform to the FLTK library.
> ++++++++++++++++
> Manolo
>
>
> The candidate code is in branch "wayland" of
> https://github.com/ManoloFLTK/fltk
> See file README.Wayland.txt therein for installation instructions, including
> a short list of required Debian packages.
> That software should install on any Wayland-running Linux system.
> It's been tested on Debian and Ubuntu.
> The new code contains no change to platform-independent FLTK code;
> it's therefore completely compatible with extant FLTK user code.
>
> Major features of the Wayland branch
> ====================================
>
> * FLTK uses the Wayland protocol for its windowing,
> Cairo or OpenGL (EGL, really) for its drawing, Pango for font handling and
> text drawing.
> Copy/paste of text or images, and drag-n-drop of text are supported.
>
> * Both CMake-based and configure-based building methods are possible.
> With both, the install and build shared libs options are possible.
>
> * All test/ and examples/ apps build and run.
>
> * CJ(K?) text input methods, dead keys (important with some keyboard
> layouts) and
> compose keys are supported.
>
> * Wayland integrates a support for HighDPI displays in the form of an
> integer-valued
> scale factor (typically, 200 % on a standard HighDPI display) recognized by
> FLTK.
> In addition, the user can scale all FLTK windows up and down with ctrl/+/-/
> keys.
>
> * The code has been tested using 3 distinct Wayland implementations:
> Mutter (that of Gnome), Weston (which is extremely rudimentary and has
> bugs), and KDE.
>
> * User applications should build and run under the Wayland platform without
> source code change. Nevertheless, X11-specific code delimited by
> #if !defined(__APPLE__) && !defined(_WIN32)
> ... X11-specific code ...
> #endif
> will choke at compile-time because it will expose X11-specific function
> calls. Such
> source code should be changed to :
> #include <FL/fl_config.h>
> #if defined(FLTK_USE_X11)
> ... X11-specific code ...
> #endif
> which is the new, correct way to identify X11-specific code in 1.4
>
> * `fltk-config --cxxflags --ldflags` can be used in makefiles as usual.
>
> * OpenGL and GLUT are supported as for other FLTK platforms. OpenGL3 is
> supported too,
> but a minor source code change is required after the glewInit() call :
> GLenum err = glewInit(); // defines pters to functions of OpenGL V 1.2
> and above
> #ifdef FLTK_USE_WAYLAND
> if (err == GLEW_ERROR_NO_GLX_DISPLAY) err = GLEW_OK;
> #endif
> That's because glewInit() returns an error code value in the Wayland
> context.
>
> * The Wayland protocol accomodates either client-based or server-based
> window
> decoration. The Gnome and Weston Wayland implementations do not contain
> server-based
> window decoration and instead expect each client program to decorate its
> windows.
> For that reason, the FLTK library is extended by a library, libdecor,
> (see https://gitlab.gnome.org/jadahl/libdecor) which produces window
> decoration
> for each FLTK client program. That library is governed by the MIT license
> which
> allows unrestricted use, even in a commercial setting, but asks for a copy
> of the
> license to be included in any copy of the software.
> The CMake-based build method has an option to use the system-level
> libdecor package available on recent Linux distributions. FLTK uses by
> default a
> copy of libdecor bundled into its source tree.
>
> * The FLTK/Cairo interface is unchanged : test/cairo_test runs OK.
>
> * Some platform-related code is identical for the Wayland and X11 platforms.
> Timeout support is in that case.
> The new code defines a new class, Fl_Nix_System_Driver, where all such code
> is located.
> After inclusion of the Wayland branch, the X11-platform code will also use
> class Fl_Nix_System_Driver.
>
> * The complete FLTK drawing API is implemented using Cairo (plus Pango for
> text).
> This opens the possibility to define in the future a new option for the X11
> platform
> of FLTK where all drawing would be Cairo-based, and thus antialiased.
>
>
> Known limitations of the Wayland branch
> =======================================
>
> * It's not yet been tested on a setting with several displays, but should
> accomodate
> that in principle.
>
> * Wayland, deliberately as a security measure, keeps client programs
> ignorant
> of the position of a window in a display or of whether it is minimized.
> Consequently, Fl_Window::position(x, y) has no effect except for subwindows
> and
> menu and tooltip windows, and Fl_Window::show() has no effect on a
> minimized window.
>
> * When running Fl_Native_File_Chooser, the GTK file chooser window is not
> made
> transient for the originating FLTK window, as it should, because the GTK
> API necessary
> for that doesn't exist or has not been identified.
>
> --
> You received this message because you are subscribed to the Google Groups "fltk.coredev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to fltkcoredev+unsubscribe@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/fltkcoredev/53ecaf4c-39ff-4513-b4c5-e8e0136839b3n%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "fltk.coredev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fltkcoredev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fltkcoredev/87czl6xsic.fsf%40example.com.
[ Direct Link to Message ] | |
|
| |