Could you work around this by tracking mouse movements and, when you see a refresh call that comes with a mouse movement doing something different than drawing? (I guess you'd need to set a timer that expired in a short time and refresh then, just in case it was a "real" refresh, but at least you could work around the performance issue.)
Robby On Tue, Feb 12, 2013 at 1:02 PM, Robby Findler <[email protected]>wrote: > I was using os x 10.7.5 (and saw the same flashing). > > > On Tue, Feb 12, 2013 at 12:59 PM, Philipp Dikmann <[email protected]>wrote: > >> The OS here is Mac OS 10.6.8, running Racket 5.3.1 - >> so I guess its an issue with the OpenGL implementation. >> Thanks for taking a look, though :) >> >> >> >> On 12.02.13 19:37, Michael Wilber wrote: >> >>> Your OpenGL example still doesn't flash for me when I move the mouse >>> over it, on 64-bit linux. >>> >>> It does, however, flash when I change window focus... for some reason? >>> >>> What OS are you using? >>> >>> Philipp Dikmann <[email protected]> writes: >>> >>>> I'm sorry, I should have been more specific – it happens when using a >>>> gl-enabled canvas (example below). >>>> I hope that does not turn it into a dragons' den? ;) >>>> >>>> Philipp >>>> >>>> #lang racket/gui >>>> >>>> (require sgl) >>>> >>>> (define c% >>>> (class canvas% >>>> (inherit with-gl-context swap-gl-buffers) >>>> (define/override (on-paint) >>>> (with-gl-context >>>> (lambda () >>>> (gl-clear-color (random) (random) (random) 1) >>>> (gl-clear 'color-buffer-bit) >>>> (swap-gl-buffers) >>>> (gl-flush)))) >>>> (super-new (style '(gl no-autoclear))))) >>>> >>>> (define f (new frame% [label ""] [width 100] [height 100])) >>>> (define c (new c% [parent f])) >>>> (send f show #t) >>>> >>>> >>>> On 11.02.13 22:39, Robby Findler wrote: >>>> >>>>> I don't think it does that. The program below, at least for me, >>>>> doesn't do crazy colors when I move the mouse around (it does when >>>>> resizing, tho). >>>>> >>>>> Robby >>>>> >>>>> #lang racket/gui >>>>> >>>>> (define c% >>>>> (class canvas% >>>>> (inherit get-client-size get-dc) >>>>> (define/override (on-paint) >>>>> (define-values (w h) (get-client-size)) >>>>> (define dc (get-dc)) >>>>> (define c (make-object color% (random 255) (random 255) (random >>>>> 255))) >>>>> (send dc set-brush c 'solid) >>>>> (send dc set-pen "black" 1 'transparent) >>>>> (send dc draw-ellipse 0 0 w h)) >>>>> (super-new))) >>>>> >>>>> (define f (new frame% [label ""] [width 100] [height 100])) >>>>> (define c (new c% [parent f])) >>>>> (send f show #t) >>>>> >>>>> >>>>> On Mon, Feb 11, 2013 at 9:41 AM, Philipp Dikmann <[email protected] >>>>> <mailto:[email protected]>> wrote: >>>>> >>>>> It appears that the GUI canvas% refreshes itself whenever it >>>>> receives a mouse-event%. >>>>> I intend to refresh the canvas at a steady pace (using a timer%) >>>>> and independently of any mouse-events instead. >>>>> Is there a reasonable way to suppress the default behavior? >>>>> >>>>> Thanks for your time, >>>>> Philipp >>>>> ____________________ >>>>> Racket Users list: >>>>> >>>>> http://lists.racket-lang.org/**users<http://lists.racket-lang.org/users> >>>>> >>>>> >>>>> ____________________ >>>> Racket Users list: >>>> http://lists.racket-lang.org/**users<http://lists.racket-lang.org/users> >>>> >>> >> >
____________________ Racket Users list: http://lists.racket-lang.org/users

