Add TextureType and TextureFormat enum classes
Add Clang workarounds