Use shared instances of TextRenderer rather than creating new ones (mostly applicable to TextOverlay); allow configuring the hostname for Faceshift to connect to.

Nevermind, I found an answer to my question on stackoverflow:

    A static free-function means that the function will not be referred to by any other translation unit, and thus the linker can ignore it entirely. This has a small number of purposes:

    (1) Can be used in a cpp file to guarantee that the function is never used from any other file.
    (2) Can be put in a header and every file will have it's own copy of the function. Not useful, since inline does pretty much the same thing.
    (3) Speeds up link time by reducing work
    (4) Can put a function with the same name in each TU, and they can all do different things. For instance, you could put a static void log(const char*) {} in each cpp file, and they could each all log in a different way.