FlightGear Newsletter May 2014: Difference between revisions

Jump to navigation Jump to search
Line 11: Line 11:
=== Project Rembrandt ===
=== Project Rembrandt ===
A number of Mac users have been reporting issues related to running [[Project Rembrandt]] (deferred rendering/shadows) on Mac OSX with ATI/AMD GPUS, we are now looking for Mac users to provide feedback on running Rembrandt on Mac OSX, required information includes errors and warnings shown during startup/runtime, but also screen shots showing any issues. Please see: [[Project Rembrandt#Mac Issues]].
A number of Mac users have been reporting issues related to running [[Project Rembrandt]] (deferred rendering/shadows) on Mac OSX with ATI/AMD GPUS, we are now looking for Mac users to provide feedback on running Rembrandt on Mac OSX, required information includes errors and warnings shown during startup/runtime, but also screen shots showing any issues. Please see: [[Project Rembrandt#Mac Issues]].
=== A Canvas-based Map dialog ===
{{WIP}}
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.
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.
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.
After reviewing the requirements to make this happen, we've come to the conclusion that we're almost halfway there - the MapStructure framework can already load and display most SVG images, and animating them to respond to GUI events is also supported through [[Canvas - Event Handling]]. So it's really just a matter of integrating things a little more and coming up with some helpers for "interactive" or even "editor" layers, which should also come in handy for the [[FlightGear Missions and Adventures]] effort, an experimental layer has already been added to display tutorial targets as a conventional MapStructure layer.
Conceptually, it may even be possible to dynamically place 3D models via geo.put_model() by using an interactive MapStructure layer that turns screen coordinates into lat/lon pairs and uses them in the put_model() call.
[[File:Map-canvas-dialog.png]]


=== Canvas System ===
=== Canvas System ===

Navigation menu