Мне нужно инициализировать 2D-текстуру OpenGL с нулями.
Почему? Я обрабатываю эту текстуру с помощью OpenCL. Примерно, этапы рендеринга:
- Создайте текстуру RGBA, инициализируйте нулями (поэтому она содержит прозрачные черные пиксели).
- OpenCL: вычисляет цвет пикселей, где некоторые объекты видны и записывают их в эту текстуру
- OpenGL: добавить отображение среды в прозрачные пиксели и отобразить окончательное изображение
Поэтому мне не нужно передавать какие-либо фактические данные текстуры на glTexImage2d
. Но согласно спецификации, когда я передаю данные = NULL, память текстуры выделяется, но не инициализируется.
Выделение памяти на стороне клиента, заполненной нулями и переходящей в glTexImage2d
, не очень хороший вариант, хотя я могу только подумать.
EDIT: я действительно хочу инициализировать только альфа-компонент (RGB все равно будет перевыполнен), но я сомневаюсь, что это облегчит ситуацию.