OpenGl 4.x : passing variable information


I am trying to pass information between a vertex shader and fragment shader through the tessellation shaders. Indeed, I am computing lightning and color information in my vertex shader and try to pass through control and evaluator tessellation shaders with struct like :

vec4 AmbientColorexample;

in _{
vec4 AmbientColorexample;
} i;

and knowing the fact that I have to use array structure for the control and evaluator shader. However, I catch an error on my control tesselation shader info :

" error C7504 : OpenGl does not allow writing to input variable i"

I tried with other variable names but I still have this error. I already have searched on Google and nothing about it so… If someone can explain that problem and tell me if a solution exist, I would be very grateful.

You can’t write to variables defined insine an interface block which is declared in or uniform. If that doesn’t make sense to you, read the GLSL specification on interface blocks.

On another note, this is a development question and belongs in the respective subforum.