Можно загрузить файл обычным образом, а затем отобразить вызовом функции glDrawPixels.
glDrawPixels(width, height, GL_RGB, GL_FLOAT, pixels);
Дополнено.
Если нужно читать bmp, то это просто: fopen/fread/fclose
и т.п. При этом выделение массива пикселей происходит согласно формату файла. Чтение произвольной графики стандартными средствами не осуществить, нужно подключать внешнюю библиотеку. Можно взять FreeImage, ImageMagic, DevIL, CImg Library, Boost GIL или еще что-нибудь.
Например, на FreeImage загрузка битмапа выглядит так:
FIBITMAP *bitmap = FreeImage_Load(FIF_BMP, “picture.bmp”, BMP_DEFAULT);
if (bitmap) {
// Загружено
// Отображаем в OpenGL
FreeImage_Unload(bitmap);
}
По стилистике кода DevIL достаточно хорошо подходит к OpenGL. А после того, как получен массив пискелей, он уже отображается с помощью приведенной выше функции glDrawPixels.