Такое изменение потребует следующих действий:
1) Пристыковки buf2d к box_lib для этого макрос @use_library нужно будет заменить на
Code:
@use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load
Можно сделать, что-бы указатель на функцию dll.Load был по умолчанию равен 0 и в случае использования макроса @use_library он меняться не будет. Старые элементы на этот 0-й указатель реагировать не будут, а новые использующие буфер восприймут его как указание работать без буфера. Потому на приложения использующие не измененные элементы этот этап никак не повлияет.
2) По мере необходимости менять коды конкретных элементов. В код элемента нужно будет добавить указатель на структуру буфера и возможно стиль, который будет указывать использовать ли буфер или нет. Структура буфера возможно будет
создаваться динамически (тогда будет меньше изменений в вызывающей программе), а может будет
статично сидеть в программе (тогда будет больше изменений в вызывающей программе). Тут параллельно должны меняться коды всех приложений использующих меняющиеся элементы, потому
буферизировать можно редко используемые элементы, что позволит делать меньше изменений. Когда появится больше свободного времени и желание, тогда можно будет
буферизировать часто встречаемые элементы (например editbox).
Есть еще одно преимущество использования буфера, а именно координаты рисуемых в буфере объектов будут задаватся без учета свойств top и left самого элемента управления.