GLGETSEPARABLEFILTER(3G)
β¨ GLGETSEPARABLEFILTER β¨
okay bestie so this is a page from manual section 3G, and it's all about glGetSeparableFilter π β the little guy that goes and fetches your separable convolution filter kernel images. yes it's giving very niche OpenGL core. no cap, it's iconic.
π C SPECIFICATION π
void glGetSeparableFilter( GLenum target,
GLenum format,
GLenum type,
GLvoid *row,
GLvoid *column,
GLvoid *span )
πΈ PARAMETERS πΈ
targetβ the separable filter you're tryna get back. gotta beGL_SEPARABLE_2D. that's the only vibe allowed here.formatβ the format of your output images. must be one ofGL_RED,GL_GREEN,GL_BLUE,GL_ALPHA,GL_RGB,GL_BGRGL_RGBA,GL_BGRA,GL_LUMINANCE, orGL_LUMINANCE_ALPHA. pick one, bestie, or the whole thing falls apart πtypeβ the data type of the components in your output images. these symbolic constants are all accepted:GL_UNSIGNED_BYTEGL_BYTEGL_BITMAPGL_UNSIGNED_SHORTGL_SHORTGL_UNSIGNED_INTGL_INTGL_FLOATGL_UNSIGNED_BYTE_3_3_2GL_UNSIGNED_BYTE_2_3_3_REVGL_UNSIGNED_SHORT_5_6_5GL_UNSIGNED_SHORT_5_6_5_REVGL_UNSIGNED_SHORT_4_4_4_4GL_UNSIGNED_SHORT_4_4_4_4_REVGL_UNSIGNED_SHORT_5_5_5_1GL_UNSIGNED_SHORT_1_5_5_5_REVGL_UNSIGNED_INT_8_8_8_8GL_UNSIGNED_INT_8_8_8_8_REVGL_UNSIGNED_INT_10_10_10_2GL_UNSIGNED_INT_2_10_10_10_REV
rowβ pointer to storage for the row filter image. it goes here. π«Άcolumnβ pointer to storage for the column filter image. it goes there.spanβ pointer to storage for the span filter image. and here's the tea: it's currently unused. yeah. girl's just standing there. π
π¦ DESCRIPTION π¦
so glGetSeparableFilter hands you back the two one-dimensional filter kernel images for whatever the current separable 2D convolution filter is. the row image gets placed in row and the column image gets placed in column, all according to whatever you specified in format and type. β¨
and span? bestie. in the current implementation, span is not affected in any way. literally untouched. leave her alone.
also important: no pixel transfer operations are performed on the images, but the relevant pixel storage modes do get applied. so like, storage modes yes, pixel transfer no. the way that works is so specific of them honestly.
color components that are present in format but not included in the internal format of the filters come back as zero. and here's the mapping of internal color components onto the components of format:
- Internal Red β resulting component Red
- Internal Green β resulting component Green
- Internal Blue β resulting component Blue
- Internal Alpha β resulting component Alpha
- Internal Luminance β resulting component Red
- Internal Intensity β resulting component Red
π NOTES π
glGetSeparableFilter is only present if GL_ARB_imaging shows up when you call glGetString with an argument of GL_EXTENSIONS. so like, check first. do your little vibe check. π
and non-separable 2D filters? those are NOT invited here. they must be retrieved with glGetConvolutionFilter. periodt.
π ERRORS π
buckle up bestie, this section is a whole mood board of ways to mess up.
GL_INVALID_ENUMis generated iftargetis notGL_SEPARABLE_2D.GL_INVALID_ENUMis generated ifformatis not one of the allowable values.GL_INVALID_ENUMis generated iftypeis not one of the allowable values.GL_INVALID_OPERATIONis generated ifglGetSeparableFilteris executed between the execution ofglBeginand the corresponding execution ofglEnd. (do not do this. i am begging. π)GL_INVALID_OPERATIONis generated iftypeis one ofGL_UNSIGNED_BYTE_3_3_2,GL_UNSIGNED_BYTE_2_3_3_REV,GL_UNSIGNED_SHORT_5_6_5, orGL_UNSIGNED_SHORT_5_6_5_REVandformatis notGL_RGB.GL_INVALID_OPERATIONis generated iftypeis one ofGL_UNSIGNED_SHORT_4_4_4_4,GL_UNSIGNED_SHORT_4_4_4_4_REV,GL_UNSIGNED_SHORT_5_5_5_1,GL_UNSIGNED_SHORT_1_5_5_5_REV,GL_UNSIGNED_INT_8_8_8_8,GL_UNSIGNED_INT_8_8_8_8_REV,GL_UNSIGNED_INT_10_10_10_2, orGL_UNSIGNED_INT_2_10_10_10_REVandformatis neitherGL_RGBAnorGL_BGRA.
β ASSOCIATED GETS β
glGetConvolutionParameter
π₯ SEE ALSO π₯
glGetConvolutionFilter(3G)glConvolutionParameter(3G)glSeparableFilter2D(3G)
and that's the whole page, bestie ππ§ the little footer down there just says GLGETSEPARABLEFILTER(3G) β same name, no date, no version, just the name vibing at the bottom like a signature. slay. πβ¨
π¦ where this page comes from
- centos-stream 9: gl-manpages 1.1-24.20190306.el9 Β· MIT and Open Publication
- fedora 43: gl-manpages 1.1-34.20190306.fc43 Β· Apache-2.0 AND HPND AND HPND-sell-variant AND MIT AND OpenPBS-2.3 AND SGI-B-2.0 AND W3C-19980720 AND X11
- fedora 44: gl-manpages 1.1-35.20190306.fc44 Β· Apache-2.0 AND HPND AND HPND-sell-variant AND MIT AND OpenPBS-2.3 AND SGI-B-2.0 AND W3C-19980720 AND X11
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms