Go to the source code of this file.
|
HB_EXTERN hb_blob_t * | hb_blob_create (const char *data, unsigned int length, hb_memory_mode_t mode, void *user_data, hb_destroy_func_t destroy) |
|
HB_EXTERN hb_blob_t * | hb_blob_create_or_fail (const char *data, unsigned int length, hb_memory_mode_t mode, void *user_data, hb_destroy_func_t destroy) |
|
HB_EXTERN hb_blob_t * | hb_blob_create_from_file (const char *file_name) |
|
HB_EXTERN hb_blob_t * | hb_blob_create_from_file_or_fail (const char *file_name) |
|
HB_EXTERN hb_blob_t * | hb_blob_create_sub_blob (hb_blob_t *parent, unsigned int offset, unsigned int length) |
|
HB_EXTERN hb_blob_t * | hb_blob_copy_writable_or_fail (hb_blob_t *blob) |
|
HB_EXTERN hb_blob_t * | hb_blob_get_empty (void) |
|
HB_EXTERN hb_blob_t * | hb_blob_reference (hb_blob_t *blob) |
|
HB_EXTERN void | hb_blob_destroy (hb_blob_t *blob) |
|
HB_EXTERN hb_bool_t | hb_blob_set_user_data (hb_blob_t *blob, hb_user_data_key_t *key, void *data, hb_destroy_func_t destroy, hb_bool_t replace) |
|
HB_EXTERN void * | hb_blob_get_user_data (const hb_blob_t *blob, hb_user_data_key_t *key) |
|
HB_EXTERN void | hb_blob_make_immutable (hb_blob_t *blob) |
|
HB_EXTERN hb_bool_t | hb_blob_is_immutable (hb_blob_t *blob) |
|
HB_EXTERN unsigned int | hb_blob_get_length (hb_blob_t *blob) |
|
HB_EXTERN const char * | hb_blob_get_data (hb_blob_t *blob, unsigned int *length) |
|
HB_EXTERN char * | hb_blob_get_data_writable (hb_blob_t *blob, unsigned int *length) |
|
◆ hb_blob_t
hb_blob_t:
Data type for blobs. A blob wraps a chunk of binary data and facilitates its lifecycle management between a client program and HarfBuzz.
Definition at line 84 of file hb-blob.h.
◆ hb_memory_mode_t
hb_memory_mode_t: @HB_MEMORY_MODE_DUPLICATE: HarfBuzz immediately makes a copy of the data. @HB_MEMORY_MODE_READONLY: HarfBuzz client will never modify the data, and HarfBuzz will never modify the data. @HB_MEMORY_MODE_WRITABLE: HarfBuzz client made a copy of the data solely for HarfBuzz, so HarfBuzz may modify the data. @HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE: See above
Data type holding the memory modes available to client programs.
Regarding these various memory-modes:
- In no case shall the HarfBuzz client modify memory that is passed to HarfBuzz in a blob. If there is any such possibility, @HB_MEMORY_MODE_DUPLICATE should be used such that HarfBuzz makes a copy immediately,
- Use @HB_MEMORY_MODE_READONLY otherwise, unless you really really really know what you are doing,
- @HB_MEMORY_MODE_WRITABLE is appropriate if you really made a copy of data solely for the purpose of passing to HarfBuzz and doing that just once (no reuse!),
- If the font is mmap()ed, it's okay to use @HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE, however, using that mode correctly is very tricky. Use @HB_MEMORY_MODE_READONLY instead.
Enumerator |
---|
HB_MEMORY_MODE_DUPLICATE | |
HB_MEMORY_MODE_READONLY | |
HB_MEMORY_MODE_WRITABLE | |
HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE | |
Definition at line 69 of file hb-blob.h.
69 {
@ HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE
@ HB_MEMORY_MODE_WRITABLE
@ HB_MEMORY_MODE_READONLY
@ HB_MEMORY_MODE_DUPLICATE
◆ hb_blob_copy_writable_or_fail()
◆ hb_blob_create()
◆ hb_blob_create_from_file()
◆ hb_blob_create_from_file_or_fail()
◆ hb_blob_create_or_fail()
◆ hb_blob_create_sub_blob()
◆ hb_blob_destroy()
◆ hb_blob_get_data()
◆ hb_blob_get_data_writable()
◆ hb_blob_get_empty()
◆ hb_blob_get_length()
◆ hb_blob_get_user_data()
◆ hb_blob_is_immutable()
◆ hb_blob_make_immutable()
◆ hb_blob_reference()
◆ hb_blob_set_user_data()