hal/vulkan/ffi.lisp
Conditions and result translation.
Struct declarations remain explicit treaty text. defvkstruct supplies the
standard tagged-struct header and retains the declaration as Lisp data for
increasingly capable fillers later.
Arguments which own temporary foreign storage.
Direct entry points with backend-local, opt-in trace events.
Return trace events in call-start order as a fresh list.
Intern and export vkCamelCase foreign-name as luv.VK:CAMEL-CASE.
Return definition metadata retained by defvkfun for VK function name.
Define a direct Vulkan entry point with opt-in trace instrumentation.
Define an instance extension command resolved through vkGetInstanceProcAddr.
Define a device extension command resolved through vkGetDeviceProcAddr.
Start a process-wide structured trace of calls crossing into Vulkan.
Stop and return the active Vulkan trace, or NIL when none is active.
Run body with this thread's Vulkan calls recorded into a fresh trace.
Binds the backend-local trace only for body's dynamic extent.
Return completed event intervals between vkQueuePresentKHR calls.
Each interval excludes its opening presentation and includes its closing
presentation. include-prefix also returns the possibly partial interval from
the beginning of trace through its first presentation.
(value (type checked-result-type))Headings, paragraphs, figures and their IDs, mentions, marks.
((operation &rest accepted-results) &body body)Logical disjunction of tests and raw truth values.
(name (&key s-type) &body slots)(pointer type &optional (count 1))Multiplication and scalar scaling.
(pointer type &rest fields)Test whether two compatible scalars are equal.
((variable type &rest fields) &body body)(strings (type string-list-type))(pointer (type string-list-type) strings)(bindings &body body)((pointer type values) &body body)The active Vulkan trace, or NIL on the ordinary direct FFI path.
Division of two represented quantities.
((trace) &body body)(trace)(trace)Test whether one compatible scalar is less than another.
(value &optional (depth 0))Test whether one compatible scalar is at least another.
(trace definition arguments function)One top-level defining form of a source file.
Subtraction or unary negation.
Logical conjunction of tests and raw truth values.
Test whether one compatible scalar is greater than another.
(foreign-name return-type &body arguments)(foreign-name return-type &body arguments)(instance name)(foreign-name return-type &body arguments)(device name)((trace) &body body)Run BODY with this thread's Vulkan calls recorded into a fresh trace. Binds the backend-local trace only for BODY's dynamic extent.
(trace &key include-prefix)Return completed event intervals between vkQueuePresentKHR calls. Each interval excludes its opening presentation and includes its closing presentation. INCLUDE-PREFIX also returns the possibly partial interval from the beginning of TRACE through its first presentation.
Binding machinery for luv's owned Vulkan vocabulary.
This file owns the loader, result translation, tagged-struct filler, temporary foreign argument helpers, and opt-in tracing. The actual Vulkan treaty text lives in defs.lisp.