GLGETACTIVEATOMICCOU(3G)
π GLGETACTIVEATOMICCOU(3G) β like, the whole vibe
okay bestie, welcome to the 3G manual page for glGetActiveAtomicCounterBufferiv, and yes the page header really does abbreviate it to GLGETACTIVEATOMICCOU because man page titles have a character budget and honestly they chose violence. π«Ά
β¨ NAME β¨
glGetActiveAtomicCounterBufferiv β retrieve information about the set of active atomic counter buffers for a program. that's it, that's the whole job, and it does it iconically. π
πΈ C SPECIFICATION πΈ
void glGetActiveAtomicCounterBufferiv(GLuint program,
GLuint bufferIndex, GLenum pname,
GLint *params);
π¦ PARAMETERS π¦
programβ the name of a program object from which to retrieve information. it's giving "which program are we gossiping about". πbufferIndexβ specifies index of an active atomic counter buffer. bestie, this is a position, not a name, so mind your indexing.pnameβ specifies which parameter of the atomic counter buffer to retrieve. this is the "okay but what do you wanna know" argument.paramsβ specifies the address of a variable into which to write the retrieved information. the answer gets yeeted in here. β¨
π DESCRIPTION π
glGetActiveAtomicCounterBufferiv retrieves information about the set of active atomic counter buffers for a program object. program is the name of a program object for which the command glLinkProgram() has been issued in the past. and here's the cute part: it is not necessary for program to have been linked successfully β the link may have failed because the number of active atomic counters exceeded the limits, and this function will still talk to you. lowkey forgiving of it honestly. π₯Ί
bufferIndex specifies the index of an active atomic counter buffer and must be in the range zero to the value of GL_ACTIVE_ATOMIC_COUNTER_BUFFERS minus one. the value of GL_ACTIVE_ATOMIC_COUNTER_BUFFERS for program indicates the number of active atomic counter buffer and can be queried with glGetProgram(). so yes, you do have to do the homework first. π
If no error occurs, the parameter(s) specified by pname are returned in params. If an error is generated, the contents of params are not modified. no half-written chaos, no crumbs left behind, we love a clean exit. β¨
π so what do you actually get back, per pname π
- If
pnameisGL_ATOMIC_COUNTER_BUFFER_BINDING, then the index of the counter buffer binding point associated with the active atomic counter bufferbufferIndexforprogramis returned. - If
pnameisGL_ATOMIC_COUNTER_BUFFER_DATA_SIZE, then the implementation-dependent minimum total buffer object size, in baseic machine units, required to hold all active atomic counters in the atomic counter binding point identified bybufferIndexis returned. - If
pnameisGL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS, then the number of active atomic counters for the atomic counter buffer identified bybufferIndexis returned. - If
pnameisGL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES, then a list of the active atomic counter indices for the atomic counter buffer identified bybufferIndexis returned. the number of elements that will be written intoparamsis the value ofGL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERSforbufferIndex. π - If
pnameisGL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADERthen a boolean value indicating whether the atomic counter buffer identified bybufferIndexis referenced by the vertex, tessellation control, tessellation evaluation, geometry, fragment or compute processing stages ofprogram, respectively, is returned. so, like, a yes/no per stage. β
β NOTES β
glGetActiveAtomicCounterBufferivis available only if the GL version is 4.2 or higher.GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADERis available only if the GL version is 4.3 or higher.
fr fr check your version first bestie, the vibe check here is literally "is this token even legal on my context". π
π₯ ERRORS π₯
GL_INVALID_VALUEis generated ifprogramis not the name of a program object for whichglLinkProgram()has been called in the past.GL_INVALID_VALUEis generated ifbufferIndexis greater than or equal to the value ofGL_ACTIVE_ATOMIC_COUNTER_BUFFERSforprogram.GL_INVALID_ENUMis generated ifpnameis not one of the accepted tokens.
not me generating a GL_INVALID_VALUE because I forgot to link first π the error IS the consequences of your actions, diva.
π§ VERSION SUPPORT π§
the original page lays this out as a big grid, and since we're in a terminal, here's the tea in list form, unedited in content:
- Function / Feature Name:
glGetActiveAtomicCounterBufferiv - OpenGL 2.0:
-(nope) - OpenGL 2.1:
-(nope) - OpenGL 3.0:
-(nope) - OpenGL 3.1:
-(nope) - OpenGL 3.2:
-(nope) - OpenGL 3.3:
-(nope) - OpenGL 4.0:
-(nope) - OpenGL 4.1:
-(nope) - OpenGL 4.2:
β(slay) - OpenGL 4.3:
β(slay) - OpenGL 4.4:
β(slay) - OpenGL 4.5:
β(slay)
so it's a 4.2-and-up girly and it ate from that point on. π
π SEE ALSO π
glGetProgram()glGetActiveSubroutineUniform()glGetActiveSubroutineUniformName()glGetUniformLocation()
go read those too, iykyk π«Ά
π COPYRIGHT π
Copyright Β© 2011-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 Β© 2011-2014 Khronos Group.
π and that's the page, bestie. this was[FIXME: source], dated08/09/2021, filed underGLGETACTIVEATOMICCOU(3G)β the FIXMEs are load-bearing and honestly, iconic. periodt. π
π¦ where this page comes from
- centos-stream 9: gl-manpages 1.1-24.20190306.el9 Β· MIT and Open Publication
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms