It needs the HWND before init() can be called. It gets the HDC itself and creates the HGLRC.
Note: we don't really know much about the intricacies of Windows programming. Thus the way we do things might be suboptimal, or maybe even illegal. Comments welcome.
1.4.3