First the easy part. Uploading to here.
When editing a post (or entering new thread, you are already there), click on the advanced button and it will take you to a more complete edigint setup... Including # button for code tags and the like. But below the editing area on the page, will be a section for Attachments and a button <Manage Attachments> , Click on it. Bring up dialog, In there click on <Add Files> button, which will take to a dialog to pick which file(s) to upload... Most files need to be put in a zip file or the like before it can be uploaded.
the drawChar function if I remember correctly, draws from the built in font. For each character in this font there are 5 bytes of data The where each byte gives you 8 columns of data for one row, So the font is 5x8 where we then skip a sixth pixel.
In simplest from, the code simply walks through those 5 bytes, and if a bit is set, in those bytes it sets the corresponding pixel (if font size == 1) to the current font color, if the bit is zero, the drawchar will in transparent mode setFontColor(fgcolor), will not touch that pixel on the display. On the other hand if in opaque mode (setFontColor(fgColor, bgColor), it will set those pixels to the background color.
Note: if text font size is not set to 1, then instead of setting one pixel in each of these cases it fills a rectangle (size, size) to the appropriate color..
This code in the Adafruit_ILI9341 library is much more simplistic and does more or less exactly what I said... However the code in this library tries to be smarter and instead of simply dealing with each pixel (or rectangle), there are at least three sections in this function.
It first branches on if we are Transparent or Opaque.
If Transparent
it special cases when drawing with text size 1... (pixels)
retangles or like instead of pixels.
what it is trying to do is if there are multiple 1's in a row in a column, it tries to output all of those in one drawRect, drawFastVLine or the like as to speed things up as to not have to tell the system to reset the position to output the next pixel to...
If Opaque: It tries to work to draw it like it is simply one bitmap. That is it tells the system it is going to output all of the bytes for the rectangle associated with drawing that charcter and then figures out if each pixel is FG or BG color... This mode is a lot faster than the transparent mode.
Again sorry if I did not explain it overly clearly. But hope it helps