opengl - GLSL linker error(Sampler needs to be a uniform (global or parameter to main)) -


we have glsl fragment shader : problem in code

vec4 tfselection(strvolumecolormap volumecolormap , vec4 texturecoordinate) {     vec4 finalcolor = vec4(0.0);      if(volumecolormap.transferfunctions[0].numberofbits == 0)     {                return texture(volumecolormap.transferfunctions[0].transferfunctionid,texturecoordinate.x);              }      if(texturecoordinate.x == 0)         return finalcolor;      float denormalize = texturecoordinate.x *65535/*255*/;      for(int = 0; < volumecolormap.transferfunctions.length(); i++)     {         int normfactor = volumecolormap.transferfunctions[i].startbit + volumecolormap.transferfunctions[i].numberofbits;          float minval = calculatepower(2, volumecolormap.transferfunctions[i].startbit);         if(denormalize >= minval)         {             float maxval = calculatepower(2, normfactor);             if(denormalize <maxval)             {                  //float temppower = calculatepower(2 , normfactor);                 float coord = denormalize /maxval/*temppower*/;                 return texture(volumecolormap.transferfunctions[i].transferfunctionid,coord);             }         }     }      return finalcolor; } 

when compile , link shader message logs:

sampler needs uniform (global or parameter main), need inline function or resolve conditional expression

with simple change maybe shader link changing

float `coord = denormalize /maxval 

to

 float coord = denormalize  .` 

driver:nvidia 320.49


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -