Skip to content

Commit

Permalink
get monitor scale
Browse files Browse the repository at this point in the history
Fixes #96
  • Loading branch information
kaveh808 committed Sep 9, 2022
1 parent 0b742bf commit ea9639e
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
6 changes: 6 additions & 0 deletions src/graphics/glfw/minimal-ui.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,12 @@
;; as default and use that for event handling
(setf *default-scene-view* scene-view)

;; assume monitor scale is same in x and y, just use first value
;; also assume we are running on the "primary" monitor
(setf (monitor-scale *drawing-settings*)
(first (glfw:get-monitor-content-scale (glfw:get-primary-monitor))))
(set-lines-thin)

(setf %gl:*gl-get-proc-address* #'glfw:get-proc-address)
(glfw:set-key-callback 'key-callback)
(glfw:set-mouse-button-callback 'mouse-callback)
Expand Down
21 changes: 11 additions & 10 deletions src/graphics/opengl/opengl.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
;;;; drawing-settings ==========================================================

(defclass drawing-settings ()
((point-size :accessor point-size :initarg :point-size :initform 9.0)
(line-thickness :accessor line-thickness :initarg :line-thickness :initform 3.0)
((monitor-scale :accessor monitor-scale :initarg :monitor-scale :initform 1.0)
(point-size :accessor point-size :initarg :point-size :initform 3.0)
(line-thickness :accessor line-thickness :initarg :line-thickness :initform 1.0)
(fg-color :accessor fg-color :initarg :fg-color :initform (c! 0 0 0))
(bg-color :accessor bg-color :initarg :bg-color :initform (c! 1 1 1))
(sel-color :accessor sel-color :initarg :sel-color :initform (c! 1 0 0))
Expand All @@ -19,16 +20,16 @@
(secondary-line-thickness :accessor secondary-line-thickness :initarg :secondary-line-thickness :initform 1.0)))

(defun set-lines-thin ()
(setf (point-size *drawing-settings*) 3.0)
(setf (line-thickness *drawing-settings*) 1.0)
(setf (axes-thickness *drawing-settings*) 1.0)
(setf (secondary-line-thickness *drawing-settings*) 0.5))
(setf (point-size *drawing-settings*) (* 3.0 (monitor-scale *drawing-settings*)))
(setf (line-thickness *drawing-settings*) (* 1.0 (monitor-scale *drawing-settings*)))
(setf (axes-thickness *drawing-settings*) (* 2.0 (monitor-scale *drawing-settings*)))
(setf (secondary-line-thickness *drawing-settings*) (* 0.5 (monitor-scale *drawing-settings*))))

(defun set-lines-thick ()
(setf (point-size *drawing-settings*) 7.0)
(setf (line-thickness *drawing-settings*) 3.0)
(setf (axes-thickness *drawing-settings*) 3.0)
(setf (secondary-line-thickness *drawing-settings*) 1.0))
(setf (point-size *drawing-settings*) (* 6.0 (monitor-scale *drawing-settings*)))
(setf (line-thickness *drawing-settings*) (* 2.0 (monitor-scale *drawing-settings*)))
(setf (axes-thickness *drawing-settings*) (* 4.0 (monitor-scale *drawing-settings*)))
(setf (secondary-line-thickness *drawing-settings*) (* 1.0 (monitor-scale *drawing-settings*))))

(defun set-theme-bright ()
(setf (fg-color *drawing-settings*) (c! 0 0 0))
Expand Down

0 comments on commit ea9639e

Please sign in to comment.