mirror of
https://github.com/open-goal/jak-project
synced 2026-05-26 15:46:14 -04:00
59 lines
1.8 KiB
Common Lisp
59 lines
1.8 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
#|
|
|
|
|
this file has code for setting up the screen shot system for the PC port (replaces PS2 version)
|
|
These settings can also be configured through the imgui toolbar.
|
|
|
|
|#
|
|
|
|
;; this file is debug only
|
|
(declare-file (debug))
|
|
|
|
|
|
(deftype screen-shot-settings (structure)
|
|
((width int32)
|
|
(height int32)
|
|
(msaa int32)
|
|
(name uint8 244)
|
|
)
|
|
(:methods
|
|
(new (symbol type int int int) _type_)
|
|
)
|
|
)
|
|
|
|
(defmethod new screen-shot-settings ((allocation symbol) (type-to-make type) (width int) (height int) (msaa int))
|
|
(let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
|
|
(copyn-charp<-string (-> obj name) "screenshot" 244)
|
|
(set! (-> obj width) width)
|
|
(set! (-> obj height) height)
|
|
(set! (-> obj msaa) msaa)
|
|
(pc-register-screen-shot-settings obj)
|
|
obj
|
|
)
|
|
)
|
|
|
|
|
|
(define *screen-shot-settings* (new 'debug 'screen-shot-settings 1920 1080 16))
|
|
|
|
(defun-debug screen-shot ()
|
|
(screen-shot-scale 1 "image")
|
|
(true! *disable-mouse*)
|
|
(clear *temp-string*)
|
|
(format *temp-string* "screenshot")
|
|
(let ((date (new 'stack-no-clear 'scf-time)))
|
|
(scf-get-time date)
|
|
(format *temp-string* "-~4,'0d-~2,'0d-~2,'0d_~2,'0d~2,'0d~2,'0d" (+ 2000 (bcd->dec (-> date year))) (bcd->dec (-> date month)) (bcd->dec (-> date day)) (bcd->dec (-> date hour)) (bcd->dec (-> date minute)) (bcd->dec (-> date second)))
|
|
)
|
|
(format *temp-string* "_~D" (-> *display* real-frame-clock frame-counter))
|
|
(copyn-charp<-string (-> *screen-shot-settings* name) *temp-string* 244)
|
|
|
|
(none))
|
|
|
|
(defun store-image ((arg0 screen-shot-work))
|
|
(pc-screen-shot) ;; send a screen shot command, this will make the graphics engine save a screenshot at the end of the frame. USE IMGUI BAR FOR SETTINGS!!!!
|
|
0)
|
|
|
|
|