Shader glGetActiveUniform Issue
BlitzMax Forums/OpenGL Module/Shader glGetActiveUniform Issue
| ||
Local ListSize, MaxLen glGetProgramiv(ProgramID, GL_ACTIVE_UNIFORMS, Varptr(ListSize) ) glGetProgramiv(ProgramID, GL_ACTIVE_UNIFORM_MAX_LENGTH, Varptr(MaxLen) ) Local Str:String[ListSize] Local Size, GLTypes, LengReturn Local Name:Byte Ptr For Local I = 0 To ListSize - 1 glGetActiveUniform(ProgramID, I , MaxLen, Varptr(LengReturn) , Varptr(Size) , Varptr(GLTypes) , Varptr(Name) ) Str[i].fromCString(Name) Next ActiveUniformList = Str The shader works fine when i comment glGetActiveUniform out. The program shuts down when i try to use the command. Any suggestions? |
| ||
Name:Byte Ptr -> Name:byte[] works now :). |
| ||
so whats going on there? |
| ||
Name:Byte Ptr -> Name:byte[] No! The last parameter should be a byte buffer that receives the string! Try... Local maxlen=GetObjectParameteri( glprogram,GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB ) Local buf:Byte[maxlen+1] For Local i=0 Until GetObjectParameteri( glprogram,GL_OBJECT_ACTIVE_UNIFORMS_ARB ) Local glsize,gltype glGetActiveUniformARB glprogram,i,maxlen,Null,Varptr glsize,Varptr gltype,buf Local name$=String.FromCString(buf) Next |