Name

eglQuerySurface — return EGL surface information

C Specification

EGLBoolean eglQuerySurface( EGLDisplay display,
  EGLSurface surface,
  EGLint attribute,
  EGLint * value);
 

Parameters

display

Specifies the EGL display connection.

surface

Specifies the EGL surface to query.

attribute

Specifies the EGL surface attribute to be returned.

value

Returns the requested value.

Description

eglQuerySurface returns in value the value of attribute for surface. attribute can be one of the following:

EGL_CONFIG_ID

Returns the ID of the EGL frame buffer configuration with respect to which the surface was created.

EGL_HEIGHT

Returns the height of the surface in pixels.

EGL_HORIZONTAL_RESOLUTION

Returns the horizontal dot pitch of the display on which a window surface is visible. The value returned is equal to the actual dot pitch, in pixels/meter, multiplied by the constant value EGL_DISPLAY_SCALING.

EGL_LARGEST_PBUFFER

Returns the same attribute value specified when the surface was created with eglCreatePbufferSurface. For a window or pixmap surface, value is not modified.

EGL_MIPMAP_LEVEL

Returns which level of the mipmap to render to, if texture has mipmaps.

EGL_MIPMAP_TEXTURE

Returns EGL_TRUE if texture has mipmaps, EGL_FALSE otherwise.

EGL_MULTISAMPLE_RESOLVE

Returns the filter used when resolving the multisample buffer. The filter may be either EGL_MULTISAMPLE_RESOLVE_DEFAULT or EGL_MULTISAMPLE_RESOLVE_BOX, as described for eglSurfaceAttrib.

EGL_PIXEL_ASPECT_RATIO

Returns the aspect ratio of an individual pixel (the ratio of a pixel's width to its height). The value returned is equal to the actual aspect ratio multiplied by the constant value EGL_DISPLAY_SCALING.

EGL_RENDER_BUFFER

Returns the buffer which client API rendering is requested to use. For a window surface, this is the same attribute value specified when the surface was created. For a pbuffer surface, it is always EGL_BACK_BUFFER. For a pixmap surface, it is always EGL_SINGLE_BUFFER. To determine the actual buffer being rendered to by a context, call eglQueryContext.

EGL_SWAP_BEHAVIOR

Returns the effect on the color buffer when posting a surface with eglSwapBuffers. Swap behavior may be either EGL_BUFFER_PRESERVED or EGL_BUFFER_DESTROYED, as described for eglSurfaceAttrib.

EGL_TEXTURE_FORMAT

Returns format of texture. Possible values are EGL_NO_TEXTURE, EGL_TEXTURE_RGB, and EGL_TEXTURE_RGBA.

EGL_TEXTURE_TARGET

Returns type of texture. Possible values are EGL_NO_TEXTURE, or EGL_TEXTURE_2D.

EGL_VERTICAL_RESOLUTION

Returns the vertical dot pitch of the display on which a window surface is visible. The value returned is equal to the actual dot pitch, in pixels/meter, multiplied by the constant value EGL_DISPLAY_SCALING.

EGL_WIDTH

Returns the width of the surface in pixels.

Notes

Attribute EGL_MULTISAMPLE_RESOLVE is supported only if the EGL version is 1.4 or greater.

Attributes EGL_DISPLAY_SCALING. EGL_HORIZONTAL_RESOLUTION, EGL_PIXEL_ASPECT_RATIO, EGL_RENDER_BUFFER, EGL_SWAP_BEHAVIOR, and EGL_VERTICAL_RESOLUTION are supported only if the EGL version is 1.2 or greater.

Querying attributes EGL_TEXTURE_FORMAT, EGL_TEXTURE_TARGET, EGL_MIPMAP_TEXTURE, or EGL_MIPMAP_LEVEL for a non-pbuffer surface is not an error, but value is not modified.

EGL_DISPLAY_SCALING is the constant value 10000. Floating-point values such as resolution and pixel aspect ratio are scaled by this value before being returned as integers so that sufficient precision to be meaningful will be retained in the returned value.

For an offscreen (pbuffer or pixmap) surface, or a surface whose pixel dot pitch or aspect ratio are unknown, querying EGL_HORIZONTAL_RESOLUTION, EGL_PIXEL_ASPECT_RATIO, or EGL_VERTICAL_RESOLUTION will return the constant value EGL_UNKNOWN (-1).

Errors

EGL_FALSE is returned on failure, EGL_TRUE otherwise. value is not modified when EGL_FALSE is returned.

EGL_BAD_DISPLAY is generated if display is not an EGL display connection.

EGL_NOT_INITIALIZED is generated if display has not been initialized.

EGL_BAD_SURFACE is generated if surface is not an EGL surface.

EGL_BAD_ATTRIBUTE is generated if attribute is not a valid surface attribute.