[face] Clarify face_index handling
Fixes https://github.com/harfbuzz/harfbuzz/issues/3347
This commit is contained in:
parent
6da4b80e5f
commit
da7dba0002
|
@ -143,7 +143,7 @@ hb_face_create_for_tables (hb_reference_table_func_t reference_table_func,
|
||||||
|
|
||||||
typedef struct hb_face_for_data_closure_t {
|
typedef struct hb_face_for_data_closure_t {
|
||||||
hb_blob_t *blob;
|
hb_blob_t *blob;
|
||||||
unsigned int index;
|
uint16_t index;
|
||||||
} hb_face_for_data_closure_t;
|
} hb_face_for_data_closure_t;
|
||||||
|
|
||||||
static hb_face_for_data_closure_t *
|
static hb_face_for_data_closure_t *
|
||||||
|
@ -156,7 +156,7 @@ _hb_face_for_data_closure_create (hb_blob_t *blob, unsigned int index)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
closure->blob = blob;
|
closure->blob = blob;
|
||||||
closure->index = index;
|
closure->index = (uint16_t) (index & 0xFFFFu);
|
||||||
|
|
||||||
return closure;
|
return closure;
|
||||||
}
|
}
|
||||||
|
@ -195,9 +195,15 @@ _hb_face_for_data_reference_table (hb_face_t *face HB_UNUSED, hb_tag_t tag, void
|
||||||
* @index: The index of the face within @blob
|
* @index: The index of the face within @blob
|
||||||
*
|
*
|
||||||
* Constructs a new face object from the specified blob and
|
* Constructs a new face object from the specified blob and
|
||||||
* a face index into that blob. This is used for blobs of
|
* a face index into that blob.
|
||||||
* file formats such as Dfont and TTC that can contain more
|
*
|
||||||
* than one face.
|
* The face index is used for blobs of file formats such as TTC and
|
||||||
|
* and DFont that can contain more than one face. Face indices within
|
||||||
|
* such collections are zero-based.
|
||||||
|
*
|
||||||
|
* <note>Note: If the blob font format is not a collection, @index
|
||||||
|
* is ignored. Otherwise, only the lower 16-bits of @index are used.
|
||||||
|
* The unmodified @index can be accessed via hb_face_get_index().</note>
|
||||||
*
|
*
|
||||||
* Return value: (transfer full): The new face object
|
* Return value: (transfer full): The new face object
|
||||||
*
|
*
|
||||||
|
@ -420,7 +426,8 @@ hb_face_reference_blob (hb_face_t *face)
|
||||||
* Assigns the specified face-index to @face. Fails if the
|
* Assigns the specified face-index to @face. Fails if the
|
||||||
* face is immutable.
|
* face is immutable.
|
||||||
*
|
*
|
||||||
* <note>Note: face indices within a collection are zero-based.</note>
|
* <note>Note: changing the index has no effect on the face itself
|
||||||
|
* This only changes the value returned by hb_face_get_index().</note>
|
||||||
*
|
*
|
||||||
* Since: 0.9.2
|
* Since: 0.9.2
|
||||||
**/
|
**/
|
||||||
|
|
Loading…
Reference in New Issue