Functions
Drm framebuffer functions

Functions that deal with setup of framebuffers. More...

Functions

EAPI Ecore_Drm2_Fb * ecore_drm2_fb_create (int fd, int width, int height, int depth, int bpp, unsigned int format)
 Create a new framebuffer object. More...
 
EAPI void * ecore_drm2_fb_data_get (Ecore_Drm2_Fb *fb)
 Get a framebuffer's mmap'd data. More...
 
EAPI unsigned int ecore_drm2_fb_size_get (Ecore_Drm2_Fb *fb)
 Get a framebuffer's size. More...
 
EAPI unsigned int ecore_drm2_fb_stride_get (Ecore_Drm2_Fb *fb)
 Get a framebuffer's stride. More...
 
EAPI void ecore_drm2_fb_dirty (Ecore_Drm2_Fb *fb, Eina_Rectangle *rects, unsigned int count)
 Mark regions of a framebuffer as dirty. More...
 
EAPI int ecore_drm2_fb_flip (Ecore_Drm2_Fb *fb, Ecore_Drm2_Output *output)
 Schedule a pageflip to the given Ecore_Drm2_Fb. More...
 
EAPI Eina_Bool ecore_drm2_fb_flip_complete (Ecore_Drm2_Output *output)
 Must be called by a page flip handler when the flip completes. More...
 
EAPI Eina_Bool ecore_drm2_fb_busy_get (Ecore_Drm2_Fb *fb)
 Return the Ecore_Drm2_Fb's busy status. More...
 
EAPI Eina_Bool ecore_drm2_fb_release (Ecore_Drm2_Output *o, Eina_Bool panic)
 Try to force a framebuffer release for an output. More...
 
EAPI Ecore_Drm2_Fb * ecore_drm2_fb_dmabuf_import (int fd, int width, int height, int depth, int bpp, unsigned int format, unsigned int strides[4], int dmabuf_fd[4], int dmabuf_fd_count)
 Import a dmabuf object as a Framebuffer. More...
 
EAPI void ecore_drm2_fb_discard (Ecore_Drm2_Fb *fb)
 Discard a framebuffer object. More...
 

Detailed Description

Functions that deal with setup of framebuffers.

Function Documentation

◆ ecore_drm2_fb_create()

EAPI Ecore_Drm2_Fb* ecore_drm2_fb_create ( int  fd,
int  width,
int  height,
int  depth,
int  bpp,
unsigned int  format 
)

Create a new framebuffer object.

Parameters
fd
width
height
depth
bpp
format
Returns
A newly create framebuffer object, or NULL on failure
Since
1.18

◆ ecore_drm2_fb_data_get()

EAPI void* ecore_drm2_fb_data_get ( Ecore_Drm2_Fb *  fb)

Get a framebuffer's mmap'd data.

Parameters
fb
Returns
The mmap'd area of the framebuffer or NULL on failure
Since
1.18

◆ ecore_drm2_fb_size_get()

EAPI unsigned int ecore_drm2_fb_size_get ( Ecore_Drm2_Fb *  fb)

Get a framebuffer's size.

Parameters
fb
Returns
size of the framebuffers' mmap'd data or 0 on failure
Since
1.18

◆ ecore_drm2_fb_stride_get()

EAPI unsigned int ecore_drm2_fb_stride_get ( Ecore_Drm2_Fb *  fb)

Get a framebuffer's stride.

Parameters
fb
Returns
stride of the framebuffer or 0 on failure
Since
1.18

◆ ecore_drm2_fb_dirty()

EAPI void ecore_drm2_fb_dirty ( Ecore_Drm2_Fb *  fb,
Eina_Rectangle rects,
unsigned int  count 
)

Mark regions of a framebuffer as dirty.

Parameters
fb
rects
count
Since
1.18

◆ ecore_drm2_fb_flip()

EAPI int ecore_drm2_fb_flip ( Ecore_Drm2_Fb *  fb,
Ecore_Drm2_Output *  output 
)

Schedule a pageflip to the given Ecore_Drm2_Fb.

The caller is responsible for running a page flip handler and calling ecore_drm2_fb_flip_complete() when it completes.

Parameters
fb
output
Returns
The result of drmModePageFlip function call
Since
1.18

◆ ecore_drm2_fb_flip_complete()

EAPI Eina_Bool ecore_drm2_fb_flip_complete ( Ecore_Drm2_Output *  output)

Must be called by a page flip handler when the flip completes.

Parameters
output
Returns
Whether there's an undisplayed buffer still in the queue.
Since
1.18

◆ ecore_drm2_fb_busy_get()

EAPI Eina_Bool ecore_drm2_fb_busy_get ( Ecore_Drm2_Fb *  fb)

Return the Ecore_Drm2_Fb's busy status.

Parameters
fb
Returns
The busy status
Since
1.19

◆ ecore_drm2_fb_release()

EAPI Eina_Bool ecore_drm2_fb_release ( Ecore_Drm2_Output *  o,
Eina_Bool  panic 
)

Try to force a framebuffer release for an output.

This tries to release the next or optionally pending, or current buffer from the output. If successful there will be a release callback to the registered handler, and the fb will no longer be flagged busy.

Releasing buffers committed to scanout will potentially cause flicker, so this is only done when the panic flag is set.

Parameters
outputThe output to force release
panicTry to release even buffers committed to scanout
Returns
EINA_TRUE if a buffer was released
Since
1.19

◆ ecore_drm2_fb_dmabuf_import()

EAPI Ecore_Drm2_Fb* ecore_drm2_fb_dmabuf_import ( int  fd,
int  width,
int  height,
int  depth,
int  bpp,
unsigned int  format,
unsigned int  strides[4],
int  dmabuf_fd[4],
int  dmabuf_fd_count 
)

Import a dmabuf object as a Framebuffer.

Parameters
fd
width
height
depth
bpp
format
stride
dmabuf_fd
dmabuf_fd_count
Returns
A newly created framebuffer object, or NULL on failure
Since
1.20

References EINA_TRUE.

◆ ecore_drm2_fb_discard()

EAPI void ecore_drm2_fb_discard ( Ecore_Drm2_Fb *  fb)

Discard a framebuffer object.

Decreases the refcount on a fb object. It will be destroyed when it's no longer attached to scanout or otherwise in use.

Parameters
fb
Since
1.20