1.2
Public Member Functions | Protected Attributes | List of all members
FrameBuffer Class Reference

Screen on a fbdev framebuffer. More...

Inheritance diagram for FrameBuffer:
Inheritance graph
[legend]

Public Member Functions

 FrameBuffer (const FrameBuffer &)=delete
 
 FrameBuffer (const std::string &path="/dev/fb0")
 
 FrameBuffer (FrameBuffer &&)=default
 
 ~FrameBuffer () noexcept override
 
FrameBufferoperator= (const FrameBuffer &)=delete
 
FrameBufferoperator= (FrameBuffer &&)=default
 
void schedule_flip () override
 Schedule a flip to occur later. More...
 
- Public Member Functions inherited from Screen
 Screen () noexcept
 
 Screen (const Screen &)=default
 
 Screen (Screen &&) noexcept=default
 
virtual ~Screen () noexcept=default
 
void async_flip (bool async)
 Set if asynchronous buffer flips are used. More...
 
EGT_NODISCARD Rect box () const
 Bounding box for the screen. More...
 
virtual EGT_NODISCARD size_t brightness () const
 Get the current brightness of the screen. More...
 
virtual void brightness (size_t brightness)
 Set the brightness of the screen. More...
 
EGT_NODISCARD shared_cairo_t context () const
 Get the context for the screen. More...
 
virtual void flip (const DamageArray &damage)
 Perform a flip of the buffers. More...
 
EGT_NODISCARD PixelFormat format () const
 Get the format of the screen. More...
 
virtual EGT_NODISCARD bool have_planes () const
 Returns true if the screen supports planes. More...
 
virtual void high_fidelity ()
 Configure high fidelity options. More...
 
virtual uint32_t index ()
 If the screen implementation manages multiple buffers, this will return the index of the current buffer. More...
 
virtual void low_fidelity ()
 Configure low fidelity options. More...
 
virtual EGT_NODISCARD size_t max_brightness () const
 Get the max brightness of the screen. More...
 
Screenoperator= (const Screen &)=default
 
Screenoperator= (Screen &&) noexcept=default
 
EGT_NODISCARD Size size () const
 Size of the screen. More...
 

Protected Attributes

void * m_fb {nullptr}
 Internal framebuffer pointer. More...
 
int m_fd {-1}
 internal framebuffer file descriptor. More...
 
- Protected Attributes inherited from Screen
bool m_async {false}
 Perform flips asynchronously if supported. More...
 
BufferArray m_buffers
 Screen buffer array. More...
 
shared_cairo_t m_cr
 Composition surface context. More...
 
PixelFormat m_format {}
 Format of the screen. More...
 
Size m_size
 Size of the screen. More...
 
shared_cairo_surface_t m_surface
 Composition surface. More...
 

Additional Inherited Members

- Public Types inherited from Screen
using DamageArray = std::vector< Rect >
 Type used for damage arrays. More...
 
- Static Public Member Functions inherited from Screen
static void damage_algorithm (Screen::DamageArray &damage, Rect rect)
 This function implements the algorithm for adding damage rectangles to a list. More...
 
- Protected Types inherited from Screen
using BufferArray = std::vector< ScreenBuffer >
 Type used for an array of ScreenBuffer objects. More...
 
- Protected Member Functions inherited from Screen
virtual void copy_to_buffer (ScreenBuffer &buffer)
 Copy the framebuffer to the current composition buffer. More...
 
void copy_to_buffer_software (ScreenBuffer &buffer)
 Copy the framebuffer to the current composition buffer. More...
 
void init (const Size &size, PixelFormat format=PixelFormat::argb8888)
 
void init (void **ptr, uint32_t count, const Size &size, PixelFormat format=PixelFormat::argb8888)
 

Detailed Description

Screen on a fbdev framebuffer.

The framebuffer is internally mmap()'ed and directly accessible. The framebuffer does not manage multiple buffers.

Constructor & Destructor Documentation

◆ FrameBuffer() [1/3]

FrameBuffer ( const std::string &  path = "/dev/fb0")
explicit
Parameters
pathFramebuffer device node.

◆ FrameBuffer() [2/3]

FrameBuffer ( const FrameBuffer )
delete

◆ FrameBuffer() [3/3]

FrameBuffer ( FrameBuffer &&  )
default

◆ ~FrameBuffer()

~FrameBuffer ( )
overridenoexcept

Member Function Documentation

◆ operator=() [1/2]

FrameBuffer& operator= ( const FrameBuffer )
delete

◆ operator=() [2/2]

FrameBuffer& operator= ( FrameBuffer &&  )
default

◆ schedule_flip()

void schedule_flip ( )
inlineoverridevirtual

Schedule a flip to occur later.

This is needed if a flip should occur sometime in the future to the hardware.

Implements Screen.

Member Data Documentation

◆ m_fb

void* m_fb {nullptr}
protected

Internal framebuffer pointer.

◆ m_fd

int m_fd {-1}
protected

internal framebuffer file descriptor.