Слой OpenGL поверх видео на iPhone? - PullRequest
2 голосов
/ 30 июля 2009

Я пытаюсь отобразить полноэкранное видео на iPhone и наложить его на представление OpenGL ES. В общем, я хочу, чтобы видео воспроизводилось в фоновом режиме, а поверх него рисуется графика OpenGL.

Как мне этого добиться и возможно ли это?

Спасибо за вашу помощь!

Florian

Ответы [ 2 ]

4 голосов
/ 01 мая 2010

Чтобы отобразить фоновое изображение камеры с пользовательским видом наложения, вы можете использовать свойство cameraOverlayView объекта UIImagePickerController. CameraOverlayView будет отображаться в верхней части интерфейса выбора изображения по умолчанию. Используйте свойство cameraViewTransform для предварительного просмотра камеры в полноэкранном режиме.

imagePickerController.cameraViewTransform = 
CGAffineTransformMakeScale(1.0, 1.03);

Чтобы реализовать подкласс UIView в качестве оверлейного представления, поддерживающего рендеринг OpenGL ES, взгляните на пример кода Apple http://developer.apple.com/iphone/library/samplecode/GLGravity/Listings/Classes_GLGravityView_m.html

Ключ в том, чтобы сделать вид наложения прозрачным.

overlayView.opaque = NO; 
overlayView.alpha = 1.0; 
overlayView.backgroundColor = [UIColor clearColor];

В вашем коде рендеринга OpenGL ES не забудьте очистить цвет с нуля альфа.

glClearColor(0,0,0,0) ;
1 голос
/ 30 июля 2009

Из-за небольших утечек информации кажется, что нужная вам функция станет частью OS 3.1, позволяющей поддержку дополненной реальности, см. Этот пост на AppleInsider .

...