examples: add -vo option
factory: id must static and defined. extern results in a link error

So vaules in XXXTypes.h and XXXOO.cpp must be the same
TODO: why can not find out extern value in dll?
Add renderer factory
gl: vc does not have glext.h