size_t num_planes, i;
memset(&drv_data, 0, sizeof(drv_data));
-
+ drv_data.flags = gbm_convert_flags(usage);
switch (type) {
case GBM_BO_IMPORT_FD:
gbm_format = fd_data->format;
return NULL;
*stride = gbm_bo_get_plane_stride(bo, plane);
- return drv_bo_map(bo->bo, x, y, width, height, 0, (struct map_info **)map_data, plane);
+ uint32_t drv_flags = flags & GBM_BO_TRANSFER_READ ? BO_TRANSFER_READ : BO_TRANSFER_NONE;
+ drv_flags |= flags & GBM_BO_TRANSFER_WRITE ? BO_TRANSFER_WRITE : BO_TRANSFER_NONE;
+ return drv_bo_map(bo->bo, x, y, width, height, drv_flags, (struct map_info **)map_data,
+ plane);
}
PUBLIC void gbm_bo_unmap(struct gbm_bo *bo, void *map_data)
{
assert(bo);
- drv_bo_unmap(bo->bo, map_data);
+ drv_bo_flush(bo->bo, map_data);
}
PUBLIC uint32_t gbm_bo_get_width(struct gbm_bo *bo)