Mir
Public Types | Public Member Functions | List of all members
mir::compositor::BufferQueue Class Reference

#include <buffer_queue.h>

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

Public Types

typedef std::function< void(graphics::Buffer *buffer)> Callback
 

Public Member Functions

 BufferQueue (int nbuffers, std::shared_ptr< graphics::GraphicBufferAllocator > const &alloc, graphics::BufferProperties const &props, FrameDroppingPolicyFactory const &policy_provider)
 
void client_acquire (Callback complete) override
 
void client_release (graphics::Buffer *buffer) override
 
std::shared_ptr< graphics::Buffercompositor_acquire (void const *user_id) override
 Acquire the next buffer that's ready to display/composite. More...
 
void compositor_release (std::shared_ptr< graphics::Buffer > const &buffer) override
 
std::shared_ptr< graphics::Buffersnapshot_acquire () override
 
void snapshot_release (std::shared_ptr< graphics::Buffer > const &buffer) override
 
graphics::BufferProperties properties () const override
 
void allow_framedropping (bool dropping_allowed) override
 
void force_requests_to_complete () override
 
void resize (const geometry::Size &newsize) override
 
int buffers_ready_for_compositor (void const *user_id) const override
 
int buffers_free_for_client () const override
 Return the number of client acquisitions that can be completed synchronously without blocking, before a compositor consumes one. More...
 
bool framedropping_allowed () const
 
bool is_a_current_buffer_user (void const *user_id) const
 
void drop_old_buffers () override
 
void drop_client_requests () override
 
- Public Member Functions inherited from mir::compositor::BufferBundle
virtual ~BufferBundle () noexcept
 

Additional Inherited Members

- Protected Member Functions inherited from mir::compositor::BufferBundle
 BufferBundle ()=default
 
 BufferBundle (BufferBundle const &)=delete
 
BufferBundleoperator= (BufferBundle const &)=delete
 

Member Typedef Documentation

typedef std::function<void(graphics::Buffer* buffer)> mir::compositor::BufferQueue::Callback

Constructor & Destructor Documentation

mir::compositor::BufferQueue::BufferQueue ( int  nbuffers,
std::shared_ptr< graphics::GraphicBufferAllocator > const &  alloc,
graphics::BufferProperties const &  props,
mc::FrameDroppingPolicyFactory const &  policy_provider 
)

Member Function Documentation

void mir::compositor::BufferQueue::allow_framedropping ( bool  dropping_allowed)
overridevirtual
int mir::compositor::BufferQueue::buffers_free_for_client ( ) const
overridevirtual

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.

Implements mir::compositor::BufferBundle.

int mir::compositor::BufferQueue::buffers_ready_for_compositor ( void const *  user_id) const
overridevirtual
void mir::compositor::BufferQueue::client_acquire ( Callback  complete)
overridevirtual
void mir::compositor::BufferQueue::client_release ( graphics::Buffer buffer)
overridevirtual
std::shared_ptr< mg::Buffer > mir::compositor::BufferQueue::compositor_acquire ( void const *  user_id)
overridevirtual

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).

Implements mir::compositor::BufferBundle.

void mir::compositor::BufferQueue::compositor_release ( std::shared_ptr< graphics::Buffer > const &  buffer)
overridevirtual
void mir::compositor::BufferQueue::drop_client_requests ( )
overridevirtual
void mir::compositor::BufferQueue::drop_old_buffers ( )
overridevirtual
void mir::compositor::BufferQueue::force_requests_to_complete ( )
overridevirtual
bool mir::compositor::BufferQueue::framedropping_allowed ( ) const
bool mir::compositor::BufferQueue::is_a_current_buffer_user ( void const *  user_id) const
mg::BufferProperties mir::compositor::BufferQueue::properties ( ) const
overridevirtual
void mir::compositor::BufferQueue::resize ( const geometry::Size newsize)
overridevirtual
std::shared_ptr< mg::Buffer > mir::compositor::BufferQueue::snapshot_acquire ( )
overridevirtual
void mir::compositor::BufferQueue::snapshot_release ( std::shared_ptr< graphics::Buffer > const &  buffer)
overridevirtual

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

Copyright © 2012,2013 Canonical Ltd.
Generated on Tue Mar 24 16:15:19 UTC 2015