Я читаю данные пикселей из кадрового буфера, и все, кажется, работает, за исключением значения альфа, которое всегда равно 1,0
GLfloat lebuf[areasize * 4];
glReadPixels(xstart, ystart, partw, parth, GL_RGBA, GL_FLOAT, lebuf);
Я установил код создания окна для поддержки альфа-канала:
SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8);
Есть ли какое-то другое место, на которое я должен обратить внимание, чтобы проверить, почему альфа-канал все время равен 1.0? Еще лучше, есть ли другой способ (кроме glReadPixels) получить текстуру в память клиента из кадрового буфера?
edit : вот как я очищаю буфер:
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);