PUI: Difference between revisions

Jump to navigation Jump to search
188 bytes removed ,  3 November 2015
Remove Integrated Qt5 Launcher, because that is a replacement for FGRun, not PUI. Plus other things
No edit summary
(Remove Integrated Qt5 Launcher, because that is a replacement for FGRun, not PUI. Plus other things)
Line 1: Line 1:
[[File:Custom-autopilot-dialog.png|right|200px]]
[[File:Custom-autopilot-dialog.png|right|200px]]
'''PUI''' is the standard GUI engine used in FlightGear, it is part of [[Plib]] and is using raw, fixed-pipeline, [[OpenGL]] code internally (no [[OpenSceneGraph]]). PUI provides a fairly basic, but robust, set of widgets. PUI is also used for rendering the [[Menubar]]:
'''PUI''' is the standard GUI engine used in FlightGear, it is part of [[PLIB]] and is using raw, fixed-pipeline, [[OpenGL]] code internally (no [[OpenSceneGraph]]). PUI provides a fairly basic, but robust, set of widgets. PUI is also used for rendering the [[Menubar]]:


[[File:menubar2.jpg|517px]]
[[File:menubar2.jpg|517px]]


PUI dialogs are standard [[PropertyList XML File]]s that are stored in $FG_ROOT/gui/dialogs, they can contain the widgets mentioned in $FG_ROOT/Docs/README.gui, using a simple layout engine discussed in $FG_ROOT/Docs/README.layout, and bindings using a combination of so called fgcommands and custom [[Nasal]] code. In addition, each PUI/XML dialog may contain Nasal sections that are executed when opening/closing the dialog.
PUI dialogs are standard [[PropertyList XML File]]s that are stored in $FG_ROOT/gui/dialogs, they can contain the widgets mentioned in {{readme file|gui}}, using a simple layout engine discussed in {{readme file|layout}}, and bindings using a combination of so called fgcommands and custom [[Nasal]] code. In addition, each PUI/XML dialog may contain Nasal sections that are executed when opening/closing the dialog.


PUI/XML dialogs can be loaded, updated and closed using a handful of fgcommands:
PUI/XML dialogs can be loaded, updated and closed using a handful of fgcommands:
Line 16: Line 16:
PUI is also known to affect rendering performance quite significantly, while also preventing FlightGear from using a more recent version of OpenGL.  
PUI is also known to affect rendering performance quite significantly, while also preventing FlightGear from using a more recent version of OpenGL.  


In addition, OpenSceneGraph (OSG) can obviously not help optimize any PUI related GL code.
In addition, [[OpenSceneGraph]] (OSG) can obviously not help optimize any PUI related GL code.


For these reasons, we're hoping to phase out PUI in FlightGear.
For these reasons, we're hoping to phase out PUI in FlightGear.


As of late 2015, there is heavy activity towards providing alternatives to a PUI-based UI:
As of late 2015, there is heavy activity towards providing alternatives to a PUI-based UI:
* [[Integrated Qt5 Launcher]] (depending on Qt5, using multi-threading)
* [[Integrated Web GUI]] (external, browser-based - fully asynchronous)
* [[Integrated Web GUI]] (external, browser-based - fully asynchronous)
* [[Howto:Processing legacy PUI dialogs using Canvas]] (internal, using the [[Canvas]] system and a simple [[Nasal]] parser to deal with existing PUI/XML dialogs)
* [[Howto:Processing legacy PUI dialogs using Canvas]] (internal, using the [[Canvas]] system and a simple [[Nasal]] parser to deal with existing PUI/XML dialogs)


<gallery>
<gallery mode="packed">
Early-Phi-screen shot.PNG| Screen shot showing [[Phi]] (external, browser-based)
Early-Phi-screen shot.PNG|Screenshot showing [[Phi]]
Qt launcher for FlightGear 3.5 on Windows 7 addons.jpg| Screen shot showing [[Integrated Qt5 Launcher]]
About-dialog-rendered-by-canvas.png|Screenshot showing a dialog rendered by the [[Howto:Processing legacy PUI dialogs using Canvas|pui2canvas parser]]
About-dialog-rendered-by-canvas.png|Screen shot showing dialog rendered by the [[Howto:Processing legacy PUI dialogs using Canvas|pui2canvas parser]]
</gallery>
<gallery>
 


<references/>
[[Category:Software]]

Navigation menu