Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 no, are there any alternatives ?

like image 262
wip Avatar asked May 22 '13 08:05

wip


1 Answers

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.

like image 167
Nicol Bolas Avatar answered Oct 25 '22 06:10

Nicol Bolas