diff --git a/collects/mred/private/wx/win32/dc.rkt b/collects/mred/private/wx/win32/dc.rkt index 9c14dc1f..51e3fc86 100644 --- a/collects/mred/private/wx/win32/dc.rkt +++ b/collects/mred/private/wx/win32/dc.rkt @@ -21,7 +21,7 @@ (define win32-bitmap% (class bitmap% - (init w h hwnd) + (init w h hwnd [gl-config #f]) (super-make-object (make-alternate-bitmap-kind w h)) (define s @@ -40,6 +40,14 @@ (cairo_paint cr) (cairo_destroy cr)) s)) + + (define gl (and gl-config + (let ([hdc (cairo_win32_surface_get_dc s)]) + (set-cpointer-tag! hdc 'HDC) + (create-gl-context hdc + gl-config + #t)))) + (define/override (get-bitmap-gl-context) gl) (define/override (ok?) #t) (define/override (is-color?) #t) diff --git a/collects/mred/private/wx/win32/procs.rkt b/collects/mred/private/wx/win32/procs.rkt index 9659eb6f..cf34f38a 100644 --- a/collects/mred/private/wx/win32/procs.rkt +++ b/collects/mred/private/wx/win32/procs.rkt @@ -106,6 +106,6 @@ (define/top (make-gl-bitmap [exact-positive-integer? w] [exact-positive-integer? h] [gl-config% c]) - (make-object win32-bitmap% w h #f)) + (make-object win32-bitmap% w h #f c)) (define (check-for-break) #f)