[racket] how to stop canvas% from refreshing after on-event
I was using os x 10.7.5 (and saw the same flashing).
On Tue, Feb 12, 2013 at 12:59 PM, Philipp Dikmann <philipp at dikmann.de>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 <philipp at dikmann.de> 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 <philipp at dikmann.de
>>>> <mailto:philipp at dikmann.de>> 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>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20130212/17b343a4/attachment.html>