Мне нужно создать текстуру OpenGL типа GL_TEXTURE_RECTANGLE_EXT, чтобы я мог использовать
outputImageProviderFromTextureWithPixelFormat:pixelsWide:pixelsHigh:name:flipped:releaseCallback:releaseContext:colorSpace:shouldColorMatch
, но я не могу понять, как преобразовать мой CVImageBufferRef в текстуру OpenGL.Я уверен, что просто не ищу нужную вещь.Как я могу преобразовать CVImageBufferRef в текстуру OpenGL?
Когда я пытаюсь:
CVImageBufferRef imageBuffer = CVBufferRetain(mCurrentImageBuffer);
GLuint texture = CVOpenGLTextureGetName(imageBuffer);
id provider= [context outputImageProviderFromTextureWithPixelFormat:QCPlugInPixelFormatARGB8
pixelsWide:CVPixelBufferGetWidth(imageBuffer)
pixelsHigh:CVPixelBufferGetHeight(imageBuffer)
name:texture
flipped:NO
releaseCallback:_TextureReleaseCallback
releaseContext:NULL
colorSpace:CVImageBufferGetColorSpace(imageBuffer)
shouldColorMatch:YES];
Он говорит мне, что «имя» не может быть нулевым.Я думаю, это потому, что мой imageBuffer - это пиксельный буфер, а не текстура OpenGL.Как я могу создать текстуру OpenGL из моего пиксельного буфера?