Files
jak-project/goal_src/jak2/pc/debug/capture-pc.gc

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)