GLTextureView создает дыру позади него

Привет, я работал над GLTextureView для отображения альфа-видео, но из-за альфа-канала я установил

setEGLConfigChooser(8, 8, 8, 8, 16, 0);

Я попробовал в первый раз с GLSurfaceView, но проблема заключалась в том, что ему нужно было setZOrderOnTop(true), чтобы показать его, и представление больше не было привязано к его контейнеру (который является zoomView). TextureView лучше, но теперь у меня есть видео в прямоугольной дырке на моем контейнере, к сожалению!

введите здесь описание изображения

Источник: введите здесь описание изображения

требуетсявведите здесь описание изображения

--[ИЗМЕНИТЬ]--

Вот несколько примеров:

введите здесь описание изображения

Сверху это GLSurfaceView с альфа-видео, а внизу пользовательское GLTextureView, оба в horizontalView. Топ выглядит хорошо, как я хочу! Но проверьте это, когда я прокручиваю вправо: введите здесь описание изображения

Верх по-прежнему появляется, когда нижний прячется по мере необходимости!


person Thibaud Renaux    schedule 06.01.2016    source источник
comment
Что такое альфа-видео? Какое поведение вы наблюдаете и чем оно отличается от того, чего вы пытаетесь достичь? Каков источник вашего класса GLTextureView?   -  person fadden    schedule 07.01.2016
comment
Альфа-видео — это видео, в котором нужно показать только часть, а остальную часть — показать содержимое. Это похоже на запись видео на зеленом экране и сопоставление этого цвета с прозрачным, чтобы создать инкрустация нашего контента поверх другого контента. пример, показанный в вопросе, должен быть таким, как человек показан над синим квадратом, а часть между человеком и синим цветом должна быть синей! Я добавляю некоторые изображения, чтобы объяснить   -  person Thibaud Renaux    schedule 07.01.2016
comment
источник представления текстуры: gist.github.com/eleventigers/9545428   -  person Thibaud Renaux    schedule 07.01.2016
comment
@fadden я добавил несколько картинок и пояснений   -  person Thibaud Renaux    schedule 11.01.2016
comment
То есть вы хотите сказать, что хотите иметь комбинацию обоих, верха и низа? Вы хотите, чтобы видео отображало самый верхний вид в качестве фона, как в верхней части, но вы также хотите, чтобы вид был обрезан, когда он соскальзывает с верхнего вида, как в нижней части?   -  person Matic Oblak    schedule 11.01.2016
comment
Да @MaticOblak, на самом деле эти два последних изображения находятся в тестовом примере. В моем реальном приложении это не HorizontalView, а ZoomView. Мне нужно, чтобы мое альфа-видео показывалось с трансформацией zoomview и без дырки.   -  person Thibaud Renaux    schedule 11.01.2016
comment
Странно, что это случилось с тобой. Верхний вид обрезан, а нижний нет... Не могли бы вы просто попробовать добавить вид GL к еще одному прозрачному виду.   -  person Matic Oblak    schedule 11.01.2016
comment
Все мои объекты (альфа-видео и другие объекты, содержащиеся в ZoomView) генерируются динамически. Когда я использую Surface, мне нужен setZOrderOnTop, чтобы показать его, но больше не связанный с представлением Parents. И с текстурой один, отображаемый и связанный, но в дыре. Есть ли другая конфигурация шейдера или GLContext, чтобы избежать этих проблем?   -  person Thibaud Renaux    schedule 11.01.2016
comment
Вы пробовали то, что я сказал выше? Поскольку ваше представление очищает свое родительское представление, но не родителя родителя, может быть достаточно просто добавить другое представление в иерархию, которое будет очищено, но его родитель (в настоящее время вырезанный) может не быть.   -  person Matic Oblak    schedule 11.01.2016
comment
Я не понял, на фоне camerasurfaceview, перед ним мой scrollview и где вы хотите, чтобы я положил альфа-видео?   -  person Thibaud Renaux    schedule 11.01.2016
comment
Представление видео должно иметь суперпредставление, которое имеет суперпредставление типа прокрутки. Таким образом, у scrollview есть представление, которое имеет представление openGL. Вместо того, чтобы помещать представление openGL непосредственно в представление прокрутки, попробуйте поместить другое представление в представление прокрутки, которое содержится в представлении openGL...   -  person Matic Oblak    schedule 12.01.2016
comment
Я попытался окружить свой videoTextureView двумя уровнями frameLayout, ничего не изменилось:/. Я много читал о представлении поверхности/текстуры, для поверхностей есть некоторые графические расчеты и бленды между этими объектами.   -  person Thibaud Renaux    schedule 12.01.2016