Вот тут скрыт access violation:
result = imageLoader.LoadToTexture (textureTypes[i], GL_UNSIGNED_BYTE, GL_RGBA, GL_RGB, 0, 0);
А тут всё в порядке:
result = imageLoader.LoadToTexture (textureTypes[i], GL_UNSIGNED_BYTE, GL_RGB, GL_RGB, 0, 0);
код метода LoadToTexture
ResultCode FreeImageWrapper::LoadToTexture (GLenum iTextureType, GLenum iDataType,
GLenum iImageFormat,
GLint iInternalFormat,
GLint iLevel,
GLint iBorder) const
{
if (_dib == nullptr)
return NoImageLoaded;
/// Пишем данные
glTexImage2D (iTextureType, iLevel, iInternalFormat, GetImageWidth (), GetImageHeight (),
iBorder, iImageFormat, iDataType, GetImageRawData ());
return Success;
}