У меня есть этот кусок кода
glReadBuffer( GL_FRONT );
glReadPixels( 0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, buffer );
Это прекрасно работает во всех видеокартах Nvidia и AMD, которые я пробовал, но не работает почти во всех встроенных видео Intel, которые я пробовал. На самом деле он работает в очень старом 945GME, но не работает во всех остальных. Вместо скриншота я получаю черный экран.
Если это помогает, я работаю с движком Doom3, и этот код получен из встроенного кода захвата экрана. Кстати, даже с оригинальной игрой я не могу делать снимки экрана на этих устройствах Intel в любом случае. Я предполагаю, что они не реализуют стандарт правильно или что-то. Есть ли обходной путь для этого?