freenode/#clim - IRC Chatlog
Search
4:06:03
loke
I need advice: What is the actual "proper" way to do animation in CLIM? My needs are simple: A few circles and lines needs to be redrawn so as to create an animation. I odn't even know if I should add these objects as output records and then change them, or do I do it on a lower level and take over the drawing altogether by overriding HANDLE-REPAINT?
4:06:35
loke
Doing it wih output records/presentations would be nice becuase of some interactivity features I'd get for free.
4:09:29
beach
I don't know the answer, but I would use the first method, i.e. use output records, and either modify them destructively or replace some of them.
4:16:28
loke
beach: Do you happen to know how I can force a repaint of the output records after modyfing them?
4:17:12
loke
I tried REDISPLAY-FRAME-PANE but that doesn't work. It only picks up the updates after going back to the command loop and typing a command
4:21:49
loke
Hmm... That means I have to store the output records somehow? Right now I just have a list of the presentations (one presentation for each graphical object on the screen)
4:23:15
loke
Yeah, or a hash map. I know which presentations have changed so I guess there is no need to repaint all the ones who doesn't change (unless they overlap)
7:06:39
loke
beach: I'm a bit confused now. I thought I understood this, but clearly not. I create output records using WITH-OUTPUT-TO-OUTPUT-RECORD. Then I add them to the pane using STREAM-ADD-OUTPUT-RECORD. The actual graphics are drawn (in the body of W-O-T-O-R) using STREAM-PRESENT, and the drawing happens in a presentation method for regular classes.
7:07:11
loke
The problem is when one of these regular classes are changed, am I supposed to remove the corresponding output record and create a new one?
7:44:09
beach
When I did this for Second Climacs, I just created my own classes, and manipulated them explicitly, rather than relying on ADD-OUTPUT-RECORD.
8:55:41
loke
beach: after I change an output record, I need to make sure that the old position is eventually redrawn. What's the proper way to handle that? I'd like to avoid repaining everything.
9:20:24
beach
Your questions make me more convinced than ever that we need a bottom-up McCLIM manual.
9:31:57
loke
Isn't there a region that is a set of other regions? I could add the enclosing rectangles of all the changed records and do a repaint.
9:47:40
loke
Now, about modification of output records. Can I create a special output record for which I can create a method that gets called every time the record should be drawn?
13:50:50
scymtym
jackdaniel: could you have a look at #1099? it is a small fix for an annoying regression
13:52:52
jackdaniel
random idea: when we realize a mirror on a sheet that is not grafted, should the mirror be a pixmap? (assuming that pixmaps /are/ off-screen mirrors)