Board index FlightGear Development Canvas

Canvas G1000

Canvas is FlightGear's new fully scriptable 2D drawing system that will allow you to easily create new instruments, HUDs and even GUI dialogs and custom GUI widgets, without having to write C++ code and without having to rebuild FlightGear.

Re: Canvas G1000

Postby Hooray » Tue Oct 30, 2018 5:05 pm

Yes, to be fair though, I believe that there are a handful of aircraft using very custom Canvas displays, including code written by Omega95 and artix, who came up with custom Airbus displays and even a VSD if I remember correctly. I think rleibner also implemented the equivalent of a VSD inside one of his ATC related addons.

So depending on the functionality that the FG1000 has to offer, some of this may turn out rather useful and should probably be revisited.

Don't get me wrong, I truly believe that the FG1000 has come a long way already, but I think it is particularly important to also keep the offline use-case in mind (like Thorsten repeatedly mentioned on the devel list and the forum), i.e. offline is equivalent to people behind a low-bandwidth connection, and here relying on TerraSync, package managers, catalog systems and online chart services/web APIs is rather problematic, and it will cripple such fgfs versions for people downloading them years from now, because there are too many hard-coded assumptions about external services that may no longer be available.

Thus, I believe it is important to keep track of what people are coming up with and see if/how this can be added upstream, so that we provide a fallback mechanism for people whose fgfs box may not be behind a broadband connection.

Besides, from an encapsulation standpoint it's a good idea for such displays to use a single back-end/mechanism, even if that should be slow, because it can be easily updated in a holistic fashion, so that all places (aircraft) using such displays/layers will benefit automatically (imagine groundnet parsing or taxiway processing being implemented in C++ - as a matter of fact, we do have such C++ code readily available in Dave Luff's TaxiDraw code).
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11192
Joined: Tue Mar 25, 2008 8:40 am

Re: Canvas G1000

Postby Michat » Thu Nov 01, 2018 4:40 pm

BREAK BREAK and hello.
--------------------------------------------------------------------------------------

I've visited http://wiki.flightgear.org/FG1000#Page_Status where it said: Airport Information "Needs additional page of AOPA information, which we don't have "

Notice that I did provide four years ago 2 SVG files: All AOPA'S simbols, and all Jeppesen IFR simbols as well. Perhaps could be useful by Stuart in this task.

---------------------------------------------------------------------------------------

Best regards
User avatar
Michat
 
Posts: 925
Joined: Mon Jan 25, 2010 6:24 pm
Location: Spain
Version: 191b
OS: GNewSense

Re: Canvas G1000

Postby iamzac » Thu Nov 29, 2018 6:50 am

I want to report a problem with the fg1000 from the latest 2008.3.1 RC build: the antialiasing doesn't seem to work so the displays look unreadable unless I zoom very close.
The canvas zkv1000 I was using until now doesn't have this problem, and other canvas displays such as the IDG airbuses also look fine.
Once zoomed in it does look incredibly sharp and nice but it's not very practical.
I tried to fix this by forcing various different settings from the graphics driver control panel and forcing antialiasing transparency 4x supersample (along with standard antialiasing 4x) does fix it but it also halves the frame rate without bringing any other noticeable benefits so it's not a useful solution.

And not only the displayed lines look bad, I can see other things that should be invisible such as a grid on top on the map (I assume it's made from several squares).

I tested this with a dr400-dauphin modified by me and the fg1000 is added at a 5 degree pitch angle, although this shouldn't matter, in fact it should help.

Also when flying there are some "hiccups" or stuttering from time to time, I thing they might be when the map gets updated or cached (I have a very slow hard disk).

I added it as an option that can be toggled after the plane is loaded and the initialization is done only after it's toggled so the hiccups and changes in performance can be easily noticed after it's turned on (you can notice 3 different performances with classic instruments and fg1000 not loaded or initialized, with fg1000 loaded and with fg1000 loaded and hidden)
Hiding it back does not stop the frame rate hiccups, it's still running in the background, I tried to stop it completely by using functions from the interface controller and reinitializing the variables to nil but that doesn't stop it and in fact creates multiple instances of it if I toggle like this multiple times destroying the frame rate completely so I only hide it and show it again (along with select/deselect)

Also when changing some settings on the MFD they work very slow and some dialogs remain on the screen and can't be removed but I didn't document these issues properly to give more details.

Only the antialiasing issue is significant, the other issues are not so bad and the frame rate hiccup might be from my very slow hard disk.

Sorry if these problems are already reported, I didn't have time to read this whole thread.
iamzac
 
Posts: 81
Joined: Fri Nov 07, 2014 7:52 am
OS: Windows / Kubuntu

Re: Canvas G1000

Postby legoboyvdlp » Fri Dec 07, 2018 1:36 pm

I wonder is it possible for the developer to change the update rate? The MFD is in particular quite jerky, especially the engine instrumnts.

Furthermore, it seems canvas doesn't have anti-aliasing applied to it (see the dr400 which uses the G1000), so the displays are quite hard to read when zoomed out.
User avatar
legoboyvdlp
 
Posts: 5832
Joined: Sat Jul 26, 2014 1:28 am
Callsign: YV-LEGO
Version: 2018.3.1
OS: Windows 10 HP

Re: Canvas G1000

Postby Hooray » Fri Dec 07, 2018 3:23 pm

legoboyvdlp wrote in Fri Dec 07, 2018 1:36 pm:I wonder is it possible for the developer to change the update rate? The MFD is in particular quite jerky, especially the engine instrumnts..


I guess once could add a device configuration page that makes it possible for users to customize these things according their use-case (hardware), and then save everything in $FG_HOME via the userarchive attribute.

Such a page could be in line with other device pages, but it would be used to override/customize the value of defaults that would otherwise be used (think resolution, colors, update rates etc)
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11192
Joined: Tue Mar 25, 2008 8:40 am

Re: Canvas G1000

Postby legoboyvdlp » Fri Dec 07, 2018 3:43 pm

What I would suggest would probably be to add something to the .new function (I assume there is one?) allowing configuration of this aircraft side, as in:

Code: Select all
G1000.new(displayRate=0.05)
User avatar
legoboyvdlp
 
Posts: 5832
Joined: Sat Jul 26, 2014 1:28 am
Callsign: YV-LEGO
Version: 2018.3.1
OS: Windows 10 HP

Re: Canvas G1000

Postby Hooray » Fri Dec 07, 2018 4:09 pm

yes, that would obviously work (in fact, it's exactly what the ND/MapStructure stuff is using, even though the syntax is a bit different to pass named defaults). That being said, it's not a good idea to hard-code this, at the very least there should be a device (=instance) specific property that is being watched by a listener to stop/update and restart the maketimer object handling the device. That way, it is trivial for people to tinker with different values matching their computers/settings etc.

Equally, this could be done using the property browser, so would not need a dedicated UI, even though that might still be worthwhile thing to add in the mid-term, as a matter of fact, the MapStructure framework is designed with built-in benchmarking support, so that people tinkering with different maps can better understand where performance/time is spent when updating a map and its various layers.

This sounds very technical and fancy, but all it is doing is the equivalent of running debug.benchmark() inside call() (=2 systime() calls) and logging the delta to the console or a property (actually, just an optional callback).

That way, you can get all sorts of nice stats for your instrument/map, which will nicely show where your time is spent updating the instrument:

Image
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11192
Joined: Tue Mar 25, 2008 8:40 am

Previous

Return to Canvas

Who is online

Users browsing this forum: No registered users and 2 guests