Следующий код не записывает данные в задний буфер на встроенных видеокартах Intel, например, на MacBook. На картах ATI, таких как в iMac, он обращается к заднему буферу. Ширина и высота правильные (и буфер 800x600), а m_PixelBuffer правильно заполнен 0xAA00AA00.
Мое лучшее предположение на данный момент заключается в том, что с набором glWindowPos что-то не так. Я в настоящее время не устанавливаю его (или положение растра), и когда я получаю GL_CURRENT_RASTER_POSITION, я заметил, что по умолчанию на карте ATI 0,0,0,0, а Intel - 0,0,0,1. Когда я устанавливаю растровое положение на карте ATI равным 0,0,0,1, я получаю тот же результат, что и карта Intel, в обратный буфер ничего не выводится. Я пропускаю какое-то состояние трансформации? Это двумерное приложение, поэтому преобразование вида очень простое.
glDrawPixels(GetBufferWidth(), GetBufferHeight(), GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, m_PixelBuffer);
Любую дополнительную информацию, которую я могу предоставить, пожалуйста, спросите. Я в значительной степени новичок в OpenGL и Mac, поэтому я не знаю, предоставляю ли я достаточно информации.