The glsl-packing Reference Manual

This is the glsl-packing Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:37:06 2024 GMT+0.

Table of Contents


1 Systems

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


1.1 glsl-packing

calculate std140/std430 layout for a glsl UBO/SSBO

Author

Bart Botta

License

MIT

Dependency

alexandria (system).

Source

glsl-packing.asd.

Child Components

2 Files

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


2.1 Lisp


2.1.1 glsl-packing/glsl-packing.asd

Source

glsl-packing.asd.

Parent Component

glsl-packing (system).

ASDF Systems

glsl-packing.


2.1.2 glsl-packing/glsl-packing.lisp

Source

glsl-packing.asd.

Parent Component

glsl-packing (system).

Packages

glsl-packing.

Public Interface

pack-structs (function).

Internals

2.1.3 glsl-packing/base-types.lisp

Dependency

glsl-packing.lisp (file).

Source

glsl-packing.asd.

Parent Component

glsl-packing (system).

Public Interface

3 Packages

Packages are listed by definition order.


3.1 glsl-packing

Source

glsl-packing.lisp.

Use List

common-lisp.

Public Interface
Internals

4 Definitions

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


4.1 Public Interface


4.1.1 Special variables

Special Variable: *base-types*
Package

glsl-packing.

Source

base-types.lisp.


4.1.2 Ordinary functions

Function: expand-glsl-type (type &key default)
Package

glsl-packing.

Source

base-types.lisp.

Function: expand-glsl-types (slots)

Expand glsl types like :vec4 to style expected by pack-structs in list of slot definitions. Types of the form (TYPE X) are treated as arrays, with dimension X, where * or :* means unspecified size.

Package

glsl-packing.

Source

base-types.lisp.

Function: pack-structs (types &key roots dump-base-types)

TYPES is a list of lists (NAME TYPE) which is processed like a sequence of calls to PACK-STRUCT, except with the ability to refer to previous types by name. if NAME is :packing or :major, TYPE is interpreted as new default value for corresponding arguments to PACK-STRUCT for following definitions. If ROOTS is specified, it should be a list of block names to use as roots when removing unused types from output. If DUMP-BASE-TYPES is true, output will include data for used scalar/vec/mat types types.

Package

glsl-packing.

Source

glsl-packing.lisp.


4.2 Internals


4.2.1 Special variables

Special Variable: *dump-base-types*
Package

glsl-packing.

Source

glsl-packing.lisp.

Special Variable: *dumped-types*
Package

glsl-packing.

Source

glsl-packing.lisp.

Special Variable: *known-types*
Package

glsl-packing.

Source

glsl-packing.lisp.

Special Variable: *major*
Package

glsl-packing.

Source

glsl-packing.lisp.

Special Variable: *output*
Package

glsl-packing.

Source

glsl-packing.lisp.

Special Variable: *packing*
Package

glsl-packing.

Source

glsl-packing.lisp.

Special Variable: *type-dependencies*
Package

glsl-packing.

Source

glsl-packing.lisp.

Special Variable: *used-types*
Package

glsl-packing.

Source

glsl-packing.lisp.


4.2.2 Ordinary functions

Function: align (type)
Package

glsl-packing.

Source

glsl-packing.lisp.

Function: dump (type)
Package

glsl-packing.

Source

glsl-packing.lisp.

Function: get-type (type &key errorp)
Package

glsl-packing.

Source

glsl-packing.lisp.

Function: lit (n)
Package

glsl-packing.

Source

glsl-packing.lisp.

Function: round-to-multiple-of (value granularity)
Package

glsl-packing.

Source

glsl-packing.lisp.

Function: size (type)
Package

glsl-packing.

Source

glsl-packing.lisp.

Function: stride (type)
Package

glsl-packing.

Source

glsl-packing.lisp.


4.2.3 Generic functions

Generic Function: align* (base type)
Package

glsl-packing.

Source

glsl-packing.lisp.

Methods
Method: align* ((base (eql :struct)) type)
Method: align* ((base (eql :array)) type)
Method: align* ((base (eql :mat)) type)
Method: align* ((base (eql :vec)) type)
Method: align* (base type)
Generic Function: dump* (base type)
Package

glsl-packing.

Source

glsl-packing.lisp.

Methods
Method: dump* ((base (eql :buffer-block)) type)
Method: dump* ((base (eql :block)) type)
Method: dump* ((base (eql :struct)) type)
Method: dump* ((base (eql :array)) type)
Method: dump* ((base (eql :mat)) type)
Method: dump* ((base (eql :vec)) type)
Method: dump* (base type)
Generic Function: size* (base type)
Package

glsl-packing.

Source

glsl-packing.lisp.

Methods
Method: size* ((base (eql :buffer-block)) type)
Method: size* ((base (eql :block)) type)
Method: size* ((base (eql :array)) type)
Method: size* ((base (eql :mat)) type)
Method: size* ((base (eql :vec)) type)
Method: size* ((base (eql :float)) type)
Method: size* ((base (eql :uint)) type)
Method: size* ((base (eql :int)) type)
Method: size* ((base (eql :bool)) type)
Generic Function: stride* (base type)
Package

glsl-packing.

Source

glsl-packing.lisp.

Methods
Method: stride* ((base (eql :array)) type)
Method: stride* ((base (eql :mat)) type)
Method: stride* (base type)

4.2.4 Types

Type: base-type ()
Package

glsl-packing.

Source

glsl-packing.lisp.

Type: block/buffer/struct ()
Package

glsl-packing.

Source

glsl-packing.lisp.

Type: scalar ()
Package

glsl-packing.

Source

glsl-packing.lisp.

Type: type-description ()
Package

glsl-packing.

Source

glsl-packing.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   A   D   E   F   G   L   M   P   R   S  
Index Entry  Section

A
align: Private ordinary functions
align*: Private generic functions
align*: Private generic functions
align*: Private generic functions
align*: Private generic functions
align*: Private generic functions
align*: Private generic functions

D
dump: Private ordinary functions
dump*: Private generic functions
dump*: Private generic functions
dump*: Private generic functions
dump*: Private generic functions
dump*: Private generic functions
dump*: Private generic functions
dump*: Private generic functions
dump*: Private generic functions

E
expand-glsl-type: Public ordinary functions
expand-glsl-types: Public ordinary functions

F
Function, align: Private ordinary functions
Function, dump: Private ordinary functions
Function, expand-glsl-type: Public ordinary functions
Function, expand-glsl-types: Public ordinary functions
Function, get-type: Private ordinary functions
Function, lit: Private ordinary functions
Function, pack-structs: Public ordinary functions
Function, round-to-multiple-of: Private ordinary functions
Function, size: Private ordinary functions
Function, stride: Private ordinary functions

G
Generic Function, align*: Private generic functions
Generic Function, dump*: Private generic functions
Generic Function, size*: Private generic functions
Generic Function, stride*: Private generic functions
get-type: Private ordinary functions

L
lit: Private ordinary functions

M
Method, align*: Private generic functions
Method, align*: Private generic functions
Method, align*: Private generic functions
Method, align*: Private generic functions
Method, align*: Private generic functions
Method, dump*: Private generic functions
Method, dump*: Private generic functions
Method, dump*: Private generic functions
Method, dump*: Private generic functions
Method, dump*: Private generic functions
Method, dump*: Private generic functions
Method, dump*: Private generic functions
Method, size*: Private generic functions
Method, size*: Private generic functions
Method, size*: Private generic functions
Method, size*: Private generic functions
Method, size*: Private generic functions
Method, size*: Private generic functions
Method, size*: Private generic functions
Method, size*: Private generic functions
Method, size*: Private generic functions
Method, stride*: Private generic functions
Method, stride*: Private generic functions
Method, stride*: Private generic functions

P
pack-structs: Public ordinary functions

R
round-to-multiple-of: Private ordinary functions

S
size: Private ordinary functions
size*: Private generic functions
size*: Private generic functions
size*: Private generic functions
size*: Private generic functions
size*: Private generic functions
size*: Private generic functions
size*: Private generic functions
size*: Private generic functions
size*: Private generic functions
size*: Private generic functions
stride: Private ordinary functions
stride*: Private generic functions
stride*: Private generic functions
stride*: Private generic functions
stride*: Private generic functions