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?
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