Я использую GLES2 и EGL с PyOpenGL, и я звоню glClearColor(0.0, 0.0, 0.0, 1.0)
. После glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
я считываю очищенные значения цвета в буфер и заметил, что альфа-значение установлено на -1 вместо 255 [(2 ^ 8-1) * 1]. В чем может быть причина этого переполнения?
Система: NanoPi M1 Plus с графическим процессором Mali400.
Код:
glClearColor(0.0, 0.0, 0.0, 1.0)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
eglSwapBuffers(display, surface)
buffer = arrays.GLcharArray.asArray(np.empty(1000 * 2 * 4, np.ubyte))
print("\nBuffer before : ", buffer[:20])
glReadPixels(0, 0, 1000, 2, GL_RGBA, GL_UNSIGNED_BYTE, buffer)
print("Buffer after: ", buffer[0:20])
Вывод:
Buffer before : [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
Buffer after: [ 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1 0 0 0 -1]
Изменить:
Проблема возникает для всех каналов: glClearColor(1.0,1.0,1.0,1.0)
дает мне буфер [-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]