Цитата:
|
как вариант с битмапдатой да. А вот обертка это ерунда. Столько объектов создавать динамически глупо
|
Как-то противоречиво =) Ведь количество битмап будет равно количеству оберток. Соответственно, "только объектов создавать динамически глупо" будет относиться и к тем, и к другим. Только вот битмапы будут занимать значительно больше памяти.
Что касается сохранения ссылки на graphics - тут нет ничего удивительного, весь массив заполнен ссылками на один и тот же объект.
Если говорить об отмене действий - то я бы сделал так
- на каждое изменение цвета или прозрачности кисти создается новый спрайт
- на каждый штрих кисти внутри текущего спрайта создается шейп, содержащий этот штрих
- при отмене действия просто удаляем самый верхний шейп
- если самый верхний шейп является единственным в текущем спрайте - удаляем заодно и спрайт (+ откатываем цвет и прозрачность кисти)
- по завершении рисования все рисуем в битмап