Lisp HUG Maillist Archive

Pinboard Flashing?

Ughhh.... The flashing with CAPI pinboard updates is almost intolerable on Win/XP.

I have tried several approaches...

1. Use :draw-pinboard-objects :BUFFER  -- that causes tons of transient mouse droppings as the buffering appears to try to perform updates on a non-interfering, best effort, basis. Dragging large regions of graphics about on the screen causes the updates to abort partway through until the dragging ceases, and then it can catch up. Result is slowly vanishing trails of partial rewrites of old images along the drag path. NG.

2. Use :draw-pinboard-objects T -- no buffering. Horrible, and very slow.

3. Use :draw-pinboard-objects T with my own offscreen buffering in a pixmap port, and writing my own display callback to blit the results to the screen. That performs best of all, very rapid, but the final problem outstanding is that CAPI insists on clearing the screen over the damaged rectangles accumulated from invalidate calls, before it permits me to blit pixels from my backing store to the screen port.

Option 3 appears best of all, but does anyone know how to prevent CAPI from performing gratuitous screen clears ahead of the call to the display callback?

I could write my own invalidate routines to do the bookkeeping on what regions need updating. Perhaps the only solution is to do this, and to call gp:invalidate-rectangle on some region out of sight so that no flashing occurs? Not sure yet, whether CAPI would honor a damage update anywhere outside of the visible portrect.

Anyone??

David McClain
Chief Technical Officer
Refined Audiometrics Laboratory
4391 N. Camino Ferreo
Tucson, AZ  85750

email: dbm@refined-audiometrics.com
phone: 1.520.390.3995
web: http://www.refined-audiometrics.com


RE: Pinboard Flashing?

> From: owner-lisp-hug@lispworks.com
[mailto:owner-lisp-hug@lispworks.com] On Behalf Of David McClain
> Sent: 08 October 2007 07:30
> To: Lisp Hug Lispworks
> Subject: Pinboard Flashing?
> 
> Ughhh.... The flashing with CAPI pinboard updates is almost
> intolerable on Win/XP. 
> 
> I have tried several approaches...


Maybe this will help...

I used to have flashing pinboards until I changed my pinboard
object updaters to only call the CAPI updaters (such as
(SETF CAPI:PINBOARD-PANE-POSITION), (SETF CAPI:PINBOARD-PANE-SIZE)
and (SETF CAPI:MOVE-LINE)) when the new values are different to
the new values.

I have no mention of :DRAW-PINBOARD-OBJECTS in my code.


Re: Pinboard Flashing?

Unable to parse email body. Email id is 7023

Updated at: 2020-12-10 08:45 UTC