GLCREATEPROGRAMPIPEL(3G)

πŸ’… NAME πŸ’…

glCreateProgramPipelines β€” bestie, this is the one that creates program pipeline objects. Yes, the whole function is literally just "make me some pipelines." Iconic, low-effort queen behaviour tbh.

Oh and hi, welcome to the 3G manual section, we're hanging out with the OpenGL girlies today ✨


πŸŽ€ C SPECIFICATION πŸŽ€

void glCreateProgramPipelines(GLsizei n, GLuint *pipelines);

That's it. That's the whole signature. Not me being dramatic, it's genuinely just two arguments 🫢


🌸 PARAMETERS 🌸

  • n β€” the number of program pipeline objects you want to create. Like, how many pipelines are we manifesting today.
  • pipelines β€” this is the array where the names of your shiny new program pipeline objects get stored. You hand me the empty array, I fill it with names. Simple as that πŸ’–

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so here's the vibe: glCreateProgramPipelines returns n previously unused program pipeline names in pipelines, and each one represents a brand new program pipeline object, all initialized to the default state. Fresh out of the box, untouched, no cap ✨

"Previously unused" is doing a lot of work in that sentence btw β€” these are names nobody's claimed yet. You're getting the good ones πŸ’…


πŸ’€ ERRORS πŸ’€

  • GL_INVALID_VALUE gets generated if n is negative. Obviously. You can't create a negative number of pipelines, that's not a thing, don't do that 😭

πŸ‘‘ VERSION SUPPORT πŸ‘‘

So the original page had this whole giant grid, and I would never leave out the facts, so here's the entire thing spelled out, no table, no skipping:

The columns of that grid were the OpenGL versions 2.0, 2.1, 3.0, 3.1, 3.2, 3.3, 4.0, 4.1, 4.2, 4.3, 4.4, and 4.5. The rows were labelled Function / Feature Name. And the one function listed in the grid β€” glCreateProgramPipelines β€” is marked - (not supported) in every single one of those columns, 2.0 through 4.4, and it's only βœ” (supported) way over in the 4.5 column.

So: glCreateProgramPipelines is an OpenGL 4.5 girlie and nothing earlier. She arrived late and she ate πŸ”₯


🌈 SEE ALSO 🌈

Go check out her friends, they all hang in the same group chat:

  • glBindProgramPipeline()
  • glCreateShader()
  • glCreateProgram()
  • glCompileShader()
  • glLinkProgram()
  • glGenProgramPipelines()
  • glDeleteProgramPipelines()
  • glIsProgramPipeline()

iykyk, that's the full pipeline friend group 🧚


Copyright Β© 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/

Copyright Β© 2014 Khronos Group


Bestie heads up: the manpage itself had [FIXME: manual] up top and [FIXME: source] down in the footer, so like β€” those placeholders are canon, I'm not inventing them πŸ™ˆ

And that's the whole page, bestie, you're caught up πŸ’…βœ¨ This lil writeup came from source [FIXME: source], dated 08/09/2021, and it was filed under GLCREATEPROGRAMPIPEL(3G) β€” mwah, go create some pipelines, periodt πŸŽ€πŸ’–

πŸ“¦ where this page comes from