20,741
edits
No edit summary |
m (pm2wiki) |
||
Line 5: | Line 5: | ||
{{Canvas Frameworks}} | {{Canvas Frameworks}} | ||
----------- | |||
While there is a [[Mailing list]] in comparison to the forum, it's fairly inactive these days and it's primarily about C++ level CORE development. | |||
People don't need to have fgdata commit privileges to contribute. However, you should obviously know a little about [[Nasal]] scripting, OOP and [[Canvas]]. | For Canvas related things, we often also discuss core changes on the forum, because we have a dedicated subforum here, and because TheTom, as the main Canvas core developer, is very active on the forum and usually handles support requests or feature requests pretty promptly. | ||
We're hoping to regularly sync our work with fgdata upstream - realistically, that ones once in 6-8 weeks probably. | |||
Regarding wiki articles and Canvas related priorities. | |||
Currently, the focus/manpower is mostly on 1) re-implementing our existing GUI on top of Canvas through custom (scripted) widgets: [[Canvas Widgets]] (mostly handled by TheTom & Zakalawe, both of them core devs). | |||
And then, we're busy re-implementing existing hard-coded "glass" instruments using Canvas, i.e. stuff like the ND, PFD etc. | |||
For that, we try to generalize, unify and extend existing code and make it use Canvas, by coming up with custom scripting-space frameworks for the main use-cases. | |||
This includes things like having a dedicated [[Canvas Animation Framework]] that deals with SVG elements and animations handled via timers and listeners. | |||
But also frameworks for other MFD related purposes, such as: 1) MFDs in general, 2) PFDs, 3) NDs, 4) CDUs and 5) EFBs | |||
These are intended to be just tiny wrappers to help localize key functionality (e.g. MFD page/mode handling), so that we can easily update and optimize things, without having to touch a ton of places (aircraft/instruments/dialogs). | |||
The long-term idea is to provide scripted frameworks on top Canvas, e.g. for MFDs - and each kind of MFD would implement the corresponding MFD interface. | |||
Canvas-wise, the main trend is to increasingly modernize and unify our 2D rendering back-end by adopting canvas in several key areas by [[Unifying the 2D rendering backend via canvas]]: | |||
* glass instruments (ND/PFD) | |||
* 2D panels/instruments | |||
* HUDs | |||
* GUI dialogs/widgets | |||
We have 3 core developers and a handful of Nasal/Canvas contributors working towards this - so this is generally considered a useful thing, and several active contributors are working towards the same goal here . | |||
At the Canvas core/C++ level, there are some minor enhancements discussed/planned: [[Canvas Development]]. | |||
But anything touching the C++ code should really be coordinated with TheTom. | |||
So you can basically "pick your poison" - feel free to ask via the canvas forum for more opinions/pointers and feedback. | |||
Otherwise, there's also an issue tracker - and various wiki articles on getting started contributing/coding. | |||
For the time being there's quite some manpower in Canvas related effort - and it allows us to get rid of a ton of legacy C++ code, while also modernizing FG quite a bit, i.e. to obtain better frame rates, a more modern GUI, better consistency etc. | |||
Should you be interested in working on anything related to Canvas, we have people willing to provide mentoring through custom tutorials etc (get in touch with Hooray). | |||
The priorities are mostly those mentioned above, and there are core developers willing to commit related stuff. We'd just suggest to make sure to release early & often, so that you can gather & implement feedback early on. | |||
Feel free to get in touch via the canvas forum to get more pointers. | |||
We'd suggest to get started with just Nasal/Canvas, because there isn't much of an entry barrier - and we're still looking to port a few layers: [[Canvas MapStructure Layers]]. | |||
{{Note|People don't need to have fgdata commit privileges to contribute. However, you should obviously know a little about [[Nasal]] scripting, OOP and [[Canvas]]. | |||
We're hoping to regularly sync our work with fgdata upstream - realistically, that ones once in 6-8 weeks probably.}} | |||
<!-- | <!-- |