Carregando um arquivo tga / bmp em C ++ / OpenGL

Estou tentando carregar um arquivo tga / bmp. Isso funciona bem, mas o resultado final é assim:

A imagem que estou tentando carregar parece com isso:

Alguns dos códigos que estou usando:

GLuint texture;
const char* filename = "/Users/Admin/Documents/Visual Studio 2013/Projects/OpenGL/OpenGL/image.tga";

unsigned char* data;
data = (unsigned char *) malloc(128 * 128 * 3);
FILE* f;
fopen_s(&f, filename, "rb");
fread(data, 128 * 128 * 3, 1, f);

glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 128, 128, 0, GL_RGB, GL_UNSIGNED_BYTE, data);

Alguém tem uma ideia do que estou fazendo errado?

questionAnswers(2)

yourAnswerToTheQuestion