OpenGL на Mac OSX - PullRequest
       36

OpenGL на Mac OSX

0 голосов
/ 04 ноября 2011

Я разрабатываю приложение для рисования графики или текстур в NSOpenGLView. Теперь я закончил работу для рисования, она работает нормально. Но у меня проблема с экспортом данных пикселей в NSImage. Я установил режим чтения с помощью glreadbuffer() , И попробовал все параметры (GL_FRONT_LEFTGL_FRONT_RIGHTGL_BACK_LEFTGL_BACK_RIGHTGL_FRONTGL_BACKGL_LEFTGL_RIGHTGL_FRONT_AND_BACKGL_AUX0GL_AUX1GL_AUX2GL_AUX3) , Я не получил данные пикселей.

Настройка пиксельного формата:

NSOpenGLPixelFormatAttribute attribsNice[] = {
    NSOpenGLPFAAccelerated,
    NSOpenGLPFADoubleBuffer,
    NSOpenGLPFADepthSize, 24,
    NSOpenGLPFAAlphaSize, 8,
    NSOpenGLPFAColorSize, 24,
    NSOpenGLPFABackingStore,
    NSOpenGLPFANoRecovery,
    kCGLPFASampleBuffers, 1, kCGLPFASamples, 2,
    0};

чтение данных пикселей:

glReadBuffer(GL_BACK);
glPixelStorei(GL_PACK_ALIGNMENT, 4);
glPixelStorei(GL_PACK_ROW_LENGTH, 0);
glPixelStorei(GL_PACK_SKIP_ROWS, 0);
glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
glReadPixels(0,0,BufferSize.width,BufferSize.height,GL_RGBA,GL_UNSIGNED_BYTE,_databuffer);

или

glReadBuffer(GL_FRONT_RIGHT);
glPixelStorei(GL_PACK_ALIGNMENT, 4);
glReadPixels(0,0,width,height,GL_RGBA,GL_UNSIGNED_INT_8_8_8_8_REV,databuffer);

Я не получил данные пикселей, когда использовал двойной буфер.

...