(defclass gl-drawing-area (drawing-area)
((on-expose :initarg :on-expose :initform nil :accessor gl-drawing-area-on-expose)
(on-init :initarg :on-init :initform nil :accessor gl-drawing-area-on-init)
(defclass gl-drawing-area (drawing-area)
((on-expose :initarg :on-expose :initform nil :accessor gl-drawing-area-on-expose)
(on-init :initarg :on-init :initform nil :accessor gl-drawing-area-on-init)
(multiple-value-bind (width height)
(gdk:drawable-get-size (widget-window widget))
#+nil(format t "configure ~Dx~D~%" width height)
(multiple-value-bind (width height)
(gdk:drawable-get-size (widget-window widget))
#+nil(format t "configure ~Dx~D~%" width height)
(bwhen (init-fn (gl-drawing-area-on-init widget))
(with-gl-context (widget)
(funcall init-fn widget)))
(bwhen (init-fn (gl-drawing-area-on-init widget))
(with-gl-context (widget)
(funcall init-fn widget)))
(multiple-value-bind (width height)
(gdk:drawable-get-size (widget-window widget))
(resize widget width height))
nil)
(multiple-value-bind (width height)
(gdk:drawable-get-size (widget-window widget))
(resize widget width height))
nil)
(defun gl-drawing-area-exposed (widget event)
(bwhen (draw-fn (gl-drawing-area-on-expose widget))
(with-gl-context (widget)
(defun gl-drawing-area-exposed (widget event)
(bwhen (draw-fn (gl-drawing-area-on-expose widget))
(with-gl-context (widget)
(defmethod initialize-instance :after ((widget gl-drawing-area) &key &allow-other-keys)
(connect-signal widget "realize" #'gl-drawing-area-realize)
(defmethod initialize-instance :after ((widget gl-drawing-area) &key &allow-other-keys)
(connect-signal widget "realize" #'gl-drawing-area-realize)
(connect-signal widget "expose-event" #'gl-drawing-area-exposed)
(connect-signal widget "configure-event" #'gl-drawing-area-configure)
(connect-signal widget "parent-set" #'gl-drawing-area-parent-set))
(connect-signal widget "expose-event" #'gl-drawing-area-exposed)
(connect-signal widget "configure-event" #'gl-drawing-area-configure)
(connect-signal widget "parent-set" #'gl-drawing-area-parent-set))