FlightGear Newsletter May 2014: Difference between revisions

Jump to navigation Jump to search
m
Line 93: Line 93:
As part of increasingly adopting our [[Canvas]] 2D rendering framework and in order to help [[Unifying the 2D rendering backend via canvas]], the canvas-based [[Map]] dialog is currently being overhauled by Philosopher and Hooray, who are hoping to finalize this in time for 3.2 - the hard-coded [[Map]] dialog will obviously remain functional for at least one full release cycle until it can be phased out by a pure [[Nasal]]/[[Canvas]] based solution using the new [[MapStructure]] framework. Currently, this is all still just available in the '''canvas-hackers''' team clone on gitorious - but we're hoping to implement the main missing features within the next few weeks.
As part of increasingly adopting our [[Canvas]] 2D rendering framework and in order to help [[Unifying the 2D rendering backend via canvas]], the canvas-based [[Map]] dialog is currently being overhauled by Philosopher and Hooray, who are hoping to finalize this in time for 3.2 - the hard-coded [[Map]] dialog will obviously remain functional for at least one full release cycle until it can be phased out by a pure [[Nasal]]/[[Canvas]] based solution using the new [[MapStructure]] framework. Currently, this is all still just available in the '''canvas-hackers''' team clone on gitorious - but we're hoping to implement the main missing features within the next few weeks.


Currently, the amount of code required to display a full map dialog is surprisingly small, i.e. under 30 lines typically.
Currently, the amount of code required to display a full map dialog is surprisingly small, i.e. under 30 lines typically. Most of the other code is just about customizing appearance of the map and its various layers, i.e. styling.  


Spare time permitting, Philosopher and Hooray may also explore porting Stuart's airport selection dialog to get rid of the original mapping helpers there and use [[MapStructure]] instead. However, this will be a bit more involved, as it requires updating and porting a few non-MapStructure layers that are currently not yet used elsewhere, including some of the more sophisticated layers, e.g. for drawing airports, runways, taxiways and parking spots/heliports.
Spare time permitting, Philosopher and Hooray may also explore porting Stuart's airport selection dialog to get rid of the original mapping helpers there and use [[MapStructure]] instead. However, this will be a bit more involved, as it requires updating and porting a few non-MapStructure layers that are currently not yet used elsewhere, including some of the more sophisticated layers, e.g. for drawing airports, runways, taxiways and parking spots/heliports.


One major addition that can already be seen in the screen shot below is that styling support is now becoming a key concept of the [[MapStructure]] framework, which means that symbols and appearance can be easily customized by non-programmers just by changing some values for things like font, font size, colors, line width etc. Sooner or later, we're also hoping to support replacing image sets completely, e.g. by using the vector art provided by Michat and pommesschranke.  
One major addition that can already be seen in the screen shot below is that styling support is now becoming a key concept of the [[MapStructure]] framework, which means that symbols and appearance can be easily customized by non-programmers just by changing some values for things like font, font size, colors, line width etc. Sooner or later, we're also hoping to support replacing image sets completely, e.g. by using the vector artwork provided by Michat and pommesschranke.  
 
Internally, the code rendering the screen shots shown below is 100% identical with the back-end code by Gijs' [[NavDisplay]] for rendering mapping layers, and it's already making use of symbol instancing, i.e. caching, to support faster updates and better frame rates/performance. Also, we can already show multiple '''independent''' instances of such dialogs/maps/instruments at the same time. 


Furthermore, we're also exploring the possibility of supporting interactive layers, these would be layers that respond to GUI events (mouse for now). Initially, this will be primarily needed for supporting zooming/panning functionality, which is already supported by the existing airport selection dialog. But we've also seen some interesting discussions on the forum about extending the [[Map]] dialog to include navigation tools for flight planning purposes, like for example having an interactive protractor.
Furthermore, we're also exploring the possibility of supporting interactive layers, these would be layers that respond to GUI events (mouse for now). Initially, this will be primarily needed for supporting zooming/panning functionality, which is already supported by the existing airport selection dialog. But we've also seen some interesting discussions on the forum about extending the [[Map]] dialog to include navigation tools for flight planning purposes, like for example having an interactive protractor.

Navigation menu