Mir
gbm_buffer.h
Go to the documentation of this file.
1/*
2 * Copyright © 2016 Canonical Ltd.
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License version 2 or 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Kevin DuBois <kevin.dubois@canonical.com>
17 */
18
19#ifndef MIR_CLIENT_EXTENSIONS_GBM_BUFFER_H_
20#define MIR_CLIENT_EXTENSIONS_GBM_BUFFER_H_
21
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
52 MirConnection* connection,
53 int width, int height,
54 unsigned int gbm_pixel_format,
55 unsigned int gbm_bo_flags,
56 MirBufferCallback available_callback, void* available_context);
57
61 MirConnection* connection,
62 uint32_t width, uint32_t height,
63 uint32_t gbm_pixel_format,
64 uint32_t gbm_bo_flags,
65 MirBufferCallback available_callback, void* available_context);
66
68{
71
72static inline MirExtensionGbmBufferV1 const* mir_extension_gbm_buffer_v1(
73 MirConnection* connection)
74{
76 connection, "mir_extension_gbm_buffer", 1);
77}
78
90typedef MirBuffer* (*MirConnectionAllocateBufferGbmSync)(
91 MirConnection* connection,
92 uint32_t width, uint32_t height,
93 uint32_t gbm_pixel_format,
94 uint32_t gbm_bo_flags);
95
101typedef bool (*MirBufferIsGbmImportable)(MirBuffer const* buffer);
102
109typedef int (*MirBufferGbmFd)(MirBuffer const* buffer);
110
116typedef uint32_t (*MirBufferGbmStride)(MirBuffer const* buffer);
117
123typedef uint32_t (*MirBufferGbmFormat)(MirBuffer const* buffer);
124
130typedef uint32_t (*MirBufferGbmFlags)(MirBuffer const* buffer);
131
137typedef unsigned int (*MirBufferGbmAge)(MirBuffer const* buffer);
138
140{
150
151static inline MirExtensionGbmBufferV2 const* mir_extension_gbm_buffer_v2(
152 MirConnection* connection)
153{
155 connection, "mir_extension_gbm_buffer", 2);
156}
157
158#ifdef __cplusplus
159}
160#endif
161#endif /* MIR_CLIENT_EXTENSIONS_GBM_BUFFER_H_ */
int width
Definition: client_types.h:1
int height
Definition: client_types.h:2
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.
Definition: gbm_buffer.h:60
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.
Definition: gbm_buffer.h:90
struct MirExtensionGbmBufferV2 MirExtensionGbmBufferV2
bool(* MirBufferIsGbmImportable)(MirBuffer const *buffer)
Check if a MirBuffer is suitable for import via GBM_BO_IMPORT_FD.
Definition: gbm_buffer.h:101
struct MirExtensionGbmBufferV1 MirExtensionGbmBufferV1
uint32_t(* MirBufferGbmFormat)(MirBuffer const *buffer)
Get the GBM_FORMAT of a MirBuffer.
Definition: gbm_buffer.h:123
uint32_t(* MirBufferGbmStride)(MirBuffer const *buffer)
Get the stride of a MirBuffer.
Definition: gbm_buffer.h:116
uint32_t(* MirBufferGbmFlags)(MirBuffer const *buffer)
Get the gbm_bo_flags of a MirBuffer.
Definition: gbm_buffer.h:130
int(* MirBufferGbmFd)(MirBuffer const *buffer)
Access the fd a MirBuffer suitable for gbm import.
Definition: gbm_buffer.h:109
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.
Definition: gbm_buffer.h:51
unsigned int(* MirBufferGbmAge)(MirBuffer const *buffer)
Get the age of a MirBuffer.
Definition: gbm_buffer.h:137
struct MirBuffer MirBuffer
Definition: client_types.h:56
struct MirConnection MirConnection
Definition: client_types.h:41
void(* MirBufferCallback)(MirBuffer *, void *context)
Definition: client_types.h:497
void const * mir_connection_request_extension(MirConnection *connection, char const *interface, int version)
Request a Mir extension.
Definition: gbm_buffer.h:68
mir_connection_allocate_buffer_gbm allocate_buffer_gbm
Definition: gbm_buffer.h:69
Definition: gbm_buffer.h:140
MirConnectionAllocateBufferGbm allocate_buffer_gbm
Definition: gbm_buffer.h:141
MirBufferGbmFd fd
Definition: gbm_buffer.h:144
MirBufferGbmStride stride
Definition: gbm_buffer.h:145
MirConnectionAllocateBufferGbmSync allocate_buffer_gbm_sync
Definition: gbm_buffer.h:142
MirBufferIsGbmImportable is_gbm_importable
Definition: gbm_buffer.h:143
MirBufferGbmAge age
Definition: gbm_buffer.h:148
MirBufferGbmFormat format
Definition: gbm_buffer.h:146
MirBufferGbmFlags flags
Definition: gbm_buffer.h:147

Copyright © 2012-2022 Canonical Ltd.
Generated on Sun Oct 9 06:13:38 UTC 2022
This documentation is licensed under the GPL version 2 or 3.