mirror of
https://github.com/nicbarker/clay.git
synced 2025-05-13 13:58:07 +00:00
Compare commits
No commits in common. "efad3deef8f5b762562b83eb02642bcb665136a8" and "5fae7a6249f986d11307504b5bdc2bd1f6481b8f" have entirely different histories.
efad3deef8
...
5fae7a6249
@ -117,7 +117,6 @@ TextElementConfig :: struct {
|
|||||||
letterSpacing: u16,
|
letterSpacing: u16,
|
||||||
lineHeight: u16,
|
lineHeight: u16,
|
||||||
wrapMode: TextWrapMode,
|
wrapMode: TextWrapMode,
|
||||||
hashStringContents: bool,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageElementConfig :: struct {
|
ImageElementConfig :: struct {
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
11
clay.h
11
clay.h
@ -324,7 +324,6 @@ typedef struct {
|
|||||||
uint16_t letterSpacing;
|
uint16_t letterSpacing;
|
||||||
uint16_t lineHeight;
|
uint16_t lineHeight;
|
||||||
Clay_TextElementConfigWrapMode wrapMode;
|
Clay_TextElementConfigWrapMode wrapMode;
|
||||||
bool hashStringContents;
|
|
||||||
#ifdef CLAY_EXTEND_CONFIG_TEXT
|
#ifdef CLAY_EXTEND_CONFIG_TEXT
|
||||||
CLAY_EXTEND_CONFIG_TEXT
|
CLAY_EXTEND_CONFIG_TEXT
|
||||||
#endif
|
#endif
|
||||||
@ -988,18 +987,9 @@ uint32_t Clay__HashTextWithConfig(Clay_String *text, Clay_TextElementConfig *con
|
|||||||
uint32_t hash = 0;
|
uint32_t hash = 0;
|
||||||
uintptr_t pointerAsNumber = (uintptr_t)text->chars;
|
uintptr_t pointerAsNumber = (uintptr_t)text->chars;
|
||||||
|
|
||||||
if (config->hashStringContents) {
|
|
||||||
uint32_t maxLengthToHash = CLAY__MIN(text->length, 256);
|
|
||||||
for (int i = 0; i < maxLengthToHash; i++) {
|
|
||||||
hash += text->chars[i];
|
|
||||||
hash += (hash << 10);
|
|
||||||
hash ^= (hash >> 6);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
hash += pointerAsNumber;
|
hash += pointerAsNumber;
|
||||||
hash += (hash << 10);
|
hash += (hash << 10);
|
||||||
hash ^= (hash >> 6);
|
hash ^= (hash >> 6);
|
||||||
}
|
|
||||||
|
|
||||||
hash += text->length;
|
hash += text->length;
|
||||||
hash += (hash << 10);
|
hash += (hash << 10);
|
||||||
@ -1199,7 +1189,6 @@ Clay_LayoutElementHashMapItem* Clay__AddHashMapItem(Clay_ElementId elementId, Cl
|
|||||||
if (hashItem->elementId.id == elementId.id) { // Collision - resolve based on generation
|
if (hashItem->elementId.id == elementId.id) { // Collision - resolve based on generation
|
||||||
item.nextIndex = hashItem->nextIndex;
|
item.nextIndex = hashItem->nextIndex;
|
||||||
if (hashItem->generation <= context->generation) { // First collision - assume this is the "same" element
|
if (hashItem->generation <= context->generation) { // First collision - assume this is the "same" element
|
||||||
hashItem->elementId = elementId; // Make sure to copy this across. If the stringId reference has changed, we should update the hash item to use the new one.
|
|
||||||
hashItem->generation = context->generation + 1;
|
hashItem->generation = context->generation + 1;
|
||||||
hashItem->layoutElement = layoutElement;
|
hashItem->layoutElement = layoutElement;
|
||||||
hashItem->debugData->collision = false;
|
hashItem->debugData->collision = false;
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user