Я делаю видео текстурирование на созданной поверхности прямоугольника. Мне нужно создать еще 2 прямоугольника разного размера, а затем скопировать часть текстурирующего видео, работающего на 1-й поверхности (например, средняя часть видео) и воспроизвести ее на новой поверхности. Возможно ли использование OpenGL ES? Через мой собственный рендеринг поверхности видео я могу сделать эту функциональность и сопоставить ее с приложением OGLES. Мне просто интересно, можно ли делать непосредственно из самого приложения OGL, копируя выбранный прямоугольник с одной из текстурирующих поверхностей видео?
Если ваша текстура - это видео с полным движением, вы не должны копировать данные текстуры, потому что это слишком медленно, чтобы не отставать от частоты кадров видео. Вам следует избегать использования glTexImage2D() и вместо этого использовать расширения изображений EGL, как подробно описано в моей третьей статье:
http://montgomery1.com/opengl/
Но в любом случае, как только у вас есть изображение в текстуре, а текстура связана с glBindTexture(), любое количество прямоугольников, которые вы рисуете, будет текстурировано с той же текстурой, привязанной к тексту, без копирования. Эти прямоугольники на самом деле представляют собой геометрию, построенную из треугольников, а не "поверхностей". Фреймбуфер - это поверхность. Координаты текстуры могут быть разными для каждого прямоугольника, что позволяет обрезать и/или масштабировать отображение текстур однозначно для каждого.