# HG changeset patch # User Steve Losh # Date 1479481610 0 # Node ID d18676cbb4f27db47e47032f35e9319d253fec23 # Parent cf5f62fff15bec674549572edd4995ef51d257da Open the debugger when running the main UI diff -r cf5f62fff15b -r d18676cbb4f2 src/debugger.lisp --- a/src/debugger.lisp Fri Nov 18 14:58:05 2016 +0000 +++ b/src/debugger.lisp Fri Nov 18 15:06:50 2016 +0000 @@ -166,12 +166,15 @@ (q+:add-layout layout stack))) -(defun run (chip) +(defun make-debugger (chip) (let ((model-disassembly (make-instance 'disassembly-model :chip chip)) (model-stack (make-instance 'stack-model :chip chip))) - (with-main-window (window (make-instance 'debugger - :model-disassembly model-disassembly - :model-stack model-stack))))) + (make-instance 'debugger + :model-disassembly model-disassembly + :model-stack model-stack))) + +(defun run (chip) + (with-main-window (window (make-debugger chip)))) (defparameter *c* (chip8::make-chip)) diff -r cf5f62fff15b -r d18676cbb4f2 src/gui.lisp --- a/src/gui.lisp Fri Nov 18 14:58:05 2016 +0000 +++ b/src/gui.lisp Fri Nov 18 15:06:50 2016 +0000 @@ -34,15 +34,25 @@ ;;;; Screen ------------------------------------------------------------------- (define-widget screen (QGLWidget) ((texture :accessor screen-texture) + (debugger :accessor screen-debugger :initarg :debugger) (chip :accessor screen-chip :initarg :chip))) +(defun make-screen (chip) + (let ((debugger (chip8.debugger::make-debugger chip))) + (make-instance 'screen + :debugger debugger + :chip chip))) + + (defun die (screen) (setf chip8::*running* nil) + (q+:close (screen-debugger screen)) (q+:close screen)) (define-initializer (screen setup) (setf (q+:window-title screen) "cl-chip8" - (q+:fixed-size screen) (values *width* *height*))) + (q+:fixed-size screen) (values *width* *height*)) + (q+:show debugger)) (define-override (screen "initializeGL") () (setf (screen-texture screen) (initialize-texture 64)) @@ -172,6 +182,6 @@ ;;;; Main --------------------------------------------------------------------- (defun run-gui (chip) (with-main-window - (window (make-instance 'screen :chip chip)))) + (window (make-screen chip))))