A scream in space.

I know no-one can hear, but what is the point of telling us that we have to look into devices.xml to determine the display characteristics of the devices, which provides a decode for the internal font names but then fail to provide any specification of these fonts? 

For example, the fenix6xpro's font:"xtiny" is listed as "FNT_FENIX6_CDPG_ROBOTO_13B" . 

Nowhere is there a description of FNT_FENIX6_CDPG_ROBOTO_13B, so we have to squander frustrating time in trial and error to find out how it will actually appear on the screen.

The embedded numbers mean something to the authors, but there's no indication of what!

I have already spent hours on the aesthetics of screen layouts, initially for the VA-HR, then the 240x240 round screens, and am now having to waste hours on the mind-nubmingly tedious task of achieving the same result with the latest batch of screens that have different sizes and fonts.

Why are we not demanding better from Garmin?

  • The easiest thing is maybe just throw together a simple app to see what you want to know.  I have an app like that that's the first thing I run when a new devices comes out, and one of the things it does is show me the fonts.

    On the f6 I see this for example:

    Each font, with a line to see white space above and below, along with the value from dc.getFontHeight()

    the code is

    var y=titleH;
    dc.drawText(width/2,0,Gfx.FONT_TINY,"Reg",Gfx.TEXT_JUSTIFY_CENTER);
    y=doFont(dc,width/2,y,Gfx.FONT_LARGE,"Large");
    y=doFont(dc,width/2,y,Gfx.FONT_MEDIUM,"Medium");
    y=doFont(dc,width/2,y,Gfx.FONT_SMALL,"Small");
    y=doFont(dc,width/2,y,Gfx.FONT_TINY,"Tiny");
    y=doFont(dc,width/2,y,Gfx.FONT_XTINY,"Xtiny");

    Using the function:

        
        function doFont(dc,x,y,font,str) {
        	dc.drawLine(0,y,width,y);
        	dc.drawText(x,y,font,str,Gfx.TEXT_JUSTIFY_CENTER);
        	var x2=x+dc.getTextWidthInPixels(str,font)/2+5;
        	var fh=dc.getFontHeight(font);
        	dc.drawText(x2,y+fh/2,Gfx.FONT_XTINY,""+fh,Gfx.TEXT_JUSTIFY_LEFT|Gfx.TEXT_JUSTIFY_VCENTER);
        	y=y+fh;
        	dc.drawLine(0,y,width,y);
        	return y;    
        }

    Draw a top line, the font at that same y, and then another line based on the font height 

  • Precisely!

    And that's only a part of the story - try adjusting code to align text and number fonts vertically and horizontally like this across the various platforms!

    In order help Garmin sell their new devices, each developer has to build his/her own reverse engineering tool to extract these nuggets! 

    The information already exists at Garmin.That's why it's called "reverse engineering"!