The varjo Reference Manual

This is the varjo Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 08 19:52:48 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 varjo

Common Lisp -> GLSL Compiler

Author

Chris Bagley (Baggers) <>

License

BSD 2 Clause

Dependencies
  • documentation-utils (system).
  • vas-string-metrics (system).
  • named-readtables (system).
  • glsl-symbols (system).
  • parse-float (system).
  • alexandria (system).
  • glsl-spec (system).
  • glsl-docs (system).
  • cl-ppcre (system).
  • uiop (system).
  • fn (system).
Source

varjo.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 varjo/varjo.asd

Source

varjo.asd.

Parent Component

varjo (system).

ASDF Systems

varjo.


3.1.2 varjo/package.lisp

Source

varjo.asd.

Parent Component

varjo (system).

Packages

3.1.3 varjo/src/utils-v.lisp

Dependency

package.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

3.1.4 varjo/src/defcondition.lisp

Dependency

src/utils-v.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.5 varjo/src/varjo.internals/generics.lisp

Dependency

src/defcondition.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.6 varjo/src/varjo.internals/globals.lisp

Dependency

src/varjo.internals/generics.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.7 varjo/src/varjo.internals/names.lisp

Dependency

src/varjo.internals/globals.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.8 varjo/src/varjo.internals/internal-types.lisp

Dependency

src/varjo.internals/names.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.9 varjo/src/varjo.internals/glsl-generation/line-and-chunk.lisp

Dependency

src/varjo.internals/internal-types.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.10 varjo/src/varjo.internals/qualifiers.lisp

Dependency

src/varjo.internals/glsl-generation/line-and-chunk.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.11 varjo/src/varjo.internals/types/def-v-core-type.lisp

Dependency

src/varjo.internals/qualifiers.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

define-v-type-class (macro).


3.1.12 varjo/src/varjo.internals/types/type-spec.lisp

Dependency

src/varjo.internals/types/def-v-core-type.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.13 varjo/src/varjo.internals/types/early-types.lisp

Dependency

src/varjo.internals/types/type-spec.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.14 varjo/src/varjo.internals/flow.lisp

Dependency

src/varjo.internals/types/early-types.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.15 varjo/src/varjo.internals/types/types.lisp

Dependency

src/varjo.internals/flow.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.16 varjo/src/varjo.internals/return-set.lisp

Dependency

src/varjo.internals/types/types.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

nth-return-name (generic function).

Internals

merge-return-sets (function).


3.1.17 varjo/src/varjo.internals/emit-set.lisp

Dependency

src/varjo.internals/return-set.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.18 varjo/src/varjo.internals/value-metadata.lisp

Dependency

src/varjo.internals/emit-set.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.19 varjo/src/varjo.internals/errors.lisp

Dependency

src/varjo.internals/value-metadata.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.20 varjo/src/varjo.internals/function-obj.lisp

Dependency

src/varjo.internals/errors.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.21 varjo/src/varjo.internals/deftype.lisp

Dependency

src/varjo.internals/function-obj.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

define-shadow-type-functions (macro).


3.1.22 varjo/src/varjo.internals/variables.lisp

Dependency

src/varjo.internals/deftype.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.23 varjo/src/varjo.internals/code-object.lisp

Dependency

src/varjo.internals/variables.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.24 varjo/src/varjo.internals/stemcells.lisp

Dependency

src/varjo.internals/code-object.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.25 varjo/src/vari.types/types.lisp

Dependency

src/varjo.internals/stemcells.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.26 varjo/src/vari.types/other-types.lisp

Dependency

src/vari.types/types.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.27 varjo/src/varjo.internals/environment.lisp

Dependency

src/vari.types/other-types.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.28 varjo/src/varjo.internals/external-functions.lisp

Dependency

src/varjo.internals/environment.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.29 varjo/src/varjo.internals/structs.lisp

Dependency

src/varjo.internals/external-functions.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.30 varjo/src/varjo.internals/glsl-generation/string-generation.lisp

Dependency

src/varjo.internals/structs.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.31 varjo/src/varjo.internals/casting.lisp

Dependency

src/varjo.internals/glsl-generation/string-generation.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

cast-for-array-literal (function).

Internals

3.1.32 varjo/src/varjo.internals/stages.lisp

Dependency

src/varjo.internals/casting.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.33 varjo/src/varjo.internals/compile-result.lisp

Dependency

src/varjo.internals/stages.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

clone-compile-result (function).


3.1.34 varjo/src/varjo.internals/compile-literal.lisp

Dependency

src/varjo.internals/compile-result.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.35 varjo/src/varjo.internals/compile-vars.lisp

Dependency

src/varjo.internals/compile-literal.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

with-constant-inject-hook (macro).

Internals

3.1.36 varjo/src/varjo.internals/compile-special.lisp

Dependency

src/varjo.internals/compile-vars.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.37 varjo/src/varjo.internals/make-function.lisp

Dependency

src/varjo.internals/compile-special.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

build-function (function).

Internals

3.1.38 varjo/src/varjo.internals/functions.lisp

Dependency

src/varjo.internals/make-function.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.39 varjo/src/varjo.internals/traits.lisp

Dependency

src/varjo.internals/functions.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.40 varjo/src/varjo.internals/macros.lisp

Dependency

src/varjo.internals/traits.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.42 varjo/src/varjo.internals/compile-form.lisp

Dependency

src/varjo.internals/compile-funcall.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

3.1.43 varjo/src/varjo.internals/declaim.lisp

Dependency

src/varjo.internals/compile-form.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

v-declaim (macro).

Internals

3.1.44 varjo/src/vari.glsl/equality.lisp

Dependency

src/varjo.internals/declaim.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.45 varjo/src/vari.glsl/matrix-constructors.lisp

Dependency

src/vari.glsl/equality.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.46 varjo/src/vari.glsl/scalar-constructors.lisp

Dependency

src/vari.glsl/matrix-constructors.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.47 varjo/src/vari.glsl/vector-constructors.lisp

Dependency

src/vari.glsl/scalar-constructors.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.48 varjo/src/vari.glsl/parse-from-spec.lisp

Dependency

src/vari.glsl/vector-constructors.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.49 varjo/src/vari.glsl/variables-from-spec.lisp

Dependency

src/vari.glsl/parse-from-spec.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.50 varjo/src/vari.glsl/functions-from-spec.lisp

Dependency

src/vari.glsl/variables-from-spec.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

populate-functions (function).


3.1.51 varjo/src/vari.glsl/built-in-types.lisp

Dependency

src/vari.glsl/functions-from-spec.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.52 varjo/src/vari.glsl/special-operators/iteration.lisp

Dependency

src/vari.glsl/built-in-types.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.53 varjo/src/vari.glsl/special-operators/switch.lisp

Dependency

src/vari.glsl/special-operators/iteration.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

valid-for-switch-statementp (function).


3.1.54 varjo/src/vari.glsl/special-operators/discard.lisp

Dependency

src/vari.glsl/special-operators/switch.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

vs-discard (function).


3.1.55 varjo/src/vari.cl/docs.lisp

Dependency

src/vari.glsl/special-operators/discard.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

vari-describe (function).

Internals

3.1.56 varjo/src/vari.cl/macros.lisp

Dependency

src/vari.cl/docs.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.57 varjo/src/vari.cl/functions.lisp

Dependency

src/vari.cl/macros.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.58 varjo/src/vari.cl/nary-operators.lisp

Dependency

src/vari.cl/functions.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.59 varjo/src/vari.cl/bitwise-operators.lisp

Dependency

src/vari.cl/nary-operators.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.60 varjo/src/vari.cl/special-operators/uint.lisp

Dependency

src/vari.cl/bitwise-operators.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

vs-uint (function).


3.1.61 varjo/src/vari.cl/special-operators/progn.lisp

Dependency

src/vari.cl/special-operators/uint.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

vs-progn (function).


3.1.62 varjo/src/vari.cl/special-operators/let.lisp

Dependency

src/vari.cl/special-operators/progn.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

vs-let (function).


3.1.63 varjo/src/vari.cl/special-operators/assignment.lisp

Dependency

src/vari.cl/special-operators/let.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.64 varjo/src/vari.cl/special-operators/conditionals.lisp

Dependency

src/vari.cl/special-operators/assignment.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.65 varjo/src/vari.cl/special-operators/case.lisp

Dependency

src/vari.cl/special-operators/conditionals.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.66 varjo/src/vari.cl/special-operators/and-or.lisp

Dependency

src/vari.cl/special-operators/case.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.67 varjo/src/vari.cl/special-operators/declarations.lisp

Dependency

src/vari.cl/special-operators/and-or.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.68 varjo/src/vari.cl/special-operators/values.lisp

Dependency

src/vari.cl/special-operators/declarations.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.69 varjo/src/vari.cl/special-operators/return.lisp

Dependency

src/vari.cl/special-operators/values.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

vs-return (function).


3.1.70 varjo/src/vari.cl/special-operators/multiple-value-x.lisp

Dependency

src/vari.cl/special-operators/return.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.71 varjo/src/vari.cl/special-operators/local-functions.lisp

Dependency

src/vari.cl/special-operators/multiple-value-x.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.72 varjo/src/vari.cl/special-operators/function.lisp

Dependency

src/vari.cl/special-operators/local-functions.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.73 varjo/src/vari.cl/special-operators/macros.lisp

Dependency

src/vari.cl/special-operators/function.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.74 varjo/src/vari.cl/special-operators/swizzle.lisp

Dependency

src/vari.cl/special-operators/macros.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.75 varjo/src/vari.cl/special-operators/inline-code.lisp

Dependency

src/vari.cl/special-operators/swizzle.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.76 varjo/src/vari.cl/special-operators/compiler-debugging.lisp

Dependency

src/vari.cl/special-operators/inline-code.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.77 varjo/src/vari.cl/special-operators/make-array.lisp

Dependency

src/vari.cl/special-operators/compiler-debugging.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.78 varjo/src/vari.cl/special-operators/aref.lisp

Dependency

src/vari.cl/special-operators/make-array.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

vs-aref (function).


3.1.79 varjo/src/vari.cl/special-operators/emit.lisp

Dependency

src/vari.cl/special-operators/aref.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals
  • vs-emit-data (function).
  • x (generic function).
  • y (generic function).
  • z (generic function).

3.1.80 varjo/src/vari.cl/special-operators/slots.lisp

Dependency

src/vari.cl/special-operators/emit.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.81 varjo/src/vari.cl/special-operators/typecase.lisp

Dependency

src/vari.cl/special-operators/slots.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

vs-typecase (function).


3.1.82 varjo/src/vari.cl/special-operators/coerce.lisp

Dependency

src/vari.cl/special-operators/typecase.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.83 varjo/src/vari.cl/complex.lisp

Dependency

src/vari.cl/special-operators/coerce.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.84 varjo/src/vari.cl/ratio.lisp

Dependency

src/vari.cl/complex.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.85 varjo/src/vari.cl/misc.lisp

Dependency

src/vari.cl/ratio.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Internals

3.1.86 varjo/src/varjo.internals/translate.lisp

Dependency

src/vari.cl/misc.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

translate (generic function).

Internals

3.1.87 varjo/src/varjo.internals/glsl-stage.lisp

Dependency

src/varjo.internals/translate.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

glsl-to-compile-result (function).

Internals

3.1.88 varjo/src/varjo.internals/rolling-translate.lisp

Dependency

src/varjo.internals/glsl-stage.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.89 varjo/src/varjo.internals/test-compile.lisp

Dependency

src/varjo.internals/rolling-translate.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

test-translate-function-split-details (function).

Internals

3.1.90 varjo/src/varjo.internals/front-end.lisp

Dependency

src/varjo.internals/test-compile.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface

v-compile (function).


3.1.91 varjo/src/varjo.api/environment.lisp

Dependency

src/varjo.internals/front-end.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).

Public Interface
Internals

3.1.92 varjo/src/varjo.api/docs.lisp

Dependency

src/varjo.api/environment.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


3.1.93 varjo/src/docs.lisp

Dependency

src/varjo.api/docs.lisp (file).

Source

varjo.asd.

Parent Component

varjo (system).


4 Packages

Packages are listed by definition order.


4.1 vari.glsl

Source

package.lisp.

Use List
Used By List
Internals

4.2 varjo.internals

Source

package.lisp.

Use List
Used By List
Public Interface
Internals

4.3 vari

Source

package.lisp.

Use List

4.4 varjo.utils

Source

package.lisp.

Use List
Used By List
Public Interface

4.5 vari.cl

Source

package.lisp.

Use List
Used By List

vari.

Public Interface
Internals

4.6 vari.types

Source

package.lisp.

Use List
Used By List
Public Interface

4.7 varjo.api

Source

package.lisp.

Use List
Used By List

varjo.

Public Interface
Internals

4.8 varjo

Source

package.lisp.

Use List

4.9 varjo-conditions

Source

package.lisp.

Use List
Used By List
Public Interface

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *default-version*

‘*default-version*‘ is a variable that holds the version of GLSL that will be used for a compile task if a version is not specified in the context

Package

varjo.internals.

Source

src/varjo.internals/globals.lisp.

Special Variable: *emit-var-name-base*
Package

varjo.internals.

Source

src/varjo.internals/globals.lisp.

Special Variable: *in-qualifier*
Package

varjo.internals.

Source

src/varjo.internals/qualifiers.lisp.

Special Variable: *out-qualifier*
Package

varjo.internals.

Source

src/varjo.internals/qualifiers.lisp.

Special Variable: *return-var-name-base*
Package

varjo.internals.

Source

src/varjo.internals/globals.lisp.

Special Variable: *stage-names*

‘*stage-names*‘ is a variable that holds the list of keyword stage names that Varjo recognises

Package

varjo.internals.

Source

src/varjo.internals/globals.lisp.

Special Variable: *stage-type-names*

‘*stage-type-names*‘ is a variable that holds a list of type-names that map to the stages named in ‘*stage-names*‘

Package

varjo.internals.

Source

src/varjo.internals/globals.lisp.

Special Variable: *supported-versions*

‘*supported-versions*‘ is a variable that holds the list of GLSL version Varjo ostensibly supports.

Note: That ’ostensibly’ is there as I’m very sure that the lower levels of GLSL varjo is currently doing a very poor job. If you have the time please file issues that you find at https://github.com/cbaggers/varjo/issues

Package

varjo.internals.

Source

src/varjo.internals/globals.lisp.


5.1.2 Macros

Macro: %peek (thing)
Package

varjo.utils.

Source

src/utils-v.lisp.

Macro: a-add (name value list-place)
Package

varjo.utils.

Source

src/utils-v.lisp.

Macro: a-remove-all (name list-place)
Package

varjo.utils.

Source

src/utils-v.lisp.

Macro: a-set (name value list-place)
Package

varjo.utils.

Source

src/utils-v.lisp.

Macro: case-member (member-form (&key test) &body cases)
Package

varjo.utils.

Source

src/utils-v.lisp.

Macro: case= (form &body cases)
Package

varjo.utils.

Source

src/utils-v.lisp.

Macro: dbind (lambda-list expression &body body)
Package

varjo.utils.

Source

src/utils-v.lisp.

Macro: def-metadata-infer (varjo-type-spec metadata-kind env-var &body body)

‘def-metadata-infer‘ is the older syntax for ‘define-metadata-infer‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals.

Source

src/varjo.internals/value-metadata.lisp.

Macro: def-metadata-kind (name (&key conc-name binds-to) &body slot-names)

‘def-metadata-kind‘ is the older syntax for ‘define-metadata-kind‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals.

Source

src/varjo.internals/value-metadata.lisp.

Macro: def-shadow-type-constructor (shadow-type function-identifier)

‘def-shadow-type-constructor‘ is the older syntax for ‘define-shadow-type-constructor‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals.

Source

src/varjo.internals/deftype.lisp.

Macro: define-alternate-type-name (current-type-name alternate-type-name)

‘define-alternate-type-name‘ lets you define

Package

varjo.internals.

Source

src/varjo.internals/types/early-types.lisp.

Macro: define-glsl-template-function (name args return-spec transform &key pure)

‘define-glsl-template-function‘ which lets you define a snippet of
glsl code as a function in Vari. Here is an example definition:

[0] ↓
(define-glsl-template-function my-func ((x :float)) ←[1]
:float ←[2]
"(1.0f / ~a)" ←[3]
:pure t) ←[4]

‘[0]‘ Here we are defining a function called ’my-func’

‘[1]‘ It takes 1 argument, called ’x’ which has the type ‘:float‘

‘[2]‘ It returns a single ‘:float‘ value

‘[3]‘ The string pattern is what will be injected into the final glsl. It behaves as though this pattern and the glsl for the arguments were passed to ‘format‘, e.g. ‘(format nil "(1.0f / ~a)" "2.3f") assuming the glsl of the argument passed to ‘x‘ was "2.3f".

The glsl for the arguments is passed to format in the order specified in ‘[1]‘

As it currently uses ‘format‘ it is legal to use other ‘directives‘ such as ‘~s‘ but it is not advisable as this will result in invalid glsl.

Package

varjo.internals.

Source

src/varjo.internals/functions.lisp.

Macro: define-metadata-infer (varjo-type-spec metadata-kind env-var &body body)

‘define-metadata-infer‘ lets you define

Package

varjo.internals.

Source

src/varjo.internals/value-metadata.lisp.

Macro: define-metadata-kind (name (&key conc-name binds-to) &body slot-names)

‘define-metadata-kind‘ lets you define

Package

varjo.internals.

Source

src/varjo.internals/value-metadata.lisp.

Macro: define-shadow-type-constructor (shadow-type function-identifier)

‘define-shadow-type-constructor‘ lets you define

Package

varjo.internals.

Source

src/varjo.internals/deftype.lisp.

Macro: define-vari-compiler-macro (name lambda-list &body body)

‘define-vari-compiler-macro‘ lets you define a compiler-macro that works in Vari.

The parameters in the lambda-list must be defined in form ‘(,name ,type-spec)‘

The compiler macro will only expand for functions with an exactly matching name and lambda-list.

Vari’s compiler macros behave the same as regular Common Lisp compiler-macros with the exception that you can make queries against the environment to find data (such as type) from the arguments (See [here]() for details).

Due to having to compile the argument forms before being able to identify the compiler macro, any form returned from the compiler-macro (other than the value from ‘&whole‘ is going to result in recompilation. This make Vari’s compiler macros more ’expensive’ than Common Lisps in the general sense.

Package

varjo.internals.

Source

src/varjo.internals/macros.lisp.

Macro: define-vari-function (name args &body body)

‘define-vari-function‘ lets you define a function that can be used in
any Vari code compiled in the future.

that takes the following:

- a name as a symbol
- a ’vari function lambda-list’ (see [here]() for details)
- a body made of Vari code

Please note that, other than performing some basic validation on the arguments, this function does not attempt any validation on the body of the function. Doing so would require knowledge of the context in which it is used.

If you need to test that the function could be valid, refer to the ‘test-translate-function-split-details‘ & ‘add-external-function‘ functions.

Package

varjo.internals.

Source

src/varjo.internals/functions.lisp.

Macro: define-vari-macro (name lambda-list &body body)

‘define-vari-macro‘ lets you define a macro that can be used in any Vari code compiled in the future.

Vari’s macros behave the same as regular Common Lisp macros with the exception that you can make queries against the environment to find
data (such as type) from the arguments (See [here]() for details).

Package

varjo.internals.

Source

src/varjo.internals/macros.lisp.

Macro: define-vari-struct (name context &body slots)

‘define-vari-struct‘ lets you define

Package

varjo.internals.

Source

src/varjo.internals/structs.lisp.

Macro: define-vari-trait (name (&rest type-vars) &body func-signatures)
Package

varjo.internals.

Source

src/varjo.internals/traits.lisp.

Macro: define-vari-trait-implementation (impl-type-name (trait-name &rest trait-args &key &allow-other-keys) &body implementations &key &allow-other-keys)
Package

varjo.internals.

Source

src/varjo.internals/traits.lisp.

Macro: define-vari-type (name args type-form &key valid-metadata-kinds)

‘define-vari-type‘ lets you define

Package

varjo.internals.

Source

src/varjo.internals/deftype.lisp.

Macro: emit ((&key point-size) &body position-and-then-user-data)
Package

vari.cl.

Source

src/vari.cl/special-operators/emit.lisp.

Macro: env-> ((env-var env) &body compiling-forms)

Kinda like varjo progn in that it accumulates the env and
returns the results of all the forms and the final env.
However it DOES NOT make a fresh environment to compile the forms in. It expects that each form returns a result and optionally an env

Package

varjo.internals.

Source

src/varjo.internals/compile-special.lisp.

Macro: flow-id-scope (&body body)
Package

varjo.internals.

Source

src/varjo.internals/flow.lisp.

Macro: glsl-chunk-splicing (&body key-form-pairs)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp.

Macro: merge-multi-env-progn (code-objs)
Package

varjo.internals.

Source

src/varjo.internals/compile-special.lisp.

Macro: merge-progn (code-objs starting-env &optional final-env)
Package

varjo.internals.

Source

src/varjo.internals/compile-special.lisp.

Macro: pipe-> (args &body stages)

(pipe-> (1 2 3) #’a #’b #’c #’d)
Calls first function with args provided and uses result as arguments for next function. Uses multiple-value-call so you can use (values) to specify complex lambda-args.

Package

varjo.utils.

Source

src/utils-v.lisp.

Macro: v-declaim (&body declaration-specifiers)
Package

varjo.internals.

Source

src/varjo.internals/declaim.lisp.

Macro: v-def-glsl-template-fun (name args transform arg-types return-spec &key v-place-index glsl-name pure)

‘v-def-glsl-template-fun‘ is the older syntax for ‘define-glsl-template-function‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals.

Source

src/varjo.internals/functions.lisp.

Macro: v-define-compiler-macro (name lambda-list &body body)

‘v-define-compiler-macro‘ is the older syntax for ‘define-vari-compiler-macro‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals.

Source

src/varjo.internals/macros.lisp.

Macro: v-defmacro (name lambda-list &body body)

‘v-defmacro‘ is the older syntax for ‘define-vari-macro‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals.

Source

src/varjo.internals/macros.lisp.

Macro: v-defspecial (name args &body body)
Package

varjo.internals.

Source

src/varjo.internals/functions.lisp.

Macro: v-defstruct (name context &body slots)

‘v-defstruct‘ is the older syntax for ‘define-vari-struct‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals.

Source

src/varjo.internals/structs.lisp.

Macro: v-deftype (name args type-form &key valid-metadata-kinds)

‘v-deftype‘ is the older syntax for ‘define-vari-type‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals.

Source

src/varjo.internals/deftype.lisp.

Macro: v-defun (name args &body body)

‘v-defun‘ is the older syntax for ‘define-vari-function‘.

This macro is still exported in order to maintain compatibility with existing code.

Package

varjo.internals.

Source

src/varjo.internals/functions.lisp.

Macro: vbind (vars value-form &body body)
Package

varjo.utils.

Source

src/utils-v.lisp.

Macro: vlist (value-form)
Package

varjo.utils.

Source

src/utils-v.lisp.

Macro: with-constant-inject-hook (func &body body)

When ‘translate‘ is called within the dynamic extern of the body of this form, if there is a use of a variable which is not in scope in the Vari code, but is ‘boundp‘ & constant in the Common Lisp environment then the user provided function will be called with the symbol naming the variable.
The user provided function must return a Vari type-spec or throw an error to inform the user of the issue.

Package

varjo.internals.

Source

src/varjo.internals/compile-vars.lisp.

Macro: with-fresh-env-scope ((name starting-env &key context function-scope form-bindings symbol-bindings multi-val-base multi-val-safe allowed-outer-vars) &body body)
Package

varjo.internals.

Source

src/varjo.internals/environment.lisp.

Macro: with-stemcell-infer-hook (func &body body)

When ‘translate‘ is called within the dynamic extern of the body of this form, if there is a use of a variable which is not in scope in the Vari code, but is not constant in the Common Lisp environment then the user provided function will be called with the symbol naming the variable.
The user provided function can:
- Return a Vari type-spec. This will become the type of the form.
- Return nil to have Varjo tell the user that the symbol is unbound.
- Throw an error. If you wish to inform the user that something else is awry.

Package

varjo.internals.

Source

src/varjo.internals/stemcells.lisp.

Macro: with-unknown-first-class-functions-allowed (&body body)

When ‘translate‘ is called within the dynamic extern of the body of this form, it will not throw an error if there is a use of ‘function‘ with an unknown function name/signature. In the event of such a use the compiler will generate a dummy function to satify the typechecker.

This is only useful for testing and the resulting GLSL will (most likely) not be legal

Package

varjo.internals.

Source

src/varjo.internals/compile-funcall.lisp.

Macro: with-v-arg ((&optional name type qualifiers glsl-name) arg-form &body body)
Package

varjo.internals.

Source

src/varjo.internals/rolling-translate.lisp.

Macro: with-v-let-spec (form &body body)
Package

varjo.internals.

Source

src/varjo.internals/compile-special.lisp.


5.1.3 Compiler macros

Compiler Macro: assocr (item alist &key key test test-not)
Package

varjo.utils.

Source

src/utils-v.lisp.

Compiler Macro: type-spec->type (spec &optional flow-id)
Package

varjo.internals.

Source

src/varjo.internals/types/early-types.lisp.

Compiler Macro: v-typep (a b)
Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.


5.1.4 Ordinary functions

Function: %gen-assignment-string (lhs rhs)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: %merge-multi-env-progn (code-objs)
Package

varjo.internals.

Source

src/varjo.internals/compile-special.lisp.

Function: %values-for-return (objs parsed-qualifier-lists env)
Package

varjo.internals.

Source

src/vari.cl/special-operators/values.lisp.

Function: a-get (name list)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: a-get1 (name list)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: add-alternate-type-name (alt-type-name src-type-name)

‘add-alternate-type-name‘

Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: add-type-to-stemcell-code (code-obj type-name)
Package

varjo.internals.

Source

src/varjo.internals/stemcells.lisp.

Function: assocr (item alist &key key test test-not)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: binding-accesible-p (env binding &optional binding-name)
Package

varjo.internals.

Source

src/varjo.internals/environment.lisp.

Function: build-function (name args body allowed-implicit-args env &key derived-from)
Package

varjo.internals.

Source

src/varjo.internals/make-function.lisp.

Function: calc-place-tree (func args)
Package

varjo.internals.

Source

src/varjo.internals/compile-funcall.lisp.

Function: cast-for-array-literal (target-element-type elements)
Package

varjo.internals.

Source

src/varjo.internals/casting.lisp.

Function: check-args-for-constant-names (purpose name args)
Package

varjo.internals.

Source

src/varjo.internals/function-obj.lisp.

Function: checkpoint-flow-ids ()
Package

varjo.internals.

Source

src/varjo.internals/flow.lisp.

Function: compile-declares (declaration-specifiers env)
Package

varjo.internals.

Source

src/varjo.internals/value-metadata.lisp.

Function: compile-external-func-returning-ref (func func-name-form env)
Package

varjo.internals.

Source

src/varjo.internals/compile-funcall.lisp.

Function: compile-forms-not-propagating-env-returning-list-of-compiled (func env list &rest more-lists)

This compiles each form one after the other (just like progn) however, unlike progn, each form is evaluated with the original environment this means that bindings in one won’t be visable in another.
Finally the resulting environement is merged.

This gives us the behaviour from the binding expressions portion of let forms

Package

varjo.internals.

Source

src/varjo.internals/compile-special.lisp.

Function: compile-forms-propagating-env-returning-list-of-compiled (func env list &rest more-lists)

Compile each form passing the env from the previous into the next. return the compiled code objects as a list along with the final env

Package

varjo.internals.

Source

src/varjo.internals/compile-special.lisp.

Function: compile-let (name type-spec value-form env &optional glsl-name assume-bound)
Package

varjo.internals.

Source

src/varjo.internals/compile-special.lisp.

Function: compile-list-form (code env)
Package

varjo.internals.

Source

src/varjo.internals/compile-funcall.lisp.

Function: compile-progn (body env)
Package

varjo.internals.

Source

src/varjo.internals/compile-special.lisp.

Function: cons-end (thing list)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: create-stage (kind version/s &key input-variables uniform-variables shared-variables code stemcells-allowed primitive)
Package

varjo.internals.

Source

src/varjo.internals/stages.lisp.

Function: elt* (sequence &rest indicies)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: end-line (obj &optional force)
Package

varjo.internals.

Source

src/varjo.internals/code-object.lisp.

Function: end-line-str (str)
Package

varjo.internals.

Source

src/varjo.internals/code-object.lisp.

Function: env-merge-history (env-a env-b)
Package

varjo.internals.

Source

src/varjo.internals/environment.lisp.

Function: env-prune* (to-depth &rest envs)
Package

varjo.internals.

Source

src/varjo.internals/environment.lisp.

Function: env-prune-many (to-depth envs)

Remove the first ’to-depth’ ancestors counting from the base-environment. For example calling env-prune on this environment..

base-env -> env0 -> env1 -> env2 -> env3 -> env4 -> env5

.. with a to-depth of 3 will return:

env2 -> env3 -> env4 -> env5

Package

varjo.internals.

Source

src/varjo.internals/environment.lisp.

Function: env-replace-parent (env new-parent &key symbol-bindings)
Package

varjo.internals.

Source

src/varjo.internals/environment.lisp.

Function: env-replace-symbol-bindings (env symbol-bindings)
Package

varjo.internals.

Source

src/varjo.internals/environment.lisp.

Function: ephemeral-p (obj)

‘ephemeral-p‘ returns T is the Varjo type object represents an ‘ephemeral‘ type

Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: external-function-p (f)
Package

varjo.internals.

Source

src/varjo.internals/external-functions.lisp.

Function: extract-declares (body)
Package

varjo.internals.

Source

src/varjo.internals/value-metadata.lisp.

Function: extract-declares-and-doc-string (body &optional full-form)
Package

varjo.internals.

Source

src/varjo.internals/value-metadata.lisp.

Function: extract-details-from-problematic-closures (closures)
Package

varjo.internals.

Source

src/varjo.internals/compile-funcall.lisp.

Function: extract-value-qualifiers (value-form)
Package

varjo.internals.

Source

src/vari.cl/special-operators/values.lisp.

Function: find-duplicates (list)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: find-env-bindings (env-a env-b &key test stop-at-base variables-only)

Look at every variable binding in both the supplied environments and return the names of the bindings that match

Package

varjo.internals.

Source

src/varjo.internals/environment.lisp.

Function: find-mutual-cast-type (&rest types)

‘find-mutual-cast-type‘ when given a number of Varjo type objects, this function will return a type object that they can all mutually be cast to according to GLSL’s rules.

Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: find-similarly-named-symbol (source-symb candidates-list)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: flow-id! (&rest ids)
Package

varjo.internals.

Source

src/varjo.internals/flow.lisp.

Function: format-external-func-for-error (func)
Package

varjo.internals.

Source

src/varjo.internals/external-functions.lisp.

Function: fresh-environment (env &key context function-scope form-bindings symbol-bindings multi-val-base multi-val-safe allowed-outer-vars ext-func-compile-chain)
Package

varjo.internals.

Source

src/varjo.internals/environment.lisp.

Function: gen-array-literal-string (elements element-type)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: gen-bin-op-string (op-symbol place val)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: gen-bool-and-string (objs)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: gen-bool-or-string (objs)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: gen-for-loop-chunk (decl-chunk var-string condition-obj update-obj body-obj)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: gen-macro-function-code (name lambda-list body)
Package

varjo.internals.

Source

src/varjo.internals/macros.lisp.

Function: gen-or-type (types flow-id)
Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: gen-setq-assignment-string (old-value new-value-code-obj)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: gen-switch-chunk (test-obj keys clause-body-objs &optional default-symb)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: gen-swizzle-string (vec-obj components-string)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: gen-while-chunk (test-obj body-obj)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: glsl-chunk (&rest lines)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp.

Function: glsl-chunk* (lines)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp.

Function: glsl-chunk-emptyp (chunk)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp.

Function: glsl-chunk-from-compiled (obj)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp.

Reader: glsl-chunk-lines (instance)
Writer: (setf glsl-chunk-lines) (instance)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp.

Target Slot

lines.

Function: glsl-line (control-string &rest args)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp.

Function: glsl-to-compile-result (stage-kind in-args uniforms outputs context body-string &optional primitive)

Here our goal is to simple reuse as much from varjo as possible. This will mean we have less duplication, even if things seem a little ugly here

Package

varjo.internals.

Source

src/varjo.internals/glsl-stage.lisp.

Function: group (source n)

This takes a flat list and emit a list of lists, each n long containing the elements of the original list

Package

varjo.utils.

Source

src/utils-v.lisp.

Function: group-by (key sequence &key test)

Groups by key and maintains order

Package

varjo.utils.

Source

src/utils-v.lisp.

Function: id= (id-a id-b)
Package

varjo.internals.

Source

src/varjo.internals/flow.lisp.

Function: id~= (id-a id-b)
Package

varjo.internals.

Source

src/varjo.internals/flow.lisp.

Function: indent (glsl &optional count)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp.

Function: inject-implicit-uniform (symbol type-spec env &optional cpu-side-transform)
Package

varjo.internals.

Source

src/varjo.internals/stemcells.lisp.

Function: join-glsl-chunks (chunks)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp.

Function: join-glsl-of-compiled (compiled-objs)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/line-and-chunk.lisp.

Function: kwd (&rest args)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: lambda-list-get-names (l-list)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: lambda-list-split (template lam-list)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: last1 (list)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: lisp-name->glsl-name (symbol env)
Package

varjo.internals.

Source

src/varjo.internals/names.lisp.

Function: listify (x)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: make-compiled (&key type-set current-line to-block emit-set return-set used-types stemcells out-of-scope-args pure literal place-tree called-funcs)
Package

varjo.internals.

Source

src/varjo.internals/code-object.lisp.

Function: make-dummy-function-from-type (func-type code)
Package

varjo.internals.

Source

src/varjo.internals/function-obj.lisp.

Function: make-env-with-place-modification (place-obj val-flow-ids env code)
Package

varjo.internals.

Source

src/varjo.internals/compile-special.lisp.

Function: make-function-set (functions)
Package

varjo.internals.

Source

src/varjo.internals/function-obj.lisp.

Function: make-stage (kind in-args uniforms context code &optional stemcells-allowed primitive)

‘make-stage‘ is the function that create an object that can be passed to the
‘translate‘ function. It takes the following arguments:

### kind

This must be one of the keywords in *stage-names*:

- :vertex
- :tessellation-control
- :tessellation-evaluation
- :geometry
- :fragment
- :compute

### in-args

Must be a list of input parameters to the stage. These are the values to which change
per element that is being processed, whether that be per vertex, fragment, patch,
instance, etc.

The input variables are defined as lists in the following fashion:

(variable-name
type-spec
&rest optional-qualifier-designators ["explicit-glsl-name"])

Usually this looks like:

(vert :vec4)
(data lighting-data)
(length :int :flat) <- flat is the qualifier in this case

If the last element of the list is a string, then that string is used as the name of the variable in the compiled GLSL. This is very rarely used and should generally be avoided.

### uniforms

This is a list of the uniforms to stage. These are the values that stay the same (are
uniform) for the duration of the pipeline.

They are defined in the same way as the above ’in-args’ except that, if the type-spec
specified a struct type the following additional qualifiers are allowed:

- ‘:ssbo‘
- ‘:ubo‘
- ‘:std-140‘
- ‘:std-430‘

The result of ‘make-stage‘ is an instance of one of the subclasses of the
‘stage‘ type.

### context

The context argument must be a list that may contain any number of symbols from
*supported-versions*. Context is used to specify the GLSL version to compile the
stage.

NOTE: The name ’context’ is legacy at this point as it is only used to specify
GLSL versions.

### code

This must be a list containing the forms that make up the ’body’ of the stage.

It is not legal for this argument to be nil.

### stemcells-allowed (optional)

If this argument is not NIL then the compiler will allow the capture of globally
scoped variables from Common Lisp and use of ‘add-lisp-form-as-uniform‘ from
within macros. For details on how to support ’global variable capture’ please see
the documentation for ‘with-stemcell-infer-hook‘ & ‘with-constant-inject-hook‘

### primitive (optional)

This can be nil, a instance of the type ’primitive or a valid ’primitive
designator’ as specified by the ‘valid-primitive-name-p‘ function.

Primitive designators are either one of the following keywords..

- ‘:dynamic‘
- ‘:points‘
- ‘:lines‘
- ‘:iso-lines‘
- ‘:line-loop‘
- ‘:line-strip‘
- ‘:lines-adjacency‘
- ‘:line-strip-adjacency‘
- ‘:triangles‘
- ‘:triangle-fan‘
- ‘:triangle-strip‘
- ‘:triangles-adjacency‘
- ‘:triangle-strip-adjacency‘
- ‘:quads‘

.. or a list whos first element is ‘:patches‘ and the second (and final) element
is a positive integer that is greater than 1. This specifies the length of
the patch.

Whilst this is optional in ‘make-stage‘ it must be set before being passed to
translate if the stage kind is one of the following:

- tessellation-control-stage
- tessellation-evaluation-stage
- geometry-stage

*Or* if it the first stage in the list of stages passed to ‘rolling-translate‘
and if some of the other stages are of the above kinds.

Package

varjo.internals.

Source

src/varjo.internals/stages.lisp.

Function: make-type-set (&rest members)

‘make-type-set‘ takes Varjo type objects or ‘type-spec‘s and returns an objects that respresents a set of types. ‘type-set‘s are used by a number of internal Varjo functions.

Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: make-type-set* (members)
Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: n-of (thing count)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: nth-or-self (n x)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: p-symb (package &rest args)

This takes a list of symbols (or strings) and outputs one symbol.
If the input is symbol/s then the output is a regular symbol If the input is string/s, then the output is
a |symbol like this|

Package

varjo.utils.

Source

src/utils-v.lisp.

Function: parse-qualifier (qualifier-form)
Package

varjo.internals.

Source

src/varjo.internals/qualifiers.lisp.

Function: positions-if (predicate sequence)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: postfix-glsl-index (base index)
Package

varjo.internals.

Source

src/varjo.internals/variables.lisp.

Function: prefix-type-to-string (type line-string &optional qualifiers storage-qual)
Package

varjo.internals.

Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Function: primitive-name-to-instance (name)
Package

varjo.internals.

Source

src/varjo.internals/internal-types.lisp.

Function: register-reserved-name (name)
Package

varjo.internals.

Source

src/varjo.internals/names.lisp.

Function: remove-alternate-type-name (alt-type-name)
Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: replace-flow-ids-for-single-var (var-name new-flow-ids env)
Package

varjo.internals.

Source

src/varjo.internals/flow.lisp.

Function: replace-flow-ids-for-specific-value (var-name current-value env-holding-var new-flow-ids env)
Package

varjo.internals.

Source

src/varjo.internals/flow.lisp.

Function: reset-flow-ids-to-checkpoint (checkpoint)
Package

varjo.internals.

Source

src/varjo.internals/flow.lisp.

Function: resolve-name-from-alternative (spec)
Package

varjo.internals.

Source

src/varjo.internals/types/early-types.lisp.

Function: rolling-translate (stages &optional compile-func)

When called with a list of ‘stage‘ objects, ‘rolling-translate‘ compiles them returning a list of ‘compiled-stage‘ objects.

‘rolling-translate‘ does not simply ‘mapcar‘ the list over ‘translate‘ it propegates information like the primitive and ensures that outputs of one stage match up with the inputs of the next. This means that you only have to specify the primitive on the vertex stage when compiling a whole pipeline and any geometry/tessellation stages in the list will receive the correct information.

Package

varjo.internals.

Source

src/varjo.internals/rolling-translate.lisp.

Function: safe-glsl-name-string (name)
Package

varjo.internals.

Source

src/varjo.internals/names.lisp.

Function: split-arguments (args &optional template)
Package

varjo.utils.

Source

src/utils-v.lisp.

Function: stage-kind (stage)
Package

varjo.internals.

Source

src/varjo.internals/stages.lisp.

Function: stemcellp (x)
Package

varjo.internals.

Source

src/varjo.internals/stemcells.lisp.

Function: symb (&rest args)

This takes a list of symbols (or strings) and outputs one symbol.
If the input is symbol/s then the output is a regular symbol If the input is string/s, then the output is
a |symbol like this|

Package

varjo.utils.

Source

src/utils-v.lisp.

Function: test-translate-function-split-details (name in-args uniforms context body &optional stage-kinds allow-stemcells)
Package

varjo.internals.

Source

src/varjo.internals/test-compile.lisp.

Function: try-compile-arg (arg env &optional wrap-errors-p)
Package

varjo.internals.

Source

src/varjo.internals/functions.lisp.

Function: type-set-to-type-list (set)
Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: type-specp (spec)

‘type-specp‘ returns T if the ‘type-spec‘ provided represents valid Vari type.

Package

varjo.internals.

Source

src/varjo.internals/types/early-types.lisp.

Function: user-function-p (f)
Package

varjo.internals.

Source

src/varjo.internals/functions.lisp.

Function: v-compile (uniforms version &key vertex tessellation-control tessellation-evaluation geometry fragment compute allow-stemcells draw-mode primitive)

> NOTE: It is the authors recommendation to use ‘make-stage‘ & ‘translate‘ > rather than this function

This function takes lisp code as lists and returns the results of compiling that code to glsl.

Each result is an object of type ’compiled-stage.

The stages must be defined in the following way.

- The first element of the list is the input args to the stage as pairs of names and types.
- The rest of the list is the body code of that stage.

Example:

(v-compile ’((a :float)) :330
:vertex ’(((pos :vec3))
(values (vec4 pos 1.0) a))
:fragment ’(((hmm :float))
(labels ((fun ((x :float))
(* x x)))
(vec4 1.0 1.0 hmm (fun a)))))

Package

varjo.internals.

Source

src/varjo.internals/front-end.lisp.

Function: v-discarded-p (obj)
Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: v-errorp (obj)

‘v-errorp‘ returns T if the provided objects is of type ‘v-error‘

Package

varjo.internals.

Source

src/varjo.internals/types/early-types.lisp.

Function: v-returned-p (obj)
Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: v-terminated-p (x)
Package

varjo.internals.

Source

src/varjo.internals/types/types.lisp.

Function: valid-primitive-name-p (name)
Package

varjo.internals.

Source

src/varjo.internals/internal-types.lisp.

Function: vari-describe (name &optional stream try-package-name)
Package

vari.cl.

Source

src/vari.cl/docs.lisp.

Function: vec-of (type len)
Package

varjo.internals.

Source

src/vari.types/types.lisp.


5.1.5 Generic functions

Generic Reader: %glsl-decl (object)
Package

varjo.internals.

Methods
Reader Method: %glsl-decl ((uniform-variable uniform-variable))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

glsl-decl.

Generic Function: %uniform-name (thing env)
Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: %uniform-name ((val v-value) (env extended-environment))
Source

src/varjo.api/environment.lisp.

Method: %uniform-name ((compiled compiled) (env extended-environment))
Source

src/varjo.api/environment.lisp.

Method: %uniform-name ((id flow-identifier) (env extended-environment))
Source

src/varjo.api/environment.lisp.

Generic Function: add-equivalent-name (existing-name new-name)

‘add-equivalent-name‘

Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: add-equivalent-name (existing-name new-name)
Source

src/varjo.internals/environment.lisp.

Generic Function: add-external-function (name in-args uniforms code &optional valid-glsl-versions)

‘add-external-function‘ is a function that takes the following:

- a name as a symbol
- a list of input parameters declartions in the form:
‘(,name ,type-spec ,@qualifiers)‘
- a list of uniforms in the form:
‘(,name ,type-spec ,@qualifiers)‘
- a list of forms that make up the body of the function
- [optional] as list of glsl versions this function is valid for.
nil means it is valid for all versions

After doing basic checks on the arguments the function will be added to the ’external function registry’ such that it call be called from any future compilation task (assuming appropriate glsl versions).

Please note that this function does not attempt to validate the body of the function as doing so would require knowledge of the context in which it is used. If you need to test that the function could be valid, refer to the ‘test-translate-function-split-details‘ function.

Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: add-external-function (name in-args uniforms code &optional valid-glsl-versions)
Source

src/varjo.internals/external-functions.lisp.

Generic Function: add-form-binding (func/macro env)
Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: add-form-binding (anything (env base-environment))
Source

src/varjo.internals/environment.lisp.

Method: add-form-binding ((macro v-regular-macro) (env environment))
Source

src/varjo.internals/environment.lisp.

Method: add-form-binding ((func v-function) (env environment))
Source

src/varjo.internals/environment.lisp.

Method: add-form-binding ((compiled-func compiled-function-result) (env environment))
Source

src/varjo.internals/environment.lisp.

Generic Function: add-form-bindings (funcs/macros env)
Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: add-form-bindings ((funcs list) (env environment))
Source

src/varjo.internals/environment.lisp.

Generic Function: add-global-form-binding (func/macro)
Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: add-global-form-binding ((func-obj v-function))
Source

src/varjo.internals/environment.lisp.

Method: add-global-form-binding ((macro-obj v-regular-macro))
Source

src/varjo.internals/environment.lisp.

Generic Function: add-lisp-form-as-uniform (form type-spec env &optional name)

‘add-lisp-form-as-uniform‘ is an intersting beast. Its goal it to make it easy to inject uniforms into the resulting GLSL which will be populated by the result of a specific Common Lisp form.

You provide:
- a value which will be assumed to be a valid Common lisp form
- a Vari ‘type-spec‘ which will be the type of the uniform
- a Varjo environment object, which must have been obtained from the ‘ &environment‘ paramater in a Vari macro.
- an optional name

Varjo will then add a uniform (as it would be using uniform list in ‘make-stage‘). You can then use the symbol provided as the ’name’ argument in your Vari code.

When the compilation completes you can query the ‘compiled-stage‘ object using the ‘implicit-uniforms‘ function which will return a list of ‘implicit-uniform-variable‘ objects which can be queried using the following functions:

- ‘name‘ - the vari name of the uniform
- ‘glsl-name‘ - returns a string with the glsl name of the uniform variable - ‘v-type-of‘ - Returns the Varjo type object
- ‘cpu-side-transform‘ - this is how you obtain the Common Lisp code that was passed to ‘add-lisp-form-as-uniform‘

Package

varjo.api.

Source

src/varjo.api/environment.lisp.

Methods
Method: add-lisp-form-as-uniform (form type-spec (env extended-environment) &optional name)
Generic Function: add-symbol-binding (var-name val env)
Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: add-symbol-binding (name (macro v-symbol-macro) (env environment))
Source

src/varjo.internals/environment.lisp.

Method: add-symbol-binding (name (val v-value) (env environment))
Source

src/varjo.internals/environment.lisp.

Generic Function: all-bound-symbols (env)

When given an ‘environment‘ object from a Vari macro ‘all-bound-symbols‘ returns a list of all the symbols currently bound.

Package

varjo.api.

Source

src/varjo.api/environment.lisp.

Methods
Method: all-bound-symbols ((env extended-environment))
Generic Reader: all-functions (object)
Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Reader Method: all-functions ((post-compile-process post-compile-process))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

all-functions.

Generic Writer: (setf all-functions) (object)
Package

varjo.internals.

Methods
Writer Method: (setf all-functions) ((post-compile-process post-compile-process))

automatically generated writer method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

all-functions.

Generic Function: allows-stemcellsp (object)
Package

varjo.internals.

Methods
Method: allows-stemcellsp ((e environment))
Source

src/varjo.internals/environment.lisp.

Reader Method: allows-stemcellsp ((base-environment base-environment))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

stemcells-allowed.

Generic Reader: arg-num (object)
Package

varjo.internals.

Methods
Reader Method: arg-num ((ret-gen-element-of-nth-arg-type ret-gen-element-of-nth-arg-type))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

arg-num.

Reader Method: arg-num ((ret-gen-nth-arg-type ret-gen-nth-arg-type))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

arg-num.

Generic Function: argument-is-uniform-p (name env)

When given an ‘environment‘ object from a Vari macro and a symbol that names one of the arguments to the compiler-macro, ‘argument-is-uniform-p‘ returns T if the value of the argument comes from a uniform variable.

Package

varjo.api.

Source

src/varjo.api/environment.lisp.

Methods
Method: argument-is-uniform-p ((name symbol) (env macro-expansion-environment))
Method: argument-is-uniform-p ((name symbol) (env compiler-macro-expansion-environment))
Generic Function: argument-type (name env)

When given an ‘environment‘ object from a Vari macro and a symbol that names a variable bound in the current scope, ‘argument-type‘ returns the Varjo type object that represents the Vari type of that variable.

Package

varjo.api.

Source

src/varjo.api/environment.lisp.

Methods
Method: argument-type ((name symbol) (env compiler-macro-expansion-environment))
Method: argument-type ((name symbol) (env macro-expansion-environment))
Generic Function: argument-uniform-name (name env)

When given an ‘environment‘ object from a Vari macro and a symbol that names an argument to the current compiler-macro, ‘argument-uniform-name‘ returns the the symbol which names the uniform in the stage if the value passed to the named paramater has come from a uniform.

Package

varjo.api.

Source

src/varjo.api/environment.lisp.

Methods
Method: argument-uniform-name ((name symbol) (env macro-expansion-environment))
Method: argument-uniform-name ((name symbol) (env compiler-macro-expansion-environment))
Generic Reader: arguments (object)
Package

varjo.internals.

Methods
Reader Method: arguments ((v-compiler-macro v-compiler-macro))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

args.

Reader Method: arguments ((v-regular-macro v-regular-macro))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

args.

Reader Method: arguments ((func-match func-match))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

arguments.

Generic Writer: (setf arguments) (object)
Package

varjo.internals.

Methods
Writer Method: (setf arguments) ((v-compiler-macro v-compiler-macro))

automatically generated writer method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

args.

Writer Method: (setf arguments) ((v-regular-macro v-regular-macro))

automatically generated writer method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

args.

Generic Reader: block-name (object)
Package

varjo.internals.

Methods
Reader Method: block-name ((v-block-array v-block-array))

automatically generated reader method

Source

src/varjo.internals/types/types.lisp.

Target Slot

block-name.

Reader Method: block-name ((v-block-struct v-block-struct))

automatically generated reader method

Source

src/varjo.internals/types/types.lisp.

Target Slot

block-name.

Reader Method: block-name ((output-variable output-variable))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

block-name.

Generic Function: block-name-string (block-name)

When passed an instance of ‘output-variable‘ this will return the name of the interface-block that contained the variable as a string.

Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: block-name-string ((var output-variable))
Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Method: block-name-string (block-name)
Source

src/varjo.internals/glsl-generation/string-generation.lisp.

Generic Function: captured-vars (object)
Package

varjo.internals.

Methods
Method: captured-vars ((fn v-function))
Source

src/varjo.internals/function-obj.lisp.

Reader Method: captured-vars ((v-user-function v-user-function))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

captured-vars.

Generic Reader: code (object)
Package

varjo.internals.

Methods
Reader Method: code ((external-function external-function))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

code.

Generic Function: combine-metadata (meta-a meta-b)

‘combine-metadata‘ takes 2 metadata (or null) objects and attempts to combine them if possible. It is valid for the system to return nil for non-null arguments.

Package

varjo.internals.

Source

src/varjo.internals/value-metadata.lisp.

Methods
Method: combine-metadata ((meta-a standard-value-metadata) (meta-b standard-value-metadata))
Method: combine-metadata ((meta-a standard-value-metadata) (meta-b null))
Method: combine-metadata ((meta-a null) (meta-b standard-value-metadata))
Method: combine-metadata ((meta-a null) (meta-b null))
Generic Function: compile-form (code env)
Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: compile-form (code env)
Source

src/varjo.internals/compile-form.lisp.

Generic Function: compile-literal (code env &key errorp)
Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: compile-literal (code env &key errorp)
Source

src/varjo.internals/compile-form.lisp.

Generic Function: compile-place (code env &key allow-unbound)
Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: compile-place (code env &key allow-unbound)
Source

src/varjo.internals/compile-form.lisp.

Generic Reader: context (object)

When passed an instance of ‘stage‘ this function returns a list of GLSL versions which this stage was/is to be compiled with

Package

varjo.internals.

Methods
Reader Method: context ((stage stage))

automatically generated reader method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

context.

Generic Writer: (setf context) (object)
Package

varjo.internals.

Methods
Writer Method: (setf context) ((stage stage))

automatically generated writer method

Source

src/varjo.internals/internal-types.lisp.

Target Slot

context.

Generic Function: copy-compiled (code-obj &key type-set current-line to-block emit-set return-set stemcells out-of-scope-args place-tree pure used-types literal called-funcs)
Package

varjo.internals.

Source

src/varjo.internals/generics.lisp.

Methods
Method: copy-compiled ((code-obj compiled) &key type-set current-line to-block emit-set return-set stemcells out-of-scope-args place-tree pure literal used-types called-funcs)
Source

src/varjo.internals/code-object.lisp.

Generic Reader: core-typep (object)

‘core-typep‘ returns T if the Varjo type object provided is a core GLSL type

Package

varjo.internals.

Methods
Reader Method: core-typep ((v-uimage-2d-ms-array v-uimage-2d-ms-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-2d-ms-array v-iimage-2d-ms-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-2d-ms-array v-image-2d-ms-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-2d-ms v-uimage-2d-ms))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-2d-ms v-iimage-2d-ms))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-2d-ms v-image-2d-ms))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-cube-array v-uimage-cube-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-cube-array v-iimage-cube-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-cube-array v-image-cube-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-2d-array v-uimage-2d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-2d-array v-iimage-2d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-2d-array v-image-2d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-1d-array v-uimage-1d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-1d-array v-iimage-1d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-1d-array v-image-1d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-buffer v-uimage-buffer))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-buffer v-iimage-buffer))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-buffer v-image-buffer))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-cube v-uimage-cube))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-cube v-iimage-cube))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-cube v-image-cube))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-2d-rect v-uimage-2d-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-2d-rect v-iimage-2d-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-2d-rect v-image-2d-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-rect v-uimage-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-rect v-iimage-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-rect v-image-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-3d v-uimage-3d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-3d v-iimage-3d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-3d v-image-3d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-2d v-uimage-2d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-2d v-iimage-2d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-2d v-image-2d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uimage-1d v-uimage-1d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-iimage-1d v-iimage-1d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-image-1d v-image-1d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-atomic-uint v-atomic-uint))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-rect v-usampler-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-rect v-isampler-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-rect v-sampler-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-cube-array v-usampler-cube-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-cube v-usampler-cube))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-buffer v-usampler-buffer))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-3d v-usampler-3d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-2d-rect v-usampler-2d-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-2d-ms-array v-usampler-2d-ms-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-2d-ms v-usampler-2d-ms))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-2d-array v-usampler-2d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-2d v-usampler-2d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-1d-array v-usampler-1d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-usampler-1d v-usampler-1d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-cube-shadow v-sampler-cube-shadow))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-cube-array-shadow v-sampler-cube-array-shadow))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-cube-array v-sampler-cube-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-cube v-sampler-cube))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-buffer v-sampler-buffer))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-3d v-sampler-3d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-2d-shadow v-sampler-2d-shadow))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-2d-rect-shadow v-sampler-2d-rect-shadow))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-2d-rect v-sampler-2d-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-2d-ms-array v-sampler-2d-ms-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-2d-ms v-sampler-2d-ms))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-2d-array-shadow v-sampler-2d-array-shadow))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-2d-array v-sampler-2d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-2d v-sampler-2d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-1d-shadow v-sampler-1d-shadow))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-1d-array-shadow v-sampler-1d-array-shadow))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-1d-array v-sampler-1d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-sampler-1d v-sampler-1d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-cube-array v-isampler-cube-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-cube v-isampler-cube))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-buffer v-isampler-buffer))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-3d v-isampler-3d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-2d-rect v-isampler-2d-rect))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-2d-ms-array v-isampler-2d-ms-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-2d-ms v-isampler-2d-ms))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-2d-array v-isampler-2d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-2d v-isampler-2d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-1d-array v-isampler-1d-array))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-isampler-1d v-isampler-1d))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-dvec4 v-dvec4))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-dvec3 v-dvec3))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-dvec2 v-dvec2))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-ivec4 v-ivec4))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-ivec3 v-ivec3))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-ivec2 v-ivec2))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uvec4 v-uvec4))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uvec3 v-uvec3))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-uvec2 v-uvec2))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-bvec4 v-bvec4))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-bvec3 v-bvec3))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-bvec2 v-bvec2))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-vec4 v-vec4))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-vec3 v-vec3))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-vec2 v-vec2))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-dmat4x4 v-dmat4x4))

automatically generated reader method

Source

src/vari.types/types.lisp.

Target Slot

core.

Reader Method: core-typep ((v-dmat4x3