### Function

# Cogl poll_renderer_get_info

#### Declaration [src]

    int
    cogl_poll_renderer_get_info (
      CoglRenderer* renderer,
      CoglPollFD** poll_fds,
      int* n_poll_fds,
      int64_t* timeout
    )

#### Description [src]

Is used to integrate Cogl with an application mainloop that is based on the unix poll(2) api (or `select()` or something equivalent). This api should be called whenever an application is about to go idle so that Cogl has a chance to describe what file descriptor events it needs to be woken up for.

If your application is using the Glib mainloop then you should jump to the `cogl_glib_source_new()` api as a more convenient way of integrating Cogl with the mainloop.

After the function is called *`poll_fds` will contain a pointer to an array of `CoglPollFD` structs describing the file descriptors that Cogl expects. The fd and events members will be updated accordingly. After the application has completed its idle it is expected to either update the revents members directly in this array or to create a copy of the array and update them there.

When the application mainloop returns from calling poll(2) (or its equivalent) then it should call `cogl_poll_renderer_dispatch()` passing a pointer the array of `CoglPollFD`s with updated revent values.

`timeout` will contain a maximum amount of time to wait in microseconds before the application should wake up or -1 if the application should wait indefinitely. This can also be 0 if Cogl needs to be woken up immediately.

#### Parameters

`renderer`

  Type: `CoglRenderer`

  A `CoglRenderer`.

  The data is owned by the caller of the function.

`poll_fds`

  Type: `CoglPollFD`

  A return location for a pointer to an array of `CoglPollFD`s.

  The data is owned by the caller of the function.

`n_poll_fds`

  Type: `int*`

  A return location for the number of entries in *`poll_fds`.

  The data is owned by the caller of the function.

`timeout`

  Type: `int64_t*`

  A return location for the maximum length of time to wait in microseconds, or -1 to wait indefinitely.

  The data is owned by the caller of the function.

#### Return value

Type: `int`

A “poll fd state age” that changes whenever the set of poll_fds has changed. If this API is being used to integrate with another system mainloop api then knowing if the set of file descriptors and events has really changed can help avoid redundant work depending the api. The age isn’t guaranteed to change when the timeout changes.