The glsl-spec Reference Manual

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

The glsl-spec Reference Manual

This is the glsl-spec Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 04:55:06 2022 GMT+0.

Table of Contents


1 Introduction

GLSL Spec

This package contains the specification of all functions and variables from GLSL as data.

The functions and variables can be found as s-expressions in functions.lisp & variables.lisp respectively.

The functions and variables can be found as json in functions.json & variables.json respectively.

Rational for this project

Up until now there has been no full machine readable version of the GLSL spec.

My previous effort go part way by parsing the man-pages but failed in that argument types were specified using Khronos's type shorthand (gvec, GenType, etc) which is inconsistant and requires extra logic from programs trying to use it. Also the way versions are specified in the glsl man pages is not trivial to parse.

This project exists purely out of rage.

Bugs

There will some bugs in the above specs partly as some parts were resolved by hand, but also (and more commonly unfortunately) there are errors in the GLSL man-pages. Sometimes it's just an ommision but some are just wrong (2 examples: 0-bool return type 1-version info for cubearray version, which isnt defined)

Together though we can fix this and make a source of data we can be happier with.

More data

I have compiled what, to me, was the most important data from the spec. But it would be lovely to have more. The doc strings would be great, as would info on exactly what stage each function is valid for (this data was not parsable).

Contributions are VERY WELCOME!

Contributing

If you would like to contribute, please do so to the s-expression versions. Don't worry if you aren't used to lisp, just follow the format you find there and you will be fine (it's like json with less syntax anyhoo :])

Ciao

That's it folks, thanks for checking this out and I truly hope this helps you somehow.

Happy Coding!

CHANGELOG


2 Systems

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


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

2.1 glsl-spec

The GLSL Spec as a datastructure

Author

Chris Bagley <techsnuffle@gmail.com>

License

The Unlicense

Source

glsl-spec.asd.

Child Components

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   [Contents][Index]

3.1.1 glsl-spec/glsl-spec.asd

Source

glsl-spec.asd.

Parent Component

glsl-spec (system).

ASDF Systems

glsl-spec.


3.1.2 glsl-spec/package.lisp

Source

glsl-spec.asd.

Parent Component

glsl-spec (system).

Packages

glsl-spec.


3.1.3 glsl-spec/functions.lisp

Dependency

package.lisp (file).

Source

glsl-spec.asd.

Parent Component

glsl-spec (system).

Public Interface

*functions* (special variable).


3.1.4 glsl-spec/variables.lisp

Dependency

functions.lisp (file).

Source

glsl-spec.asd.

Parent Component

glsl-spec (system).

Public Interface

*variables* (special variable).


3.1.5 glsl-spec/operators.lisp

Dependency

variables.lisp (file).

Source

glsl-spec.asd.

Parent Component

glsl-spec (system).

Public Interface

*operators* (special variable).


3.1.6 glsl-spec/vector-constructors.lisp

Dependency

operators.lisp (file).

Source

glsl-spec.asd.

Parent Component

glsl-spec (system).

Public Interface

*vector-constructors* (special variable).


3.1.7 glsl-spec/matrix-constructors.lisp

Dependency

vector-constructors.lisp (file).

Source

glsl-spec.asd.

Parent Component

glsl-spec (system).

Public Interface

*matrix-constructors* (special variable).


4 Packages

Packages are listed by definition order.


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

4.1 glsl-spec

Source

package.lisp.

Use List

common-lisp.

Public Interface

5 Definitions

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


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

5.1 Public Interface


5.1.1 Special variables

Special Variable: *functions*
Package

glsl-spec.

Source

functions.lisp.

Special Variable: *matrix-constructors*
Package

glsl-spec.

Source

matrix-constructors.lisp.

Special Variable: *operators*
Package

glsl-spec.

Source

operators.lisp.

Special Variable: *variables*
Package

glsl-spec.

Source

variables.lisp.

Special Variable: *vector-constructors*
Package

glsl-spec.

Source

vector-constructors.lisp.


Appendix A Indexes


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

A.1 Concepts


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

A.2 Functions