wip
wip

Reputation: 2442

Can you pass a fixed-size array as a GLSL function parameter?

In a GLSL shader, I want to create a function that looks a bit like this:

void MyFunction(out float results[9])
{
   float value0 = 3.1546;
   float value1 = 42;     // whatever value      
   /* ... long, complicated code ... */

   results[0] = value0;  
   results[1] = value1;
   results[2] = value2;
   ...
}

Can such a function signature be used and compiled in GLSL?
If not, are there any alternatives?

Upvotes: 9

Views: 12092

Answers (1)

Nicol Bolas
Nicol Bolas

Reputation: 473212

Yes, this is legal GLSL code.

That doesn't mean it will certainly compile, but it is legal code. That being said, it's probably better to just return the array (which you can also do), rather than pass it as an output parameter.

Upvotes: 8

Related Questions