The 3bgl-shader Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The 3bgl-shader Reference Manual

This is the 3bgl-shader Reference Manual, generated automatically by Declt version 2.3 "Robert April" on Wed Mar 14 02:50:16 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

3bgl-shader: a Common Lisp DSL for generating GLSL shaders

Features

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 WARNs 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 inputs/outputs, 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 :*)))

Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

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


Previous: , Up: Systems   [Contents][Index]

2.1 3bgl-shader

Author

Bart Botta <00003b at gmail.com>

License

MIT

Description

CL-hosted CL-like DSL for generating GLSL

Dependencies
Source

3bgl-shader.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

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


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 3bgl-shader.asd

Location

3bgl-shader.asd

Systems

3bgl-shader (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 3bgl-shader/package.lisp

Parent

3bgl-shader (system)

Location

package.lisp

Packages

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 3bgl-shader/ir.lisp

Dependency

package.lisp (file)

Parent

3bgl-shader (system)

Location

ir.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 3bgl-shader/walker.lisp

Dependency

ir.lisp (file)

Parent

3bgl-shader (system)

Location

walker.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 3bgl-shader/types.lisp

Dependency

walker.lisp (file)

Parent

3bgl-shader (system)

Location

types.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.6 3bgl-shader/infer.lisp

Dependency

types.lisp (file)

Parent

3bgl-shader (system)

Location

infer.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.7 3bgl-shader/glsl-base.lisp

Dependency

infer.lisp (file)

Parent

3bgl-shader (system)

Location

glsl-base.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.8 3bgl-shader/cl-functions.lisp

Dependency

glsl-base.lisp (file)

Parent

3bgl-shader (system)

Location

cl-functions.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.9 3bgl-shader/glsl.lisp

Dependency

cl-functions.lisp (file)

Parent

3bgl-shader (system)

Location

glsl.lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.10 3bgl-shader/finalize-inference.lisp

Dependency

glsl.lisp (file)

Parent

3bgl-shader (system)

Location

finalize-inference.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.11 3bgl-shader/printer.lisp

Dependency

finalize-inference.lisp (file)

Parent

3bgl-shader (system)

Location

printer.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.12 3bgl-shader/compiler.lisp

Dependency

printer.lisp (file)

Parent

3bgl-shader (system)

Location

compiler.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.13 3bgl-shader/api.lisp

Dependency

compiler.lisp (file)

Parent

3bgl-shader (system)

Location

api.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.14 3bgl-shader/old-utils.lisp

Dependency

api.lisp (file)

Parent

3bgl-shader (system)

Location

old-utils.lisp

Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.15 3bgl-shader/utils.lisp

Dependency

old-utils.lisp (file)

Parent

3bgl-shader (system)

Location

utils.lisp

Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 3bgl-glsl/cl

Source

package.lisp (file)

Use List

Next: , Previous: , Up: Packages   [Contents][Index]

4.2 3bgl-glsl

Source

package.lisp (file)

Use List

common-lisp

Used By List

3bgl-glsl/cl

Exported Definitions
Internal Definitions

Previous: , Up: Packages   [Contents][Index]

4.3 3bgl-shaders

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

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


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

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)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

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)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

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)


Previous: , Up: Exported definitions   [Contents][Index]

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)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

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)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

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)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

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)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

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 (CAR744 (eql bind-interface)) CDR745 (WALKER extract-functions)
Source

compiler.lisp (file)

Method: walk-cons (CAR651 (eql output)) CDR652 (WALKER extract-functions)
Source

compiler.lisp (file)

Method: walk-cons (CAR558 (eql input)) CDR559 (WALKER extract-functions)
Source

compiler.lisp (file)

Method: walk-cons (CAR465 (eql uniform)) CDR466 (WALKER extract-functions)
Source

compiler.lisp (file)

Method: walk-cons (CAR372 (eql attribute)) CDR373 (WALKER extract-functions)
Source

compiler.lisp (file)

Method: walk-cons (CAR279 (eql %defconstant)) CDR280 (WALKER extract-functions)
Source

compiler.lisp (file)

Method: walk-cons (CAR186 (eql defconstant)) CDR187 (WALKER extract-functions)
Source

compiler.lisp (file)

Method: walk-cons (CAR93 (eql defparameter)) CDR94 (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

Next: , Previous: , Up: Internal definitions   [Contents][Index]

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)


Previous: , Up: Internal definitions   [Contents][Index]

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
  • walk (method)
  • %print (method)
  • walk (method)
  • initialize-instance (method)
  • internal (method)
  • internal (method)
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)

Class: extract-functions ()
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)