Apr 24, 2022, 5:58:09 PMApr 24
to Racket Users
I am currently using sgl to draw to a window, and using the screenshot progrm to convert tie picture to a .png file.
Unfortunately, this seems to linut the png to screen size, and I need more pixels thatn that for my application.
So my guess is that I need to create an sgl-compatible opengl environment that draws toa bitmap instead of a window, and then use the tools available to write that bitmap out as a .png file.
Trouble is, I don't know how to get a bitmap out of sgl.
Here's the function I use to vreate the window and call a function called drawer to draw into it.
(define (environ drawer)
#;(printf "in environ\n")
(class* canvas% ()
(inherit with-gl-context swap-gl-buffers)
(define/override (on-paint) ; When is on-paint caled?
(printf "on-paint ~s~n" (count))
#;(printf "call drawer~n")
#;(printf "returned from drawer~n")
(define/override (on-size width height) ; Is this what is called when resizing the window with a mouse?
(resize width height)
(super-instantiate () (style '(gl))) ; What is this?
#;(printf "before win~n")
(define win (new frame% (label "OpenGl Test")
#;(printf "before my-canvas~n")
(define gl (new my-canvas% (parent win)))
#;(printf "before show~n")
(send win show #t) ; presumably this runs the on-paint method.
; But why does it get called three times?