For GLCtrl, it seems glReadPixels must be called within GLPaint,
since at that time - gl stuff is probably set up rightly to call that func.
Previously i tried to call it within LeftUp and it of course did not work as expected.
This is probably the reason why control(as you proposed) must be selected - to work.
Anyway, but what about independently capturing whole screen
or specific part of the screen(something like ffmpeg), is this possible without using too much low level gl code in Upp?
Some kind of trick would be creating invisible child of TopWindow, eg childTopWindowCtrl and capturing from that,
altough it would be a workaround.
I don't know if this would work, altough if there is a better way - it would be prefered.