2

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?

viktorzeid
  • 1,521
  • 1
  • 22
  • 35

1 Answers1

4

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

datenwolf
  • 159,371
  • 13
  • 185
  • 298