updating-output issues
Paul Werkowski
pw at snoopy.qozzy.com
Tue Feb 1 13:40:13 UTC 2022
Hey Paul,
regarding the attached code: why do you expect a call to
clear-output-record when it is only moved around? how the issue is
visible in the attached code (except for that (trace
clear-output-record) doesn't yield anything).
Just noting that LispWorks CLIM calls clear-output-record restoring the
previously drawn area. That may be from LispWorks CLIM using
redisplay-output-record ,as shown in the following trace, which is
supposed to take care to restore anything previously covered. I don't a
clear understanding of how all this works as yet.
UTEST 5 > (testme)
0 CLEAR-OUTPUT-RECORD > ...
>> CLIM-INTERNALS::RECORD : #<STANDARD-TREE-OUTPUT-HISTORY /x 0:0 y
0:0/ 22B34603>
0 CLEAR-OUTPUT-RECORD < ...
<< VALUE-0 : 0
draw-unit #<TEST-UNIT <150 150>>
--draw-circle
draw-unit #<TEST-UNIT <250 50>>
--draw-circle
Now I click right once.
0 REDISPLAY-OUTPUT-RECORD > ...
>> CLIM-INTERNALS::RECORD :
#<STANDARD-UPDATING-OUTPUT-RECORD /x 0:301 y 0:301/ 22D6E923>
>> STREAM : #<EXAMPLE-PANE 22E3274B>
>> CLIM-INTERNALS::CHECK-OVERLAPPING : T
1 CLEAR-OUTPUT-RECORD > ...
>> CLIM-INTERNALS::RECORD : #<STANDARD-UPDATING-OUTPUT-RECORD /x
0:301 y 0:301/ 22D6E923>
1 CLEAR-OUTPUT-RECORD < ...
<< VALUE-0 : 0
draw-unit #<TEST-UNIT <145.0 150>>
1 CLEAR-OUTPUT-RECORD > ...
>> CLIM-INTERNALS::RECORD : #<STANDARD-UPDATING-OUTPUT-RECORD /x
140.0:162.0 y 140.0:162.0/ 22C61A13>
1 CLEAR-OUTPUT-RECORD < ...
<< VALUE-0 : NIL
1 CLEAR-OUTPUT-RECORD > ...
>> CLIM-INTERNALS::RECORD : #<STANDARD-PRESENTATION UNIT
#<TEST-UNIT <145.0 150>> /x 140.0:162.0 y 140.0:162.0/ 22C60F2F>
1 CLEAR-OUTPUT-RECORD < ...
<< VALUE-0 : NIL
--draw-circle
draw-unit #<TEST-UNIT <250 50>>
0 REDISPLAY-OUTPUT-RECORD < ...
<< VALUE-0 : NIL
On 2/1/2022 5:23 AM, Daniel Kochmański wrote:
> Mind that recently I rewrote parts of the incremental redisplay to fix
> some issues - I'm not sure whether these changes are already
> propagated to quicklisp.
>
I don't use quicklisp but do use github desktop to check on things. I
found a bunch of changes yesterday and found that my hack of calling the
display function for redisplay now works where before changes made to
the display were computed but not shown on the screen. I had observed a
lot of stuff in the output record cache that I could not account for
which is now gone.
> btw when you draw the border it makes the window bigger with each
> iteration, because the line thickness is 1 and it is not filled, so
> drawing (x1 y1 x2 y2) actually covers the area (x1 y1 x2+1 y2+1).
>
I had not even noticed that problem! Thanks for the info.
> As of the second issue, could you supply a code that triggers the
> issue? Thanks!
That would be redisplay-frame-pane causing infinite recursion. I shall
work something up.
Thanks for looking at this.
Paul
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/mcclim-devel/attachments/20220201/a46d39bc/attachment.html>
More information about the mcclim-devel
mailing list