[FLPTK]

Fast Light Plugin Toolkit



Resources:


Fast Light Plugin Toolkit (FLPTK) is a fork of the Fast Light Toolkit (FLTK) library, adapted for the development of (and handling of multiple simultaneous) application plugin GUIs running independently from the hosting application's.

FLPTK is currently in the alpha stage, and no official release has been made as of yet. A development version which can be built on *nix as well as using MinGW/MSYS under Windows can be found within the git repository (the master branch is kept more or less stable), as well as chosen snapshots in the files section.

History

This project began in 2006 when the project founder needed a cross-platform GUI toolkit that could be used with plugins loaded by applications where the plugins run their own GUIs independently of that of the host. Beginning at that point with development on Windows for the project to use the toolkit, FLTK was a very nice fit except that it wasn't possible to run several plugins utilizing it at once in a hosting application. Neither static nor dynamic linking worked, for different reasons.

The solution was to modify FLTK. FLTK2 was chosen as a base to work with, and the initial work was to build into it a system that would run the updating loop in a dedicated thread, new GUIs using the same instance of the shared library simply bringing their GUIs into the same loop as managed by the library.

There came the need for extensive modifications to separate some global data into different instances for different GUIs using the same instance of the library. This involved making a Context class holding this data, and making it available to all code using its data. The first model chosen for the latter required massive changes to the codebase, including scrapping a lot of things. The second model – the active Context as a global state, with widgets being assigned a Context from said state upon creation – made the task a lot easier, and made it possible to reverse many divergences from FLTK2.

Since then, the FLPTK library has undergone a number of tweaks and changes smaller in scope, as well as periodic updates bringing in relevant changes from FLTK2. FLTK2 seems to be dying as a project, FLTK1.3 – and possibly a future FLTK3 based on it – having become its likely successor. In hindsight, perhaps it would have been better to base this project on FLTK1; on the other hand, should FLTK3 – FLTK1.3 turned similar in API to FLTK2 – come to fruition, porting and adopting relevant parts of its codebase may become possible.

Present

Much of the functionality (mainly widgets) long ago removed during earlier stages of the project has now been re-ported where possible and relevant. In addition, a few fixes and patches for FLTK2 – as well as the changes of its widget_has_children branch – have been applied, these not being part of the official FLTK2. FLPTK does however have some bugs and problems (in part due to incompleteness of some of the changes) of its own in addition to some still-missing FLTK2 functionality.

FLPTK – at any rate the core functionality and most widgets including especially valuator-related widgets – has long been usable on Windows. The X11 port has progressed since work on the project was revived in late 2009 and now appears functionally equal.

Near-future development is presently geared towards bringing FLPTK internals closer to those of the newer version 1.3+ FLTK series, fixing remaining issues, adding a few useful valuators, and perhaps further as-yet unconceived-of redesigns of API and/or internals for parts of the library.

Differences from FLTK2

In short:

SourceForge.net Logo