2013-02-12 4 views
1

Мы загружаем текстуры через SDL_image, то мы загружаем их в OpenGL через textimage2d:SDL OpenGL SDL_image Mac: Display Output (сдвинуты цвета)

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture->w, texture->h, 
0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, (GLuint**)texture->pixels); 

На моем окна машины, которая работает нормально, но на моих друзей Mac машины, цвета, кажется, смещены вокруг. На его дисплее он получил синюю синеватую текстуру. Конечно, это должно иметь дело с внутренним форматом (здесь GL_BGRA_EXT). Мы попробовали все, что мы нашли и выполнили (правильно скомпилировать), но ни один не дает правильный вывод для mac. Любые идеи, как получить представление о том, как mac вычисляет массив пикселей, предоставленный SDL_image?

+0

«* internalFormat (здесь GL_BGRA_EXT) *« Нет, внутренним форматом текстуры является GL_RGBA. Кроме того, трудно понять, что не так, если вы не можете описать реальную проблему лучше, чем «синяя синеватая текстура». Не можете ли вы предоставить скриншот проблемы и исправленной версии? –

ответ

0

Хорошо, благодаря вашим ссылкам, некоторым исследованиям и потерянным клеткам мозга, мы пришли к выводу, что мы можем определить порядок пиксельных данных через определенные маски на поверхности sdl (surface-> format-> Rmask), чтобы решить если мы используем GL_UNSIGNED_INT_8_8_8_8 или GL_UNSIGNED_INT_8_8_8_8_REV.

0

Я еще не начал использовать SDL openGL, но вот некоторые потенциальные ключевые слова, которые могут иметь значение.

RGBA/BGRA?

Colors are off in SDL program

http://www.opengl.org/wiki/Common_Mistakes

#if for TARGET_CPU_PPC and using a consistent value like GL_RGBA for everything.

Надеется, что это может заставить вас начать.

+0

Хорошо, благодаря вашим ссылкам, некоторым исследованиям и потерянным клеткам мозга, мы пришли к результату, чтобы мы могли определить порядок пиксельных данных через определенные маски на поверхности sdl (surface-> format-> Rmask), чтобы решить, будем ли мы использовать GL_UNSIGNED_INT_8_8_8_8 или GL_UNSIGNED_INT_8_8_8_8_REV. – Jean