Привет, я делал Paint Brush, который рисует некоторые основные фигуры в glcontrol
Теперь я хочу добавить опцию отмены, я действительно не знаю, как это будет работать, пожалуйста, дайте мне подсказкуДобавить опцию Отменить в OpenTk Project
ответ
Первое, что нужно понять: OpenGL - это просто API-интерфейс рисования. Вы отправляете команды рисования, и это просто изменит цвет некоторых пикселей в целевом буфере кадров. В OpenGL нет функциональности высокого уровня, которая абстрагирует геометрию в управляемых объектах. Это то, что делает граф сцены.
Каждая новая операция прилагается к списку. Отказ будет реализован, возвращаясь назад. Любая новая операция после некоторых шагов отмены отбрасывает хвост и создает новую.
На стороне OpenGL вы можете либо перерисовать весь список после отмены/повтора, либо для каждого шага сохранить состояние фреймбуфера; это, однако, съедало бы большую память, сохраняя только различия, и используя некоторую простую схему сжатия (длина пробега и предшествующая сегментация в плитки), сохраняет память.
отличная идея –