I was wondering about this, I lack of gl knowledges :
once I trigger this one time :
scene.post_draw = [Area._draw]
it runs the _draw() function. in this case it draws blf and bgl items for an ui.
for area in Area.members : blf... bgl..
most of the time the gl items are not modified after that.
would it be possible to store the result the first time into a buffer to gain some cycles ?
if Area.buffer == False scene.post_draw = [Area._draw] else : scene.post_draw = [Area.buffer]
store it as a texture ?