Я пишу приложение для рисования, а холст для рисования - это текстура OpenGL. Когда вы рисуете на холст, он определяет, какая область текстуры холста была изменена, и копирует эти данные пикселей (используя glReadPixels) перед применением внесенных вами изменений.
Чтобы отменить, я хочу просто вернуться к предыдущему состоянию текстуры, используя те данные пикселей, которые были скопированы. Однако OpenGL ES не предоставляет команду glDrawPixels. Какой лучший способ сделать это?
Я рассмотрел два варианта, но я не уверен, что либо это так здорово:
Создайте временную текстуру, используя скопированные мною пиксели, и нарисуйте ее. (Однако скопированная область не имеет степени двойки!)
Полностью отсоедините большую текстуру холста, вручную измените байты текстуры, а затем верните ее обратно в OpenGL. Я не использую какое-либо сжатие, так что это может быть не так уж плохо. Но это похоже на взлом?
У кого-нибудь есть идеи? Буду очень признателен!