The 3bgl-shader Reference Manual
Table of Contents
The 3bgl-shader Reference Manual
This is the 3bgl-shader Reference Manual,
generated automatically by Declt version 3.0 "Montgomery Scott"
on Tue Dec 22 11:35:28 2020 GMT+0.
1 Introduction
3bgl-shader: a Common Lisp DSL for generating GLSL shaders
Features
- looks more-or-less like CL
- type inference
- hooks for interactive use
- automatic overloaded functions
Minimal Example shader program
Just transform the vertex, and send color to be interpolated.
(More examples can be found here.)
;; define a package for the shader functions, :USEing :3BGL-GLSL/CL
(cl:defpackage #:shader
(:use :3bgl-glsl/cl)
(cl:in-package #:shader)
;; vertex attributes, need to specify types for all 'external'
;; interfaces and globals (inputs, outputs, uniforms, varyings)
(input position :vec4 :location 0)
(input color :vec4 :location 1)
;; final output
(output out-color :vec4 :stage :fragment)
;; model-view-projection matrix
(uniform mvp :mat4)
;; interface between vertex and fragment shader
(interface varyings (:out (:vertex outs)
:in (:fragment ins))
(color :vec4))
;; vertex shader (names are arbitrary)
(defun vertex ()
(setf (@ outs color) color
gl-position (* mvp position)))
;; fragment shader
(defun boring-fragment ()
(setf out-color (@ ins color)))
;; not quite CL:defconstant, need to specify a type
(defconstant +scale+ 2.0 :float)
;; a helper function
(defun invert-and-scale (x)
;; RETURN is GLSL return rather than CL:RETURN, and is required for
;; functions that return a value
(return (* +scale+ (- 1 x))))
;; an alternate fragment shader
(defun inverted-fragment ()
(setf out-color (invert-and-scale (@ ins color))))
Convert to glsl
(3bgl-shaders:generate-stage :vertex 'shader::vertex)
(3bgl-shaders:generate-stage :fragment 'shader::boring-fragment)
(3bgl-shaders:generate-stage :fragment 'shader::inverted-fragment)
results:
// vertex shader:
#version 450
out varyings {
vec4 color;
} outs;
layout(location = 1) in vec4 color;
uniform mat4 mvp;
layout(location = 0) in vec4 position;
void main () {
outs.color = color;
gl_Position = (mvp * position);
}
// boring fragment shader:
#version 450
out vec4 outColor;
in varyings {
vec4 color;
} ins;
void main () {
outColor = ins.color;
}
// inverted fragment shader
#version 450
out vec4 outColor;
const float SCALE = 2.0;
in varyings {
vec4 color;
} ins;
vec4 invertAndScale (vec4 x) {
return (SCALE * (1 - x));
}
void main () {
outColor = invertAndScale(ins.color);
}
Hooks for interactive use
Programs using 3bgl-shader can add a function to
3bgl-shaders::*modified-function-hook*
, which will be called when
shader functions are redefined. It will be passed a list of names of
updated functions. For example in the shaders above, if the
(defconstant +scale+ 2.0 :float)
form were recompiled in slime with
C-c C-c
, the hook functions would be passed the list
(SHADER::INVERTED-FRAGMENT SHADER::INVERT-AND-SCALE)
since
invert-and-scale
depends on the constant, and inverted-fragment
depends on the function invert-and-scale
. The hook function could
then see one of the fragment shaders it is using had been modified,
and arrange for a running program to try to recompile the shader
program next frame.
Current status
The compiler and type inference mostly work, including some fairly
complicated shaders.
Built-in functions/types/variables from glsl version 4.50 are
available, and older versions might work to the extent they are
compatible with the subset of 4.50 used in a particular shader. The
type inference doesn't distinguish between versions, so might allow
casts that wouldn't be valid in an older version.
Error messages are mostly horrible, so most type inference failures
will give incomprehensible errors.
CL style type declarations are allowed and should mostly be respected.
API isn't completely finished, so some parts may change (in particular
the base types like :vec3
may be renamed to 3bgl-glsl:vec3
at some
point.)
The external API needs more work, in particular some way to query
uniforms, inputs, outputs, etc.
Currently no way to translate line/column numbers from glsl error
messages back to source.
Performance is acceptable for shaders I've tested it on, but not sure
how it scales. It currently WARN
s if it takes more than 2000 passes
for type inference, which may need adjusted or disabled for larger shaders.
Currently all functions that depend on a function/global will be
recompiled when things they depend on are recompiled, which can make
changing function signatures or types difficult if they aren't
compatible with the uses.
Recompilation may be more aggressive than it needs to be, for
example if the value of a constant is changed, it shouldn't need to
re-run type inference of functions that use that constant if the type
didn't change.
Dependencies on uniforms are sometimes missed, dumping a bare
reference to it in main function is a simple workaround.
Misc notes
Concrete types
GLSL types are currently named with keywords (though that may change
in the future), like :vec2
, :vec3
, :vec4
, :mat2x4
,
:sampler-2d-array-shadow
etc. see the
source
for details for now, though most are fairly obvious.
Component swizzles
Components of GLSL vector types like :vec4
can be accessed with
'swizzle' functions like .xyz
, so for example glsl someVec.rraa
would be (.rraa some-vec)
. Type inference should correctly use the
swizzle to determine minimum size of the vector if not specified.
Structure/interface slots
(@ var slot-name)
is a shortcut for (slot-value var 'slot-name)
,
and either will compile to var.slot
. GLSL doesn't allow specifying a
slot through a variable, so slot name must be a quoted compile-time
literal.
RETURN
Functions are required to use RETURN
to return values, they will not
return the value of the last form as in CL. A function without a
RETURN
will have a void
return type. (return (values))
can also
be used to force a void
return type, and for early exit from a
void
function.
Overloaded functions
If a function doesn't have a specific derived or specified type, it
can be used with any compatible types, and the generated GLSL will
have a version for each type.
For example the previous code could have had
;; X can be any type that works with scalar `*` and `-`
(defun invert-and-scale (x)
(return (* +scale+ (- 1 x))))
(defun inverted-fragment ()
(setf out-color (+ (invert-and-scale 1) ;; call 'int' version
(invert-and-scale (@ ins color))))) ;; call 'vec4' version
which would generate the glsl code
#version 450
out vec4 outColor;
const float SCALE = 2.0;
in varyings {
vec4 color;
} ins;
// returns a vec4 because the input is vec4
vec4 invertAndScale (vec4 x) {
return (SCALE * (1 - x));
}
// returns float because SCALE is a float
float invertAndScale (int x) {
return (SCALE * (1 - x));
}
void main () {
outColor = (invertAndScale(1) + invertAndScale(ins.color));
}
Type declarations
CL-style type declarations are allowed, and should interact correctly
with type inference.
for example
(defun foo (x y)
(declare (values :float) (:float x))
(let ((a (+ x y)))
(declare (:vec2 a))
(return (.x a))))
specifies that foo
returns a float
, the first argument is also
specified to be float
, while the second isn't explicitly
restricted. The local variable A
is specified to be a vec2
, which
implicitly restricts Y
to also be something that casts to vec2
.
(declare (values))
can be used to explicitly specify void
return
type for a function.
Uniforms, input, output, interface
Uniforms are specified with (UNIFORM name type &key stage location layout qualifiers)
.
:stage
specifies in which shader stages (:vertex
,:fragment
etc)
the uniform is visible (by default the uniform is visible in all
stages, though will only be included in generated GLSL for stages in
which it is referenced).
:location N
is a shortcut for specifying the location
layout qualifier.
:layout (...)
allows specifying arbitrary layout qualifiers, argument is a plist containing qualifier and value (specify value = t
for qualifiers that don't take arguments)
:qualifiers (...)
allows specifying other qualifiers like restrict
, argument is a list of qualifiers.
;; a simple 'int' uniform, location chosen by driver or GL side of API
(uniform flag :int)
;; -> uniform int flag;
;; an image2D uniform, with format, location and `restrict` specified
(uniform tex :image-2d :location 1 :layout (:rg32f t) :qualifiers (:restrict))
;; -> layout(location = 1,rg32f) uniform restrict image2D tex;
;; an atomic counter, with binding and offset specified
(uniform counter :atomic-uint :layout (:binding 0 :offset 0))
;; -> layout(binding = 0,offset = 0) uniform atomic_uint counter;
Inputs and outputs are specified with (INPUT name type &key stage location)
and (OUTPUT name type &key stage location)
where stage
specifies in which shader stages (:vertex
,:fragment
etc) the input is visible, and location
is an integer which will be
output as layout(location = 1)
in GLSL.
Interfaces between stages are specified as (INTERFACE name (&key in out uniform) &body slots)
. slots
is a list of (slot-name type)
. in
, out
and uniform
specify how the interface will be
visible, and are either T
to make it visible to all stages as
name
, or a plist of stage names and names to use for the interface in that stage.
For example (interface varyings (:out (:vertex outs) :in (:fragment ins :geometry (ins "ins" :*))) ...)
will be visible as an output
named out
in the vertex shader, as an input array named ins
in the
geometry shader, and as an input named ins
in the fragment shader.
name
and slot-name
in uniform/input/output/interface can either be
a symbol which will be automatically converted from lisp-style
to
glslStyle
, or it can be a list of (lisp-name "glslName")
to
provide an explicit translation.
Running the example programs
Example program uses GLUT and GLU, and expects GLSL version 330.
Most lisp dependencies should be available in quicklisp, aside from possibly mathkit.
Load 3bgl-shader-example.asd
through ASDF or Quicklisp, then run
(3bgl-shader-example:run-example)
. That should create a window with
a spinning teapot, hit 0
-5
keys to try the various example
shaders.
If that is working, you can open example-shaders.lisp in emacs and
edit them and recompile as usual from slime (C-c C-c etc).
Getting names of uniforms/vertex attributes
In addition to generated GLSL source, GENERATE-STAGE
returns a list
of uniforms as 2nd value, and attributes in 3rd value. Both are in
form (lisp-name "glslName" TYPE)
for each entry. There isn't
currently any dead-code elimination, so listed names may not actually
be active in the final shader program.
Macros
DEFMACRO
and MACROLET
work as in CL code, and expansion runs on
host so can use arbitrary CL.
Array variables
There is partial support for arrays, though type inference doesn't
work completely correctly on them and local array variables can't be
initialized when bound.
Currently, array types are specified as (<base-type> <size>)
. (CL
style array/vector types may be supported at some point in the future)
(defun foo ()
(let ((a)) ;; can't currently initialize local array variables
(declare ((:float 8) a)) ;; specify size/base type
(setf (aref a 1) 1.23) ;; access as in CL
(return (aref a 1)))
Compute Shaders
Compute shaders work pretty much like other stages, except you can't
specify input
s/output
s, and must specify the workgroup size for
kernel invocations. The workgroup sizes are specified with the
layout
declaration on the main kernel entrypoint. Compute shaders
also expose a number of constants describing an individual
invocation's relationship to the entire run: gl-local-invocation-id
, gl-global-invocation-id
, gl-work-group-id
, gl-num-work-groups
, and gl-work-group-size
, all :uvec3
, and gl-local-invocation-index
, an :int
.
;; define a kernel that runs in units of 8x8x8 blocks
(defun some-kernel ()
(declare (layout (:in nil :local-size-x 8 :local-size-y 8 :local-size-z 8)))
;; xyz takes values from (uvec3 0 0 0) to (uvec3 7 7 7)
(let ((xyz (.xyz gl-local-invocation-id)))
...))
Shared variables in compute shaders
Compute shader shared
variables are defined with SHARED
, which
takes a name and type (including array types) as arguments
;; define a shared array with 256 :float elements
;; can be accessed with (aref temp x) or (setf (aref temp x) ...) as in CL
(shared temp (:float 256))
;; a shared uint
(shared foo :uint)
Shader Storage Buffer Objects
Limited support for SSBO, use (interface <name> (:buffer t) ...)
;; makes FOO and BAR available in shaders for read/write
;; BAR is an array of mat4, size depends on size of bound buffer
(interface ssbo (:buffer t :layout (:binding 0 :std430 t))
(foo :vec4)
(bar (:mat4 :*)))
Structures
Preliminary support for defining structures with |defstruct|, doesn't
currently accept any of the extra options from |cl:defstruct|, and
slot syntax is |(slot-name type)|.
Can't currently infer type of structs, so need to |declare| them by hand.
;; define a struct with a float, array of 8 int, and arbitrary
;; length array of vec4
(defstruct foo
(a :float)
(b (:int 8))
(c (:vec4 :*)))
2 Systems
The main system appears first, followed by any subsystem dependency.
2.1 3bgl-shader
- Author
Bart Botta <00003b at gmail.com>
- License
MIT
- Description
CL-hosted CL-like DSL for generating GLSL
- Dependencies
- alexandria
- bordeaux-threads
- cl-opengl
- Source
3bgl-shader.asd (file)
- Components
-
3 Files
Files are sorted by type and then listed depth-first from the systems
components trees.
3.1 Lisp
3.1.1 3bgl-shader.asd
- Location
3bgl-shader.asd
- Systems
3bgl-shader (system)
3.1.2 3bgl-shader/package.lisp
- Parent
3bgl-shader (system)
- Location
package.lisp
- Packages
-
3.1.3 3bgl-shader/ir.lisp
- Dependency
package.lisp (file)
- Parent
3bgl-shader (system)
- Location
ir.lisp
- Internal Definitions
-
3.1.4 3bgl-shader/walker.lisp
- Dependency
ir.lisp (file)
- Parent
3bgl-shader (system)
- Location
walker.lisp
- Internal Definitions
-
3.1.5 3bgl-shader/types.lisp
- Dependency
walker.lisp (file)
- Parent
3bgl-shader (system)
- Location
types.lisp
- Exported Definitions
-
- Internal Definitions
-
3.1.6 3bgl-shader/infer.lisp
- Dependency
types.lisp (file)
- Parent
3bgl-shader (system)
- Location
infer.lisp
- Internal Definitions
-
3.1.7 3bgl-shader/glsl-base.lisp
- Dependency
infer.lisp (file)
- Parent
3bgl-shader (system)
- Location
glsl-base.lisp
- Exported Definitions
-
- Internal Definitions
-
3.1.8 3bgl-shader/cl-functions.lisp
- Dependency
glsl-base.lisp (file)
- Parent
3bgl-shader (system)
- Location
cl-functions.lisp
- Internal Definitions
-
3.1.9 3bgl-shader/glsl.lisp
- Dependency
cl-functions.lisp (file)
- Parent
3bgl-shader (system)
- Location
glsl.lisp
3.1.10 3bgl-shader/finalize-inference.lisp
- Dependency
glsl.lisp (file)
- Parent
3bgl-shader (system)
- Location
finalize-inference.lisp
- Internal Definitions
-
3.1.11 3bgl-shader/printer.lisp
- Dependency
finalize-inference.lisp (file)
- Parent
3bgl-shader (system)
- Location
printer.lisp
- Internal Definitions
-
3.1.12 3bgl-shader/compiler.lisp
- Dependency
printer.lisp (file)
- Parent
3bgl-shader (system)
- Location
compiler.lisp
- Internal Definitions
-
3.1.13 3bgl-shader/api.lisp
- Dependency
compiler.lisp (file)
- Parent
3bgl-shader (system)
- Location
api.lisp
- Exported Definitions
-
- Internal Definitions
-
3.1.14 3bgl-shader/old-utils.lisp
- Dependency
api.lisp (file)
- Parent
3bgl-shader (system)
- Location
old-utils.lisp
- Internal Definitions
-
3.1.15 3bgl-shader/utils.lisp
- Dependency
old-utils.lisp (file)
- Parent
3bgl-shader (system)
- Location
utils.lisp
- Internal Definitions
-
4 Packages
Packages are listed by definition order.
4.1 3bgl-shaders
- Source
package.lisp (file)
- Use List
common-lisp
- Exported Definitions
-
- Internal Definitions
-
4.2 3bgl-glsl
- Source
package.lisp (file)
- Use List
common-lisp
- Used By List
3bgl-glsl/cl
- Exported Definitions
-
- Internal Definitions
-
4.3 3bgl-glsl/cl
- Source
package.lisp (file)
- Use List
-
5 Definitions
Definitions are sorted by export status, category, package, and then by
lexicographic order.
5.1 Exported definitions
5.1.1 Special variables
- Special Variable: *default-version*
-
- Package
3bgl-shaders
- Source
api.lisp (file)
- Special Variable: *modified-function-hook*
-
list of functions to call when shader functions are
modified. Passed a list of names of functions that have been
modified. May be called multiple times for same function if a whole
file using the 3bgl-glsl:defun macro is recompiled, so probably should
store names and only update shader programs at next frame rather
than updating programs directly from hook function.
- Package
3bgl-shaders
- Source
api.lisp (file)
5.1.2 Macros
- Macro: attribute NAME TYPE &rest ARGS &key LOCATION
-
- Package
3bgl-glsl
- Source
api.lisp (file)
- Macro: bind-interface STAGE BLOCK-NAME INTERFACE-QUALIFIER INSTANCE-NAME
-
- Package
3bgl-glsl
- Source
api.lisp (file)
- Macro: defconstant NAME VALUE TYPE
-
- Package
3bgl-glsl
- Source
api.lisp (file)
- Macro: defmacro NAME ARGS &body BODY
-
- Package
3bgl-glsl
- Source
api.lisp (file)
- Macro: defstruct NAME &rest SLOTS
-
- Package
3bgl-glsl
- Source
api.lisp (file)
- Macro: defun NAME ARGS &body BODY
-
- Package
3bgl-glsl
- Source
api.lisp (file)
- Macro: glsl-attribute NAME TYPE &rest ARGS &key LOCATION
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Macro: glsl-defconstant NAME VALUE TYPE
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Macro: glsl-defun NAME ARGS &body BODY
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Macro: glsl-input NAME TYPE &rest ARGS &key STAGE LOCATION
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Macro: glsl-interface NAME (&rest ARGS &key IN OUT UNIFORM) &body SLOTS
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Macro: glsl-output NAME TYPE &rest ARGS &key STAGE LOCATION
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Macro: glsl-uniform NAME TYPE &rest ARGS &key STAGE LOCATION
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Macro: input NAME TYPE &rest ARGS &key STAGE LOCATION QUALIFIERS
-
- Package
3bgl-glsl
- Source
api.lisp (file)
- Macro: interface NAME (&rest ARGS &key IN OUT UNIFORM BUFFER LAYOUT) &body SLOTS
-
- Package
3bgl-glsl
- Source
api.lisp (file)
- Macro: output NAME TYPE &rest ARGS &key STAGE LOCATION QUALIFIERS
-
- Package
3bgl-glsl
- Source
api.lisp (file)
- Macro: shared NAME TYPE &rest ARGS &key STAGE LAYOUT QUALIFIERS &allow-other-keys
-
- Package
3bgl-glsl
- Source
api.lisp (file)
- Macro: uniform NAME TYPE &rest ARGS &key STAGE LOCATION INTERNAL LAYOUT QUALIFIERS DEFAULT &allow-other-keys
-
- Package
3bgl-glsl
- Source
api.lisp (file)
5.1.3 Functions
- Function: compile-form FORM
-
Run first passes of compilation on specified form. (Wrap with PROGN
to process multiple forms). Calls functions in
*MODIFIED-FUNCTION-HOOK* with names of any functions whose definitions
are possibly affected by compiling FORM (for example functions that
call a function defined/updated by FORM, and the (re)defined function
itself).
- Package
3bgl-shaders
- Source
api.lisp (file)
- Function: generate-stage STAGE MAIN &key BACKEND VERSION EXTENSIONS EXPAND-UNIFORMS
-
Generate GLSL shader for specified STAGE, using function named by
MAIN as glsl ’main’ function. ROOT and all functions/variables/etc it
depends on should already have been successfully compiled with
COMPILE-FORM. STAGE is :VERTEX, :FRAGMENT, :GEOMETRY, :TESS-EVAL,
:TESS-CONTROL, or :COMPUTE. VERSION specifies the value of the version
pragma in generated shader, but doesn’t otherwise affect generated
code currently. Returns a list of active uniforms in the
form (LISP-NAME "glslName" type . PROPERTIES) as second value, and a
list of active attributes in same format as third value. (GL shader
types like :VERTEX-SHADER are also accepted for STAGE)
For uniforms, PROPERTIES is a plist containing 0 or more of:
:COMPONENTS : (when EXPAND-UNIFORMS is true) for composite
uniforms (structs, etc), a list containing a list of uniform name and
slot names or array indices for each leaf uniform represented by the
type, for example a struct uniform containing an array of structs
might have entries that look like (foo bar 1 baz) corresponding to the
uniform "foo.bar[1].baz".
- Package
3bgl-shaders
- Source
api.lisp (file)
5.1.4 Generic functions
- Generic Function: stage OBJECT
-
- Generic Function: (setf stage) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: stage (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf stage) NEW-VALUE (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated writer method
- Source
types.lisp (file)
5.2 Internal definitions
5.2.1 Special variables
- Special Variable: *add-conflict-vars*
-
if bound, should be a hash of variable names to flag as conflicts when adding variable if value in hash is :CONFLICT.
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Special Variable: *binding-types*
-
- Package
3bgl-shaders
- Source
finalize-inference.lisp (file)
- Special Variable: *bound-program*
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Special Variable: *check-conflict-vars*
-
if bound, should be a hash of variable names to flag as conflicts when looking up variable. Names are flagged by setting value in hash to :CONFLICT.
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Special Variable: *cl-environment*
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Special Variable: *compiler-lock*
-
- Package
3bgl-shaders
- Source
api.lisp (file)
- Special Variable: *copy-constraints-hash*
-
used to track already copied constraints when copying type inference data
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Special Variable: *current-function*
-
current function being compiled if any
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Special Variable: *current-function-local-types*
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Special Variable: *current-function-return-type*
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Special Variable: *current-function-stages*
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Special Variable: *current-shader-stage*
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Special Variable: *default-backend*
-
- Package
3bgl-shaders
- Source
api.lisp (file)
- Special Variable: *default-extensions*
-
- Package
3bgl-shaders
- Source
api.lisp (file)
- Special Variable: *default-recompilation-callback*
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Special Variable: *depth*
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Special Variable: *environment*
-
current local environment
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Special Variable: *function-stages*
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Special Variable: *global-environment*
-
current global environment
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Special Variable: *glsl-base-environment*
-
- Package
3bgl-glsl
- Source
walker.lisp (file)
- Special Variable: *in-expression*
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Special Variable: *inference-worklist*
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Special Variable: *instantiated-overloads*
-
- Package
3bgl-shaders
- Source
finalize-inference.lisp (file)
- Special Variable: *interface-qualifier-order*
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Special Variable: *internal-function-printers*
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Special Variable: *known-declarations*
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Special Variable: *live-variables*
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Special Variable: *max-depth*
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Special Variable: *new-function-definitions*
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Special Variable: *new-global-definitions*
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Special Variable: *new-type-definitions*
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Special Variable: *package-environments*
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Special Variable: *pprint-glsl*
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Special Variable: *print-as-main*
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Special Variable: *print-shaders*
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Special Variable: *shader-program-hook*
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Special Variable: *shader-type->stage*
-
- Package
3bgl-shaders
- Source
api.lisp (file)
- Special Variable: *stage-name-map*
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Special Variable: *tree-shaker-current-object*
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Special Variable: *tree-shaker-hook*
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Special Variable: *tree-shaker-type-hook*
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Special Variable: *verbose*
-
enable debugging printouts
- Package
3bgl-shaders
- Source
walker.lisp (file)
5.2.2 Macros
- Macro: %glsl-compiler-macro NAME LAMBDA-LIST &body BODY
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Macro: %glsl-macro NAME LAMBDA-LIST &body BODY
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Macro: assert-statement ()
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Macro: defclmacro NAME LAMBDA-LIST &body BODY
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Macro: defmethod2 NAME (A B) &body BODY
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Macro: defprint TYPE (OBJECT) &body BODY
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Macro: defprint-binop OP C-OP 0-ARG 1-ARG
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Macro: defprinti (FORM &rest ARGS) (&optional CALL) &body BODY
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Macro: defwalker WALKER (FORM &rest ARGS) &body BODY
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Macro: glsl-bind-interface STAGE BLOCK-NAME INTERFACE-QUALIFIER INSTANCE-NAME
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Macro: with-environment-scope () &body BODY
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Macro: with-lambda-list-vars (FUNCTION) &body BODY
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Macro: with-package-environment (&optional SYMBOL) &body BODY
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Macro: with-program (PROGRAM &key ERROR-P) &body BODY
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
5.2.3 Functions
- Function: %reload-program SHADER-PROGRAM
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: %translate-name X &key LC-UNDERSCORE
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Function: add-compiler-macro NAME LAMBDA &key ENV
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: add-concrete-type NAME GLSL-NAME &key ENV TYPE
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Function: add-function NAME LAMBDA-LIST BODY &key DECLARATIONS DOCS ENV FUNCTION-TYPE BINDING
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: add-function-arguments FUNCTION &key ENV
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: add-internal-function/full NAME LAMBDA-LIST TYPE &key GLSL-NAME CAST
-
- Package
3bgl-shaders
- Source
cl-functions.lisp (file)
- Function: add-internal-function/mat NAME LAMBDA-LIST COUNT RETURN-TYPE &key GLSL-NAME
-
- Package
3bgl-shaders
- Source
cl-functions.lisp (file)
- Function: add-internal-function/s NAME LAMBDA-LIST ARG-TYPES RETURN-TYPE &key GLSL-NAME CAST
-
- Package
3bgl-shaders
- Source
cl-functions.lisp (file)
- Function: add-macro NAME LAMBDA &key ENV
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: add-symbol-macro NAME EXPANSION &key ENV
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: add-unknown-function NAME &key ENV
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: add-variable NAME INIT &key ENV BINDING TYPE VALUE-TYPE
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: bind-interface STAGE TYPE INTERFACE-QUALIFIER NAME &key INTERNAL GLSL-NAME ARRAY LAYOUT-QUALIFIER
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Function: cache-binding BINDING TYPE
-
- Package
3bgl-shaders
- Source
finalize-inference.lisp (file)
- Function: call-with-package-environment THUNK &key PACKAGE
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Function: cast-to-boolean TYPE
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: check-locked ENVIRONMENT NAME
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: copy-unify-constraints TYPE UNIFY-TYPE &key CAST NAME
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: debug-local-binding-type-data HASH
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: debug-type-names TYPE
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: default-env NAME
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: ensure-compiled PROGRAM
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: ensure-package-environment PACKAGE
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: expand-buffers BUFFERS
-
- Package
3bgl-shaders
- Source
api.lisp (file)
- Function: expand-extension-keyword EXT
-
- Package
3bgl-shaders
- Source
api.lisp (file)
- Function: expand-optional-arg-type O-A-T
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: expand-structs STRUCTS
-
- Package
3bgl-shaders
- Source
api.lisp (file)
- Function: expand-uniforms UNIFORMS EXPAND
-
- Package
3bgl-shaders
- Source
api.lisp (file)
- Function: filter-progn X
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Function: finalize-inference ROOT
-
- Package
3bgl-shaders
- Source
finalize-inference.lisp (file)
- Function: flag-modified-constraint CONSTRAINT
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: flag-modified-type TYPE
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: flag-shader SHADER-PROGRAM FUNCTION
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: flatten-function FUNCTION ARGUMENT-TYPES
-
- Package
3bgl-shaders
- Source
finalize-inference.lisp (file)
- Function: function-signature-changed FUN
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Function: get-compiler-macro-binding NAME &key ENV
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: get-compiler-macro-function NAME
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: get-function-binding NAME &key ENV
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: get-macro-function NAME
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: get-only-hash-key HASH
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: get-symbol-macro NAME
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: get-type-binding NAME &key ENV
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: get-variable-binding NAME &key ENV
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: global-env NAME
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: in/out/uniform/attrib QUALIFIER %NAME TYPE &key LOCATION INTERNAL STAGE INDEX LAYOUT QUALIFIERS DEFAULT
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Function: infer FUNCTION
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: infer-modified-functions FUNCTIONS
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: lambda-list-vars LAMBDA-LIST
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: make-&key-expander LAMBDA-LIST
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: pprint-glsl FORM
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Function: print-bindings/ret NAME BINDINGS RET
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: print-main-layout-qualifiers Q
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Function: reload-program OLD V F &key ERRORP VERBOSE GEOMETRY VERSION
-
compile program from shaders named by V and F, on success, delete
program OLD and return new program, otherwise return OLD
- Package
3bgl-shaders
- Source
old-utils.lisp (file)
- Function: remove-function NAME &key ENV
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Function: reset-program SHADER-PROGRAM
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: run-type-inference ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: set-type TYPES &key CONSTRAINT
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: shader-program &rest R &key VERTEX FRAGMENT GEOMETRY TESS-CONTROL TESS-EVALUATION COMPUTE &allow-other-keys
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: sort-interface-qualifiers Q
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Function: topo-sort-dependencies ROOTS CHILD-FUNCTION
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Function: translate-interface-qualifiers Q
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Function: tree-shaker ROOT
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Function: (setf uniform) NEW-VALUE PROGRAM &rest NAMES-AND-INDICES
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Reader
uniform (generic function)
- Function: uniform-index PROGRAM NAME
-
- Package
3bgl-shaders
- Source
old-utils.lisp (file)
- Function: uniform-matrix PROGRAM NAME M
-
- Package
3bgl-shaders
- Source
old-utils.lisp (file)
- Function: uniform-matrix-2fv LOCATION MATRICES &optional TRANSPOSE
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: uniform-matrix-2x3-fv LOCATION MATRICES &optional TRANSPOSE
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: uniform-matrix-2x4-fv LOCATION MATRICES &optional TRANSPOSE
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: uniform-matrix-3fv LOCATION MATRICES &optional TRANSPOSE
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: uniform-matrix-3x2-fv LOCATION MATRICES &optional TRANSPOSE
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: uniform-matrix-3x4-fv LOCATION MATRICES &optional TRANSPOSE
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: uniform-matrix-4fv LOCATION MATRICES &optional TRANSPOSE
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: uniform-matrix-4x2-fv LOCATION MATRICES &optional TRANSPOSE
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: uniform-matrix-4x3-fv LOCATION MATRICES &optional TRANSPOSE
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Function: uniformf PROGRAM NAME X &optional Y Z W
-
- Package
3bgl-shaders
- Source
old-utils.lisp (file)
- Function: uniformfv PROGRAM NAME V
-
- Package
3bgl-shaders
- Source
old-utils.lisp (file)
- Function: uniformi PROGRAM NAME VALUE
-
- Package
3bgl-shaders
- Source
old-utils.lisp (file)
- Function: update-dependencies FORM
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Function: vector->{} X
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Function: walk-function-body WALKER LAMBDA-LIST BODY
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
5.2.4 Generic functions
- Generic Function: %print OBJECT STREAM
-
- Package
3bgl-shaders
- Source
printer.lisp (file)
- Methods
- Method: %print (O constant-binding) *STANDARD-OUTPUT*
-
- Method: %print (O interface-binding) *STANDARD-OUTPUT*
-
- Method: %print (O struct-type) *STANDARD-OUTPUT*
-
- Method: %print (O for-loop) *STANDARD-OUTPUT*
-
- Method: %print (O if-form) *STANDARD-OUTPUT*
-
- Method: %print (O variable-write) *STANDARD-OUTPUT*
-
- Method: %print (O variable-read) *STANDARD-OUTPUT*
-
- Method: %print (O binding-scope) *STANDARD-OUTPUT*
-
- Method: %print (O implicit-progn) *STANDARD-OUTPUT*
-
- Method: %print (O progn-body) *STANDARD-OUTPUT*
-
- Method: %print (O function-call) *STANDARD-OUTPUT*
-
- Method: %print (O global-function) *STANDARD-OUTPUT*
-
- Method: %print (O array-access) *STANDARD-OUTPUT*
-
- Method: %print (O swizzle-access) *STANDARD-OUTPUT*
-
- Method: %print (O slot-access) *STANDARD-OUTPUT*
-
- Method: %print (O binding) *STANDARD-OUTPUT*
-
- Method: %print (O initialized-binding) *STANDARD-OUTPUT*
-
- Method: %print (O array-initialization) *STANDARD-OUTPUT*
-
- Method: %print (O symbol) S
-
- Method: %print OBJECT STREAM
-
- Generic Function: (setf %uniform) NEW-VALUE PROGRAM &rest NAMES-AND-INDICES
-
- Package
3bgl-shaders
- Methods
- Method: (setf %uniform) NEW-VALUE (PROGRAM shader-program) &rest NAMES-AND-INDICES
-
- Source
utils.lisp (file)
- Generic Function: add-constraint CTYPE CONSTRAINT
-
- Package
3bgl-shaders
- Methods
- Method: add-constraint (CTYPE ref-type) CONSTRAINT
-
- Source
infer.lisp (file)
- Method: add-constraint (CTYPE optional-arg-type) CONSTRAINT
-
- Source
infer.lisp (file)
- Method: add-constraint (CTYPE any-type) CONSTRAINT
-
- Source
infer.lisp (file)
- Method: add-constraint (CTYPE constrained-type) CONSTRAINT
-
- Source
infer.lisp (file)
- Method: add-constraint CTYPE CONSTRAINT
-
- Source
infer.lisp (file)
- Generic Function: allow-casts OBJECT
-
- Generic Function: (setf allow-casts) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: allow-casts (BINDING binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf allow-casts) NEW-VALUE (BINDING binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: arg-type OBJECT
-
- Generic Function: (setf arg-type) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: arg-type (OPTIONAL-ARG-TYPE optional-arg-type)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf arg-type) NEW-VALUE (OPTIONAL-ARG-TYPE optional-arg-type)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: argument-environment OBJECT
-
- Generic Function: (setf argument-environment) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: argument-environment (ARRAY-INITIALIZATION array-initialization)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf argument-environment) NEW-VALUE (ARRAY-INITIALIZATION array-initialization)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: argument-environment (FUNCTION-CALL function-call)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf argument-environment) NEW-VALUE (FUNCTION-CALL function-call)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: argument-types OBJECT
-
- Generic Function: (setf argument-types) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: argument-types (GLOBAL-FUNCTION-CONSTRAINT global-function-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf argument-types) NEW-VALUE (GLOBAL-FUNCTION-CONSTRAINT global-function-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: argument-types (FUNCTION-APPLICATION function-application)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf argument-types) NEW-VALUE (FUNCTION-APPLICATION function-application)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: arguments OBJECT
-
- Generic Function: (setf arguments) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: arguments (ARRAY-INITIALIZATION array-initialization)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf arguments) NEW-VALUE (ARRAY-INITIALIZATION array-initialization)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: arguments (FUNCTION-CALL function-call)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf arguments) NEW-VALUE (FUNCTION-CALL function-call)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: array-size OBJECT
-
- Generic Function: (setf array-size) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: array-size (INTERFACE-BINDING interface-binding)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf array-size) NEW-VALUE (INTERFACE-BINDING interface-binding)
-
automatically generated writer method
- Source
types.lisp (file)
- Method: array-size (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf array-size) NEW-VALUE (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated writer method
- Source
types.lisp (file)
- Method: array-size (ARRAY-TYPE array-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf array-size) NEW-VALUE (ARRAY-TYPE array-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: array-suffix X
-
- Package
3bgl-shaders
- Methods
- Method: array-suffix (X interface-stage-binding)
-
- Source
printer.lisp (file)
- Method: array-suffix (X interface-binding)
-
- Source
printer.lisp (file)
- Method: array-suffix (X array-type)
-
- Source
printer.lisp (file)
- Method: array-suffix X
-
- Source
printer.lisp (file)
- Generic Function: base-type OBJECT
-
- Generic Function: (setf base-type) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: base-type (SAME-SIZE-DIFFERENT-BASE-TYPE-CONSTRAINT same-size-different-base-type-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf base-type) NEW-VALUE (SAME-SIZE-DIFFERENT-BASE-TYPE-CONSTRAINT same-size-different-base-type-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: base-type (ARRAY-TYPE array-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf base-type) NEW-VALUE (ARRAY-TYPE array-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Method: base-type (CONCRETE-TYPE concrete-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf base-type) NEW-VALUE (CONCRETE-TYPE concrete-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: binding OBJECT
-
- Generic Function: (setf binding) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: binding (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf binding) NEW-VALUE (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated writer method
- Source
types.lisp (file)
- Method: binding (VARIABLE-WRITE variable-write)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf binding) NEW-VALUE (VARIABLE-WRITE variable-write)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: binding (VARIABLE-READ variable-read)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf binding) NEW-VALUE (VARIABLE-READ variable-read)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: binding (ARRAY-ACCESS array-access)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf binding) NEW-VALUE (ARRAY-ACCESS array-access)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: binding (SWIZZLE-ACCESS swizzle-access)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf binding) NEW-VALUE (SWIZZLE-ACCESS swizzle-access)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: binding (SLOT-ACCESS slot-access)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf binding) NEW-VALUE (SLOT-ACCESS slot-access)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: bindings OBJECT
-
- Generic Function: (setf bindings) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: bindings (BINDINGS bindings)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf bindings) NEW-VALUE (BINDINGS bindings)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: bindings-used-by OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: bindings-used-by (BINDING-WITH-DEPENDENCIES binding-with-dependencies)
-
automatically generated reader method
- Source
ir.lisp (file)
- Generic Function: bindings-using OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: bindings-using (BINDING-WITH-DEPENDENCIES binding-with-dependencies)
-
automatically generated reader method
- Source
ir.lisp (file)
- Generic Function: body OBJECT
-
- Generic Function: (setf body) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: body (PROGN-BODY progn-body)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf body) NEW-VALUE (PROGN-BODY progn-body)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: called-function OBJECT
-
- Generic Function: (setf called-function) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: called-function (INFERENCE-CALL-SITE inference-call-site)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf called-function) NEW-VALUE (INFERENCE-CALL-SITE inference-call-site)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: called-function (FUNCTION-CALL function-call)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf called-function) NEW-VALUE (FUNCTION-CALL function-call)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: cast-type OBJECT
-
- Generic Function: (setf cast-type) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: cast-type (CAST-CONSTRAINT cast-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf cast-type) NEW-VALUE (CAST-CONSTRAINT cast-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: check-slot-stages SLOT-ACCESS
-
- Package
3bgl-shaders
- Methods
- Method: check-slot-stages SLOT-ACCESS
-
- Source
compiler.lisp (file)
- Generic Function: check-stages INTERFACE-BINDING
-
- Package
3bgl-shaders
- Methods
- Method: check-stages INTERFACE-BINDING
-
- Source
compiler.lisp (file)
- Generic Function: compiler-macro-bindings OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: compiler-macro-bindings (ENVIRONMENT environment)
-
automatically generated reader method
- Source
walker.lisp (file)
- Generic Function: condition-forms OBJECT
-
- Generic Function: (setf condition-forms) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: condition-forms (FOR-LOOP for-loop)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf condition-forms) NEW-VALUE (FOR-LOOP for-loop)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: conflicts OBJECT
-
- Generic Function: (setf conflicts) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: conflicts (BINDING binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf conflicts) NEW-VALUE (BINDING binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: constraints OBJECT
-
- Generic Function: (setf constraints) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: constraints (CONSTRAINED-TYPE constrained-type)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf constraints) NEW-VALUE (CONSTRAINED-TYPE constrained-type)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: constraints (ANY-TYPE any-type)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf constraints) NEW-VALUE (ANY-TYPE any-type)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: copy-constraints X
-
- Package
3bgl-shaders
- Methods
- Method: copy-constraints (TYPE any-type)
-
- Source
infer.lisp (file)
- Method: copy-constraints (TYPE optional-arg-type)
-
- Source
infer.lisp (file)
- Method: copy-constraints (TYPE constrained-type)
-
- Source
infer.lisp (file)
- Method: copy-constraints (TYPE ref-type)
-
- Source
infer.lisp (file)
- Method: copy-constraints (HASH hash-table)
-
- Source
infer.lisp (file)
- Method: copy-constraints (TYPE null)
-
- Source
infer.lisp (file)
- Method: copy-constraints (TYPE generic-type)
-
- Source
infer.lisp (file)
- Method: copy-constraints (CONSTRAINT same-base-type-different-size-constraint)
-
- Source
infer.lisp (file)
- Method: copy-constraints (CONSTRAINT same-size-different-base-type-constraint)
-
- Source
infer.lisp (file)
- Method: copy-constraints (CONSTRAINT cast-constraint)
-
- Source
infer.lisp (file)
- Method: copy-constraints (CONSTRAINT scalar-type-of-constraint)
-
- Source
infer.lisp (file)
- Method: copy-constraints (CONSTRAINT same-type-or-scalar-constraint)
-
- Source
infer.lisp (file)
- Method: copy-constraints (CONSTRAINT global-function-constraint)
-
- Source
infer.lisp (file)
- Method: copy-constraints (CONSTRAINT variable-arity-function-application)
-
- Source
infer.lisp (file)
- Method: copy-constraints (CONSTRAINT function-application)
-
- Source
infer.lisp (file)
- Method: copy-constraints X around
-
- Source
infer.lisp (file)
- Generic Function: ctype OBJECT
-
- Generic Function: (setf ctype) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: ctype (CTYPE/OTHER-CONSTRAINT ctype/other-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf ctype) NEW-VALUE (CTYPE/OTHER-CONSTRAINT ctype/other-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: declarations OBJECT
-
- Generic Function: (setf declarations) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: declarations (FUNCTION-BINDING function-binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf declarations) NEW-VALUE (FUNCTION-BINDING function-binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: declarations (BINDING-SCOPE binding-scope)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf declarations) NEW-VALUE (BINDING-SCOPE binding-scope)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: declared-type OBJECT
-
- Generic Function: (setf declared-type) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: declared-type (FUNCTION-BINDING function-binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf declared-type) NEW-VALUE (FUNCTION-BINDING function-binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: declared-type (BINDING binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf declared-type) NEW-VALUE (BINDING binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: default OBJECT
-
- Generic Function: (setf default) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: default (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf default) NEW-VALUE (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: dirty OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: dirty (SHADER-PROGRAM shader-program)
-
automatically generated reader method
- Source
utils.lisp (file)
- Generic Function: dump-constraint C
-
- Package
3bgl-shaders
- Methods
- Method: dump-constraint (C array-access-constraint)
-
- Source
infer.lisp (file)
- Method: dump-constraint (C scalar-type-of-constraint)
-
- Source
infer.lisp (file)
- Method: dump-constraint (C same-type-or-scalar-constraint)
-
- Source
infer.lisp (file)
- Method: dump-constraint (C same-base-type-different-size-constraint)
-
- Source
infer.lisp (file)
- Method: dump-constraint (C ctype/other-constraint)
-
- Source
infer.lisp (file)
- Method: dump-constraint (C global-function-constraint)
-
- Source
infer.lisp (file)
- Method: dump-constraint (C function-application)
-
- Source
infer.lisp (file)
- Method: dump-constraint (C variable-arity-function-application)
-
- Source
infer.lisp (file)
- Method: dump-constraint (C cast-constraint)
-
- Source
infer.lisp (file)
- Generic Function: else-form OBJECT
-
- Generic Function: (setf else-form) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: else-form (IF-FORM if-form)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf else-form) NEW-VALUE (IF-FORM if-form)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: environment OBJECT
-
- Generic Function: (setf environment) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: environment (UNKNOWN-FUNCTION-BINDING unknown-function-binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf environment) NEW-VALUE (UNKNOWN-FUNCTION-BINDING unknown-function-binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: equiv OBJECT
-
- Generic Function: (setf equiv) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: equiv (REF-TYPE ref-type)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf equiv) NEW-VALUE (REF-TYPE ref-type)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: expand-uniform-slots PREFIX B
-
- Package
3bgl-shaders
- Methods
- Method: expand-uniform-slots PREFIX (TYPE array-type)
-
- Source
api.lisp (file)
- Method: expand-uniform-slots PREFIX (TYPE concrete-type)
-
- Source
api.lisp (file)
- Method: expand-uniform-slots PREFIX (TYPE struct-type)
-
- Source
api.lisp (file)
- Method: expand-uniform-slots PREFIX (B binding)
-
- Source
api.lisp (file)
- Generic Function: expander OBJECT
-
- Generic Function: (setf expander) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: expander (MACRO-DEFINITION macro-definition)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf expander) NEW-VALUE (MACRO-DEFINITION macro-definition)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: expander (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf expander) NEW-VALUE (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: expansion OBJECT
-
- Generic Function: (setf expansion) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: expansion (SYMBOL-MACRO symbol-macro)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf expansion) NEW-VALUE (SYMBOL-MACRO symbol-macro)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: explicit-casts OBJECT
-
- Generic Function: (setf explicit-casts) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: explicit-casts (CONCRETE-TYPE concrete-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf explicit-casts) NEW-VALUE (CONCRETE-TYPE concrete-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: expression OBJECT
-
- Generic Function: (setf expression) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: expression (MACRO-DEFINITION macro-definition)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf expression) NEW-VALUE (MACRO-DEFINITION macro-definition)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: field OBJECT
-
- Generic Function: (setf field) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: field (SWIZZLE-ACCESS swizzle-access)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf field) NEW-VALUE (SWIZZLE-ACCESS swizzle-access)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: field (SLOT-ACCESS slot-access)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf field) NEW-VALUE (SLOT-ACCESS slot-access)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: final-binding-type-cache OBJECT
-
- Generic Function: (setf final-binding-type-cache) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: final-binding-type-cache (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf final-binding-type-cache) NEW-VALUE (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: flatten-type TYPE &optional FORCE-TYPE
-
- Package
3bgl-shaders
- Methods
- Method: flatten-type (TYPE ref-type) &optional FORCE-TYPE
-
- Source
finalize-inference.lisp (file)
- Method: flatten-type (TYPE struct-type) &optional FORCE-TYPE
-
- Source
finalize-inference.lisp (file)
- Method: flatten-type (TYPE array-type) &optional FORCE-TYPE
-
- Source
finalize-inference.lisp (file)
- Method: flatten-type (TYPE constrained-type) &optional FORCE-TYPE
-
- Source
finalize-inference.lisp (file)
- Method: flatten-type (TYPE any-type) &optional FORCE-TYPE
-
- Source
finalize-inference.lisp (file)
- Method: flatten-type (TYPE concrete-type) &optional FORCE-TYPE
-
- Source
finalize-inference.lisp (file)
- Generic Function: flatten-types TYPES
-
- Package
3bgl-shaders
- Methods
- Method: flatten-types (TYPES ctype/other-constraint)
-
- Source
infer.lisp (file)
- Method: flatten-types (TYPES hash-table)
-
- Source
infer.lisp (file)
- Method: flatten-types (TYPES cons)
-
- Source
infer.lisp (file)
- Method: flatten-types (TYPES constrained-type)
-
- Source
infer.lisp (file)
- Method: flatten-types (TYPES any-type)
-
- Source
infer.lisp (file)
- Method: flatten-types (TYPES ref-type)
-
- Source
infer.lisp (file)
- Generic Function: function-bindings OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: function-bindings (ENVIRONMENT environment)
-
automatically generated reader method
- Source
walker.lisp (file)
- Generic Function: function-types OBJECT
-
- Generic Function: (setf function-types) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: function-types (FUNCTION-APPLICATION function-application)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf function-types) NEW-VALUE (FUNCTION-APPLICATION function-application)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: function-types-by-arity OBJECT
-
- Generic Function: (setf function-types-by-arity) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: function-types-by-arity (VARIABLE-ARITY-FUNCTION-APPLICATION variable-arity-function-application)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf function-types-by-arity) NEW-VALUE (VARIABLE-ARITY-FUNCTION-APPLICATION variable-arity-function-application)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: generate-output OBJECTS INFERRED-TYPES BACKEND &key VERSION EXTENSIONS &allow-other-keys
-
- Package
3bgl-shaders
- Methods
- Method: generate-output OBJECTS INFERRED-TYPES (BACKEND (eql glsl)) &key VERSION EXTENSIONS &allow-other-keys
-
- Source
api.lisp (file)
- Generic Function: get-concrete-type TYPE
-
- Package
3bgl-shaders
- Methods
- Method: get-concrete-type (TYPE constrained-type)
-
- Source
finalize-inference.lisp (file)
- Method: get-concrete-type (TYPE any-type)
-
- Source
finalize-inference.lisp (file)
- Method: get-concrete-type (TYPE struct-type)
-
- Source
finalize-inference.lisp (file)
- Method: get-concrete-type (TYPE concrete-type)
-
- Source
finalize-inference.lisp (file)
- Method: get-concrete-type (TYPE ref-type)
-
- Source
finalize-inference.lisp (file)
- Generic Function: get-equiv-type TYPE
-
- Package
3bgl-shaders
- Methods
- Method: get-equiv-type (TYPE ref-type)
-
- Source
infer.lisp (file)
- Method: get-equiv-type TYPE
-
- Source
infer.lisp (file)
- Generic Function: global-function OBJECT
-
- Generic Function: (setf global-function) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: global-function (GLOBAL-FUNCTION-CONSTRAINT global-function-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf global-function) NEW-VALUE (GLOBAL-FUNCTION-CONSTRAINT global-function-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: glsl-name OBJECT
-
- Generic Function: (setf glsl-name) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: glsl-name (GENERIC-TYPE generic-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf glsl-name) NEW-VALUE (GENERIC-TYPE generic-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Method: glsl-name (FUNCTION-BINDING function-binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf glsl-name) NEW-VALUE (FUNCTION-BINDING function-binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: glsl-name (BINDING binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf glsl-name) NEW-VALUE (BINDING binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: implicit-casts-from OBJECT
-
- Generic Function: (setf implicit-casts-from) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: implicit-casts-from S
-
- Source
types.lisp (file)
- Method: implicit-casts-from (CONCRETE-TYPE concrete-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf implicit-casts-from) NEW-VALUE (CONCRETE-TYPE concrete-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: implicit-casts-to OBJECT
-
- Generic Function: (setf implicit-casts-to) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: implicit-casts-to S
-
- Source
types.lisp (file)
- Method: implicit-casts-to (CONCRETE-TYPE concrete-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf implicit-casts-to) NEW-VALUE (CONCRETE-TYPE concrete-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: in-type OBJECT
-
- Generic Function: (setf in-type) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: in-type (CAST-CONSTRAINT cast-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf in-type) NEW-VALUE (CAST-CONSTRAINT cast-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: index OBJECT
-
- Generic Function: (setf index) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: index (ARRAY-ACCESS array-access)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf index) NEW-VALUE (ARRAY-ACCESS array-access)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: init-forms OBJECT
-
- Generic Function: (setf init-forms) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: init-forms (FOR-LOOP for-loop)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf init-forms) NEW-VALUE (FOR-LOOP for-loop)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: initial-value-form OBJECT
-
- Generic Function: (setf initial-value-form) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: initial-value-form (INITIALIZED-BINDING initialized-binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf initial-value-form) NEW-VALUE (INITIALIZED-BINDING initialized-binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: integral-type TYPE
-
- Package
3bgl-shaders
- Methods
- Method: integral-type (TYPE constrained-type)
-
- Source
printer.lisp (file)
- Method: integral-type (TYPE concrete-type)
-
- Source
printer.lisp (file)
- Generic Function: interface-block OBJECT
-
- Generic Function: (setf interface-block) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: interface-block (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf interface-block) NEW-VALUE (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: interface-qualifier OBJECT
-
- Generic Function: (setf interface-qualifier) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: interface-qualifier (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf interface-qualifier) NEW-VALUE (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: internal OBJECT
-
- Generic Function: (setf internal) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: internal (INTERFACE-BINDING interface-binding)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf internal) NEW-VALUE (INTERFACE-BINDING interface-binding)
-
automatically generated writer method
- Source
types.lisp (file)
- Method: internal (GENERIC-TYPE generic-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf internal) NEW-VALUE (GENERIC-TYPE generic-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Method: internal (CONSTANT-BINDING constant-binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf internal) NEW-VALUE (CONSTANT-BINDING constant-binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: is-type A B
-
- Package
3bgl-shaders
- Methods
- Method: is-type B (A null)
-
- Source
infer.lisp (file)
- Method: is-type (A null) B
-
- Source
infer.lisp (file)
- Generic Function: lambda-list OBJECT
-
- Generic Function: (setf lambda-list) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: lambda-list (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf lambda-list) NEW-VALUE (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: layout-qualifier OBJECT
-
- Generic Function: (setf layout-qualifier) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: layout-qualifier (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf layout-qualifier) NEW-VALUE (INTERFACE-STAGE-BINDING interface-stage-binding)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: layout-qualifiers OBJECT
-
- Generic Function: (setf layout-qualifiers) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: layout-qualifiers (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf layout-qualifiers) NEW-VALUE (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: live-uniforms OBJECT
-
- Generic Function: (setf live-uniforms) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: live-uniforms (SHADER-PROGRAM shader-program)
-
automatically generated reader method
- Source
utils.lisp (file)
- Method: (setf live-uniforms) NEW-VALUE (SHADER-PROGRAM shader-program)
-
automatically generated writer method
- Source
utils.lisp (file)
- Generic Function: local-binding-type-data OBJECT
-
- Generic Function: (setf local-binding-type-data) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: local-binding-type-data (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf local-binding-type-data) NEW-VALUE (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: locked OBJECT
-
- Generic Function: (setf locked) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: locked (ENVIRONMENT environment)
-
automatically generated reader method
- Source
walker.lisp (file)
- Method: (setf locked) NEW-VALUE (ENVIRONMENT environment)
-
automatically generated writer method
- Source
walker.lisp (file)
- Generic Function: max-arity OBJECT
-
- Generic Function: (setf max-arity) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: max-arity (VARIABLE-ARITY-FUNCTION-APPLICATION variable-arity-function-application)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf max-arity) NEW-VALUE (VARIABLE-ARITY-FUNCTION-APPLICATION variable-arity-function-application)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: min-arity OBJECT
-
- Generic Function: (setf min-arity) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: min-arity (VARIABLE-ARITY-FUNCTION-APPLICATION variable-arity-function-application)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf min-arity) NEW-VALUE (VARIABLE-ARITY-FUNCTION-APPLICATION variable-arity-function-application)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: min-size OBJECT
-
- Generic Function: (setf min-size) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: min-size (ARRAY-ACCESS-CONSTRAINT array-access-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf min-size) NEW-VALUE (ARRAY-ACCESS-CONSTRAINT array-access-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: min-size (SAME-BASE-TYPE-DIFFERENT-SIZE-CONSTRAINT same-base-type-different-size-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf min-size) NEW-VALUE (SAME-BASE-TYPE-DIFFERENT-SIZE-CONSTRAINT same-base-type-different-size-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: min-size (SWIZZLE-ACCESS swizzle-access)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf min-size) NEW-VALUE (SWIZZLE-ACCESS swizzle-access)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: modified OBJECT
-
- Generic Function: (setf modified) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: modified (UPDATE-CALLS update-calls)
-
automatically generated reader method
- Source
compiler.lisp (file)
- Method: modified (CONSTRAINT constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf modified) NEW-VALUE (CONSTRAINT constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: name O
-
- Generic Function: (setf name) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: name (CAST-CONSTRAINT cast-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: name (GLOBAL-FUNCTION-CONSTRAINT global-function-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: name (FUNCTION-APPLICATION function-application)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: name (GENERIC-TYPE generic-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: name (ENVIRONMENT environment)
-
automatically generated reader method
- Source
walker.lisp (file)
- Method: name (O function-call)
-
- Source
ir.lisp (file)
- Method: name (O variable-write)
-
- Source
ir.lisp (file)
- Method: name (O variable-read)
-
- Source
ir.lisp (file)
- Method: name (O array-access)
-
- Source
ir.lisp (file)
- Method: name (O swizzle-access)
-
- Source
ir.lisp (file)
- Method: name (O slot-access)
-
- Source
ir.lisp (file)
- Method: name (FUNCTION-BINDING function-binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: name (BINDING binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: name O
-
- Source
ir.lisp (file)
- Method: (setf name) NEW-VALUE (CAST-CONSTRAINT cast-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: (setf name) NEW-VALUE (GLOBAL-FUNCTION-CONSTRAINT global-function-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: (setf name) NEW-VALUE (FUNCTION-APPLICATION function-application)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: (setf name) NEW-VALUE (GENERIC-TYPE generic-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Method: (setf name) NEW-VALUE (FUNCTION-BINDING function-binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: (setf name) NEW-VALUE (BINDING binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: name-map OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: name-map (SHADER-PROGRAM shader-program)
-
automatically generated reader method
- Source
utils.lisp (file)
- Generic Function: old-lambda-list OBJECT
-
- Generic Function: (setf old-lambda-list) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: old-lambda-list (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf old-lambda-list) NEW-VALUE (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: other-type OBJECT
-
- Generic Function: (setf other-type) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: other-type (CTYPE/OTHER-CONSTRAINT ctype/other-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf other-type) NEW-VALUE (CTYPE/OTHER-CONSTRAINT ctype/other-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: out-size OBJECT
-
- Generic Function: (setf out-size) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: out-size (SAME-BASE-TYPE-DIFFERENT-SIZE-CONSTRAINT same-base-type-different-size-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf out-size) NEW-VALUE (SAME-BASE-TYPE-DIFFERENT-SIZE-CONSTRAINT same-base-type-different-size-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: out-type OBJECT
-
- Generic Function: (setf out-type) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: out-type (CAST-CONSTRAINT cast-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf out-type) NEW-VALUE (CAST-CONSTRAINT cast-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: parent-scope OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: parent-scope (ENVIRONMENT environment)
-
automatically generated reader method
- Source
walker.lisp (file)
- Generic Function: process-type-declarations-for-scope SCOPE
-
- Package
3bgl-shaders
- Methods
- Method: process-type-declarations-for-scope SCOPE
-
- Source
types.lisp (file)
- Generic Function: program OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: program (SHADER-PROGRAM shader-program)
-
automatically generated reader method
- Source
utils.lisp (file)
- Generic Function: qualifiers OBJECT
-
- Generic Function: (setf qualifiers) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: qualifiers (BINDING binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf qualifiers) NEW-VALUE (BINDING binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: raw-arguments OBJECT
-
- Generic Function: (setf raw-arguments) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: raw-arguments (ARRAY-INITIALIZATION array-initialization)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf raw-arguments) NEW-VALUE (ARRAY-INITIALIZATION array-initialization)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: raw-arguments (FUNCTION-CALL function-call)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf raw-arguments) NEW-VALUE (FUNCTION-CALL function-call)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: recompilation-callbacks OBJECT
-
- Generic Function: (setf recompilation-callbacks) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: recompilation-callbacks (SHADER-PROGRAM shader-program)
-
automatically generated reader method
- Source
utils.lisp (file)
- Method: (setf recompilation-callbacks) NEW-VALUE (SHADER-PROGRAM shader-program)
-
automatically generated writer method
- Source
utils.lisp (file)
- Generic Function: return-type OBJECT
-
- Generic Function: (setf return-type) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: return-type (GLOBAL-FUNCTION-CONSTRAINT global-function-constraint)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf return-type) NEW-VALUE (GLOBAL-FUNCTION-CONSTRAINT global-function-constraint)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: return-type (FUNCTION-APPLICATION function-application)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf return-type) NEW-VALUE (FUNCTION-APPLICATION function-application)
-
automatically generated writer method
- Source
infer.lisp (file)
- Generic Function: scalar/vector-set OBJECT
-
- Generic Function: (setf scalar/vector-set) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: scalar/vector-set (CONCRETE-TYPE concrete-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf scalar/vector-set) NEW-VALUE (CONCRETE-TYPE concrete-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: scalar/vector-size OBJECT
-
- Generic Function: (setf scalar/vector-size) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: scalar/vector-size (CONCRETE-TYPE concrete-type)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf scalar/vector-size) NEW-VALUE (CONCRETE-TYPE concrete-type)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: ssbos OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: ssbos (SHADER-PROGRAM shader-program)
-
automatically generated reader method
- Source
utils.lisp (file)
- Generic Function: stage-binding BINDING
-
- Package
3bgl-shaders
- Methods
- Method: stage-binding (BINDING interface-binding)
-
- Source
types.lisp (file)
- Method: stage-binding BINDING
-
- Source
types.lisp (file)
- Generic Function: stage-bindings OBJECT
-
- Generic Function: (setf stage-bindings) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: stage-bindings (INTERFACE-BINDING interface-binding)
-
automatically generated reader method
- Source
types.lisp (file)
- Method: (setf stage-bindings) NEW-VALUE (INTERFACE-BINDING interface-binding)
-
automatically generated writer method
- Source
types.lisp (file)
- Generic Function: stages OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: stages (SHADER-PROGRAM shader-program)
-
automatically generated reader method
- Source
utils.lisp (file)
- Generic Function: step-forms OBJECT
-
- Generic Function: (setf step-forms) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: step-forms (FOR-LOOP for-loop)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf step-forms) NEW-VALUE (FOR-LOOP for-loop)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: structs OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: structs (SHADER-PROGRAM shader-program)
-
automatically generated reader method
- Source
utils.lisp (file)
- Generic Function: test-form OBJECT
-
- Generic Function: (setf test-form) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: test-form (IF-FORM if-form)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf test-form) NEW-VALUE (IF-FORM if-form)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: then-form OBJECT
-
- Generic Function: (setf then-form) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: then-form (IF-FORM if-form)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf then-form) NEW-VALUE (IF-FORM if-form)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: translate-name X
-
- Package
3bgl-shaders
- Methods
- Method: translate-name (X variable-read)
-
- Source
printer.lisp (file)
- Method: translate-name (X array-type)
-
- Source
printer.lisp (file)
- Method: translate-name (X generic-type)
-
- Source
printer.lisp (file)
- Method: translate-name (X interface-stage-binding)
-
- Source
printer.lisp (file)
- Method: translate-name (X array-access)
-
- Source
printer.lisp (file)
- Method: translate-name (X swizzle-access)
-
- Source
printer.lisp (file)
- Method: translate-name (X slot-access)
-
- Source
printer.lisp (file)
- Method: translate-name (X function-binding)
-
- Source
printer.lisp (file)
- Method: translate-name (X binding)
-
- Source
printer.lisp (file)
- Method: translate-name X
-
- Source
printer.lisp (file)
- Generic Function: translate-slot-name X B
-
- Package
3bgl-shaders
- Methods
- Method: translate-slot-name X (B interface-stage-binding)
-
- Source
printer.lisp (file)
- Method: translate-slot-name X (B interface-binding)
-
- Source
printer.lisp (file)
- Method: translate-slot-name X (B array-access)
-
- Source
printer.lisp (file)
- Method: translate-slot-name X (B variable-read)
-
- Source
printer.lisp (file)
- Method: translate-slot-name X B
-
- Source
printer.lisp (file)
- Generic Function: translate-type TYPE
-
- Package
3bgl-shaders
- Methods
- Method: translate-type (TYPE struct-type)
-
- Source
printer.lisp (file)
- Method: translate-type (TYPE array-type)
-
- Source
printer.lisp (file)
- Method: translate-type (TYPE generic-type)
-
- Source
printer.lisp (file)
- Method: translate-type (TYPE constrained-type)
-
- Source
printer.lisp (file)
- Method: translate-type (TYPE concrete-type)
-
- Source
printer.lisp (file)
- Method: translate-type (TYPE ref-type)
-
- Source
printer.lisp (file)
- Method: translate-type (TYPE any-type)
-
- Source
printer.lisp (file)
- Method: translate-type TYPE
-
- Source
printer.lisp (file)
- Generic Function: type-inference-state OBJECT
-
- Generic Function: (setf type-inference-state) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: type-inference-state (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf type-inference-state) NEW-VALUE (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: types OBJECT
-
- Generic Function: (setf types) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: types (TYPE concrete-type)
-
- Source
infer.lisp (file)
- Method: types (CONSTRAINED-TYPE constrained-type)
-
automatically generated reader method
- Source
infer.lisp (file)
- Method: (setf types) NEW-VALUE (CONSTRAINED-TYPE constrained-type)
-
automatically generated writer method
- Source
infer.lisp (file)
- Method: types (ENVIRONMENT environment)
-
automatically generated reader method
- Source
walker.lisp (file)
- Generic Function: unifiable-types-p X TYPE
-
- Package
3bgl-shaders
- Methods
- Method: unifiable-types-p B (A symbol)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (A symbol) B
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (X constrained-type) (TYPE constrained-type)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (A ref-type) (B ref-type)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p B (A ref-type)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (A ref-type) B
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (B constrained-type) (A generic-type)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (A generic-type) (B constrained-type)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (B generic-type) (A generic-type)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p B (A generic-type)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (A generic-type) B
-
- Source
infer.lisp (file)
- Method: unifiable-types-p B (A any-type)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (A any-type) B
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (B generic-type) (A null)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (A null) (B generic-type)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (B any-type) (A null)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (A null) (B any-type)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p (A null) (B null)
-
- Source
infer.lisp (file)
- Method: unifiable-types-p X TYPE
-
- Source
infer.lisp (file)
- Generic Function: uniform OBJECT &rest NAMES-AND-INDICES
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Writer
(setf uniform) (function)
- Methods
- Method: uniform (PROGRAM shader-program) &rest NAMES-AND-INDICES
-
- Generic Function: uniforms OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: uniforms (SHADER-PROGRAM shader-program)
-
automatically generated reader method
- Source
utils.lisp (file)
- Generic Function: unify A B
-
- Package
3bgl-shaders
- Methods
- Method: unify B (A ref-type)
-
- Source
infer.lisp (file)
- Method: unify (A ref-type) B
-
- Source
infer.lisp (file)
- Method: unify (B null) (A constrained-type)
-
- Source
infer.lisp (file)
- Method: unify (A constrained-type) (B null)
-
- Source
infer.lisp (file)
- Method: unify (B any-type) (A constrained-type)
-
- Source
infer.lisp (file)
- Method: unify (A constrained-type) (B any-type)
-
- Source
infer.lisp (file)
- Method: unify (B struct-type) (A any-type)
-
- Source
infer.lisp (file)
- Method: unify (A any-type) (B struct-type)
-
- Source
infer.lisp (file)
- Method: unify (B array-initialization) (A array-type)
-
- Source
infer.lisp (file)
- Method: unify (A array-type) (B array-initialization)
-
- Source
infer.lisp (file)
- Method: unify (B array-type) (A any-type)
-
- Source
infer.lisp (file)
- Method: unify (A any-type) (B array-type)
-
- Source
infer.lisp (file)
- Method: unify (B concrete-type) (A any-type)
-
- Source
infer.lisp (file)
- Method: unify (A any-type) (B concrete-type)
-
- Source
infer.lisp (file)
- Method: unify (B concrete-type) (A constrained-type)
-
- Source
infer.lisp (file)
- Method: unify (A constrained-type) (B concrete-type)
-
- Source
infer.lisp (file)
- Method: unify (B generic-type) (A constrained-type)
-
- Source
infer.lisp (file)
- Method: unify (A constrained-type) (B generic-type)
-
- Source
infer.lisp (file)
- Method: unify (A constrained-type) (B constrained-type)
-
- Source
infer.lisp (file)
- Method: unify (A any-type) (B any-type)
-
- Source
infer.lisp (file)
- Method: unify A B
-
- Source
infer.lisp (file)
- Generic Function: update-constraint CONSTRAINT
-
- Package
3bgl-shaders
- Methods
- Method: update-constraint (CONSTRAINT same-base-type-different-size-constraint)
-
- Source
infer.lisp (file)
- Method: update-constraint (CONSTRAINT same-size-different-base-type-constraint)
-
- Source
infer.lisp (file)
- Method: update-constraint (CONSTRAINT scalar-type-of-constraint)
-
- Source
infer.lisp (file)
- Method: update-constraint (CONSTRAINT same-type-or-scalar-constraint)
-
- Source
infer.lisp (file)
- Method: update-constraint (CONSTRAINT cast-constraint)
-
- Source
infer.lisp (file)
- Method: update-constraint (CONSTRAINT function-application)
-
- Source
infer.lisp (file)
- Method: update-constraint (CONSTRAINT variable-arity-function-application)
-
- Source
infer.lisp (file)
- Generic Function: use-program PROGRAM
-
- Package
3bgl-shaders
- Methods
- Method: use-program (PROGRAM shader-program)
-
- Source
utils.lisp (file)
- Generic Function: valid-stages OBJECT
-
- Generic Function: (setf valid-stages) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: valid-stages (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf valid-stages) NEW-VALUE (FUNCTION-BINDING-FUNCTION function-binding-function)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: value OBJECT
-
- Generic Function: (setf value) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: value (VARIABLE-WRITE variable-write)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf value) NEW-VALUE (VARIABLE-WRITE variable-write)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: value-type OBJECT
-
- Generic Function: (setf value-type) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: value-type (BINDING interface-stage-binding)
-
- Source
types.lisp (file)
- Method: value-type (BINDING generic-type)
-
- Source
types.lisp (file)
- Method: value-type (BINDING interface-binding)
-
- Source
types.lisp (file)
- Method: value-type (O variable-read)
-
- Source
ir.lisp (file)
- Method: value-type (ARRAY-ACCESS array-access)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf value-type) NEW-VALUE (ARRAY-ACCESS array-access)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: value-type (SWIZZLE-ACCESS swizzle-access)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf value-type) NEW-VALUE (SWIZZLE-ACCESS swizzle-access)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: value-type (SLOT-ACCESS slot-access)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf value-type) NEW-VALUE (SLOT-ACCESS slot-access)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: value-type (FUNCTION-BINDING function-binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf value-type) NEW-VALUE (FUNCTION-BINDING function-binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Method: value-type (BINDING binding)
-
automatically generated reader method
- Source
ir.lisp (file)
- Method: (setf value-type) NEW-VALUE (BINDING binding)
-
automatically generated writer method
- Source
ir.lisp (file)
- Generic Function: variable-bindings OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: variable-bindings (ENVIRONMENT environment)
-
automatically generated reader method
- Source
walker.lisp (file)
- Generic Function: version OBJECT
-
- Generic Function: (setf version) NEW-VALUE OBJECT
-
- Package
3bgl-shaders
- Methods
- Method: version (SHADER-PROGRAM shader-program)
-
automatically generated reader method
- Source
utils.lisp (file)
- Method: (setf version) NEW-VALUE (SHADER-PROGRAM shader-program)
-
automatically generated writer method
- Source
utils.lisp (file)
- Generic Function: walk FORM WALKER
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Methods
- Method: walk (FORM function-call) (WALKER update-calls)
-
- Source
compiler.lisp (file)
- Method: walk (FORM for-loop) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM array-type) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM struct-type) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM interface-stage-binding) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM interface-binding) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM constant-binding) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM binding) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM local-variable) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM swizzle-access) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM variable-write) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM variable-read) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM slot-access) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM concrete-type) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM (eql *)) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM (eql t)) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM function-call) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk (FORM cons) (WALKER tree-shaker)
-
- Source
compiler.lisp (file)
- Method: walk FORM (WALKER extract-functions) around
-
- Source
compiler.lisp (file)
- Method: walk FORM (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk FORM (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM global-function) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM binding-scope) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM implicit-progn) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM explicit-progn) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM float) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM integer) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM function-argument) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM constant-binding) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM interface-stage-binding) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM interface-binding) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM binding) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM array-type) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM local-variable) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM variable-write) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM variable-read) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM function-call) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM slot-access) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM array-access) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM swizzle-access) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM for-loop) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk (FORM if-form) (WALKER infer-build-constraints)
-
- Source
infer.lisp (file)
- Method: walk FORM WALKER around
-
- Method: walk FORM (WALKER cl-walker)
-
- Method: walk (FORM cons) WALKER
-
- Method: walk FORM WALKER
-
- Method: walk (FORM if-form) WALKER
-
- Source
ir.lisp (file)
- Method: walk (FORM variable-write) WALKER
-
- Source
ir.lisp (file)
- Method: walk (FORM variable-read) WALKER
-
- Source
ir.lisp (file)
- Method: walk (FORM slot-access) WALKER
-
- Source
ir.lisp (file)
- Method: walk (FORM array-access) WALKER
-
- Source
ir.lisp (file)
- Method: walk (FORM bindings) WALKER
-
- Source
ir.lisp (file)
- Method: walk (FORM progn-body) WALKER
-
- Source
ir.lisp (file)
- Method: walk (FORM function-call) WALKER
-
- Source
ir.lisp (file)
- Method: walk (FORM array-initialization) WALKER
-
- Source
ir.lisp (file)
- Method: walk (FORM initialized-binding) WALKER
-
- Source
ir.lisp (file)
- Generic Function: walk-cons CAR CDR WALKER
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Methods
- Method: walk-cons (CAR0 (eql defstruct)) CDR1 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons (CAR728 (eql bind-interface)) CDR729 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons (CAR637 (eql output)) CDR638 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons (CAR546 (eql input)) CDR547 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons (CAR455 (eql uniform)) CDR456 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons (CAR364 (eql attribute)) CDR365 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons (CAR273 (eql %defconstant)) CDR274 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons (CAR182 (eql defconstant)) CDR183 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons (CAR91 (eql defparameter)) CDR92 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons (CAR0 (eql defconstant)) CDR1 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons (CAR0 (eql defun)) CDR1 (WALKER extract-functions)
-
- Source
compiler.lisp (file)
- Method: walk-cons CAR CDR (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk-cons (CAR0 (eql %for)) CDR1 (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk-cons (CAR0 (eql if)) CDR1 (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk-cons (CAR0 (eql setq)) CDR1 (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk-cons (CAR0 (eql progn)) CDR1 (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk-cons (CAR0 (eql let*)) CDR1 (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk-cons (CAR0 (eql let)) CDR1 (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk-cons (CAR0 (eql %defconstant)) CDR1 (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk-cons (CAR0 (eql defconstant)) CDR1 (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk-cons (CAR0 (eql defparameter)) CDR1 (WALKER glsl-walker)
-
- Source
glsl-base.lisp (file)
- Method: walk-cons CAR CDR WALKER around
-
- Method: walk-cons CAR CDR (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql labels)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql flet)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql let*)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql let)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql quote)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql progv)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql unwind-protect)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql multiple-value-prog1)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql multiple-value-call)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql function)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql go)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql tagbody)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql macrolet)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql symbol-macrolet)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql locally)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql eval-when)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql setq)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql load-time-value)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql throw)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql catch)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql return-from)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons (CAR0 (eql block)) CDR1 (WALKER cl-walker)
-
- Method: walk-cons CAR CDR WALKER
-
5.2.5 Conditions
- Condition: incomplete-dependent ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
inference-failure (condition)
- Condition: inference-failure ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
condition (condition)
- Direct subclasses
incomplete-dependent (condition)
5.2.6 Classes
- Class: aggregate-type ()
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Direct superclasses
-
- Direct subclasses
-
- Class: any-type ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: constraints
-
- Initargs
:constraints
- Initform
(make-hash-table)
- Readers
constraints (generic function)
- Writers
(setf constraints) (generic function)
- Class: array-access ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
place (class)
- Direct methods
-
- Direct slots
- Slot: binding
-
- Initargs
:binding
- Readers
binding (generic function)
- Writers
(setf binding) (generic function)
- Slot: index
-
- Initargs
:index
- Readers
index (generic function)
- Writers
(setf index) (generic function)
- Slot: value-type
-
- Initargs
:value-type
- Readers
value-type (generic function)
- Writers
(setf value-type) (generic function)
- Class: array-access-constraint ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
ctype/other-constraint (class)
- Direct methods
-
- Direct slots
- Slot: min-size
-
- Initargs
:min-size
- Readers
min-size (generic function)
- Writers
(setf min-size) (generic function)
- Class: array-initialization ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
array-type (class)
- Direct methods
-
- Direct slots
- Slot: arguments
-
- Initargs
:arguments
- Readers
arguments (generic function)
- Writers
(setf arguments) (generic function)
- Slot: raw-arguments
-
- Initargs
:raw-arguments
- Readers
raw-arguments (generic function)
- Writers
(setf raw-arguments) (generic function)
- Slot: argument-environment
-
- Initargs
:argument-environment
- Readers
argument-environment (generic function)
- Writers
(setf argument-environment) (generic function)
- Class: array-type ()
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Direct superclasses
generic-type (class)
- Direct subclasses
array-initialization (class)
- Direct methods
-
- Direct slots
- Slot: base-type
-
- Initargs
:base-type
- Readers
base-type (generic function)
- Writers
(setf base-type) (generic function)
- Slot: array-size
-
- Initargs
:array-size
- Readers
array-size (generic function)
- Writers
(setf array-size) (generic function)
- Class: binding ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
place (class)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: name
-
- Initargs
:name
- Readers
name (generic function)
- Writers
(setf name) (generic function)
- Slot: glsl-name
-
- Initargs
:glsl-name
- Readers
glsl-name (generic function)
- Writers
(setf glsl-name) (generic function)
- Slot: value-type
-
- Initargs
:value-type
- Initform
t
- Readers
value-type (generic function)
- Writers
(setf value-type) (generic function)
- Slot: allow-casts
-
- Initargs
:allow-casts
- Initform
t
- Readers
allow-casts (generic function)
- Writers
(setf allow-casts) (generic function)
- Slot: declared-type
-
- Initargs
:declared-type
- Initform
t
- Readers
declared-type (generic function)
- Writers
(setf declared-type) (generic function)
- Slot: qualifiers
-
- Readers
qualifiers (generic function)
- Writers
(setf qualifiers) (generic function)
- Slot: conflicts
-
- Readers
conflicts (generic function)
- Writers
(setf conflicts) (generic function)
- Class: binding-scope ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
-
- Direct methods
-
- Direct slots
- Slot: declarations
-
- Initargs
:declarations
- Readers
declarations (generic function)
- Writers
(setf declarations) (generic function)
- Class: binding-with-dependencies ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: bindings-used-by
-
- Initform
(make-hash-table)
- Readers
bindings-used-by (generic function)
- Slot: bindings-using
-
- Initform
(make-hash-table)
- Readers
bindings-using (generic function)
- Class: bindings ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: bindings
-
- Initargs
:bindings
- Readers
bindings (generic function)
- Writers
(setf bindings) (generic function)
- Class: builtin-function ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
-
- Class: cast-constraint ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
constraint (class)
- Direct methods
-
- Direct slots
- Slot: cast-type
-
- Initargs
:cast-type
- Initform
:implicit
- Readers
cast-type (generic function)
- Writers
(setf cast-type) (generic function)
- Slot: in-type
-
- Initargs
:in
- Readers
in-type (generic function)
- Writers
(setf in-type) (generic function)
- Slot: out-type
-
- Initargs
:out
- Readers
out-type (generic function)
- Writers
(setf out-type) (generic function)
- Slot: name
-
- Initargs
:name
- Readers
name (generic function)
- Writers
(setf name) (generic function)
- Class: cl-walker ()
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Direct superclasses
walker (class)
- Direct subclasses
glsl-walker (class)
- Direct methods
-
- Class: concrete-type ()
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Direct superclasses
generic-type (class)
- Direct methods
-
- Direct slots
- Slot: implicit-casts-to
-
- Initargs
:casts-to
- Readers
implicit-casts-to (generic function)
- Writers
(setf implicit-casts-to) (generic function)
- Slot: implicit-casts-from
-
- Initargs
:casts-from
- Readers
implicit-casts-from (generic function)
- Writers
(setf implicit-casts-from) (generic function)
- Slot: explicit-casts
-
- Initargs
:explicit-casts
- Readers
explicit-casts (generic function)
- Writers
(setf explicit-casts) (generic function)
- Slot: scalar/vector-size
-
- Initargs
:scalar/vector-size
- Readers
scalar/vector-size (generic function)
- Writers
(setf scalar/vector-size) (generic function)
- Slot: scalar/vector-set
-
- Initargs
:scalar/vector-set
- Readers
scalar/vector-set (generic function)
- Writers
(setf scalar/vector-set) (generic function)
- Slot: base-type
-
- Initargs
:base-type
- Readers
base-type (generic function)
- Writers
(setf base-type) (generic function)
- Class: constant-binding ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
-
- Direct methods
-
- Direct slots
- Slot: internal
-
- Readers
internal (generic function)
- Writers
(setf internal) (generic function)
- Class: constrained-type ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: types
-
- Initargs
:types
- Initform
(make-hash-table)
- Readers
types (generic function)
- Writers
(setf types) (generic function)
- Slot: constraints
-
- Initargs
:constraints
- Initform
(make-hash-table)
- Readers
constraints (generic function)
- Writers
(setf constraints) (generic function)
- Class: constraint ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: modified
-
- Readers
modified (generic function)
- Writers
(setf modified) (generic function)
- Class: ctype/other-constraint ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
constraint (class)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: ctype
-
- Initargs
:ctype
- Readers
ctype (generic function)
- Writers
(setf ctype) (generic function)
- Slot: other-type
-
- Initargs
:other-type
- Readers
other-type (generic function)
- Writers
(setf other-type) (generic function)
- Class: environment ()
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: parent-scope
-
- Initargs
:parent
- Readers
parent-scope (generic function)
- Slot: function-bindings
-
- Initform
(make-hash-table)
- Readers
function-bindings (generic function)
- Slot: compiler-macro-bindings
-
- Initform
(make-hash-table)
- Readers
compiler-macro-bindings (generic function)
- Slot: variable-bindings
-
- Initform
(make-hash-table)
- Readers
variable-bindings (generic function)
- Slot: types
-
- Initform
(make-hash-table)
- Readers
types (generic function)
- Slot: locked
-
- Readers
locked (generic function)
- Writers
(setf locked) (generic function)
- Slot: name
-
- Initargs
:name
- Readers
name (generic function)
- Class: explicit-progn ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
progn-body (class)
- Direct methods
walk (method)
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Direct superclasses
glsl-walker (class)
- Direct methods
-
- Class: finalize ()
-
- Package
3bgl-shaders
- Source
finalize-inference.lisp (file)
- Direct superclasses
glsl-walker (class)
- Class: for-loop ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
implicit-progn (class)
- Direct methods
-
- Direct slots
- Slot: init-forms
-
- Initargs
:init
- Readers
init-forms (generic function)
- Writers
(setf init-forms) (generic function)
- Slot: condition-forms
-
- Initargs
:while
- Readers
condition-forms (generic function)
- Writers
(setf condition-forms) (generic function)
- Slot: step-forms
-
- Initargs
:step
- Readers
step-forms (generic function)
- Writers
(setf step-forms) (generic function)
- Class: function-application ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
constraint (class)
- Direct subclasses
variable-arity-function-application (class)
- Direct methods
-
- Direct slots
- Slot: argument-types
-
- Readers
argument-types (generic function)
- Writers
(setf argument-types) (generic function)
- Slot: return-type
-
- Initargs
:return-type
- Readers
return-type (generic function)
- Writers
(setf return-type) (generic function)
- Slot: function-types
-
- Initargs
:function-types
- Readers
function-types (generic function)
- Writers
(setf function-types) (generic function)
- Slot: name
-
- Initargs
:name
- Readers
name (generic function)
- Writers
(setf name) (generic function)
- Class: function-argument ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
local-variable (class)
- Direct methods
walk (method)
- Class: function-binding ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: name
-
- Initargs
:name
- Readers
name (generic function)
- Writers
(setf name) (generic function)
- Slot: glsl-name
-
- Initargs
:glsl-name
- Readers
glsl-name (generic function)
- Writers
(setf glsl-name) (generic function)
- Slot: declarations
-
- Initargs
:declarations
- Readers
declarations (generic function)
- Writers
(setf declarations) (generic function)
- Slot: docs
-
- Initargs
:docs
- Slot: value-type
-
- Initargs
:value-type
- Initform
t
- Readers
value-type (generic function)
- Writers
(setf value-type) (generic function)
- Slot: declared-type
-
- Initargs
:declared-type
- Initform
t
- Readers
declared-type (generic function)
- Writers
(setf declared-type) (generic function)
- Class: function-binding-function ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
-
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: type-inference-state
-
- Initargs
:type-inference-state
- Readers
type-inference-state (generic function)
- Writers
(setf type-inference-state) (generic function)
- Slot: valid-stages
-
- Initform
t
- Readers
valid-stages (generic function)
- Writers
(setf valid-stages) (generic function)
- Slot: local-binding-type-data
-
- Initform
(make-hash-table)
- Readers
local-binding-type-data (generic function)
- Writers
(setf local-binding-type-data) (generic function)
- Slot: final-binding-type-cache
-
- Initform
(make-hash-table :test (quote equal))
- Readers
final-binding-type-cache (generic function)
- Writers
(setf final-binding-type-cache) (generic function)
- Slot: lambda-list
-
- Initargs
:lambda-list
- Readers
lambda-list (generic function)
- Writers
(setf lambda-list) (generic function)
- Slot: old-lambda-list
-
- Initform
t
- Readers
old-lambda-list (generic function)
- Writers
(setf old-lambda-list) (generic function)
- Slot: expander
-
- Initargs
:expander
- Initform
(function identity)
- Readers
expander (generic function)
- Writers
(setf expander) (generic function)
- Slot: layout-qualifiers
-
- Initform
(make-hash-table)
- Readers
layout-qualifiers (generic function)
- Writers
(setf layout-qualifiers) (generic function)
- Class: function-call ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: called-function
-
- Initargs
:function
- Readers
called-function (generic function)
- Writers
(setf called-function) (generic function)
- Slot: arguments
-
- Initargs
:arguments
- Readers
arguments (generic function)
- Writers
(setf arguments) (generic function)
- Slot: raw-arguments
-
- Initargs
:raw-arguments
- Readers
raw-arguments (generic function)
- Writers
(setf raw-arguments) (generic function)
- Slot: argument-environment
-
- Initargs
:argument-environment
- Readers
argument-environment (generic function)
- Writers
(setf argument-environment) (generic function)
- Class: generic-type ()
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: name
-
- Initargs
:name
- Readers
name (generic function)
- Writers
(setf name) (generic function)
- Slot: glsl-name
-
- Initargs
:glsl-name
- Readers
glsl-name (generic function)
- Writers
(setf glsl-name) (generic function)
- Slot: internal
-
- Initargs
:internal
- Readers
internal (generic function)
- Writers
(setf internal) (generic function)
- Slot: modified
-
- Readers
modified (generic function)
- Writers
(setf modified) (generic function)
- Class: global-function ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
-
- Direct methods
-
- Class: global-function-constraint ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
constraint (class)
- Direct methods
-
- Direct slots
- Slot: name
-
- Initargs
:name
- Readers
name (generic function)
- Writers
(setf name) (generic function)
- Slot: function
-
- Initargs
:function
- Readers
global-function (generic function)
- Writers
(setf global-function) (generic function)
- Slot: argument-types
-
- Readers
argument-types (generic function)
- Writers
(setf argument-types) (generic function)
- Slot: return-type
-
- Initargs
:return-type
- Readers
return-type (generic function)
- Writers
(setf return-type) (generic function)
- Class: global-variable ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
-
- Class: glsl-walker ()
-
- Package
3bgl-glsl
- Source
glsl-base.lisp (file)
- Direct superclasses
cl-walker (class)
- Direct subclasses
-
- Direct methods
-
- Class: if-form ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: test-form
-
- Initargs
:test
- Readers
test-form (generic function)
- Writers
(setf test-form) (generic function)
- Slot: then-form
-
- Initargs
:then
- Readers
then-form (generic function)
- Writers
(setf then-form) (generic function)
- Slot: else-form
-
- Initargs
:else
- Readers
else-form (generic function)
- Writers
(setf else-form) (generic function)
- Class: implicit-progn ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
progn-body (class)
- Direct subclasses
-
- Direct methods
-
- Class: infer-build-constraints ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
glsl-walker (class)
- Direct methods
-
- Class: inference-call-site ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: called-function
-
- Initargs
:called-function
- Readers
called-function (generic function)
- Writers
(setf called-function) (generic function)
- Class: initialized-binding ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
binding (class)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: initial-value-form
-
- Initargs
:init
- Readers
initial-value-form (generic function)
- Writers
(setf initial-value-form) (generic function)
- Class: interface-binding ()
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Direct superclasses
-
- Direct methods
-
- Direct slots
- Slot: stage-bindings
-
- Initargs
:stage-bindings
- Readers
stage-bindings (generic function)
- Writers
(setf stage-bindings) (generic function)
- Slot: internal
-
- Initargs
:internal
- Readers
internal (generic function)
- Writers
(setf internal) (generic function)
- Slot: array-size
-
- Initargs
:array-size
- Readers
array-size (generic function)
- Writers
(setf array-size) (generic function)
- Class: interface-stage-binding ()
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Direct superclasses
place (class)
- Direct methods
-
- Direct slots
- Slot: binding
-
- Initargs
:binding
- Readers
binding (generic function)
- Writers
(setf binding) (generic function)
- Slot: stage
-
- Initargs
:stage
- Readers
stage (generic function)
- Writers
(setf stage) (generic function)
- Slot: interface-qualifier
-
- Initargs
:interface-qualifier
- Readers
interface-qualifier (generic function)
- Writers
(setf interface-qualifier) (generic function)
- Slot: layout-qualifier
-
- Initargs
:layout-qualifier
- Readers
layout-qualifier (generic function)
- Writers
(setf layout-qualifier) (generic function)
- Slot: interface-block
-
- Initargs
:interface-block
- Readers
interface-block (generic function)
- Writers
(setf interface-block) (generic function)
- Slot: array-size
-
- Initargs
:array-size
- Readers
array-size (generic function)
- Writers
(setf array-size) (generic function)
- Slot: default
-
- Initargs
:default
- Readers
default (generic function)
- Writers
(setf default) (generic function)
- Class: interface-type ()
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Direct superclasses
aggregate-type (class)
- Class: internal-function ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
-
- Direct Default Initargs
Initarg | Value |
:type-inference-state | t |
- Class: local-variable ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
variable-binding (class)
- Direct subclasses
function-argument (class)
- Direct methods
-
- Class: macro-definition ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
function-binding (class)
- Direct methods
-
- Direct slots
- Slot: expression
-
- Initargs
:expression
- Readers
expression (generic function)
- Writers
(setf expression) (generic function)
- Slot: expander
-
- Readers
expander (generic function)
- Writers
(setf expander) (generic function)
- Class: optional-arg-type ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: arg-type
-
- Initargs
:arg-type
- Readers
arg-type (generic function)
- Writers
(setf arg-type) (generic function)
- Class: place ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
-
- Class: progn-body ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
-
- Direct methods
-
- Direct slots
- Slot: body
-
- Initargs
:body
- Readers
body (generic function)
- Writers
(setf body) (generic function)
- Class: ref-type ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: equiv
-
- Initargs
:equiv
- Readers
equiv (generic function)
- Writers
(setf equiv) (generic function)
- Class: same-base-type-different-size-constraint ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
ctype/other-constraint (class)
- Direct methods
-
- Direct slots
- Slot: out-size
-
- Initargs
:out-size
- Readers
out-size (generic function)
- Writers
(setf out-size) (generic function)
- Slot: min-size
-
- Initargs
:min-size
- Readers
min-size (generic function)
- Writers
(setf min-size) (generic function)
- Class: same-size-different-base-type-constraint ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
ctype/other-constraint (class)
- Direct methods
-
- Direct slots
- Slot: base-type
-
- Initargs
:base-type
- Readers
base-type (generic function)
- Writers
(setf base-type) (generic function)
- Class: same-type-or-scalar-constraint ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
ctype/other-constraint (class)
- Direct methods
-
- Class: scalar-type-of-constraint ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
ctype/other-constraint (class)
- Direct methods
-
- Class: shader-program ()
-
- Package
3bgl-shaders
- Source
utils.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: program
-
- Readers
program (generic function)
- Slot: stages
-
- Initform
(make-hash-table)
- Readers
stages (generic function)
- Slot: dirty
-
- Initform
(make-hash-table)
- Readers
dirty (generic function)
- Slot: uniforms
-
- Initform
(make-hash-table)
- Readers
uniforms (generic function)
- Slot: ssbos
-
- Initform
(make-hash-table)
- Readers
ssbos (generic function)
- Slot: structs
-
- Initform
(make-hash-table)
- Readers
structs (generic function)
- Slot: live-uniforms
-
- Readers
live-uniforms (generic function)
- Writers
(setf live-uniforms) (generic function)
- Slot: name-map
-
- Initform
(make-hash-table :test (quote equal))
- Readers
name-map (generic function)
- Slot: version
-
- Initargs
:version
- Initform
3bgl-shaders:*default-version*
- Readers
version (generic function)
- Writers
(setf version) (generic function)
- Slot: recompilation-callbacks
-
- Initform
3bgl-shaders::*default-recompilation-callback*
- Readers
recompilation-callbacks (generic function)
- Writers
(setf recompilation-callbacks) (generic function)
- Class: slot-access ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
place (class)
- Direct methods
-
- Direct slots
- Slot: binding
-
- Initargs
:binding
- Readers
binding (generic function)
- Writers
(setf binding) (generic function)
- Slot: field
-
- Initargs
:field
- Readers
field (generic function)
- Writers
(setf field) (generic function)
- Slot: value-type
-
- Initargs
:value-type
- Readers
value-type (generic function)
- Writers
(setf value-type) (generic function)
- Class: struct-type ()
-
- Package
3bgl-shaders
- Source
types.lisp (file)
- Direct superclasses
-
- Direct methods
-
- Class: swizzle-access ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
place (class)
- Direct methods
-
- Direct slots
- Slot: binding
-
- Initargs
:binding
- Readers
binding (generic function)
- Writers
(setf binding) (generic function)
- Slot: field
-
- Initargs
:field
- Readers
field (generic function)
- Writers
(setf field) (generic function)
- Slot: min-size
-
- Initargs
:min-size
- Readers
min-size (generic function)
- Writers
(setf min-size) (generic function)
- Slot: value-type
-
- Initargs
:value-type
- Readers
value-type (generic function)
- Writers
(setf value-type) (generic function)
- Class: symbol-macro ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
binding (class)
- Direct methods
-
- Direct slots
- Slot: expansion
-
- Initargs
:expansion
- Readers
expansion (generic function)
- Writers
(setf expansion) (generic function)
- Class: tree-shaker ()
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Class: unknown-function-binding ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
-
- Direct methods
-
- Direct slots
- Slot: environment
-
- Initargs
:environment
- Readers
environment (generic function)
- Writers
(setf environment) (generic function)
- Class: update-calls ()
-
- Package
3bgl-shaders
- Source
compiler.lisp (file)
- Direct superclasses
glsl-walker (class)
- Direct methods
-
- Direct slots
- Slot: modified
-
- Initargs
:modified
- Readers
modified (generic function)
- Class: variable-arity-function-application ()
-
- Package
3bgl-shaders
- Source
infer.lisp (file)
- Direct superclasses
function-application (class)
- Direct methods
-
- Direct slots
- Slot: min-arity
-
- Initargs
:min-arity
- Initform
0
- Readers
min-arity (generic function)
- Writers
(setf min-arity) (generic function)
- Slot: max-arity
-
- Initargs
:max-arity
- Initform
0
- Readers
max-arity (generic function)
- Writers
(setf max-arity) (generic function)
- Slot: function-types-by-arity
-
- Initargs
:function-types-by-arity
- Readers
function-types-by-arity (generic function)
- Writers
(setf function-types-by-arity) (generic function)
- Class: variable-binding ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
initialized-binding (class)
- Direct subclasses
-
- Class: variable-read ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
place (class)
- Direct methods
-
- Direct slots
- Slot: binding
-
- Initargs
:binding
- Readers
binding (generic function)
- Writers
(setf binding) (generic function)
- Class: variable-write ()
-
- Package
3bgl-shaders
- Source
ir.lisp (file)
- Direct superclasses
standard-object (class)
- Direct methods
-
- Direct slots
- Slot: binding
-
- Initargs
:binding
- Readers
binding (generic function)
- Writers
(setf binding) (generic function)
- Slot: value
-
- Initargs
:value
- Readers
value (generic function)
- Writers
(setf value) (generic function)
- Class: walker ()
-
- Package
3bgl-shaders
- Source
walker.lisp (file)
- Direct superclasses
standard-object (class)
- Direct subclasses
cl-walker (class)
Appendix A Indexes
A.1 Concepts
| Index Entry | | Section |
|
3 | | |
| 3bgl-shader.asd: | | The 3bgl-shader․asd file |
| 3bgl-shader/api.lisp: | | The 3bgl-shader/api․lisp file |
| 3bgl-shader/cl-functions.lisp: | | The 3bgl-shader/cl-functions․lisp file |
| 3bgl-shader/compiler.lisp: | | The 3bgl-shader/compiler․lisp file |
| 3bgl-shader/finalize-inference.lisp: | | The 3bgl-shader/finalize-inference․lisp file |
| 3bgl-shader/glsl-base.lisp: | | The 3bgl-shader/glsl-base․lisp file |
| 3bgl-shader/glsl.lisp: | | The 3bgl-shader/glsl․lisp file |
| 3bgl-shader/infer.lisp: | | The 3bgl-shader/infer․lisp file |
| 3bgl-shader/ir.lisp: | | The 3bgl-shader/ir․lisp file |
| 3bgl-shader/old-utils.lisp: | | The 3bgl-shader/old-utils․lisp file |
| 3bgl-shader/package.lisp: | | The 3bgl-shader/package․lisp file |
| 3bgl-shader/printer.lisp: | | The 3bgl-shader/printer․lisp file |
| 3bgl-shader/types.lisp: | | The 3bgl-shader/types․lisp file |
| 3bgl-shader/utils.lisp: | | The 3bgl-shader/utils․lisp file |
| 3bgl-shader/walker.lisp: | | The 3bgl-shader/walker․lisp file |
|
F | | |
| File, Lisp, 3bgl-shader.asd: | | The 3bgl-shader․asd file |
| File, Lisp, 3bgl-shader/api.lisp: | | The 3bgl-shader/api․lisp file |
| File, Lisp, 3bgl-shader/cl-functions.lisp: | | The 3bgl-shader/cl-functions․lisp file |
| File, Lisp, 3bgl-shader/compiler.lisp: | | The 3bgl-shader/compiler․lisp file |
| File, Lisp, 3bgl-shader/finalize-inference.lisp: | | The 3bgl-shader/finalize-inference․lisp file |
| File, Lisp, 3bgl-shader/glsl-base.lisp: | | The 3bgl-shader/glsl-base․lisp file |
| File, Lisp, 3bgl-shader/glsl.lisp: | | The 3bgl-shader/glsl․lisp file |
| File, Lisp, 3bgl-shader/infer.lisp: | | The 3bgl-shader/infer․lisp file |
| File, Lisp, 3bgl-shader/ir.lisp: | | The 3bgl-shader/ir․lisp file |
| File, Lisp, 3bgl-shader/old-utils.lisp: | | The 3bgl-shader/old-utils․lisp file |
| File, Lisp, 3bgl-shader/package.lisp: | | The 3bgl-shader/package․lisp file |
| File, Lisp, 3bgl-shader/printer.lisp: | | The 3bgl-shader/printer․lisp file |
| File, Lisp, 3bgl-shader/types.lisp: | | The 3bgl-shader/types․lisp file |
| File, Lisp, 3bgl-shader/utils.lisp: | | The 3bgl-shader/utils․lisp file |
| File, Lisp, 3bgl-shader/walker.lisp: | | The 3bgl-shader/walker․lisp file |
|
L | | |
| Lisp File, 3bgl-shader.asd: | | The 3bgl-shader․asd file |
| Lisp File, 3bgl-shader/api.lisp: | | The 3bgl-shader/api․lisp file |
| Lisp File, 3bgl-shader/cl-functions.lisp: | | The 3bgl-shader/cl-functions․lisp file |
| Lisp File, 3bgl-shader/compiler.lisp: | | The 3bgl-shader/compiler․lisp file |
| Lisp File, 3bgl-shader/finalize-inference.lisp: | | The 3bgl-shader/finalize-inference․lisp file |
| Lisp File, 3bgl-shader/glsl-base.lisp: | | The 3bgl-shader/glsl-base․lisp file |
| Lisp File, 3bgl-shader/glsl.lisp: | | The 3bgl-shader/glsl․lisp file |
| Lisp File, 3bgl-shader/infer.lisp: | | The 3bgl-shader/infer․lisp file |
| Lisp File, 3bgl-shader/ir.lisp: | | The 3bgl-shader/ir․lisp file |
| Lisp File, 3bgl-shader/old-utils.lisp: | | The 3bgl-shader/old-utils․lisp file |
| Lisp File, 3bgl-shader/package.lisp: | | The 3bgl-shader/package․lisp file |
| Lisp File, 3bgl-shader/printer.lisp: | | The 3bgl-shader/printer․lisp file |
| Lisp File, 3bgl-shader/types.lisp: | | The 3bgl-shader/types․lisp file |
| Lisp File, 3bgl-shader/utils.lisp: | | The 3bgl-shader/utils․lisp file |
| Lisp File, 3bgl-shader/walker.lisp: | | The 3bgl-shader/walker․lisp file |
|
A.2 Functions