stoe/engine/vk-utils.lisp
2018-05-02 22:14:03 +02:00

26 lines
1.1 KiB
Common Lisp

#|
This file is a part of stoe project.
Copyright (c) 2017 Renaud Casenave-Péré (renaud@casenave-pere.fr)
|#
(uiop:define-package :stoe/engine/vk-utils
(:use :cl :vk))
(in-package :stoe/engine/vk-utils)
(defvar *engine-name* "Stoe")
(defvar *engine-version* 0)
(defvar *physical-devices* nil)
(defvar *instance-layer-properties* nil)
(defvar *instance-extension-properties* nil)
(defun create-vk-instance (&key app-name app-version)
(setf *instance-layer-properties* (enumerate-instance-layer-properties))
(setf *instance-extension-properties* (enumerate-instance-extension-properties ""))
(let ((instance (vk:create-instance :app app-name :app-version app-version
:engine *engine-name* :engine-version *engine-version*
:layers '("VK_LAYER_LUNARG_standard_validation")
:exts '("VK_EXT_debug_report"
"VK_KHR_xlib_surface"))))
(setf *physical-devices* (vk:enumerate-physical-devices instance))
(setf cl-vulkan-bindings::*instance* instance)))