X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=gbm.h;h=cc36b72288e7e930cfd8b8d03df6a4c81ea7e7d1;hb=5753c3129a21eb7c0c2f0bd8113cd6b01b8cf651;hp=8ec9349b4f31e0897211a60f7d3569396c30b015;hpb=0337d9b380d91959ae5a34de9c954babee11b650;p=android-x86%2Fexternal-minigbm.git diff --git a/gbm.h b/gbm.h index 8ec9349..cc36b72 100644 --- a/gbm.h +++ b/gbm.h @@ -275,6 +275,41 @@ struct gbm_bo * gbm_bo_import(struct gbm_device *gbm, uint32_t type, void *buffer, uint32_t usage); +/** + * Flags to indicate the type of mapping for the buffer - these are + * passed into gbm_bo_map(). The caller must set the union of all the + * flags that are appropriate. + * + * These flags are independent of the GBM_BO_USE_* creation flags. However, + * mapping the buffer may require copying to/from a staging buffer. + * + * See also: pipe_transfer_usage + */ +enum gbm_bo_transfer_flags { + /** + * Buffer contents read back (or accessed directly) at transfer + * create time. + */ + GBM_BO_TRANSFER_READ = (1 << 0), + /** + * Buffer contents will be written back at unmap time + * (or modified as a result of being accessed directly). + */ + GBM_BO_TRANSFER_WRITE = (1 << 1), + /** + * Read/modify/write + */ + GBM_BO_TRANSFER_READ_WRITE = (GBM_BO_TRANSFER_READ | GBM_BO_TRANSFER_WRITE), +}; + +void * +gbm_bo_map(struct gbm_bo *bo, + uint32_t x, uint32_t y, uint32_t width, uint32_t height, + uint32_t flags, uint32_t *stride, void **map_data, size_t plane); + +void +gbm_bo_unmap(struct gbm_bo *bo, void *map_data); + uint32_t gbm_bo_get_width(struct gbm_bo *bo);