Search code examples
openglglslopengl-4

what is the use of glProgramLocalParameter and glProgramEnvParameter


They are defined in the NV gpu program 4 extension here https://www.opengl.org/registry/specs/NV/gpu_program4.txt

Is this the only way to transfer constant data over to program? Has this been replaced by uniforms when we use GLSL?

I also saw glProgramBufferParameter somewhere and got more confused. Is that for Shader storage buffers?


Solution

  • They are defined in the NV gpu program 4 extension here

    No, they're referenced by this extension. Defined they were in ARB_vertex_program

    Is this the only way to transfer constant data over to program?

    If you're using the old and dusted ARB_…_program extensions, then yes. If you use GLSL then Uniforms are the way to go.

    I also saw glProgramBufferParameter somewhere and got more

    There is no function named glProgramBufferParameter. There is however a function glProgramBufferParameters*NV. The NV in the end is important, it tells that this is a NVidia specific extension. Again this is for use with a ARB_…program style shader and not for GLSL; the NVidia OpenGL implementation internally compiles GLSL to ARB…_program style shaders.

    Anyway, program buffer objects have a GLSL counterpart in the form for Uniform Buffer Objects: https://www.opengl.org/wiki/Uniform_Buffer_Object