---
name: "glGetSeparableFilter"
section: "3x"
platform: "linux"
package: "xlibmesa-gl-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/glGetSeparableFilter"
---

# glGetSeparableFilter(3x)

get separable convolution filter kernel images

## NAME

**glGetSeparableFilter** - get separable convolution filter kernel images

## C SPECIFICATION

void **glGetSeparableFilter**( GLenum *target*,

```
	GLenum format,
	GLenum type,
	GLvoid *row,
	GLvoid *column,
	GLvoid *span )
```

## PARAMETERS

- *target*

  The separable filter to be retrieved. Must be **GL\_SEPARABLE\_2D**.

- *format*

  Format of the output images. Must be one of **GL\_RED**, **GL\_GREEN**, **GL\_BLUE**, **GL\_ALPHA**, **GL\_RGB**, **GL\_BGR** **GL\_RGBA**, **GL\_BGRA**, **GL\_LUMINANCE**, or **GL\_LUMINANCE\_ALPHA**.

- *type*

  Data type of components in the output images. Symbolic constants **GL\_UNSIGNED\_BYTE**, **GL\_BYTE**, **GL\_BITMAP**, **GL\_UNSIGNED\_SHORT**, **GL\_SHORT**, **GL\_UNSIGNED\_INT**, **GL\_INT**, **GL\_FLOAT**, **GL\_UNSIGNED\_BYTE\_3\_3\_2**, **GL\_UNSIGNED\_BYTE\_2\_3\_3\_REV**, **GL\_UNSIGNED\_SHORT\_5\_6\_5**, **GL\_UNSIGNED\_SHORT\_5\_6\_5\_REV**, **GL\_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**, and **GL\_UNSIGNED\_INT\_2\_10\_10\_10\_REV** are accepted.

- *row*

  Pointer to storage for the row filter image.

- *column*

  Pointer to storage for the column filter image.

- *span*

  Pointer to storage for the span filter image (currently unused).

## DESCRIPTION

**glGetSeparableFilter** returns the two one-dimensional filter kernel images for the current separable 2D convolution filter. The row image is placed in *row* and the column image is placed in *column* according to the specifications in *format* and *type*. (In the current implementation, *span* is not affected in any way.) No pixel transfer operations are performed on the images, but the relevant pixel storage modes are applied.

Color components that are present in *format* but not included in the internal  of the filters are returned as zero. The assignments of internal color components to the components of *format* are as follows:

| | |
| --- | --- |
| **Internal Component** | **Resulting Component** |
| Red | Red |
| Green | Green |
| Blue | Blue |
| Alpha | Alpha |
| Luminance | Red |
| Intensity | Red |

## NOTES

**glGetSeparableFilter** is present only if **GL\_ARB\_imaging** is returned when **glGetString** is called with an argument of **GL\_EXTENSIONS**.

Non-separable 2D filters must be retrieved with **glGetConvolutionFilter**.

## ERRORS

**GL\_INVALID\_ENUM** is generated if *target* is not **GL\_SEPARABLE\_2D**.

**GL\_INVALID\_ENUM** is generated if *format* is not one of the allowable values.

**GL\_INVALID\_ENUM** is generated if *type* is not one of the allowable values.

**GL\_INVALID\_OPERATION** is generated if **glGetSeparableFilter** is executed between the execution of **glBegin** and the corresponding execution of **glEnd**.

**GL\_INVALID\_OPERATION** is generated if *type* is one of **GL\_UNSIGNED\_BYTE\_3\_3\_2**, **GL\_UNSIGNED\_BYTE\_2\_3\_3\_REV**, **GL\_UNSIGNED\_SHORT\_5\_6\_5**, or **GL\_UNSIGNED\_SHORT\_5\_6\_5\_REV** and *format* is not **GL\_RGB**.

**GL\_INVALID\_OPERATION** is generated if *type* is one of **GL\_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**, or **GL\_UNSIGNED\_INT\_2\_10\_10\_10\_REV** and *format* is neither **GL\_RGBA** nor **GL\_BGRA**.

## ASSOCIATED GETS

**glGetConvolutionParameter**

## SEE ALSO

**glGetConvolutionFilter(3G)**, **glConvolutionParameter(3G)**, **glSeparableFilter2D(3G)**
