by baggers

This week I fixed the issue I had last week.

Before a few days back there was no place that for every function gave the arg and return types and the versions it is available in, the same went for variables.

Now there is this

All the data is provided as sexpressions & json so it is super easy to consume from any language.

Since finishing this I have updated my compiler to use this project as a data source. I'm now messing around with my compiler trying to make it understand how to convert data types between stages. The reason for this is that geometry and tessellation shaders both have 'arrayed inputs' which means that if you emit a float from your vertex shader the tess/geometry shader receives an array of floats as it's input. There are a bigass pile of details around this in the spec and the language around it makes my brain shutdown. Heres a sample:

Each output block or non-block output variable is associated with a vertex stream. If the block or variable is declared with the stream identifier, it is associated with the specified stream; otherwise, it is associated with the current default stream. A block member may be declared with a stream identifier, but the specified stream must match the stream associated with the containing block.

It's not hard stuff but I phase out multiple times per it's slow going.

Anyhoo that all, hope you all had a good week