Mir
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | List of all members
mir::compositor::BufferBundle Class Referenceabstract

#include <buffer_bundle.h>

Inheritance diagram for mir::compositor::BufferBundle:
[legend]

Public Member Functions

virtual ~BufferBundle () noexcept
 
virtual void client_acquire (std::function< void(graphics::Buffer *buffer)> complete)=0
 
virtual void client_release (graphics::Buffer *)=0
 
virtual std::shared_ptr
< graphics::Buffer
compositor_acquire (void const *user_id)=0
 Acquire the next buffer that's ready to display/composite. More...
 
virtual void compositor_release (std::shared_ptr< graphics::Buffer > const &)=0
 
virtual std::shared_ptr
< graphics::Buffer
snapshot_acquire ()=0
 
virtual void snapshot_release (std::shared_ptr< graphics::Buffer > const &)=0
 
virtual graphics::BufferProperties properties () const =0
 
virtual void allow_framedropping (bool dropping_allowed)=0
 
virtual void force_requests_to_complete ()=0
 
virtual void resize (const geometry::Size &newsize)=0
 
virtual int buffers_ready_for_compositor () const =0
 
virtual int buffers_free_for_client () const =0
 Return the number of client acquisitions that can be completed synchronously without blocking, before a compositor consumes one. More...
 
virtual void drop_old_buffers ()=0
 

Protected Member Functions

 BufferBundle ()=default
 
 BufferBundle (BufferBundle const &)=delete
 
BufferBundleoperator= (BufferBundle const &)=delete
 

Constructor & Destructor Documentation

virtual mir::compositor::BufferBundle::~BufferBundle ( )
inlinevirtualnoexcept
mir::compositor::BufferBundle::BufferBundle ( )
protecteddefault
mir::compositor::BufferBundle::BufferBundle ( BufferBundle const &  )
protecteddelete

Member Function Documentation

virtual void mir::compositor::BufferBundle::allow_framedropping ( bool  dropping_allowed)
pure virtual
virtual int mir::compositor::BufferBundle::buffers_free_for_client ( ) const
pure virtual

Return the number of client acquisitions that can be completed synchronously without blocking, before a compositor consumes one.

This is used for pre-filling the queue in tests. Don't assume it's always nbuffers-1 as it might be less.

Implemented in mir::compositor::BufferQueue.

virtual int mir::compositor::BufferBundle::buffers_ready_for_compositor ( ) const
pure virtual
virtual void mir::compositor::BufferBundle::client_acquire ( std::function< void(graphics::Buffer *buffer)>  complete)
pure virtual
virtual void mir::compositor::BufferBundle::client_release ( graphics::Buffer )
pure virtual
virtual std::shared_ptr<graphics::Buffer> mir::compositor::BufferBundle::compositor_acquire ( void const *  user_id)
pure virtual

Acquire the next buffer that's ready to display/composite.

Parameters
[in]user_idA unique identifier of who is going to use the buffer, to ensure that separate users representing separate monitors who need the same frame will get the same buffer. However consecutive calls for the same user will get different buffers. To avoid collisions, all callers should determine user_id in the same way (e.g. always use "this" pointer).

Implemented in mir::compositor::BufferQueue.

virtual void mir::compositor::BufferBundle::compositor_release ( std::shared_ptr< graphics::Buffer > const &  )
pure virtual
virtual void mir::compositor::BufferBundle::drop_old_buffers ( )
pure virtual
virtual void mir::compositor::BufferBundle::force_requests_to_complete ( )
pure virtual
BufferBundle& mir::compositor::BufferBundle::operator= ( BufferBundle const &  )
protecteddelete
virtual graphics::BufferProperties mir::compositor::BufferBundle::properties ( ) const
pure virtual
virtual void mir::compositor::BufferBundle::resize ( const geometry::Size newsize)
pure virtual
virtual std::shared_ptr<graphics::Buffer> mir::compositor::BufferBundle::snapshot_acquire ( )
pure virtual
virtual void mir::compositor::BufferBundle::snapshot_release ( std::shared_ptr< graphics::Buffer > const &  )
pure virtual

The documentation for this class was generated from the following file:

Copyright © 2012,2013 Canonical Ltd.
Generated on Fri Oct 10 14:07:14 UTC 2014