mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
xa: add handle type parameter to get handle
Allow to retrieve non shared handle. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
This commit is contained in:
parent
984da46219
commit
d1444225d3
2 changed files with 18 additions and 2 deletions
|
|
@ -468,6 +468,7 @@ xa_tracker_version(int *major, int *minor, int *patch)
|
|||
|
||||
XA_EXPORT int
|
||||
xa_surface_handle(struct xa_surface *srf,
|
||||
enum xa_handle_type type,
|
||||
uint32_t * handle, unsigned int *stride)
|
||||
{
|
||||
struct winsys_handle whandle;
|
||||
|
|
@ -476,7 +477,15 @@ xa_surface_handle(struct xa_surface *srf,
|
|||
boolean res;
|
||||
|
||||
memset(&whandle, 0, sizeof(whandle));
|
||||
whandle.type = DRM_API_HANDLE_TYPE_SHARED;
|
||||
switch (type) {
|
||||
case xa_handle_type_kms:
|
||||
whandle.type = DRM_API_HANDLE_TYPE_KMS;
|
||||
break;
|
||||
case xa_handle_type_shared:
|
||||
default:
|
||||
whandle.type = DRM_API_HANDLE_TYPE_SHARED;
|
||||
break;
|
||||
}
|
||||
res = screen->resource_get_handle(screen, srf->tex, &whandle);
|
||||
if (!res)
|
||||
return -XA_ERR_INVAL;
|
||||
|
|
|
|||
|
|
@ -142,6 +142,11 @@ struct xa_box {
|
|||
uint16_t x1, y1, x2, y2;
|
||||
};
|
||||
|
||||
enum xa_handle_type {
|
||||
xa_handle_type_shared,
|
||||
xa_handle_type_kms,
|
||||
};
|
||||
|
||||
extern void xa_tracker_version(int *major, int *minor, int *patch);
|
||||
|
||||
extern struct xa_tracker *xa_tracker_create(int drm_fd);
|
||||
|
|
@ -183,6 +188,8 @@ extern int xa_surface_redefine(struct xa_surface *srf,
|
|||
int copy_contents);
|
||||
|
||||
extern int xa_surface_handle(struct xa_surface *srf,
|
||||
uint32_t * handle, unsigned int *byte_stride);
|
||||
enum xa_handle_type type,
|
||||
uint32_t * handle,
|
||||
unsigned int *byte_stride);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue