Mir
Classes | Typedefs
gbm_buffer.h File Reference
#include "mir_toolkit/mir_connection.h"
#include "mir_toolkit/mir_extension_core.h"
#include "mir_toolkit/mir_buffer.h"
Include dependency graph for gbm_buffer.h:

Go to the source code of this file.

Classes

struct  MirExtensionGbmBufferV1
 
struct  MirExtensionGbmBufferV2
 

Typedefs

typedef void(* mir_connection_allocate_buffer_gbm) (MirConnection *connection, int width, int height, unsigned int gbm_pixel_format, unsigned int gbm_bo_flags, MirBufferCallback available_callback, void *available_context)
 Allocate a MirBuffer via gbm. More...
 
typedef void(* MirConnectionAllocateBufferGbm) (MirConnection *connection, uint32_t width, uint32_t height, uint32_t gbm_pixel_format, uint32_t gbm_bo_flags, MirBufferCallback available_callback, void *available_context)
 v2 version of mir_connection_allocate_buffer_gbm, with more accurate types. More...
 
typedef struct MirExtensionGbmBufferV1 MirExtensionGbmBufferV1
 
typedef MirBuffer *(* MirConnectionAllocateBufferGbmSync) (MirConnection *connection, uint32_t width, uint32_t height, uint32_t gbm_pixel_format, uint32_t gbm_bo_flags)
 Allocate a MirBuffer via gbm and wait for the allocation. More...
 
typedef bool(* MirBufferIsGbmImportable) (MirBuffer const *buffer)
 Check if a MirBuffer is suitable for import via GBM_BO_IMPORT_FD. More...
 
typedef int(* MirBufferGbmFd) (MirBuffer const *buffer)
 Access the fd a MirBuffer suitable for gbm import. More...
 
typedef uint32_t(* MirBufferGbmStride) (MirBuffer const *buffer)
 Get the stride of a MirBuffer. More...
 
typedef uint32_t(* MirBufferGbmFormat) (MirBuffer const *buffer)
 Get the GBM_FORMAT of a MirBuffer. More...
 
typedef uint32_t(* MirBufferGbmFlags) (MirBuffer const *buffer)
 Get the gbm_bo_flags of a MirBuffer. More...
 
typedef unsigned int(* MirBufferGbmAge) (MirBuffer const *buffer)
 Get the age of a MirBuffer. More...
 
typedef struct MirExtensionGbmBufferV2 MirExtensionGbmBufferV2
 

Typedef Documentation

typedef void(* mir_connection_allocate_buffer_gbm) (MirConnection *connection, int width, int height, unsigned int gbm_pixel_format, unsigned int gbm_bo_flags, MirBufferCallback available_callback, void *available_context)

Allocate a MirBuffer via gbm.

available in V1 and V2.

The callback will be called when the buffer is available for use. It will be called once when created, and once per every mir_presentation_chain_submit_buffer.

The buffer can be destroyed via mir_buffer_release().

Note
Not all formats or flags are available, and allocations may fail. Be sure to check mir_buffer_is_valid() on the returned buffer.
Parameters
[in]connectionThe connection
[in]widthRequested buffer width
[in]heightRequested buffer height
[in]gbm_pixel_formatThe pixel format, one of the GBM_FORMATs
[in]gbm_bo_flagsThe gbm_bo_flags for the buffer.
[in]available_callbackThe callback called when the buffer is available
[in]available_contextThe context for the available_callback
typedef unsigned int(* MirBufferGbmAge) (MirBuffer const *buffer)

Get the age of a MirBuffer.

Precondition
The buffer is suitable for GBM_BO_IMPORT_FD
Parameters
[in]bufferThe buffer
Returns
The age of the buffer
typedef int(* MirBufferGbmFd) (MirBuffer const *buffer)

Access the fd a MirBuffer suitable for gbm import.

Precondition
The buffer is suitable for GBM_BO_IMPORT_FD
Warning
The fd is owned by the buffer. Do not close() it.
Parameters
[in]bufferThe buffer
Returns
The fd
typedef uint32_t(* MirBufferGbmFlags) (MirBuffer const *buffer)

Get the gbm_bo_flags of a MirBuffer.

Precondition
The buffer is suitable for GBM_BO_IMPORT_FD
Parameters
[in]bufferThe buffer
Returns
The gbm_bo_flags of the buffer
typedef uint32_t(* MirBufferGbmFormat) (MirBuffer const *buffer)

Get the GBM_FORMAT of a MirBuffer.

Precondition
The buffer is suitable for GBM_BO_IMPORT_FD
Parameters
[in]bufferThe buffer
Returns
The GBM_FORMAT of the buffer
typedef uint32_t(* MirBufferGbmStride) (MirBuffer const *buffer)

Get the stride of a MirBuffer.

Precondition
The buffer is suitable for GBM_BO_IMPORT_FD
Parameters
[in]bufferThe buffer
Returns
The stride of the buffer
typedef bool(* MirBufferIsGbmImportable) (MirBuffer const *buffer)

Check if a MirBuffer is suitable for import via GBM_BO_IMPORT_FD.

Parameters
[in]bufferThe buffer
Returns
True if suitable, false if unsuitable
typedef void(* MirConnectionAllocateBufferGbm) (MirConnection *connection, uint32_t width, uint32_t height, uint32_t gbm_pixel_format, uint32_t gbm_bo_flags, MirBufferCallback available_callback, void *available_context)

v2 version of mir_connection_allocate_buffer_gbm, with more accurate types.

typedef MirBuffer*(* MirConnectionAllocateBufferGbmSync) (MirConnection *connection, uint32_t width, uint32_t height, uint32_t gbm_pixel_format, uint32_t gbm_bo_flags)

Allocate a MirBuffer via gbm and wait for the allocation.

available in V2. The buffer can be destroyed via mir_buffer_release().

Parameters
[in]connectionThe connection
[in]widthRequested buffer width
[in]heightRequested buffer height
[in]gbm_pixel_formatThe pixel format, one of the GBM_FORMATs
[in]gbm_bo_flagsThe gbm_bo_flags for the buffer.
Returns
The buffer

Copyright © 2012-2022 Canonical Ltd.
Generated on Tue Feb 1 20:51:23 UTC 2022
This documentation is licensed under the GPL version 2 or 3.