#lang racket (require sgl sgl/gl sgl/gl-vectors) (require racket/gui) ;; OpenGLによる描画. ;; 関数やパラメータの形式にはRacket-StyleとC-Styleがある. (define (draw-gl) (gl-clear 'color-buffer-bit) (gl-color 1.0 1.0 0.0) (gl-begin 'line-loop) (gl-vertex -0.9 -0.9) (gl-vertex 0.9 -0.9) (gl-vertex-v (gl-float-vector 0.9 0.9)) (gl-vertex -0.9 0.9) (gl-end) (gl-flush)) (define gl-canvas% (class* canvas% () (inherit with-gl-context swap-gl-buffers) ;; on-paintをオーバーライド (define/override (on-paint) (with-gl-context (lambda () (draw-gl) (swap-gl-buffers)))) ;; canvas%のスタイルにglを指定 (super-new [style '(gl)]))) (define top-level-frame (new frame% [label "OpenGL test"] [width 400] [height 400])) (define canvas (new gl-canvas% [parent top-level-frame])) (send top-level-frame show #t)
2012年6月20日水曜日
[Racket]GUIの中でOpenGLを利用する
RacketのGUIでは、canvas%クラスを利用してOpenGLによる描画を行えます。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿