mirror of
https://github.com/nicbarker/clay.git
synced 2025-04-20 05:08:04 +00:00
fixes for html renderer
This commit is contained in:
parent
f335ad09e2
commit
2603add03c
9
clay.h
9
clay.h
@ -1569,6 +1569,7 @@ Clay__MeasuredWord *Clay__AddMeasuredWord(Clay__MeasuredWord word, Clay__Measure
|
|||||||
}
|
}
|
||||||
|
|
||||||
Clay__MeasureTextCacheItem *Clay__MeasureTextCached(Clay_String *text, Clay_TextElementConfig *config) {
|
Clay__MeasureTextCacheItem *Clay__MeasureTextCached(Clay_String *text, Clay_TextElementConfig *config) {
|
||||||
|
#ifndef CLAY_WASM
|
||||||
if (!Clay__MeasureText) {
|
if (!Clay__MeasureText) {
|
||||||
Clay__errorHandler.errorHandlerFunction(CLAY__INIT(Clay_ErrorData) {
|
Clay__errorHandler.errorHandlerFunction(CLAY__INIT(Clay_ErrorData) {
|
||||||
.errorType = CLAY_ERROR_TYPE_TEXT_MEASUREMENT_FUNCTION_NOT_PROVIDED,
|
.errorType = CLAY_ERROR_TYPE_TEXT_MEASUREMENT_FUNCTION_NOT_PROVIDED,
|
||||||
@ -1576,8 +1577,9 @@ Clay__MeasureTextCacheItem *Clay__MeasureTextCached(Clay_String *text, Clay_Text
|
|||||||
.userData = Clay__errorHandler.userData });
|
.userData = Clay__errorHandler.userData });
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
uint32_t id = Clay__HashTextWithConfig(text, config);
|
uint32_t id = Clay__HashTextWithConfig(text, config);
|
||||||
uint32_t hashBucket = id % (Clay__maxMeasureTextCacheWordCount / 8);
|
uint32_t hashBucket = id % (Clay__maxMeasureTextCacheWordCount / 32);
|
||||||
int32_t elementIndexPrevious = 0;
|
int32_t elementIndexPrevious = 0;
|
||||||
int32_t elementIndex = Clay__measureTextHashMap.internalArray[hashBucket];
|
int32_t elementIndex = Clay__measureTextHashMap.internalArray[hashBucket];
|
||||||
while (elementIndex != 0) {
|
while (elementIndex != 0) {
|
||||||
@ -3474,7 +3476,7 @@ void Clay__RenderDebugView() {
|
|||||||
|
|
||||||
CLAY_WASM_EXPORT("Clay_MinMemorySize")
|
CLAY_WASM_EXPORT("Clay_MinMemorySize")
|
||||||
uint32_t Clay_MinMemorySize() {
|
uint32_t Clay_MinMemorySize() {
|
||||||
Clay_Arena fakeArena = CLAY__INIT(Clay_Arena) { .capacity = INT64_MAX };
|
Clay_Arena fakeArena = CLAY__INIT(Clay_Arena) { .capacity = SIZE_MAX };
|
||||||
Clay__InitializePersistentMemory(&fakeArena);
|
Clay__InitializePersistentMemory(&fakeArena);
|
||||||
Clay__InitializeEphemeralMemory(&fakeArena);
|
Clay__InitializeEphemeralMemory(&fakeArena);
|
||||||
return fakeArena.nextAllocation;
|
return fakeArena.nextAllocation;
|
||||||
@ -3493,9 +3495,6 @@ Clay_Arena Clay_CreateArenaWithCapacityAndMemory(uint32_t capacity, void *offset
|
|||||||
void Clay_SetMeasureTextFunction(Clay_Dimensions (*measureTextFunction)(Clay_String *text, Clay_TextElementConfig *config)) {
|
void Clay_SetMeasureTextFunction(Clay_Dimensions (*measureTextFunction)(Clay_String *text, Clay_TextElementConfig *config)) {
|
||||||
Clay__MeasureText = measureTextFunction;
|
Clay__MeasureText = measureTextFunction;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CLAY_WASM
|
|
||||||
void Clay_SetQueryScrollOffsetFunction(Clay_Vector2 (*queryScrollOffsetFunction)(uint32_t elementId)) {
|
void Clay_SetQueryScrollOffsetFunction(Clay_Vector2 (*queryScrollOffsetFunction)(uint32_t elementId)) {
|
||||||
Clay__QueryScrollOffset = queryScrollOffsetFunction;
|
Clay__QueryScrollOffset = queryScrollOffsetFunction;
|
||||||
}
|
}
|
||||||
|
@ -311,7 +311,9 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
const importObject = {
|
const importObject = {
|
||||||
clay: { measureTextFunction: (addressOfDimensions, textToMeasure, addressOfConfig) => {
|
clay: {
|
||||||
|
|
||||||
|
measureTextFunction: (addressOfDimensions, textToMeasure, addressOfConfig) => {
|
||||||
let stringLength = memoryDataView.getUint32(textToMeasure, true);
|
let stringLength = memoryDataView.getUint32(textToMeasure, true);
|
||||||
let pointerToString = memoryDataView.getUint32(textToMeasure + 4, true);
|
let pointerToString = memoryDataView.getUint32(textToMeasure + 4, true);
|
||||||
let textConfig = readStructAtAddress(addressOfConfig, textConfigDefinition);
|
let textConfig = readStructAtAddress(addressOfConfig, textConfigDefinition);
|
||||||
@ -327,7 +329,8 @@
|
|||||||
memoryDataView.setFloat32(addressOfOffset, -container.scrollLeft, true);
|
memoryDataView.setFloat32(addressOfOffset, -container.scrollLeft, true);
|
||||||
memoryDataView.setFloat32(addressOfOffset + 4, -container.scrollTop, true);
|
memoryDataView.setFloat32(addressOfOffset + 4, -container.scrollTop, true);
|
||||||
}
|
}
|
||||||
}},
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
const { instance } = await WebAssembly.instantiateStreaming(
|
const { instance } = await WebAssembly.instantiateStreaming(
|
||||||
fetch("/clay/index.wasm"), importObject
|
fetch("/clay/index.wasm"), importObject
|
||||||
|
Loading…
Reference in New Issue
Block a user