The shadow Reference Manual

Table of Contents

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

The shadow Reference Manual

This is the shadow Reference Manual, version 1.0.0, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:34:00 2018 GMT+0.


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

1 Introduction

shadow

A lightweight system to help with defining and managing OpenGL shader programs.

Overview

Under the hood, Shadow is just a wrapper around the Varjo library used for writing shader programs, and some fluff to allow referencing shader programs by name, querying for basic information about them, as well as modifying uniform variables throughout the lifecycle of an OpenGL application. Limited and experimental support for writing to uniform buffer objects is also available.

The goal of Shadow is to be a simple solution to ease the task of writing and managing OpenGL shader programs, and as such, does not and will not contain every feature you might need.

Install

(ql:quickload :shadow)

Usage

Basic Usage

Using Shadow is not very straightforward, mostly due to the borrowing of the "Vari" language used to write shader programs, which does not have much documentation. It does however try to stay familiar and resembles Common Lisp. Additionally, there are several videos of its usage created by its author.

Shader programs are written using a series of DEFUN-GPU and DEFSTRUCT-GPU forms representing GPU functions and structures respectively. As mentioned, their bodies follow the language rules of "Vari", which is not documented here.

Each DEFUN-GPU defines a shader stage or auxillary function thereof. It takes in input arguments and uniform variables, and sends its return values to the next stage of the shader pipeline as input arguments. The vertex stage's input arguments correspond to your Vertex Array Object attributes.

A simple OpenGL shader program:

(defun-gpu foo-vert ((position :vec3) (uv :vec2) &uniform (mvp :mat4))
  (values (* mvp (vec4 position 1))
          (vec4 1 0 0 1)))

(defun-gpu foo-frag ((color :vec4))
  (values color))

This defines 2 GPU functions, foo-vert and foo-frag that will serve as a very simple program once translated and compiled.

To use this program it first must be translated from the Lisp-like "Vari" language, into GLSL. This is done with the MAKE-SHADER-PROGRAM macro:

(make-shader-program :example-program (:version 330 :primitive :points)
  (:vertex () (foo-vert :vec3 :vec2))
  (:fragment () (foo-frag :vec4)))

Above, we call MAKE-SHADER-PROGRAM with a name to call our program, :example-program, the default stage version to use, :version 330, and the OpenGL drawing primitive the vertex stage should use, :primitive :points, followed by a sequence of "stage-specs" of the form: (stage-type (version) function-spec):

stage-type may be one of: :vertex, :tessellation-control, :tessellation-evaluation, :geometry, :fragment, or :compute.

version is a number, string, or symbol representing a GLSL version to use when compiling this stage, for example 330, "330", :330, or '|330| are all equivalent. The default version if not specified is derived from the options list of the containing MAKE-SHADER-PROGRAM form.

func-spec specifies which DEFUN-GPU function to use for this stage, and is a list consisting of the function name followed by the types of all of its input arguments. The types are important because the "Vari" shader language allows the same function name to exist with different signatures, so you must be explicit in which function you want to translate to GLSL.

Issuing the call to MAKE-SHADER-PROGRAM produces a PROGRAM object, which includes some useful information:

The SOURCE reader method is a hash table with keys consisting of shader stage keyword symbols, and values being strings of the translated "Vari" to GLSL source code:

(make-shader-program ...)

(source *) ; => #<HASH-TABLE :TEST EQL :COUNT 2 {10020C7603}>

(gethash :vertex *)
#|
"#version 330

layout(location = 0)  in vec3 POSITION;
layout(location = 1)  in vec2 UV;

out _FROM_VERTEX_STAGE_
{
     out vec4 _VERTEX_STAGE_OUT_1;
} v_out;

uniform mat4 MVP;

void main()
{
    gl_Position = (MVP * vec4(POSITION,float(1)));
    v_out._VERTEX_STAGE_OUT_1 = vec4(float(1),float(0),float(0),float(1));
    return;
}"
T
|#

(gethash :fragment **)
#|
"#version 330

in _FROM_VERTEX_STAGE_
{
     in vec4 _VERTEX_STAGE_OUT_1;
} v_in;

layout(location = 0)  out vec4 _FRAGMENT_STAGE_OUT_0;

void main()
{
    _FRAGMENT_STAGE_OUT_0 = v_in._VERTEX_STAGE_OUT_1;
    return;
}"
T
|#

As can be seen by the GLSL source, our vertex stage function is properly making use of the VALUES form. It takes the first value for itself, setting gl_Position, and passes all subsequent values as input arguments to the fragment stage, (vec4 1 0 0 1), which takes that for itself as the final fragment color of the pipeline.

So far, we have only translated the "Vari" shader language into the GLSL language understood by GPUs. We still have to compile the shader stages and link the final program object on the GPU.

At this point, a valid OpenGL context is needed to continue.

To compile a program's stages and link them into a program, you can use the BUILD-SHADER-PROGRAM function:

(build-shader-program :example-program)

This will compile all of the stages previously translated to GLSL in our :example-game program, and link it into a program object on the GPU. This returns a non-zero integer on success.

Alternatively, you can compile and link all GLSL translated programs in one shot, by using the BUILD-SHADER-DICTIONARY function, which takes no arguments and returns a hash table of all program objects keyed by name.

The only thing left to do, is make use of the shader program to do your rendering. This is done by issuing calls to the various UNIFORM-* functions within the body of the WITH-SHADER-PROGRAM macro:

(with-shader-program :example-program
  (uniform-mat4 :mvp *matrix*))

Here, we specify that we want to use :example-program during rendering, modifying a single 4x4 matrix uniform value. Here *matrix* refers to an imaginary matrix that you should have created for the object you wish to render. There are quite a few UNIFORM-* functions, and the full list can be viewed in the package's exported symbols. Note that each uniform function takes the name of a uniform variable as a keyword symbol, followed by the value to modify it with.

UBO/SSBO Support

Shadow also includes experimental support for uniform buffer objects (UBO's) and shader storage buffer objects (SSBO's). Usage will be documented at a later time when their implementation is more stable.

License

Copyright © 2018 Michael Fiano.

Licensed under the MIT License.


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 shadow

Maintainer

Michael Fiano <mail@michaelfiano.com>

Author

Michael Fiano <mail@michaelfiano.com>

Home Page

https://www.michaelfiano.com/projects/shadow

Source Control

(:git "git@github.com:mfiano/shadow.git")

Bug Tracker

https://github.com/mfiano/shadow/issues

License

MIT

Description

A lightweight system to help with defining and managing OpenGL shader programs.

Long Description

# shadow

A lightweight system to help with defining and managing OpenGL shader programs.

## Overview

Under the hood, Shadow is just a wrapper around the [Varjo](https://github.com/cbaggers/varjo) library used for writing shader programs, and some fluff to allow referencing shader programs by name, querying for basic information about them, as well as modifying uniform variables throughout the lifecycle of an OpenGL application. Limited and experimental support for writing to uniform buffer objects is also available.

The goal of Shadow is to be a simple solution to ease the task of writing and managing OpenGL shader programs, and as such, does not and will not contain every feature you might need.

## Install

“‘ lisp
(ql:quickload :shadow)
“‘

## Usage

### Basic Usage

Using Shadow is not very straightforward, mostly due to the borrowing of the "Vari" language used to write shader programs, which does not have much documentation. It does however try to stay familiar and resembles Common Lisp. Additionally, there are [several videos](https://www.youtube.com/watch?v=82o5NeyZtvw&list=PL2VAYZE_4wRITJBv6saaKouj4sWSG1FcS) of its usage created by its author.

Shader programs are written using a series of ‘DEFUN-GPU‘ and ‘DEFSTRUCT-GPU‘ forms representing GPU functions and structures respectively. As mentioned, their bodies follow the language rules of "Vari", which is not documented here.

Each ‘DEFUN-GPU‘ defines a shader stage or auxillary function thereof. It takes in input arguments and uniform variables, and sends its return values to the next stage of the shader pipeline as input arguments. The vertex stage’s input arguments correspond to your Vertex Array Object attributes.

A simple OpenGL shader program:

“‘lisp
(defun-gpu foo-vert ((position :vec3) (uv :vec2) &uniform (mvp :mat4))
(values (* mvp (vec4 position 1))
(vec4 1 0 0 1)))

(defun-gpu foo-frag ((color :vec4))
(values color))
“‘

This defines 2 GPU functions, ‘foo-vert‘ and ‘foo-frag‘ that will serve as a very simple program once translated and compiled.

To use this program it first must be translated from the Lisp-like "Vari" language, into GLSL. This is done with the ‘MAKE-SHADER-PROGRAM‘ macro:

“‘lisp
(make-shader-program :example-program (:version 330 :primitive :points)
(:vertex () (foo-vert :vec3 :vec2))
(:fragment () (foo-frag :vec4)))
“‘

Above, we call ‘MAKE-SHADER-PROGRAM‘ with a name to call our program, ‘:example-program‘, the default stage version to use, ‘:version 330‘, and the OpenGL drawing primitive the vertex stage should use, ‘:primitive :points‘, followed by a sequence of "stage-specs" of the form: ‘(stage-type (version) function-spec)‘:

‘stage-type‘ may be one of: ‘:vertex‘, ‘:tessellation-control‘, ‘:tessellation-evaluation‘, ‘:geometry‘, ‘:fragment‘, or ‘:compute‘.

‘version‘ is a number, string, or symbol representing a GLSL version to use when compiling this stage, for example ‘330‘, ‘"330"‘, ‘:330‘, or ‘’|330|‘ are all equivalent. The default version if not specified is derived from the options list of the containing ‘MAKE-SHADER-PROGRAM‘ form.

‘func-spec‘ specifies which ‘DEFUN-GPU‘ function to use for this stage, and is a list consisting of the function name followed by the types of all of its input arguments. The types are important because the "Vari" shader language allows the same function name to exist with different signatures, so you must be explicit in which function you want to translate to GLSL.

Issuing the call to ‘MAKE-SHADER-PROGRAM‘ produces a ‘PROGRAM‘ object, which includes some useful information:

The ‘SOURCE‘ reader method is a hash table with keys consisting of shader stage keyword symbols, and values being strings of the translated "Vari" to GLSL source code:

“‘lisp
(make-shader-program ...)

(source *) ; => #<HASH-TABLE :TEST EQL :COUNT 2 {10020C7603}>

(gethash :vertex *)
#|
"#version 330

layout(location = 0) in vec3 POSITION;
layout(location = 1) in vec2 UV;

out _FROM_VERTEX_STAGE_
{
out vec4 _VERTEX_STAGE_OUT_1;
} v_out;

uniform mat4 MVP;

void main()
{
gl_Position = (MVP * vec4(POSITION,float(1)));
v_out._VERTEX_STAGE_OUT_1 = vec4(float(1),float(0),float(0),float(1));
return;
}"
T
|#

(gethash :fragment **)
#|
"#version 330

in _FROM_VERTEX_STAGE_
{
in vec4 _VERTEX_STAGE_OUT_1;
} v_in;

layout(location = 0) out vec4 _FRAGMENT_STAGE_OUT_0;

void main()
{
_FRAGMENT_STAGE_OUT_0 = v_in._VERTEX_STAGE_OUT_1;
return;
}"
T
|#
“‘

As can be seen by the GLSL source, our vertex stage function is properly making use of the ‘VALUES‘ form. It takes the first value for itself, setting ‘gl_Position‘, and passes all subsequent values as input arguments to the fragment stage, ‘(vec4 1 0 0 1)‘, which takes that for itself as the final fragment color of the pipeline.

So far, we have only translated the "Vari" shader language into the GLSL language understood by GPUs. We still have to compile the shader stages and link the final program object on the GPU.

At this point, a valid OpenGL context is needed to continue.

To compile a program’s stages and link them into a program, you can use the ‘BUILD-SHADER-PROGRAM‘ function:

“‘lisp
(build-shader-program :example-program)
“‘

This will compile all of the stages previously translated to GLSL in our ‘:example-game‘ program, and link it into a program object on the GPU. This returns a non-zero integer on success.

Alternatively, you can compile and link all GLSL translated programs in one shot, by using the ‘BUILD-SHADER-DICTIONARY‘ function, which takes no arguments and returns a hash table of all program objects keyed by name.

The only thing left to do, is make use of the shader program to do your rendering. This is done by issuing calls to the various ‘UNIFORM-*‘ functions within the body of the ‘WITH-SHADER-PROGRAM‘ macro:

“‘lisp
(with-shader-program :example-program
(uniform-mat4 :mvp *matrix*))
“‘

Here, we specify that we want to use ‘:example-program‘ during rendering, modifying a single 4x4 matrix uniform value. Here ‘*matrix*‘ refers to an imaginary matrix that you should have created for the object you wish to render. There are quite a few ‘UNIFORM-*‘ functions, and the full list can be viewed in the [package’s exported symbols](src/package.lisp). Note that each uniform
function takes the name of a uniform variable as a keyword symbol, followed by the value to modify it with.

### UBO/SSBO Support

Shadow also includes experimental support for uniform buffer objects (UBO’s) and shader storage buffer objects (SSBO’s). Usage will be documented at a later time when their implementation is more stable.

## License

Copyright © 2018 [Michael Fiano](mailto:mail@michaelfiano.com).

Licensed under the MIT License.

Version

1.0.0

Dependencies
Source

shadow.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 shadow.asd

Location

/home/quickref/quicklisp/dists/quicklisp/software/shadow-20180430-git/shadow.asd

Systems

shadow (system)


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

3.1.2 shadow/package.lisp

Parent

shadow (system)

Location

package.lisp

Packages

shadow


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

3.1.3 shadow/common.lisp

Dependency

package.lisp (file)

Parent

shadow (system)

Location

common.lisp

Internal Definitions

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

3.1.4 shadow/shadow.lisp

Dependency

common.lisp (file)

Parent

shadow (system)

Location

shadow.lisp

Exported Definitions

initialize-shaders (function)

Internal Definitions

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

3.1.5 shadow/program.lisp

Dependency

shadow.lisp (file)

Parent

shadow (system)

Location

program.lisp

Exported Definitions
Internal Definitions

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

3.1.6 shadow/packing.lisp

Dependency

program.lisp (file)

Parent

shadow (system)

Location

packing.lisp

Internal Definitions

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

3.1.7 shadow/attributes.lisp

Dependency

packing.lisp (file)

Parent

shadow (system)

Location

attributes.lisp

Internal Definitions

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

3.1.8 shadow/uniforms.lisp

Dependency

attributes.lisp (file)

Parent

shadow (system)

Location

uniforms.lisp

Exported Definitions
Internal Definitions

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

3.1.9 shadow/layout.lisp

Dependency

uniforms.lisp (file)

Parent

shadow (system)

Location

layout.lisp

Internal Definitions

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

3.1.10 shadow/blocks.lisp

Dependency

layout.lisp (file)

Parent

shadow (system)

Location

blocks.lisp

Exported Definitions
Internal Definitions

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

3.1.11 shadow/buffers.lisp

Dependency

blocks.lisp (file)

Parent

shadow (system)

Location

buffers.lisp

Exported Definitions
Internal Definitions

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

4 Packages

Packages are listed by definition order.


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

4.1 shadow

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 Macros

Macro: defstruct-gpu NAME CONTEXT &body SLOTS

Define a GPU structure. This is an alias for VARI:V-DEFSTRUCT. For more information, see the Varjo source.

Package

shadow

Source

/home/quickref/quicklisp/dists/quicklisp/software/varjo-release-quicklisp-87d69b53-git/src/varjo.internals/structs.lisp

Macro: defun-gpu NAME ARGS &body BODY

Define a GPU function. This is an alias for VARI:V-DEFUN. For more information, see the Varjo source.

Package

shadow

Source

/home/quickref/quicklisp/dists/quicklisp/software/varjo-release-quicklisp-87d69b53-git/src/varjo.internals/functions.lisp

Macro: make-shader-program NAME (&key VERSION PRIMITIVE) &body BODY

Create a new shader program using the stage-specs defined in BODY.

VERSION: The default version shader stages use, and can be overridden on a per-function basis.

PRIMITIVE: The drawing primitive to use for the vertex stage.

Package

shadow

Source

program.lisp (file)

Macro: with-shader-program NAME &body BODY

Run a body of code which uses (as in glUseProgram) the program identified by NAME.

Package

shadow

Source

program.lisp (file)


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

5.1.2 Functions

Function: bind-buffer BUFFER-NAME BINDING-POINT

Bind buffer with name BUFFER-NAME to BINDING-POINT.

Package

shadow

Source

buffers.lisp (file)

Function: bind-shader-storage-block PROGRAM-NAME BLOCK-ID BINDING-POINT

Bind a shader storage block to a binding point.

Package

shadow

Source

blocks.lisp (file)

Function: bind-uniform-block PROGRAM-NAME BLOCK-ID BINDING-POINT

Bind a uniform block to a binding point.

Package

shadow

Source

blocks.lisp (file)

Function: build-shader-dictionary ()

Compile all shader programs defined with MAKE-SHADER-PROGRAM.

See MAKE-SHADER-PROGRAM

Package

shadow

Source

program.lisp (file)

Function: build-shader-program NAME

Compile the shader stages of NAME, linking them into a program. NAME refers a a previously defined shader program using MAKE-SHADER-PROGRAM.

See MAKE-SHADER-PROGRAM

Package

shadow

Source

program.lisp (file)

Function: create-buffer TYPE NAME PROGRAM-NAME BLOCK-ID

Create a buffer of the given TYPE and NAME, using the block BLOCK-ID of PROGRAM-NAME.

Package

shadow

Source

buffers.lisp (file)

Function: delete-buffer BUFFER-NAME

Delete the buffer having a name of BUFFER-NAME.

Package

shadow

Source

buffers.lisp (file)

Function: initialize-shaders ()

Initialize the shaders.

Package

shadow

Source

shadow.lisp (file)

Function: uniform-float UNIFORM VALUE

Specify a float as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-float-array UNIFORM VALUE

Specify an array of floats as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-int UNIFORM VALUE

Specify an integer as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-int-array UNIFORM VALUE

Specify an array of integers as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-mat2 UNIFORM VALUE

Specify a mat2 as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-mat2-array UNIFORM VALUE

Specify an array of mat2’s as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-mat3 UNIFORM VALUE

Specify a mat3 as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-mat3-array UNIFORM VALUE

Specify an array of mat3’s as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-mat4 UNIFORM VALUE

Specify a mat4 as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-mat4-array UNIFORM VALUE

Specify an array of mat4’s as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-vec2 UNIFORM VALUE

Specify a vec2 as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-vec2-array UNIFORM VALUE

Specify an array of vec2’s as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-vec3 UNIFORM VALUE

Specify a vec3 as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-vec3-array UNIFORM VALUE

Specify an array of vec3’s as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-vec4 UNIFORM VALUE

Specify a vec4 as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: uniform-vec4-array UNIFORM VALUE

Specify an array of vec4’s as the VALUE for the uniform variable, UNIFORM.

Package

shadow

Source

uniforms.lisp (file)

Function: write-buffer-path BUFFER-NAME PATH VALUE

Write VALUE to the buffer with the name BUFFER-NAME, starting at the given PATH.

PATH: A "dot-separated" keyword symbol, where each part denotes a member in the buffer’s block layout.

VALUE: A value to write, such as a scalar or matrix depending on the type of the member PATH refers to. To write to an array, use a sequence of values.

Note: Writing to arrays which contain other aggregate types (other arrays or structures) is not possible. This is a design decision to allow this library to have a simple "path-based" buffer writing interface.

Package

shadow

Source

buffers.lisp (file)


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

5.1.3 Generic functions

Generic Function: uniforms OBJECT
Package

shadow

Methods
Method: uniforms (PROGRAM program)

automatically generated reader method

Source

program.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: *active-shader-program*
Package

shadow

Source

program.lisp (file)

Special Variable: *shader-info*
Package

shadow

Source

shadow.lisp (file)


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

5.2.2 Macros

Macro: %uniform-array LOCATION FUNC COMPONENT-COUNT ELEMENT-TYPE SEQUENCE
Package

shadow

Source

uniforms.lisp (file)


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

5.2.3 Functions

Function: %make-buffer TARGET LAYOUT
Package

shadow

Source

buffers.lisp (file)

Function: %make-shader-program NAME VERSION PRIMITIVE STAGE-SPECS
Package

shadow

Source

program.lisp (file)

Function: %write-buffer-member TARGET MEMBER VALUE
Package

shadow

Source

buffers.lisp (file)

Function: %write-buffer-member-matrix TARGET MEMBER VALUE
Package

shadow

Source

buffers.lisp (file)

Function: block-binding-valid-p BLOCK BINDING-POINT
Package

shadow

Source

blocks.lisp (file)

Function: buffer-by-name BUFFER-NAME
Package

shadow

Source

buffers.lisp (file)

Function: buffer-type->block-type TYPE
Package

shadow

Source

buffers.lisp (file)

Function: buffer-type->target TYPE
Package

shadow

Source

buffers.lisp (file)

Function: collect-layout-structs LAYOUT
Package

shadow

Source

layout.lisp (file)

Function: collect-layouts STAGE
Package

shadow

Source

layout.lisp (file)

Function: compile-stages PROGRAM
Package

shadow

Source

program.lisp (file)

Function: ensure-keyword X
Package

shadow

Source

common.lisp (file)

Function: ensure-valid-block-binding BLOCK BINDING-POINT
Package

shadow

Source

blocks.lisp (file)

Function: find-block PROGRAM-NAME BLOCK-TYPE BLOCK-ID
Package

shadow

Source

blocks.lisp (file)

Function: find-buffer BUFFER-NAME
Package

shadow

Source

buffers.lisp (file)

Function: find-buffer-block BUFFER-TYPE PROGRAM-NAME BLOCK-ID
Package

shadow

Source

buffers.lisp (file)

Function: find-gpu-function FUNC-SPEC
Package

shadow

Source

shadow.lisp (file)

Function: find-program PROGRAM-NAME
Package

shadow

Source

program.lisp (file)

Function: get-block-type STRUCT
Package

shadow

Source

blocks.lisp (file)

Function: get-layout-type STRUCT
Package

shadow

Source

layout.lisp (file)

Function: get-uniform-location UNIFORM
Package

shadow

Source

uniforms.lisp (file)

Function: has-qualifier-p TYPE QUALIFIER
Package

shadow

Source

common.lisp (file)

Function: layout-struct-p STRUCT
Package

shadow

Source

layout.lisp (file)

Function: link-program SHADERS
Package

shadow

Source

program.lisp (file)

Function: make-block PROGRAM LAYOUT
Package

shadow

Source

blocks.lisp (file)

Function: make-layout UNIFORM
Package

shadow

Source

layout.lisp (file)

Function: make-layout-member LAYOUT DATA
Package

shadow

Source

layout.lisp (file)

Function: make-stage VERSION PRIMITIVE STAGE-SPEC
Package

shadow

Source

shadow.lisp (file)

Function: make-stage-variable &key NAME TYPE LOCATION
Package

shadow

Source

program.lisp (file)

Function: pack-block LAYOUT
Package

shadow

Source

packing.lisp (file)

Function: pack-container TYPE
Package

shadow

Source

packing.lisp (file)

Function: pack-layout LAYOUT
Package

shadow

Source

packing.lisp (file)

Function: pack-struct STRUCT
Package

shadow

Source

packing.lisp (file)

Function: pack-type TYPE
Package

shadow

Source

packing.lisp (file)

Function: parts->string PARTS &optional FILTER
Package

shadow

Source

common.lisp (file)

Function: stage-type STAGE
Package

shadow

Source

shadow.lisp (file)

Function: stage-type->shader-type STAGE-TYPE
Package

shadow

Source

shadow.lisp (file)

Function: stage-variable-location STRUCTURE
Function: (setf stage-variable-location) VALUE STRUCTURE
Package

shadow

Source

program.lisp (file)

Function: stage-variable-name STRUCTURE
Function: (setf stage-variable-name) VALUE STRUCTURE
Package

shadow

Source

program.lisp (file)

Function: stage-variable-type STRUCTURE
Function: (setf stage-variable-type) VALUE STRUCTURE
Package

shadow

Source

program.lisp (file)

Function: store-attribute-locations PROGRAM
Package

shadow

Source

attributes.lisp (file)

Function: store-attributes PROGRAM STAGE
Package

shadow

Source

attributes.lisp (file)

Function: store-blocks PROGRAM STAGE
Package

shadow

Source

blocks.lisp (file)

Function: store-source PROGRAM STAGE
Package

shadow

Source

shadow.lisp (file)

Function: store-uniform-locations PROGRAM
Package

shadow

Source

uniforms.lisp (file)

Function: store-uniforms PROGRAM STAGE
Package

shadow

Source

uniforms.lisp (file)

Function: translate-stages VERSION PRIMITIVE STAGE-SPECS
Package

shadow

Source

shadow.lisp (file)

Function: unpack-type LAYOUT-TYPE TYPE
Package

shadow

Source

packing.lisp (file)


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

5.2.4 Generic functions

Generic Function: attributes OBJECT
Package

shadow

Methods
Method: attributes (PROGRAM program)

automatically generated reader method

Source

program.lisp (file)

Generic Function: block-type OBJECT
Package

shadow

Methods
Method: block-type (SHADER-BLOCK shader-block)

automatically generated reader method

Source

blocks.lisp (file)

Generic Function: blocks OBJECT
Package

shadow

Methods
Method: blocks (PROGRAM program)

automatically generated reader method

Source

program.lisp (file)

Generic Function: buffer-block-bindings OBJECT
Package

shadow

Methods
Method: buffer-block-bindings (SHADER-INFO shader-info)

automatically generated reader method

Source

shadow.lisp (file)

Generic Function: buffers OBJECT
Package

shadow

Methods
Method: buffers (SHADER-INFO shader-info)

automatically generated reader method

Source

shadow.lisp (file)

Generic Function: byte-stride OBJECT
Package

shadow

Methods
Method: byte-stride (LAYOUT-MEMBER layout-member)

automatically generated reader method

Source

layout.lisp (file)

Generic Function: dimensions OBJECT
Package

shadow

Methods
Method: dimensions (LAYOUT-MEMBER layout-member)

automatically generated reader method

Source

layout.lisp (file)

Generic Function: element-stride OBJECT
Package

shadow

Methods
Method: element-stride (LAYOUT-MEMBER layout-member)

automatically generated reader method

Source

layout.lisp (file)

Generic Function: element-type OBJECT
Package

shadow

Methods
Method: element-type (LAYOUT-MEMBER layout-member)

automatically generated reader method

Source

layout.lisp (file)

Generic Function: get-bound-blocks BLOCK-TYPE BINDING-POINT
Package

shadow

Source

blocks.lisp (file)

Methods
Method: get-bound-blocks (BLOCK-TYPE (eql uniform)) BINDING-POINT
Method: get-bound-blocks (BLOCK-TYPE (eql buffer)) BINDING-POINT
Generic Function: get-qualifiers TYPE
Package

shadow

Source

common.lisp (file)

Methods
Method: get-qualifiers (TYPE v-type)
Method: get-qualifiers (TYPE shader-variable)
Generic Function: get-uniform-data TYPE PARTS
Package

shadow

Source

uniforms.lisp (file)

Methods
Method: get-uniform-data (TYPE v-array) PARTS
Method: get-uniform-data (TYPE v-user-struct) PARTS
Method: get-uniform-data TYPE PARTS
Generic Function: id OBJECT
Package

shadow

Methods
Method: id (SHADER-BUFFER shader-buffer)

automatically generated reader method

Source

buffers.lisp (file)

Method: id (PROGRAM program)

automatically generated reader method

Source

program.lisp (file)

Generic Function: layout OBJECT
Package

shadow

Methods
Method: layout (SHADER-BUFFER shader-buffer)

automatically generated reader method

Source

buffers.lisp (file)

Method: layout (SHADER-BLOCK shader-block)

automatically generated reader method

Source

blocks.lisp (file)

Generic Function: layout-type OBJECT
Package

shadow

Methods
Method: layout-type (LAYOUT layout)

automatically generated reader method

Source

layout.lisp (file)

Generic Function: members OBJECT
Package

shadow

Methods
Method: members (LAYOUT layout)

automatically generated reader method

Source

layout.lisp (file)

Generic Function: name OBJECT
Package

shadow

Methods
Method: name (SHADER-BLOCK shader-block)

automatically generated reader method

Source

blocks.lisp (file)

Generic Function: offset OBJECT
Package

shadow

Methods
Method: offset (LAYOUT-MEMBER layout-member)

automatically generated reader method

Source

layout.lisp (file)

Generic Function: programs OBJECT
Package

shadow

Methods
Method: programs (SHADER-INFO shader-info)

automatically generated reader method

Source

shadow.lisp (file)

Generic Function: size OBJECT
Generic Function: (setf size) NEW-VALUE OBJECT
Package

shadow

Methods
Method: size (LAYOUT layout)

automatically generated reader method

Source

layout.lisp (file)

Method: (setf size) NEW-VALUE (LAYOUT layout)

automatically generated writer method

Source

layout.lisp (file)

Generic Function: source OBJECT
Package

shadow

Methods
Method: source (PROGRAM program)

automatically generated reader method

Source

program.lisp (file)

Generic Function: target OBJECT
Package

shadow

Methods
Method: target (SHADER-BUFFER shader-buffer)

automatically generated reader method

Source

buffers.lisp (file)

Generic Function: uniform OBJECT
Package

shadow

Methods
Method: uniform (LAYOUT layout)

automatically generated reader method

Source

layout.lisp (file)

Generic Function: uniform-block-bindings OBJECT
Package

shadow

Methods
Method: uniform-block-bindings (SHADER-INFO shader-info)

automatically generated reader method

Source

shadow.lisp (file)


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

5.2.5 Classes

Class: layout ()
Package

shadow

Source

layout.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: %type
Initargs

:type

Readers

layout-type (generic function)

Slot: %size
Readers

size (generic function)

Writers

(setf size) (generic function)

Slot: %members
Initform

(make-hash-table)

Readers

members (generic function)

Slot: %uniform
Initargs

:uniform

Readers

uniform (generic function)

Class: layout-member ()
Package

shadow

Source

layout.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: %element-type
Initargs

:element-type

Readers

element-type (generic function)

Slot: %element-stride
Initargs

:element-stride

Readers

element-stride (generic function)

Slot: %byte-stride
Initargs

:byte-stride

Readers

byte-stride (generic function)

Slot: %dimensions
Initargs

:dimensions

Readers

dimensions (generic function)

Slot: %offset
Initargs

:offset

Readers

offset (generic function)

Class: program ()
Package

shadow

Source

program.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: %id
Initform

0

Readers

id (generic function)

Slot: %source
Initform

(make-hash-table)

Readers

source (generic function)

Slot: %attributes
Initform

(make-hash-table)

Readers

attributes (generic function)

Slot: %uniforms
Initform

(make-hash-table)

Readers

uniforms (generic function)

Slot: %blocks
Initform

(make-hash-table :test (function equal))

Readers

blocks (generic function)

Class: shader-block ()
Package

shadow

Source

blocks.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: %name
Initargs

:name

Readers

name (generic function)

Slot: %type
Initargs

:type

Readers

block-type (generic function)

Slot: %layout
Initargs

:layout

Readers

layout (generic function)

Class: shader-buffer ()
Package

shadow

Source

buffers.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: %id
Initform

(cl-opengl:gen-buffer)

Readers

id (generic function)

Slot: %target
Initargs

:target

Readers

target (generic function)

Slot: %layout
Initargs

:layout

Readers

layout (generic function)

Class: shader-info ()
Package

shadow

Source

shadow.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: %programs
Initform

(make-hash-table)

Readers

programs (generic function)

Slot: %uniform-block-bindings
Initform

(make-hash-table)

Readers

uniform-block-bindings (generic function)

Slot: %buffer-block-bindings
Initform

(make-hash-table)

Readers

buffer-block-bindings (generic function)

Slot: %buffers
Initform

(make-hash-table)

Readers

buffers (generic function)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   F   L   S  
Index Entry  Section

F
File, Lisp, shadow.asd: The shadow<dot>asd file
File, Lisp, shadow/attributes.lisp: The shadow/attributes<dot>lisp file
File, Lisp, shadow/blocks.lisp: The shadow/blocks<dot>lisp file
File, Lisp, shadow/buffers.lisp: The shadow/buffers<dot>lisp file
File, Lisp, shadow/common.lisp: The shadow/common<dot>lisp file
File, Lisp, shadow/layout.lisp: The shadow/layout<dot>lisp file
File, Lisp, shadow/package.lisp: The shadow/package<dot>lisp file
File, Lisp, shadow/packing.lisp: The shadow/packing<dot>lisp file
File, Lisp, shadow/program.lisp: The shadow/program<dot>lisp file
File, Lisp, shadow/shadow.lisp: The shadow/shadow<dot>lisp file
File, Lisp, shadow/uniforms.lisp: The shadow/uniforms<dot>lisp file

L
Lisp File, shadow.asd: The shadow<dot>asd file
Lisp File, shadow/attributes.lisp: The shadow/attributes<dot>lisp file
Lisp File, shadow/blocks.lisp: The shadow/blocks<dot>lisp file
Lisp File, shadow/buffers.lisp: The shadow/buffers<dot>lisp file
Lisp File, shadow/common.lisp: The shadow/common<dot>lisp file
Lisp File, shadow/layout.lisp: The shadow/layout<dot>lisp file
Lisp File, shadow/package.lisp: The shadow/package<dot>lisp file
Lisp File, shadow/packing.lisp: The shadow/packing<dot>lisp file
Lisp File, shadow/program.lisp: The shadow/program<dot>lisp file
Lisp File, shadow/shadow.lisp: The shadow/shadow<dot>lisp file
Lisp File, shadow/uniforms.lisp: The shadow/uniforms<dot>lisp file

S
shadow.asd: The shadow<dot>asd file
shadow/attributes.lisp: The shadow/attributes<dot>lisp file
shadow/blocks.lisp: The shadow/blocks<dot>lisp file
shadow/buffers.lisp: The shadow/buffers<dot>lisp file
shadow/common.lisp: The shadow/common<dot>lisp file
shadow/layout.lisp: The shadow/layout<dot>lisp file
shadow/package.lisp: The shadow/package<dot>lisp file
shadow/packing.lisp: The shadow/packing<dot>lisp file
shadow/program.lisp: The shadow/program<dot>lisp file
shadow/shadow.lisp: The shadow/shadow<dot>lisp file
shadow/uniforms.lisp: The shadow/uniforms<dot>lisp file

Jump to:   F   L   S  

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

A.2 Functions

Jump to:   %   (  
A   B   C   D   E   F   G   H   I   L   M   N   O   P   S   T   U   W  
Index Entry  Section

%
%make-buffer: Internal functions
%make-shader-program: Internal functions
%uniform-array: Internal macros
%write-buffer-member: Internal functions
%write-buffer-member-matrix: Internal functions

(
(setf size): Internal generic functions
(setf size): Internal generic functions
(setf stage-variable-location): Internal functions
(setf stage-variable-name): Internal functions
(setf stage-variable-type): Internal functions

A
attributes: Internal generic functions
attributes: Internal generic functions

B
bind-buffer: Exported functions
bind-shader-storage-block: Exported functions
bind-uniform-block: Exported functions
block-binding-valid-p: Internal functions
block-type: Internal generic functions
block-type: Internal generic functions
blocks: Internal generic functions
blocks: Internal generic functions
buffer-block-bindings: Internal generic functions
buffer-block-bindings: Internal generic functions
buffer-by-name: Internal functions
buffer-type->block-type: Internal functions
buffer-type->target: Internal functions
buffers: Internal generic functions
buffers: Internal generic functions
build-shader-dictionary: Exported functions
build-shader-program: Exported functions
byte-stride: Internal generic functions
byte-stride: Internal generic functions

C
collect-layout-structs: Internal functions
collect-layouts: Internal functions
compile-stages: Internal functions
create-buffer: Exported functions

D
defstruct-gpu: Exported macros
defun-gpu: Exported macros
delete-buffer: Exported functions
dimensions: Internal generic functions
dimensions: Internal generic functions

E
element-stride: Internal generic functions
element-stride: Internal generic functions
element-type: Internal generic functions
element-type: Internal generic functions
ensure-keyword: Internal functions
ensure-valid-block-binding: Internal functions

F
find-block: Internal functions
find-buffer: Internal functions
find-buffer-block: Internal functions
find-gpu-function: Internal functions
find-program: Internal functions
Function, %make-buffer: Internal functions
Function, %make-shader-program: Internal functions
Function, %write-buffer-member: Internal functions
Function, %write-buffer-member-matrix: Internal functions
Function, (setf stage-variable-location): Internal functions
Function, (setf stage-variable-name): Internal functions
Function, (setf stage-variable-type): Internal functions
Function, bind-buffer: Exported functions
Function, bind-shader-storage-block: Exported functions
Function, bind-uniform-block: Exported functions
Function, block-binding-valid-p: Internal functions
Function, buffer-by-name: Internal functions
Function, buffer-type->block-type: Internal functions
Function, buffer-type->target: Internal functions
Function, build-shader-dictionary: Exported functions
Function, build-shader-program: Exported functions
Function, collect-layout-structs: Internal functions
Function, collect-layouts: Internal functions
Function, compile-stages: Internal functions
Function, create-buffer: Exported functions
Function, delete-buffer: Exported functions
Function, ensure-keyword: Internal functions
Function, ensure-valid-block-binding: Internal functions
Function, find-block: Internal functions
Function, find-buffer: Internal functions
Function, find-buffer-block: Internal functions
Function, find-gpu-function: Internal functions
Function, find-program: Internal functions
Function, get-block-type: Internal functions
Function, get-layout-type: Internal functions
Function, get-uniform-location: Internal functions
Function, has-qualifier-p: Internal functions
Function, initialize-shaders: Exported functions
Function, layout-struct-p: Internal functions
Function, link-program: Internal functions
Function, make-block: Internal functions
Function, make-layout: Internal functions
Function, make-layout-member: Internal functions
Function, make-stage: Internal functions
Function, make-stage-variable: Internal functions
Function, pack-block: Internal functions
Function, pack-container: Internal functions
Function, pack-layout: Internal functions
Function, pack-struct: Internal functions
Function, pack-type: Internal functions
Function, parts->string: Internal functions
Function, stage-type: Internal functions
Function, stage-type->shader-type: Internal functions
Function, stage-variable-location: Internal functions
Function, stage-variable-name: Internal functions
Function, stage-variable-type: Internal functions
Function, store-attribute-locations: Internal functions
Function, store-attributes: Internal functions
Function, store-blocks: Internal functions
Function, store-source: Internal functions
Function, store-uniform-locations: Internal functions
Function, store-uniforms: Internal functions
Function, translate-stages: Internal functions
Function, uniform-float: Exported functions
Function, uniform-float-array: Exported functions
Function, uniform-int: Exported functions
Function, uniform-int-array: Exported functions
Function, uniform-mat2: Exported functions
Function, uniform-mat2-array: Exported functions
Function, uniform-mat3: Exported functions
Function, uniform-mat3-array: Exported functions
Function, uniform-mat4: Exported functions
Function, uniform-mat4-array: Exported functions
Function, uniform-vec2: Exported functions
Function, uniform-vec2-array: Exported functions
Function, uniform-vec3: Exported functions
Function, uniform-vec3-array: Exported functions
Function, uniform-vec4: Exported functions
Function, uniform-vec4-array: Exported functions
Function, unpack-type: Internal functions
Function, write-buffer-path: Exported functions

G
Generic Function, (setf size): Internal generic functions
Generic Function, attributes: Internal generic functions
Generic Function, block-type: Internal generic functions
Generic Function, blocks: Internal generic functions
Generic Function, buffer-block-bindings: Internal generic functions
Generic Function, buffers: Internal generic functions
Generic Function, byte-stride: Internal generic functions
Generic Function, dimensions: Internal generic functions
Generic Function, element-stride: Internal generic functions
Generic Function, element-type: Internal generic functions
Generic Function, get-bound-blocks: Internal generic functions
Generic Function, get-qualifiers: Internal generic functions
Generic Function, get-uniform-data: Internal generic functions
Generic Function, id: Internal generic functions
Generic Function, layout: Internal generic functions
Generic Function, layout-type: Internal generic functions
Generic Function, members: Internal generic functions
Generic Function, name: Internal generic functions
Generic Function, offset: Internal generic functions
Generic Function, programs: Internal generic functions
Generic Function, size: Internal generic functions
Generic Function, source: Internal generic functions
Generic Function, target: Internal generic functions
Generic Function, uniform: Internal generic functions
Generic Function, uniform-block-bindings: Internal generic functions
Generic Function, uniforms: Exported generic functions
get-block-type: Internal functions
get-bound-blocks: Internal generic functions
get-bound-blocks: Internal generic functions
get-bound-blocks: Internal generic functions
get-layout-type: Internal functions
get-qualifiers: Internal generic functions
get-qualifiers: Internal generic functions
get-qualifiers: Internal generic functions
get-uniform-data: Internal generic functions
get-uniform-data: Internal generic functions
get-uniform-data: Internal generic functions
get-uniform-data: Internal generic functions
get-uniform-location: Internal functions

H
has-qualifier-p: Internal functions

I
id: Internal generic functions
id: Internal generic functions
id: Internal generic functions
initialize-shaders: Exported functions

L
layout: Internal generic functions
layout: Internal generic functions
layout: Internal generic functions
layout-struct-p: Internal functions
layout-type: Internal generic functions
layout-type: Internal generic functions
link-program: Internal functions

M
Macro, %uniform-array: Internal macros
Macro, defstruct-gpu: Exported macros
Macro, defun-gpu: Exported macros
Macro, make-shader-program: Exported macros
Macro, with-shader-program: Exported macros
make-block: Internal functions
make-layout: Internal functions
make-layout-member: Internal functions
make-shader-program: Exported macros
make-stage: Internal functions
make-stage-variable: Internal functions
members: Internal generic functions
members: Internal generic functions
Method, (setf size): Internal generic functions
Method, attributes: Internal generic functions
Method, block-type: Internal generic functions
Method, blocks: Internal generic functions
Method, buffer-block-bindings: Internal generic functions
Method, buffers: Internal generic functions
Method, byte-stride: Internal generic functions
Method, dimensions: Internal generic functions
Method, element-stride: Internal generic functions
Method, element-type: Internal generic functions
Method, get-bound-blocks: Internal generic functions
Method, get-bound-blocks: Internal generic functions
Method, get-qualifiers: Internal generic functions
Method, get-qualifiers: Internal generic functions
Method, get-uniform-data: Internal generic functions
Method, get-uniform-data: Internal generic functions
Method, get-uniform-data: Internal generic functions
Method, id: Internal generic functions
Method, id: Internal generic functions
Method, layout: Internal generic functions
Method, layout: Internal generic functions
Method, layout-type: Internal generic functions
Method, members: Internal generic functions
Method, name: Internal generic functions
Method, offset: Internal generic functions
Method, programs: Internal generic functions
Method, size: Internal generic functions
Method, source: Internal generic functions
Method, target: Internal generic functions
Method, uniform: Internal generic functions
Method, uniform-block-bindings: Internal generic functions
Method, uniforms: Exported generic functions

N
name: Internal generic functions
name: Internal generic functions

O
offset: Internal generic functions
offset: Internal generic functions

P
pack-block: Internal functions
pack-container: Internal functions
pack-layout: Internal functions
pack-struct: Internal functions
pack-type: Internal functions
parts->string: Internal functions
programs: Internal generic functions
programs: Internal generic functions

S
size: Internal generic functions
size: Internal generic functions
source: Internal generic functions
source: Internal generic functions
stage-type: Internal functions
stage-type->shader-type: Internal functions
stage-variable-location: Internal functions
stage-variable-name: Internal functions
stage-variable-type: Internal functions
store-attribute-locations: Internal functions
store-attributes: Internal functions
store-blocks: Internal functions
store-source: Internal functions
store-uniform-locations: Internal functions
store-uniforms: Internal functions

T
target: Internal generic functions
target: Internal generic functions
translate-stages: Internal functions

U
uniform: Internal generic functions
uniform: Internal generic functions
uniform-block-bindings: Internal generic functions
uniform-block-bindings: Internal generic functions
uniform-float: Exported functions
uniform-float-array: Exported functions
uniform-int: Exported functions
uniform-int-array: Exported functions
uniform-mat2: Exported functions
uniform-mat2-array: Exported functions
uniform-mat3: Exported functions
uniform-mat3-array: Exported functions
uniform-mat4: Exported functions
uniform-mat4-array: Exported functions
uniform-vec2: Exported functions
uniform-vec2-array: Exported functions
uniform-vec3: Exported functions
uniform-vec3-array: Exported functions
uniform-vec4: Exported functions
uniform-vec4-array: Exported functions
uniforms: Exported generic functions
uniforms: Exported generic functions
unpack-type: Internal functions

W
with-shader-program: Exported macros
write-buffer-path: Exported functions

Jump to:   %   (  
A   B   C   D   E   F   G   H   I   L   M   N   O   P   S   T   U   W  

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

A.3 Variables

Jump to:   %   *  
S  
Index Entry  Section

%
%attributes: Internal classes
%blocks: Internal classes
%buffer-block-bindings: Internal classes
%buffers: Internal classes
%byte-stride: Internal classes
%dimensions: Internal classes
%element-stride: Internal classes
%element-type: Internal classes
%id: Internal classes
%id: Internal classes
%layout: Internal classes
%layout: Internal classes
%members: Internal classes
%name: Internal classes
%offset: Internal classes
%programs: Internal classes
%size: Internal classes
%source: Internal classes
%target: Internal classes
%type: Internal classes
%type: Internal classes
%uniform: Internal classes
%uniform-block-bindings: Internal classes
%uniforms: Internal classes

*
*active-shader-program*: Internal special variables
*shader-info*: Internal special variables

S
Slot, %attributes: Internal classes
Slot, %blocks: Internal classes
Slot, %buffer-block-bindings: Internal classes
Slot, %buffers: Internal classes
Slot, %byte-stride: Internal classes
Slot, %dimensions: Internal classes
Slot, %element-stride: Internal classes
Slot, %element-type: Internal classes
Slot, %id: Internal classes
Slot, %id: Internal classes
Slot, %layout: Internal classes
Slot, %layout: Internal classes
Slot, %members: Internal classes
Slot, %name: Internal classes
Slot, %offset: Internal classes
Slot, %programs: Internal classes
Slot, %size: Internal classes
Slot, %source: Internal classes
Slot, %target: Internal classes
Slot, %type: Internal classes
Slot, %type: Internal classes
Slot, %uniform: Internal classes
Slot, %uniform-block-bindings: Internal classes
Slot, %uniforms: Internal classes
Special Variable, *active-shader-program*: Internal special variables
Special Variable, *shader-info*: Internal special variables

Jump to:   %   *  
S  

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

A.4 Data types

Jump to:   C   L   P   S  
Index Entry  Section

C
Class, layout: Internal classes
Class, layout-member: Internal classes
Class, program: Internal classes
Class, shader-block: Internal classes
Class, shader-buffer: Internal classes
Class, shader-info: Internal classes

L
layout: Internal classes
layout-member: Internal classes

P
Package, shadow: The shadow package
program: Internal classes

S
shader-block: Internal classes
shader-buffer: Internal classes
shader-info: Internal classes
shadow: The shadow system
shadow: The shadow package
System, shadow: The shadow system

Jump to:   C   L   P   S