From a79b6a9faf0698380f44ea1a795bc40fd413e710 Mon Sep 17 00:00:00 2001 From: Nic Barker Date: Mon, 2 Sep 2024 09:14:05 +1200 Subject: [PATCH] Bulk of functionality --- README.md | 4 +- bindings/odin/clay-odin/clay.odin | 49 +- bindings/odin/clay-odin/linux/clay.a | Bin 62564 -> 171452 bytes bindings/odin/clay-odin/macos-arm64/clay.a | Bin 55464 -> 120648 bytes bindings/odin/clay-odin/macos/clay.a | Bin 59296 -> 135208 bytes bindings/odin/clay-odin/wasm/clay.o | Bin 90309 -> 275198 bytes bindings/odin/clay-odin/windows/clay.lib | Bin 58456 -> 178294 bytes .../clay-official-website.odin | 48 +- clay.h | 1193 ++++++++++++++--- examples/clay-official-website/main.c | 1 - .../CMakeLists.txt | 2 +- .../raylib-sidebar-scrolling-container/main.c | 52 +- generator/array_set.template.c | 4 +- renderers/raylib/clay_renderer_raylib.c | 2 +- 14 files changed, 1086 insertions(+), 269 deletions(-) diff --git a/README.md b/README.md index 9a7b46a..4380142 100644 --- a/README.md +++ b/README.md @@ -1422,13 +1422,13 @@ switch (renderCommand->commandType) { `uint32_t CLAY_ID(char *label)` -Generates a `uint32_t` string hash from the provided `char *label`. Used both to generate ids when defining element macros, as well as for referencing ids later when using utility functions such as [Clay_PointerOver](#clay-pointerover) +Generates a `uint32_t` string id from the provided `char *label`. Used both to generate ids when defining element macros, as well as for referencing ids later when using utility functions such as [Clay_PointerOver](#clay-pointerover) ### CLAY_IDI() `uint32_t CLAY_IDI(char *label, int index)` -Generates a `uint32_t` string hash from the provided `char *label`, combined with the `int index`. Used for generating ids for sequential elements (such as in a `for` loop) without having to construct dynamic strings at runtime. +Generates a `uint32_t` string id from the provided `char *label`, combined with the `int index`. Used for generating ids for sequential elements (such as in a `for` loop) without having to construct dynamic strings at runtime. ## Data Structures & Definitions diff --git a/bindings/odin/clay-odin/clay.odin b/bindings/odin/clay-odin/clay.odin index 18cbd59..46222fd 100644 --- a/bindings/odin/clay-odin/clay.odin +++ b/bindings/odin/clay-odin/clay.odin @@ -57,6 +57,13 @@ BorderData :: struct { color: Color, } +ElementId :: struct { + id: u32, + offset: u32, + baseId: u32, + stringId: String, +} + when ODIN_OS == .Windows { EnumBackingType :: u32 } else { @@ -234,13 +241,13 @@ ClayArray :: struct($type: typeid) { foreign Clay { MinMemorySize :: proc() -> u32 --- CreateArenaWithCapacityAndMemory :: proc(capacity: u32, offset: [^]u8) -> Arena --- - SetPointerPosition :: proc(position: Vector2) --- + SetPointerState :: proc(position: Vector2, pointerDown: bool) --- Initialize :: proc(arena: Arena) --- UpdateScrollContainers :: proc(isPointerActive: bool, scrollDelta: Vector2, deltaTime: c.float) --- BeginLayout :: proc(screenWidth: c.int, screenHeight: c.int) --- EndLayout :: proc(screenWidth: c.int, screenHeight: c.int) -> ClayArray(RenderCommand) --- - PointerOver :: proc(id: u32) -> bool --- - GetScrollContainerData :: proc(id: u32) -> ScrollContainerData --- + PointerOver :: proc(id: ElementId) -> bool --- + GetScrollContainerData :: proc(id: ElementId) -> ScrollContainerData --- SetMeasureTextFunction :: proc(measureTextFunction: proc "c" (text: ^String, config: ^TextElementConfig) -> Dimensions) --- RenderCommandArray_Get :: proc(array: ^ClayArray(RenderCommand), index: i32) -> ^RenderCommand --- } @@ -259,14 +266,14 @@ foreign _ { @(link_prefix = "Clay_", default_calling_convention = "c", private) foreign Clay { - _OpenContainerElement :: proc(id: u32, layoutConfig: ^LayoutConfig) --- - _OpenRectangleElement :: proc(id: u32, layoutConfig: ^LayoutConfig, rectangleConfig: ^RectangleElementConfig) --- - _OpenTextElement :: proc(id: u32, text: String, textConfig: ^TextElementConfig) --- - _OpenImageElement :: proc(id: u32, layoutConfig: ^LayoutConfig, imageConfig: ^ImageElementConfig) --- - _OpenScrollElement :: proc(id: u32, layoutConfig: ^LayoutConfig, imageConfig: ^ScrollElementConfig) -> rawptr --- - _OpenFloatingElement :: proc(id: u32, layoutConfig: ^LayoutConfig, imageConfig: ^FloatingElementConfig) -> rawptr --- - _OpenBorderElement :: proc(id: u32, layoutConfig: ^LayoutConfig, imageConfig: ^BorderElementConfig) --- - _OpenCustomElement :: proc(id: u32, layoutConfig: ^LayoutConfig, imageConfig: ^CustomElementConfig) --- + _OpenContainerElement :: proc(id: ElementId, layoutConfig: ^LayoutConfig) --- + _OpenRectangleElement :: proc(id: ElementId, layoutConfig: ^LayoutConfig, rectangleConfig: ^RectangleElementConfig) --- + _OpenTextElement :: proc(id: ElementId, text: String, textConfig: ^TextElementConfig) --- + _OpenImageElement :: proc(id: ElementId, layoutConfig: ^LayoutConfig, imageConfig: ^ImageElementConfig) --- + _OpenScrollElement :: proc(id: ElementId, layoutConfig: ^LayoutConfig, imageConfig: ^ScrollElementConfig) --- + _OpenFloatingElement :: proc(id: ElementId, layoutConfig: ^LayoutConfig, imageConfig: ^FloatingElementConfig) --- + _OpenBorderElement :: proc(id: ElementId, layoutConfig: ^LayoutConfig, imageConfig: ^BorderElementConfig) --- + _OpenCustomElement :: proc(id: ElementId, layoutConfig: ^LayoutConfig, imageConfig: ^CustomElementConfig) --- _CloseElementWithChildren :: proc() --- _CloseScrollElement :: proc() --- _CloseFloatingElement :: proc() --- @@ -278,52 +285,52 @@ foreign Clay { _CustomElementConfigArray_Add :: proc(array: ^ClayArray(CustomElementConfig), config: CustomElementConfig) -> ^CustomElementConfig --- _ScrollElementConfigArray_Add :: proc(array: ^ClayArray(ScrollElementConfig), config: ScrollElementConfig) -> ^ScrollElementConfig --- _BorderElementConfigArray_Add :: proc(array: ^ClayArray(BorderElementConfig), config: BorderElementConfig) -> ^BorderElementConfig --- - _HashString :: proc(toHash: String, index: u32) -> u32 --- + _HashString :: proc(toHash: String, index: u32) -> ElementId --- } @(require_results, deferred_none = _CloseElementWithChildren) -Container :: proc(id: u32, layoutConfig: ^LayoutConfig) -> bool { +Container :: proc(id: ElementId, layoutConfig: ^LayoutConfig) -> bool { _OpenContainerElement(id, layoutConfig) return true } @(require_results, deferred_none = _CloseElementWithChildren) -Rectangle :: proc(id: u32, layoutConfig: ^LayoutConfig, rectangleConfig: ^RectangleElementConfig) -> bool { +Rectangle :: proc(id: ElementId, layoutConfig: ^LayoutConfig, rectangleConfig: ^RectangleElementConfig) -> bool { _OpenRectangleElement(id, layoutConfig, rectangleConfig) return true } -Text :: proc(id: u32, text: string, textConfig: ^TextElementConfig) -> bool { +Text :: proc(id: ElementId, text: string, textConfig: ^TextElementConfig) -> bool { _OpenTextElement(id, MakeString(text), textConfig) return true } @(require_results, deferred_none = _CloseElementWithChildren) -Image :: proc(id: u32, layoutConfig: ^LayoutConfig, imageConfig: ^ImageElementConfig) -> bool { +Image :: proc(id: ElementId, layoutConfig: ^LayoutConfig, imageConfig: ^ImageElementConfig) -> bool { _OpenImageElement(id, layoutConfig, imageConfig) return true } @(require_results, deferred_none = _CloseScrollElement) -Scroll :: proc(id: u32, layoutConfig: ^LayoutConfig, scrollConfig: ^ScrollElementConfig) -> bool { +Scroll :: proc(id: ElementId, layoutConfig: ^LayoutConfig, scrollConfig: ^ScrollElementConfig) -> bool { _OpenScrollElement(id, layoutConfig, scrollConfig) return true } @(require_results, deferred_none = _CloseFloatingElement) -Floating :: proc(id: u32, layoutConfig: ^LayoutConfig, floatingConfig: ^FloatingElementConfig) -> bool { +Floating :: proc(id: ElementId, layoutConfig: ^LayoutConfig, floatingConfig: ^FloatingElementConfig) -> bool { _OpenFloatingElement(id, layoutConfig, floatingConfig) return true } @(require_results, deferred_none = _CloseElementWithChildren) -Border :: proc(id: u32, layoutConfig: ^LayoutConfig, borderConfig: ^BorderElementConfig) -> bool { +Border :: proc(id: ElementId, layoutConfig: ^LayoutConfig, borderConfig: ^BorderElementConfig) -> bool { _OpenBorderElement(id, layoutConfig, borderConfig) return true } @(require_results, deferred_none = _CloseElementWithChildren) -Custom :: proc(id: u32, layoutConfig: ^LayoutConfig, customConfig: ^CustomElementConfig) -> bool { +Custom :: proc(id: ElementId, layoutConfig: ^LayoutConfig, customConfig: ^CustomElementConfig) -> bool { _OpenCustomElement(id, layoutConfig, customConfig) return true } @@ -412,6 +419,6 @@ MakeString :: proc(label: string) -> String { return String{chars = raw_data(label), length = cast(c.int)len(label)} } -ID :: proc(label: string, index: u32 = 0) -> u32 { +ID :: proc(label: string, index: u32 = 0) -> ElementId { return _HashString(MakeString(label), index) } diff --git a/bindings/odin/clay-odin/linux/clay.a b/bindings/odin/clay-odin/linux/clay.a index f6a59c7868c929b2d160ab0a0e018fca404d692a..fed4bbe2150a32254934a88ac9f8ed0ebf3a2d2c 100644 GIT binary patch literal 171452 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 literal 62564 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 diff --git a/bindings/odin/clay-odin/macos-arm64/clay.a b/bindings/odin/clay-odin/macos-arm64/clay.a index 37f765b4aeec78e87131fa7f75c9da2cecae24c8..126e32d5350cec6de214fa78a864a1c7e7d0c1e2 100644 GIT binary patch literal 120648 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 vtop-QE8I0is5* literal 55464 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 diff --git a/bindings/odin/clay-odin/macos/clay.a b/bindings/odin/clay-odin/macos/clay.a index 0608ed179a989b00949dcb9bf2c5da35d7092753..cb22bf99375945ed4ff44a30f7dd03791ce677f7 100644 GIT binary patch literal 135208 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 literal 59296 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 diff --git a/bindings/odin/examples/clay-official-website/clay-official-website.odin b/bindings/odin/examples/clay-official-website/clay-official-website.odin index 5c973f6..6b3d748 100644 --- a/bindings/odin/examples/clay-official-website/clay-official-website.odin +++ b/bindings/odin/examples/clay-official-website/clay-official-website.odin @@ -112,13 +112,15 @@ LandingPageDesktop :: proc() { LandingPageMobile :: proc() { if clay.Container( clay.ID("LandingPage1Mobile"), - clay.Layout({ - layoutDirection = .TOP_TO_BOTTOM, - sizing = {width = clay.SizingGrow({}), height = clay.SizingFit({min = cast(f32)windowHeight - 70})}, - childAlignment = {x = .CENTER, y = .CENTER}, - padding = {16, 32}, - childGap = 32, - }), + clay.Layout( + { + layoutDirection = .TOP_TO_BOTTOM, + sizing = {width = clay.SizingGrow({}), height = clay.SizingFit({min = cast(f32)windowHeight - 70})}, + childAlignment = {x = .CENTER, y = .CENTER}, + padding = {16, 32}, + childGap = 32, + }, + ), ) { if clay.Container(clay.ID("LeftText"), clay.Layout({sizing = {width = clay.SizingGrow({})}, layoutDirection = .TOP_TO_BOTTOM, childGap = 8})) { clay.Text( @@ -331,7 +333,7 @@ HighPerformancePageMobile :: proc(lerpValue: f32) { } } -RendererButtonActive :: proc(id: u32, index: i32, text: string) { +RendererButtonActive :: proc(id: clay.ElementId, index: i32, text: string) { if clay.Rectangle( id, clay.Layout({sizing = {width = clay.SizingFixed(300)}, padding = {16, 16}}), @@ -341,7 +343,7 @@ RendererButtonActive :: proc(id: u32, index: i32, text: string) { } } -RendererButtonInactive :: proc(id: u32, index: u32, text: string) { +RendererButtonInactive :: proc(id: clay.ElementId, index: u32, text: string) { if clay.Border(id, clay.Layout({}), clay.BorderConfigOutsideRadius({2, COLOR_RED}, 10)) { if clay.Rectangle( clay.ID("RendererButtonInactiveInner", index), @@ -377,11 +379,7 @@ RendererPage :: proc(titleTextConfig: clay.TextElementConfig, widthSizing: clay. clay.ID("RendererRightText"), clay.Layout({sizing = {width = widthSizing}, childAlignment = {x = .CENTER}, layoutDirection = .TOP_TO_BOTTOM, childGap = 16}), ) { - clay.Text( - clay.ID("RendererTextRightTitle"), - "Try changing renderer!", - clay.TextConfig({fontSize = 36, fontId = FONT_ID_BODY_36, textColor = COLOR_ORANGE}), - ) + clay.Text(clay.ID("RendererTextRightTitle"), "Try changing renderer!", clay.TextConfig({fontSize = 36, fontId = FONT_ID_BODY_36, textColor = COLOR_ORANGE})) if clay.Container(clay.ID("Spacer"), clay.Layout({sizing = {width = clay.SizingGrow({max = 32})}})) {} RendererButtonActive(clay.ID("RendererSelectButtonActive", 0), 0, "Raylib Renderer") } @@ -405,13 +403,15 @@ RendererPageDesktop :: proc() { RendererPageMobile :: proc() { if clay.Rectangle( clay.ID("RendererMobile"), - clay.Layout({ - layoutDirection = .TOP_TO_BOTTOM, - sizing = {clay.SizingGrow({}), clay.SizingFit({min = cast(f32)windowHeight - 50})}, - childAlignment = {x = .CENTER, y = .CENTER}, - padding = {x = 16, y = 32}, - childGap = 32, - }), + clay.Layout( + { + layoutDirection = .TOP_TO_BOTTOM, + sizing = {clay.SizingGrow({}), clay.SizingFit({min = cast(f32)windowHeight - 50})}, + childAlignment = {x = .CENTER, y = .CENTER}, + padding = {x = 16, y = 32}, + childGap = 32, + }, + ), clay.RectangleConfig({color = COLOR_LIGHT}), ) { RendererPage({fontSize = 48, fontId = FONT_ID_TITLE_48, textColor = COLOR_RED}, clay.SizingGrow({})) @@ -450,7 +450,7 @@ createLayout :: proc(lerpValue: f32) -> clay.ClayArray(clay.RenderCommand) { clay.Text(clay.ID("LinkDocsText"), "Docs", clay.TextConfig({fontId = FONT_ID_BODY_24, fontSize = 24, textColor = {61, 26, 5, 255}})) } } - githubButtonId: u32 = clay.ID("HeaderButtonGithub") + githubButtonId: clay.ElementId = clay.ID("HeaderButtonGithub") if clay.Border(clay.ID("LinkGithubOuter"), clay.Layout({}), clay.BorderConfigOutsideRadius({2, COLOR_RED}, 10)) { if clay.Rectangle( githubButtonId, @@ -535,14 +535,14 @@ main :: proc() { for !raylib.WindowShouldClose() { defer free_all(context.temp_allocator) - + animationLerpValue += raylib.GetFrameTime() if animationLerpValue > 1 { animationLerpValue = animationLerpValue - 2 } windowWidth = raylib.GetScreenWidth() windowHeight = raylib.GetScreenHeight() - clay.SetPointerPosition(transmute(clay.Vector2)raylib.GetMousePosition()) + clay.SetPointerState(transmute(clay.Vector2)raylib.GetMousePosition(), raylib.IsMouseButtonDown(raylib.MouseButton.LEFT)) clay.UpdateScrollContainers(false, transmute(clay.Vector2)raylib.GetMouseWheelMoveV(), raylib.GetFrameTime()) renderCommands: clay.ClayArray(clay.RenderCommand) = createLayout(animationLerpValue < 0 ? (animationLerpValue + 1) : (1 - animationLerpValue)) raylib.BeginDrawing() diff --git a/clay.h b/clay.h index b878134..f85a1cc 100644 --- a/clay.h +++ b/clay.h @@ -70,9 +70,11 @@ #define CLAY_SIZING_PERCENT(percentOfParent) (Clay_SizingAxis) { .type = CLAY__SIZING_TYPE_PERCENT, .sizePercent = percentOfParent } -#define CLAY_ID(label) (Clay__HashId) { CLAY_STRING(label), 0, Clay__HashString(CLAY_STRING(label), 0) } +#define CLAY_ID(label) Clay__HashString(CLAY_STRING(label), 0) -#define CLAY_IDI(label, index) (Clay__HashId) { CLAY_STRING(label), index, Clay__HashString(CLAY_STRING(label), index) } +#define CLAY_IDI(label, index) Clay__HashString(CLAY_STRING(label), index) + +#define CLAY_ID_AUTO (Clay_ElementId) { .stringId = CLAY_STRING("Auto Generated ID"), .id = Clay__RehashWithNumber(Clay__dynamicElementIndexBaseHash.id, Clay__dynamicElementIndex++) } #define CLAY__STRING_LENGTH(s) ((sizeof(s) / sizeof(s[0])) - sizeof(s[0])) @@ -116,6 +118,8 @@ children \ Clay__CloseElementWithChildren() +bool Clay__warningsEnabled = true; + // Note: Clay_String is not guaranteed to be null terminated. It may be if created from a literal C string, // but it is also used to represent slices. typedef struct { @@ -135,14 +139,41 @@ typedef struct { typedef struct { - uint32_t capacity; - uint32_t length; - Clay_String *internalArray; -} Clay_StringArray; + Clay_String baseMessage; + Clay_String dynamicMessage; +} Clay__Warning; -Clay_StringArray Clay_warnings = (Clay_StringArray) {}; +Clay__Warning CLAY__WARNING_DEFAULT = (Clay__Warning) {}; -Clay_String *Clay__StringArray_Add(Clay_StringArray *array, Clay_String item) +#pragma region generated +typedef struct +{ + uint32_t capacity; + uint32_t length; + Clay__Warning *internalArray; +} Clay__WarningArray; + +Clay__WarningArray Clay__WarningArray_Allocate_Arena(uint32_t capacity, Clay_Arena *arena) { + uint64_t totalSizeBytes = capacity * sizeof(Clay_String); + Clay__WarningArray array = (Clay__WarningArray){.capacity = capacity, .length = 0}; + uint64_t nextAllocAddress = (uint64_t)(arena->nextAllocation + arena->memory); + uint64_t arenaOffsetAligned = nextAllocAddress + (CLAY__ALIGNMENT(Clay_String) - (nextAllocAddress % CLAY__ALIGNMENT(Clay_String))); + arenaOffsetAligned -= (uint64_t)arena->memory; + if (arenaOffsetAligned + totalSizeBytes <= arena->capacity) { + array.internalArray = (Clay__Warning*)(arena->memory + arenaOffsetAligned); + arena->nextAllocation = arenaOffsetAligned + totalSizeBytes; + } + else { + #ifdef CLAY_OVERFLOW_TRAP + raise(SIGTRAP); + #endif + } + return array; +} + +Clay__WarningArray Clay_warnings = (Clay__WarningArray) {}; + +Clay__Warning *Clay__WarningArray_Add(Clay__WarningArray *array, Clay__Warning item) { if (array->length < array->capacity) { array->internalArray[array->length++] = item; @@ -153,27 +184,7 @@ Clay_String *Clay__StringArray_Add(Clay_StringArray *array, Clay_String item) raise(SIGTRAP); #endif } - return &CLAY__STRING_DEFAULT; -} - -Clay_StringArray Clay__StringArray_Allocate_Arena(uint32_t capacity, Clay_Arena *arena) -{ - uint64_t totalSizeBytes = capacity * sizeof(Clay_String); - Clay_StringArray array = (Clay_StringArray){.capacity = capacity, .length = 0}; - uint64_t nextAllocAddress = (uint64_t)(arena->nextAllocation + arena->memory); - uint64_t arenaOffsetAligned = nextAllocAddress + (CLAY__ALIGNMENT(Clay_String) - (nextAllocAddress % CLAY__ALIGNMENT(Clay_String))); - arenaOffsetAligned -= (uint64_t)arena->memory; - if (arenaOffsetAligned + totalSizeBytes <= arena->capacity) { - array.internalArray = (Clay_String*)(arena->memory + arenaOffsetAligned); - arena->nextAllocation = arenaOffsetAligned + totalSizeBytes; - } - else { - Clay__StringArray_Add(&Clay_warnings, CLAY_STRING("Attempting to allocate array in arena, but arena is already at capacity and would overflow.")); - #ifdef CLAY_OVERFLOW_TRAP - raise(SIGTRAP); - #endif - } - return array; + return &CLAY__WARNING_DEFAULT; } void* Clay__Array_Allocate_Arena(uint32_t capacity, uint32_t itemSize, uint32_t alignment, Clay_Arena *arena) @@ -187,7 +198,9 @@ void* Clay__Array_Allocate_Arena(uint32_t capacity, uint32_t itemSize, uint32_t return (void*)(arena->memory + arenaOffsetAligned); } else { - Clay__StringArray_Add(&Clay_warnings, CLAY_STRING("Attempting to allocate array in arena, but arena is already at capacity and would overflow.")); + if (Clay__warningsEnabled) { + Clay__WarningArray_Add(&Clay_warnings, (Clay__Warning) { CLAY_STRING("Attempting to allocate array in arena, but arena is already at capacity and would overflow.") }); + } #ifdef CLAY_OVERFLOW_TRAP raise(SIGTRAP); #endif @@ -200,7 +213,9 @@ bool Clay__Array_RangeCheck(int index, uint32_t length) if (index < length && index >= 0) { return true; } - Clay__StringArray_Add(&Clay_warnings, CLAY_STRING("Array access out of bounds.")); + if (Clay__warningsEnabled) { + Clay__WarningArray_Add(&Clay_warnings, (Clay__Warning) { CLAY_STRING("Array access out of bounds.") }); + } #ifdef CLAY_OVERFLOW_TRAP raise(SIGTRAP); #endif @@ -212,7 +227,9 @@ bool Clay__Array_IncrementCapacityCheck(uint32_t length, uint32_t capacity) if (length < capacity) { return true; } - Clay__StringArray_Add(&Clay_warnings, CLAY_STRING("Attempting to add to array that is already at capacity.")); + if (Clay__warningsEnabled) { + Clay__WarningArray_Add(&Clay_warnings, (Clay__Warning) { CLAY_STRING("Attempting to add to array that is already at capacity.") }); + } #ifdef CLAY_OVERFLOW_TRAP raise(SIGTRAP); #endif @@ -236,11 +253,40 @@ Clay__BoolArray Clay__BoolArray_Allocate_Arena(uint32_t capacity, Clay_Arena *ar #pragma endregion // __GENERATED__ template +// baseId + offset = id typedef struct { - Clay_String id; - uint32_t index; - uint32_t hash; -} Clay__HashId; + uint32_t id; + uint32_t offset; + uint32_t baseId; + Clay_String stringId; +} Clay_ElementId; + +Clay_ElementId CLAY__ELEMENT_ID_DEFAULT = (Clay_ElementId) {}; + +// __GENERATED__ template array_define,array_get,array_add TYPE=Clay_ElementId NAME=Clay__ElementIdArray DEFAULT_VALUE=&CLAY__ELEMENT_ID_DEFAULT +#pragma region generated +typedef struct +{ + uint32_t capacity; + uint32_t length; + Clay_ElementId *internalArray; +} Clay__ElementIdArray; + +Clay__ElementIdArray Clay__ElementIdArray_Allocate_Arena(uint32_t capacity, Clay_Arena *arena) { + return (Clay__ElementIdArray){.capacity = capacity, .length = 0, .internalArray = (Clay_ElementId *)Clay__Array_Allocate_Arena(capacity, sizeof(Clay_ElementId), CLAY__ALIGNMENT(Clay_ElementId), arena)}; +} +Clay_ElementId *Clay__ElementIdArray_Get(Clay__ElementIdArray *array, int index) { + return Clay__Array_RangeCheck(index, array->length) ? &array->internalArray[index] : &CLAY__ELEMENT_ID_DEFAULT; +} +Clay_ElementId *Clay__ElementIdArray_Add(Clay__ElementIdArray *array, Clay_ElementId item) { + if (Clay__Array_IncrementCapacityCheck(array->length, array->capacity)) { + array->internalArray[array->length++] = item; + return &array->internalArray[array->length - 1]; + } + return &CLAY__ELEMENT_ID_DEFAULT; +} +#pragma endregion +// __GENERATED__ template typedef struct { float r, g, b, a; @@ -431,13 +477,21 @@ Clay_RectangleElementConfig *Clay__RectangleElementConfigArray_Add(Clay__Rectang #pragma endregion // __GENERATED__ template -typedef struct +typedef enum +{ + CLAY_TEXT_WRAP_NONE, + CLAY_TEXT_WRAP_NEWLINES, + CLAY_TEXT_WRAP_WORDS, +} Clay_TextElementConfigWrapMode; + +typedef struct __attribute__((__packed__)) { Clay_Color textColor; uint16_t fontId; uint16_t fontSize; uint16_t letterSpacing; uint16_t lineSpacing; + Clay_TextElementConfigWrapMode wrapMode; #ifdef CLAY_EXTEND_CONFIG_TEXT CLAY_EXTEND_CONFIG_TEXT #endif @@ -638,7 +692,7 @@ Clay_BorderElementConfig *Clay__BorderElementConfigArray_Add(Clay__BorderElement typedef struct { - struct t_Clay_LayoutElement **elements; + int32_t *elements; uint16_t length; } Clay__LayoutElementChildren; @@ -834,18 +888,52 @@ Clay__ScrollContainerDataInternal Clay__ScrollContainerDataInternalArray_RemoveS #pragma endregion // __GENERATED__ template +typedef struct +{ + bool collision; + bool collapsed; +} Clay__DebugElementData; + +Clay__DebugElementData CLAY__DEBUG_ELEMENT_DATA_DEFAULT = (Clay__DebugElementData) {}; + +// __GENERATED__ template array_define,array_add,array_get TYPE=Clay__DebugElementData NAME=Clay__DebugElementDataArray DEFAULT_VALUE=&CLAY__DEBUG_ELEMENT_DATA_DEFAULT +#pragma region generated +typedef struct +{ + uint32_t capacity; + uint32_t length; + Clay__DebugElementData *internalArray; +} Clay__DebugElementDataArray; + +Clay__DebugElementDataArray Clay__DebugElementDataArray_Allocate_Arena(uint32_t capacity, Clay_Arena *arena) { + return (Clay__DebugElementDataArray){.capacity = capacity, .length = 0, .internalArray = (Clay__DebugElementData *)Clay__Array_Allocate_Arena(capacity, sizeof(Clay__DebugElementData), CLAY__ALIGNMENT(Clay__DebugElementData), arena)}; +} +Clay__DebugElementData *Clay__DebugElementDataArray_Add(Clay__DebugElementDataArray *array, Clay__DebugElementData item) { + if (Clay__Array_IncrementCapacityCheck(array->length, array->capacity)) { + array->internalArray[array->length++] = item; + return &array->internalArray[array->length - 1]; + } + return &CLAY__DEBUG_ELEMENT_DATA_DEFAULT; +} +Clay__DebugElementData *Clay__DebugElementDataArray_Get(Clay__DebugElementDataArray *array, int index) { + return Clay__Array_RangeCheck(index, array->length) ? &array->internalArray[index] : &CLAY__DEBUG_ELEMENT_DATA_DEFAULT; +} +#pragma endregion +// __GENERATED__ template + typedef struct { Clay_BoundingBox boundingBox; - Clay_String idString; - uint32_t id; + Clay_ElementId elementId; Clay_LayoutElement* layoutElement; int32_t nextIndex; + uint32_t generation; + Clay__DebugElementData *debugData; } Clay_LayoutElementHashMapItem; Clay_LayoutElementHashMapItem CLAY__LAYOUT_ELEMENT_HASH_MAP_ITEM_DEFAULT = (Clay_LayoutElementHashMapItem) { .layoutElement = &CLAY__LAYOUT_ELEMENT_DEFAULT }; -// __GENERATED__ template array_define,array_get,array_add,array_set TYPE=Clay_LayoutElementHashMapItem NAME=Clay__LayoutElementHashMapItemArray DEFAULT_VALUE=&CLAY__LAYOUT_ELEMENT_HASH_MAP_ITEM_DEFAULT +// __GENERATED__ template array_define,array_get,array_add TYPE=Clay_LayoutElementHashMapItem NAME=Clay__LayoutElementHashMapItemArray DEFAULT_VALUE=&CLAY__LAYOUT_ELEMENT_HASH_MAP_ITEM_DEFAULT #pragma region generated typedef struct { @@ -867,17 +955,6 @@ Clay_LayoutElementHashMapItem *Clay__LayoutElementHashMapItemArray_Add(Clay__Lay } return &CLAY__LAYOUT_ELEMENT_HASH_MAP_ITEM_DEFAULT; } -void Clay__LayoutElementHashMapItemArray_Set(Clay__LayoutElementHashMapItemArray *array, int index, Clay_LayoutElementHashMapItem value) { - if (index < array->capacity && index >= 0) { - array->internalArray[index] = value; - array->length = index < array->length ? array->length : index + 1; - } else { - Clay__StringArray_Add(&Clay_warnings, CLAY_STRING("Attempting to allocate array in arena, but arena is already at capacity and would overflow.")); - #ifdef CLAY_OVERFLOW_TRAP - raise(SIGTRAP); - #endif - } -} #pragma endregion // __GENERATED__ template @@ -917,7 +994,9 @@ void Clay__MeasureTextCacheItemArray_Set(Clay__MeasureTextCacheItemArray *array, array->internalArray[index] = value; array->length = index < array->length ? array->length : index + 1; } else { - Clay__StringArray_Add(&Clay_warnings, CLAY_STRING("Attempting to allocate array in arena, but arena is already at capacity and would overflow.")); + if (Clay__warningsEnabled) { + Clay__WarningArray_Add(&Clay_warnings, (Clay__Warning) { CLAY_STRING("Attempting to allocate array in arena, but arena is already at capacity and would overflow.") }); + } #ifdef CLAY_OVERFLOW_TRAP raise(SIGTRAP); #endif @@ -951,7 +1030,9 @@ void Clay__int32_tArray_Set(Clay__int32_tArray *array, int index, int32_t value) array->internalArray[index] = value; array->length = index < array->length ? array->length : index + 1; } else { - Clay__StringArray_Add(&Clay_warnings, CLAY_STRING("Attempting to allocate array in arena, but arena is already at capacity and would overflow.")); + if (Clay__warningsEnabled) { + Clay__WarningArray_Add(&Clay_warnings, (Clay__Warning) { CLAY_STRING("Attempting to allocate array in arena, but arena is already at capacity and would overflow.") }); + } #ifdef CLAY_OVERFLOW_TRAP raise(SIGTRAP); #endif @@ -998,7 +1079,7 @@ Clay__LayoutElementTreeNode *Clay__LayoutElementTreeNodeArray_Get(Clay__LayoutEl typedef struct { - Clay_LayoutElement *layoutElement; + uint32_t layoutElementIndex; uint32_t parentId; // This can be zero in the case of the root layout tree uint32_t clipElementId; // This can be zero if there is no clip element uint32_t zIndex; @@ -1031,17 +1112,81 @@ Clay__LayoutElementTreeRoot *Clay__LayoutElementTreeRootArray_Get(Clay__LayoutEl #pragma endregion // __GENERATED__ template -Clay_Vector2 Clay__pointerPosition = (Clay_Vector2) { -1, -1 }; +// __GENERATED__ template array_define TYPE=uint8_t NAME=Clay__CharArray DEFAULT_VALUE=0 +#pragma region generated +typedef struct +{ + uint32_t capacity; + uint32_t length; + uint8_t *internalArray; +} Clay__CharArray; + +Clay__CharArray Clay__CharArray_Allocate_Arena(uint32_t capacity, Clay_Arena *arena) { + return (Clay__CharArray){.capacity = capacity, .length = 0, .internalArray = (uint8_t *)Clay__Array_Allocate_Arena(capacity, sizeof(uint8_t), CLAY__ALIGNMENT(uint8_t), arena)}; +} +#pragma endregion +// __GENERATED__ template + +Clay_String Clay__WriteStringToCharBuffer(Clay__CharArray *buffer, Clay_String string) { + for (int i = 0; i < string.length; i++) { + buffer->internalArray[buffer->length + i] = string.chars[i]; + } + buffer->length += string.length; + return (Clay_String) { .length = string.length, .chars = (const char *)(buffer->internalArray + buffer->length - string.length) }; +} + +// __GENERATED__ template array_define,array_add TYPE=Clay_String NAME=Clay__StringArray DEFAULT_VALUE=&CLAY__STRING_DEFAULT +#pragma region generated +typedef struct +{ + uint32_t capacity; + uint32_t length; + Clay_String *internalArray; +} Clay__StringArray; + +Clay__StringArray Clay__StringArray_Allocate_Arena(uint32_t capacity, Clay_Arena *arena) { + return (Clay__StringArray){.capacity = capacity, .length = 0, .internalArray = (Clay_String *)Clay__Array_Allocate_Arena(capacity, sizeof(Clay_String), CLAY__ALIGNMENT(Clay_String), arena)}; +} +Clay_String *Clay__StringArray_Add(Clay__StringArray *array, Clay_String item) { + if (Clay__Array_IncrementCapacityCheck(array->length, array->capacity)) { + array->internalArray[array->length++] = item; + return &array->internalArray[array->length - 1]; + } + return &CLAY__STRING_DEFAULT; +} +#pragma endregion +// __GENERATED__ template + +typedef enum +{ + CLAY__POINTER_INFO_PRESSED_THIS_FRAME, + CLAY__POINTER_INFO_PRESSED, + CLAY__POINTER_INFO_RELEASED_THIS_FRAME, + CLAY__POINTER_INFO_RELEASED, +} Clay__PointerInfoMouseDownState; + +typedef struct +{ + Clay_Vector2 position; + Clay__PointerInfoMouseDownState state; +} Clay__PointerInfo; + +Clay__PointerInfo Clay__pointerInfo = (Clay__PointerInfo) { -1, -1 }; Clay_Dimensions Clay__layoutDimensions = (Clay_Dimensions){}; +Clay_ElementId Clay__dynamicElementIndexBaseHash = (Clay_ElementId) { .id = 128476991, .stringId = CLAY_STRING("Auto ID") }; +uint32_t Clay__dynamicElementIndex = 0; bool Clay__debugModeEnabled = false; +uint32_t Clay__debugSelectedElementId = 0; +uint32_t Clay__debugViewWidth = 400; +uint32_t Clay__generation = 0; uint64_t Clay__arenaResetOffset = 0; Clay_Arena Clay__internalArena; // Layout Elements / Render Commands Clay_LayoutElementArray Clay__layoutElements; Clay_RenderCommandArray Clay__renderCommands; Clay__LayoutElementPointerArray Clay__openLayoutElementStack; -Clay__LayoutElementPointerArray Clay__layoutElementChildren; -Clay__LayoutElementPointerArray Clay__layoutElementChildrenBuffer; +Clay__int32_tArray Clay__layoutElementChildren; +Clay__int32_tArray Clay__layoutElementChildrenBuffer; Clay__LayoutElementPointerArray Clay__textElementPointers; Clay__LayoutElementPointerArray Clay__imageElementPointers; Clay__LayoutElementPointerArray Clay__layoutElementReusableBuffer; @@ -1055,6 +1200,7 @@ Clay__ScrollElementConfigArray Clay__scrollElementConfigs; Clay__CustomElementConfigArray Clay__customElementConfigs; Clay__BorderElementConfigArray Clay__borderElementConfigs; // Misc Data Structures +Clay__StringArray Clay__layoutElementIdStrings; Clay__LayoutElementTreeNodeArray Clay__layoutElementTreeNodeArray1; Clay__LayoutElementTreeRootArray Clay__layoutElementTreeRoots; Clay__LayoutElementHashMapItemArray Clay__layoutElementsHashMapInternal; @@ -1062,9 +1208,12 @@ Clay__int32_tArray Clay__layoutElementsHashMap; Clay__MeasureTextCacheItemArray Clay__measureTextHashMapInternal; Clay__int32_tArray Clay__measureTextHashMap; Clay__int32_tArray Clay__openClipElementStack; -Clay__int32_tArray Clay__pointerOverIds; +Clay__ElementIdArray Clay__pointerOverIds; +Clay__int32_tArray Clay__reusableElementIndexBuffer; Clay__ScrollContainerDataInternalArray Clay__scrollContainerDatas; Clay__BoolArray Clay__treeNodeVisited; +Clay__CharArray Clay__dynamicStringData; +Clay__DebugElementDataArray Clay__debugElementData; #if CLAY_WASM __attribute__((import_module("clay"), import_name("measureTextFunction"))) Clay_Dimensions Clay__MeasureText(Clay_String *text, Clay_TextElementConfig *config); @@ -1074,26 +1223,43 @@ Clay__BoolArray Clay__treeNodeVisited; Clay_String LAST_HASH; -uint32_t Clay__HashString(Clay_String key, const uint32_t offset) { +Clay_ElementId Clay__HashString(Clay_String key, const uint32_t offset) { uint32_t hash = 0; + uint32_t base = 0; for (int i = 0; i < key.length; i++) { - hash += key.chars[i]; - hash += (hash << 10); - hash ^= (hash >> 6); + base += key.chars[i]; + base += (base << 10); + base ^= (base >> 6); } + hash = base; hash += offset; hash += (hash << 10); hash ^= (hash >> 6); hash += (hash << 3); + base += (base << 3); hash ^= (hash >> 11); + base ^= (base >> 11); hash += (hash << 15); + base += (base << 15); #ifdef CLAY_DEBUG LAST_HASH = key; LAST_HASH.length = (int)offset; #endif - return hash + 1; // Reserve the hash result of zero as "null id" + return (Clay_ElementId) { .stringId = key, .id = hash + 1, .offset = offset, .baseId = base + 1 }; // Reserve the hash result of zero as "null id" +} + +Clay_ElementId Clay__Rehash(Clay_ElementId elementId, uint32_t number) { + uint32_t id = elementId.baseId; + id += number; + id += (id << 10); + id ^= (id >> 6); + + id += (id << 3); + id ^= (id >> 11); + id += (id << 15); + return (Clay_ElementId) { .stringId = elementId.stringId, .id = id, .offset = number, .baseId = elementId.baseId }; } uint32_t Clay__RehashWithNumber(uint32_t id, uint32_t number) { @@ -1164,26 +1330,39 @@ bool Clay__PointIsInsideRect(Clay_Vector2 point, Clay_BoundingBox rect) { return point.x >= rect.x && point.x <= rect.x + rect.width && point.y >= rect.y && point.y <= rect.y + rect.height; } -Clay_LayoutElementHashMapItem* Clay__AddHashMapItem(Clay__HashId hashId, Clay_LayoutElement* layoutElement) { - Clay_LayoutElementHashMapItem item = (Clay_LayoutElementHashMapItem) { .id = hashId.hash, .layoutElement = layoutElement, .nextIndex = -1 }; - uint32_t hashBucket = hashId.hash % Clay__layoutElementsHashMap.capacity; +Clay_LayoutElementHashMapItem* Clay__AddHashMapItem(Clay_ElementId elementId, Clay_LayoutElement* layoutElement) { + Clay_LayoutElementHashMapItem item = (Clay_LayoutElementHashMapItem) { .elementId = elementId, .layoutElement = layoutElement, .nextIndex = -1, .generation = Clay__generation + 1 }; + uint32_t hashBucket = elementId.id % Clay__layoutElementsHashMap.capacity; int32_t hashItemPrevious = -1; int32_t hashItemIndex = Clay__layoutElementsHashMap.internalArray[hashBucket]; while (hashItemIndex != -1) { // Just replace collision, not a big deal - leave it up to the end user Clay_LayoutElementHashMapItem *hashItem = Clay__LayoutElementHashMapItemArray_Get(&Clay__layoutElementsHashMapInternal, hashItemIndex); - if (hashItem->id == hashId.hash) { // Collision - swap out linked list item + if (hashItem->elementId.id == elementId.id) { // Collision - resolve based on generation item.nextIndex = hashItem->nextIndex; - Clay__LayoutElementHashMapItemArray_Set(&Clay__layoutElementsHashMapInternal, hashItemIndex, item); - return Clay__LayoutElementHashMapItemArray_Get(&Clay__layoutElementsHashMapInternal, hashItemIndex); + if (hashItem->generation <= Clay__generation) { // First collision - assume this is the "same" element + hashItem->generation = Clay__generation + 1; + hashItem->layoutElement = layoutElement; + hashItem->debugData->collision = false; + } else { // Multiple collisions this frame - two elements have the same ID + if (Clay__warningsEnabled) { + Clay__WarningArray_Add(&Clay_warnings, (Clay__Warning) { CLAY_STRING("Duplicate ID detected for element: "), Clay__WriteStringToCharBuffer(&Clay__dynamicStringData, elementId.stringId) }); + } + if (Clay__debugModeEnabled) { + hashItem->debugData->collision = true; + } + } + return hashItem; } hashItemPrevious = hashItemIndex; hashItemIndex = hashItem->nextIndex; } - if (hashItemPrevious != -1) { - Clay__LayoutElementHashMapItemArray_Get(&Clay__layoutElementsHashMapInternal, hashItemPrevious)->nextIndex = (int32_t)Clay__layoutElementsHashMapInternal.length; - } Clay_LayoutElementHashMapItem *hashItem = Clay__LayoutElementHashMapItemArray_Add(&Clay__layoutElementsHashMapInternal, item); - Clay__layoutElementsHashMap.internalArray[hashBucket] = (int32_t)Clay__layoutElementsHashMapInternal.length - 1; + hashItem->debugData = Clay__DebugElementDataArray_Add(&Clay__debugElementData, (Clay__DebugElementData) {}); + if (hashItemPrevious != -1) { + Clay__LayoutElementHashMapItemArray_Get(&Clay__layoutElementsHashMapInternal, hashItemPrevious)->nextIndex = (int32_t)Clay__layoutElementsHashMapInternal.length - 1; + } else { + Clay__layoutElementsHashMap.internalArray[hashBucket] = (int32_t)Clay__layoutElementsHashMapInternal.length - 1; + } return hashItem; } @@ -1191,8 +1370,8 @@ Clay_LayoutElementHashMapItem *Clay__GetHashMapItem(uint32_t id) { uint32_t hashBucket = id % Clay__layoutElementsHashMap.capacity; int32_t elementIndex = Clay__layoutElementsHashMap.internalArray[hashBucket]; while (elementIndex != -1) { - Clay_LayoutElementHashMapItem *hashEntry = Clay__LayoutElementHashMapItemArray_Get(&Clay__layoutElementsHashMapInternal, elementIndex); - if (hashEntry->id == id) { + Clay_LayoutElementHashMapItem *hashEntry = Clay__LayoutElementHashMapItemArray_Get(&Clay__layoutElementsHashMapInternal, elementIndex); + if (hashEntry->elementId.id == id) { return hashEntry; } elementIndex = hashEntry->nextIndex; @@ -1200,12 +1379,12 @@ Clay_LayoutElementHashMapItem *Clay__GetHashMapItem(uint32_t id) { return CLAY__NULL; } -Clay_LayoutElement *Clay__OpenElementWithParent(Clay__HashId hashId, Clay__LayoutElementType commandType, Clay_LayoutConfig* layoutConfig, Clay_ElementConfigUnion elementConfig) { +Clay_LayoutElement *Clay__OpenElementWithParent(Clay_ElementId elementId, Clay__LayoutElementType commandType, Clay_LayoutConfig* layoutConfig, Clay_ElementConfigUnion elementConfig) { Clay_LayoutElement layoutElement = (Clay_LayoutElement) { #ifdef CLAY_DEBUG - .name = LAST_HASH, + .name = elementId.stringId, #endif - .id = hashId.hash, + .id = elementId.id, .elementType = commandType, .minDimensions = (Clay_Dimensions) { (float)layoutConfig->padding.x * 2, (float)layoutConfig->padding.y * 2 }, .children = (Clay__LayoutElementChildren) { .length = 0 }, @@ -1230,74 +1409,78 @@ Clay_LayoutElement *Clay__OpenElementWithParent(Clay__HashId hashId, Clay__Layou Clay__openLayoutElement = Clay_LayoutElementArray_Add(&Clay__layoutElements, layoutElement); Clay__LayoutElementPointerArray_Add(&Clay__openLayoutElementStack, Clay__openLayoutElement); - Clay__AddHashMapItem(hashId, Clay__openLayoutElement); + Clay__AddHashMapItem(elementId, Clay__openLayoutElement); + Clay__StringArray_Add(&Clay__layoutElementIdStrings, elementId.stringId); return Clay__openLayoutElement; } -Clay_LayoutElement *Clay__OpenElement(Clay__HashId id, Clay__LayoutElementType commandType, Clay_LayoutConfig *layoutConfig, Clay_ElementConfigUnion elementConfig) { +Clay_LayoutElement *Clay__OpenElement(Clay_ElementId id, Clay__LayoutElementType commandType, Clay_LayoutConfig *layoutConfig, Clay_ElementConfigUnion elementConfig) { Clay__openLayoutElement->children.length++; Clay_LayoutElement *element = Clay__OpenElementWithParent(id, commandType, layoutConfig, elementConfig); - Clay__LayoutElementPointerArray_Add(&Clay__layoutElementChildrenBuffer, element); + Clay__int32_tArray_Add(&Clay__layoutElementChildrenBuffer, (int32_t)Clay__layoutElements.length - 1); return element; } -void Clay__OpenContainerElement(Clay__HashId id, Clay_LayoutConfig *layoutConfig) { +void Clay__OpenContainerElement(Clay_ElementId id, Clay_LayoutConfig *layoutConfig) { Clay__OpenElement(id, CLAY__LAYOUT_ELEMENT_TYPE_CONTAINER, layoutConfig, (Clay_ElementConfigUnion){ CLAY__NULL }); } -void Clay__OpenRectangleElement(Clay__HashId id, Clay_LayoutConfig *layoutConfig, Clay_RectangleElementConfig *rectangleConfig) { +void Clay__OpenRectangleElement(Clay_ElementId id, Clay_LayoutConfig *layoutConfig, Clay_RectangleElementConfig *rectangleConfig) { Clay__OpenElement(id, CLAY__LAYOUT_ELEMENT_TYPE_RECTANGLE, layoutConfig, (Clay_ElementConfigUnion) { .rectangleElementConfig = rectangleConfig }); } -void Clay__OpenImageElement(Clay__HashId id, Clay_LayoutConfig *layoutConfig, Clay_ImageElementConfig *imageConfig) { +void Clay__OpenImageElement(Clay_ElementId id, Clay_LayoutConfig *layoutConfig, Clay_ImageElementConfig *imageConfig) { Clay__OpenElement(id, CLAY__LAYOUT_ELEMENT_TYPE_IMAGE, layoutConfig, (Clay_ElementConfigUnion) { .imageElementConfig = imageConfig }); Clay__LayoutElementPointerArray_Add(&Clay__imageElementPointers, Clay__openLayoutElement); } -void Clay__OpenBorderElement(Clay__HashId id, Clay_LayoutConfig *layoutConfig, Clay_BorderElementConfig *borderConfig) { +void Clay__OpenBorderElement(Clay_ElementId id, Clay_LayoutConfig *layoutConfig, Clay_BorderElementConfig *borderConfig) { Clay__OpenElement(id, CLAY__LAYOUT_ELEMENT_TYPE_BORDER_CONTAINER, layoutConfig, (Clay_ElementConfigUnion){ .borderElementConfig = borderConfig }); } -void Clay__OpenCustomElement(Clay__HashId id, Clay_LayoutConfig *layoutConfig, Clay_CustomElementConfig *customElementConfig) { +void Clay__OpenCustomElement(Clay_ElementId id, Clay_LayoutConfig *layoutConfig, Clay_CustomElementConfig *customElementConfig) { Clay__OpenElement(id, CLAY__LAYOUT_ELEMENT_TYPE_CUSTOM, layoutConfig, (Clay_ElementConfigUnion) { .customElementConfig = customElementConfig }); } -Clay_LayoutElement *Clay__OpenScrollElement(Clay__HashId id, Clay_LayoutConfig *layoutConfig, Clay_ScrollElementConfig *scrollConfig) { - Clay_LayoutElement *scrollElement = Clay__OpenElement(id, CLAY__LAYOUT_ELEMENT_TYPE_SCROLL_CONTAINER, layoutConfig, (Clay_ElementConfigUnion){ .scrollElementConfig = scrollConfig }); +void Clay__OpenScrollElement(Clay_ElementId elementId, Clay_LayoutConfig *layoutConfig, Clay_ScrollElementConfig *scrollConfig) { + Clay_LayoutElement *scrollElement = Clay__OpenElement(elementId, CLAY__LAYOUT_ELEMENT_TYPE_SCROLL_CONTAINER, layoutConfig, (Clay_ElementConfigUnion){ .scrollElementConfig = scrollConfig }); Clay__int32_tArray_Add(&Clay__openClipElementStack, (int)scrollElement->id); Clay__ScrollContainerDataInternal *scrollOffset = CLAY__NULL; for (int i = 0; i < Clay__scrollContainerDatas.length; i++) { Clay__ScrollContainerDataInternal *mapping = Clay__ScrollContainerDataInternalArray_Get(&Clay__scrollContainerDatas, i); - if (id.hash == mapping->elementId) { + if (elementId.id == mapping->elementId) { scrollOffset = mapping; scrollOffset->layoutElement = scrollElement; scrollOffset->openThisFrame = true; } } if (!scrollOffset) { - Clay__ScrollContainerDataInternalArray_Add(&Clay__scrollContainerDatas, (Clay__ScrollContainerDataInternal){.elementId = id.hash, .layoutElement = scrollElement, .scrollOrigin = {-1,-1}, .openThisFrame = true}); + Clay__ScrollContainerDataInternalArray_Add(&Clay__scrollContainerDatas, (Clay__ScrollContainerDataInternal){.elementId = elementId.id, .layoutElement = scrollElement, .scrollOrigin = {-1,-1}, .openThisFrame = true}); } - return scrollElement; } -Clay_LayoutElement *Clay__OpenFloatingElement(Clay__HashId id, Clay_LayoutConfig *layoutConfig, Clay_FloatingElementConfig *floatingElementConfig) { +void Clay__OpenFloatingElement(Clay_ElementId id, Clay_LayoutConfig *layoutConfig, Clay_FloatingElementConfig *floatingElementConfig) { Clay_LayoutElement *parent = Clay__openLayoutElement; - if (floatingElementConfig->parentId > 0) { + uint32_t originalParentId = floatingElementConfig->parentId; + if (floatingElementConfig->parentId == 0) { + Clay_FloatingElementConfig newConfig = *floatingElementConfig; + newConfig.parentId = Clay__openLayoutElement->id; + floatingElementConfig = Clay__FloatingElementConfigArray_Add(&Clay__floatingElementConfigs, newConfig); + } else { Clay_LayoutElementHashMapItem *parentItem = Clay__GetHashMapItem(floatingElementConfig->parentId); if (!parentItem) { - Clay__StringArray_Add(&Clay_warnings, CLAY_STRING("Clay Warning: Couldn't find parent container to attach floating container to.")); + Clay__WarningArray_Add(&Clay_warnings, (Clay__Warning) { CLAY_STRING("Clay Warning: Couldn't find parent container to attach floating container to.") }); } else { parent = parentItem->layoutElement; } } Clay__OpenElementWithParent(id, CLAY__LAYOUT_ELEMENT_TYPE_FLOATING_CONTAINER, layoutConfig, (Clay_ElementConfigUnion) { .floatingElementConfig = floatingElementConfig }); Clay__LayoutElementTreeRootArray_Add(&Clay__layoutElementTreeRoots, (Clay__LayoutElementTreeRoot) { - .layoutElement = Clay__openLayoutElement, + .layoutElementIndex = Clay__layoutElements.length - 1, .parentId = parent->id, .zIndex = floatingElementConfig->zIndex, - .clipElementId = Clay__openClipElementStack.length > 0 ? Clay__int32_tArray_Get(&Clay__openClipElementStack, (int)Clay__openClipElementStack.length - 1) : 0, + .clipElementId = originalParentId == 0 ? (Clay__openClipElementStack.length > 0 ? Clay__int32_tArray_Get(&Clay__openClipElementStack, (int)Clay__openClipElementStack.length - 1) : 0) : 0, }); - return Clay__openLayoutElement; } void Clay__AttachContainerChildren() { @@ -1306,7 +1489,8 @@ void Clay__AttachContainerChildren() { if (layoutConfig->layoutDirection == CLAY_LEFT_TO_RIGHT) { for (int i = 0; i < Clay__openLayoutElement->children.length; i++) { - Clay_LayoutElement *child = *Clay__LayoutElementPointerArray_Get(&Clay__layoutElementChildrenBuffer, (int)Clay__layoutElementChildrenBuffer.length - Clay__openLayoutElement->children.length + i); + int32_t childIndex = Clay__int32_tArray_Get(&Clay__layoutElementChildrenBuffer, (int)Clay__layoutElementChildrenBuffer.length - Clay__openLayoutElement->children.length + i); + Clay_LayoutElement *child = Clay_LayoutElementArray_Get(&Clay__layoutElements, childIndex); Clay__openLayoutElement->dimensions.width += child->dimensions.width; Clay__openLayoutElement->dimensions.height = CLAY__MAX(Clay__openLayoutElement->dimensions.height, child->dimensions.height + layoutConfig->padding.y * 2); // Minimum size of child elements doesn't matter to scroll containers as they can shrink and hide their contents @@ -1316,7 +1500,7 @@ void Clay__AttachContainerChildren() { if (Clay__openLayoutElement->elementType != CLAY__LAYOUT_ELEMENT_TYPE_SCROLL_CONTAINER || !Clay__openLayoutElement->elementConfig.scrollElementConfig->vertical) { Clay__openLayoutElement->minDimensions.height = CLAY__MAX(Clay__openLayoutElement->minDimensions.height, child->minDimensions.height + layoutConfig->padding.y * 2); } - Clay__LayoutElementPointerArray_Add(&Clay__layoutElementChildren, child); + Clay__int32_tArray_Add(&Clay__layoutElementChildren, childIndex); } float childGap = (float)(CLAY__MAX(Clay__openLayoutElement->children.length - 1, 0) * layoutConfig->childGap); Clay__openLayoutElement->dimensions.width += childGap; @@ -1324,7 +1508,8 @@ void Clay__AttachContainerChildren() { } else if (layoutConfig->layoutDirection == CLAY_TOP_TO_BOTTOM) { for (int i = 0; i < Clay__openLayoutElement->children.length; i++) { - Clay_LayoutElement *child = *Clay__LayoutElementPointerArray_Get(&Clay__layoutElementChildrenBuffer, (int)Clay__layoutElementChildrenBuffer.length - Clay__openLayoutElement->children.length + i); + int32_t childIndex = Clay__int32_tArray_Get(&Clay__layoutElementChildrenBuffer, (int)Clay__layoutElementChildrenBuffer.length - Clay__openLayoutElement->children.length + i); + Clay_LayoutElement *child = Clay_LayoutElementArray_Get(&Clay__layoutElements, childIndex); Clay__openLayoutElement->dimensions.height += child->dimensions.height; Clay__openLayoutElement->dimensions.width = CLAY__MAX(Clay__openLayoutElement->dimensions.width, child->dimensions.width + layoutConfig->padding.x * 2); // Minimum size of child elements doesn't matter to scroll containers as they can shrink and hide their contents @@ -1334,7 +1519,7 @@ void Clay__AttachContainerChildren() { if (Clay__openLayoutElement->elementType != CLAY__LAYOUT_ELEMENT_TYPE_SCROLL_CONTAINER || !Clay__openLayoutElement->elementConfig.scrollElementConfig->horizontal) { Clay__openLayoutElement->minDimensions.width = CLAY__MAX(Clay__openLayoutElement->minDimensions.width, child->minDimensions.width + layoutConfig->padding.x * 2); } - Clay__LayoutElementPointerArray_Add(&Clay__layoutElementChildren, child); + Clay__int32_tArray_Add(&Clay__layoutElementChildren, childIndex); } float childGap = (float)(CLAY__MAX(Clay__openLayoutElement->children.length - 1, 0) * layoutConfig->childGap); Clay__openLayoutElement->dimensions.height += childGap; @@ -1363,7 +1548,7 @@ void Clay__CloseElement() { Clay__openLayoutElement = *Clay__LayoutElementPointerArray_Get(&Clay__openLayoutElementStack, (int)Clay__openLayoutElementStack.length - 1); } -void Clay__OpenTextElement(Clay__HashId id, Clay_String text, Clay_TextElementConfig *textConfig) { +void Clay__OpenTextElement(Clay_ElementId id, Clay_String text, Clay_TextElementConfig *textConfig) { Clay_LayoutElement *internalElement = Clay__OpenElement(id, CLAY__LAYOUT_ELEMENT_TYPE_TEXT, &CLAY_LAYOUT_DEFAULT, (Clay_ElementConfigUnion) { .textElementConfig = textConfig }); Clay_Dimensions textMeasured = Clay__MeasureTextCached(&text, textConfig); internalElement->dimensions.width = textMeasured.width; @@ -1393,9 +1578,9 @@ void Clay__InitializeEphemeralMemory(Clay_Arena *arena) { // Ephemeral Memory - reset every frame Clay__internalArena.nextAllocation = Clay__arenaResetOffset; - Clay__layoutElementChildrenBuffer = Clay__LayoutElementPointerArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); + Clay__layoutElementChildrenBuffer = Clay__int32_tArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__layoutElements = Clay_LayoutElementArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); - Clay_warnings = Clay__StringArray_Allocate_Arena(100, arena); + Clay_warnings = Clay__WarningArray_Allocate_Arena(100, arena); Clay__layoutConfigs = Clay__LayoutConfigArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__rectangleElementConfigs = Clay__RectangleElementConfigArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); @@ -1406,17 +1591,20 @@ void Clay__InitializeEphemeralMemory(Clay_Arena *arena) { Clay__customElementConfigs = Clay__CustomElementConfigArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__borderElementConfigs = Clay__BorderElementConfigArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); + Clay__layoutElementIdStrings = Clay__StringArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__layoutElementTreeNodeArray1 = Clay__LayoutElementTreeNodeArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__layoutElementTreeRoots = Clay__LayoutElementTreeRootArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); - Clay__layoutElementChildren = Clay__LayoutElementPointerArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); + Clay__layoutElementChildren = Clay__int32_tArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__openLayoutElementStack = Clay__LayoutElementPointerArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__textElementPointers = Clay__LayoutElementPointerArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__imageElementPointers = Clay__LayoutElementPointerArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); - Clay__layoutElementReusableBuffer = Clay__LayoutElementPointerArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); + Clay__layoutElementReusableBuffer = Clay__LayoutElementPointerArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); // TODO convert this to indexes instead of pointers Clay__renderCommands = Clay_RenderCommandArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__treeNodeVisited = Clay__BoolArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__treeNodeVisited.length = Clay__treeNodeVisited.capacity; // This array is accessed directly rather than behaving as a list Clay__openClipElementStack = Clay__int32_tArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); + Clay__reusableElementIndexBuffer = Clay__int32_tArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); + Clay__dynamicStringData = Clay__CharArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); } void Clay__InitializePersistentMemory(Clay_Arena *arena) { @@ -1425,7 +1613,8 @@ void Clay__InitializePersistentMemory(Clay_Arena *arena) { Clay__layoutElementsHashMap = Clay__int32_tArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__measureTextHashMapInternal = Clay__MeasureTextCacheItemArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__measureTextHashMap = Clay__int32_tArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); - Clay__pointerOverIds = Clay__int32_tArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); + Clay__pointerOverIds = Clay__ElementIdArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); + Clay__debugElementData = Clay__DebugElementDataArray_Allocate_Arena(CLAY_MAX_ELEMENT_COUNT, arena); Clay__arenaResetOffset = arena->nextAllocation; } @@ -1490,13 +1679,13 @@ float Clay__DistributeSizeAmongChildren(bool xAxis, float sizeToDistribute, Clay } void Clay__SizeContainersAlongAxis(bool xAxis) { - Clay__LayoutElementPointerArray bfsBuffer = Clay__layoutElementChildrenBuffer; + Clay__int32_tArray bfsBuffer = Clay__layoutElementChildrenBuffer; Clay__LayoutElementPointerArray resizableContainerBuffer = Clay__openLayoutElementStack; for (int rootIndex = 0; rootIndex < Clay__layoutElementTreeRoots.length; ++rootIndex) { bfsBuffer.length = 0; Clay__LayoutElementTreeRoot *root = Clay__LayoutElementTreeRootArray_Get(&Clay__layoutElementTreeRoots, rootIndex); - Clay_LayoutElement *rootElement = root->layoutElement; - Clay__LayoutElementPointerArray_Add(&bfsBuffer, root->layoutElement); + Clay_LayoutElement *rootElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, (int)root->layoutElementIndex); + Clay__int32_tArray_Add(&bfsBuffer, (int32_t)root->layoutElementIndex); // Size floating containers to their parents if (rootElement->elementType == CLAY__LAYOUT_ELEMENT_TYPE_FLOATING_CONTAINER) { @@ -1504,10 +1693,10 @@ void Clay__SizeContainersAlongAxis(bool xAxis) { if (parentItem) { Clay_LayoutElement *parentLayoutElement = parentItem->layoutElement; if (rootElement->layoutConfig->sizing.width.type == CLAY__SIZING_TYPE_GROW) { - rootElement->dimensions.width = parentLayoutElement->dimensions.width - (float)parentLayoutElement->layoutConfig->padding.x * 2; + rootElement->dimensions.width = parentLayoutElement->dimensions.width; } if (rootElement->layoutConfig->sizing.height.type == CLAY__SIZING_TYPE_GROW) { - rootElement->dimensions.height = parentLayoutElement->dimensions.height - (float)parentLayoutElement->layoutConfig->padding.x * 2; + rootElement->dimensions.height = parentLayoutElement->dimensions.height; } } } @@ -1516,7 +1705,8 @@ void Clay__SizeContainersAlongAxis(bool xAxis) { rootElement->dimensions.height = CLAY__MIN(CLAY__MAX(rootElement->dimensions.height, rootElement->layoutConfig->sizing.height.sizeMinMax.min), rootElement->layoutConfig->sizing.height.sizeMinMax.max); for (int i = 0; i < bfsBuffer.length; ++i) { - Clay_LayoutElement *parent = *Clay__LayoutElementPointerArray_Get(&bfsBuffer, i); + int32_t parentIndex = Clay__int32_tArray_Get(&bfsBuffer, i); + Clay_LayoutElement *parent = Clay_LayoutElementArray_Get(&Clay__layoutElements, parentIndex); Clay_LayoutConfig *parentStyleConfig = parent->layoutConfig; float parentSize = xAxis ? parent->dimensions.width : parent->dimensions.height; float parentPadding = (float)(xAxis ? parent->layoutConfig->padding.x : parent->layoutConfig->padding.y); @@ -1526,15 +1716,16 @@ void Clay__SizeContainersAlongAxis(bool xAxis) { float parentChildGap = parentStyleConfig->childGap; for (int childOffset = 0; childOffset < parent->children.length; childOffset++) { - Clay_LayoutElement *childElement = parent->children.elements[childOffset]; + int32_t childElementIndex = parent->children.elements[childOffset]; + Clay_LayoutElement *childElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, childElementIndex); Clay_SizingAxis childSizing = xAxis ? childElement->layoutConfig->sizing.width : childElement->layoutConfig->sizing.height; float childSize = xAxis ? childElement->dimensions.width : childElement->dimensions.height; if (childElement->elementType != CLAY__LAYOUT_ELEMENT_TYPE_TEXT && childElement->children.length > 0) { - Clay__LayoutElementPointerArray_Add(&bfsBuffer, childElement); + Clay__int32_tArray_Add(&bfsBuffer, childElementIndex); } - if (childSizing.type != CLAY__SIZING_TYPE_PERCENT) { + if (childSizing.type != CLAY__SIZING_TYPE_PERCENT && (childElement->elementType != CLAY__LAYOUT_ELEMENT_TYPE_TEXT || childElement->elementConfig.textElementConfig->wrapMode == CLAY_TEXT_WRAP_WORDS)) { Clay__LayoutElementPointerArray_Add(&resizableContainerBuffer, childElement); } @@ -1551,7 +1742,8 @@ void Clay__SizeContainersAlongAxis(bool xAxis) { // Expand percentage containers to size for (int childOffset = 0; childOffset < parent->children.length; childOffset++) { - Clay_LayoutElement *childElement = parent->children.elements[childOffset]; + int32_t childElementIndex = parent->children.elements[childOffset]; + Clay_LayoutElement *childElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, childElementIndex); Clay_SizingAxis childSizing = xAxis ? childElement->layoutConfig->sizing.width : childElement->layoutConfig->sizing.height; float *childSize = xAxis ? &childElement->dimensions.width : &childElement->dimensions.height; if (childSizing.type == CLAY__SIZING_TYPE_PERCENT) { @@ -1626,6 +1818,10 @@ void Clay__CalculateFinalLayout() { Clay_LayoutElement *containerElement = *Clay__LayoutElementPointerArray_Get(&Clay__textElementPointers, i); Clay_String text = containerElement->text; Clay_TextElementConfig *textConfig = containerElement->elementConfig.textElementConfig; + // Short circuit all wrap calculations if wrap mode is none + if (textConfig->wrapMode == CLAY_TEXT_WRAP_NONE) { + continue; + } containerElement->elementType = CLAY__LAYOUT_ELEMENT_TYPE_CONTAINER; // Clone the style config to prevent pollution of other elements that share this config containerElement->layoutConfig = Clay__LayoutConfigArray_Add(&Clay__layoutConfigs, *containerElement->layoutConfig); @@ -1642,8 +1838,8 @@ void Clay__CalculateFinalLayout() { }; Clay_Dimensions lineDimensions = (Clay_Dimensions){}; float spaceWidth = Clay__MeasureText(&CLAY__SPACECHAR, textConfig).width; // todo may as well cache it somewhere - while (wordStartIndex < text.length) { - if (text.chars[wordEndIndex] == ' ' || text.chars[wordEndIndex] == '\n' || wordEndIndex == text.length) { + while (wordStartIndex <= text.length) { + if (text.chars[wordEndIndex] == ' ' || (text.chars[wordEndIndex] == '\n' && textConfig->wrapMode >= CLAY_TEXT_WRAP_NEWLINES) || wordEndIndex == text.length) { Clay_String stringToRender = (Clay_String) { .length = wordEndIndex - lineStartIndex, .chars = text.chars + lineStartIndex }; Clay_String wordToMeasure = (Clay_String) { .length = wordEndIndex - wordStartIndex, .chars = text.chars + wordStartIndex }; // Clip off trailing spaces and newline characters @@ -1652,7 +1848,7 @@ void Clay__CalculateFinalLayout() { lineDimensions.height = wordDimensions.height; bool isOverlappingBoundaries = (lineDimensions.width - spaceWidth) > containerElement->dimensions.width + 0.01f; // Epsilon for floating point inaccuracy of adding components // Need to wrap - if (isOverlappingBoundaries) { + if (isOverlappingBoundaries && textConfig->wrapMode == CLAY_TEXT_WRAP_WORDS) { lineDimensions.width -= spaceWidth; // We can wrap at the most recent word start if (wordStartIndex != lineStartIndex) { @@ -1691,7 +1887,7 @@ void Clay__CalculateFinalLayout() { containerElement->dimensions.height += lineDimensions.height + (float)(containerElement->children.length > 0 ? textConfig->lineSpacing : 0); containerElement->children.length++; lineDimensions = (Clay_Dimensions) {}; - Clay__LayoutElementPointerArray_Add(&Clay__layoutElementChildren, newTextLayoutElement); + Clay__int32_tArray_Add(&Clay__layoutElementChildren, (int32_t)Clay__layoutElements.length - 1); } else { // In the middle of a word wordEndIndex++; @@ -1711,7 +1907,7 @@ void Clay__CalculateFinalLayout() { dfsBuffer.length = 0; for (int i = 0; i < Clay__layoutElementTreeRoots.length; ++i) { Clay__LayoutElementTreeRoot *root = Clay__LayoutElementTreeRootArray_Get(&Clay__layoutElementTreeRoots, i); - Clay__LayoutElementTreeNodeArray_Add(&dfsBuffer, (Clay__LayoutElementTreeNode) { .layoutElement = root->layoutElement }); + Clay__LayoutElementTreeNodeArray_Add(&dfsBuffer, (Clay__LayoutElementTreeNode) { .layoutElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, (int)root->layoutElementIndex) }); } Clay__treeNodeVisited.internalArray[0] = false; while (dfsBuffer.length > 0) { @@ -1720,14 +1916,14 @@ void Clay__CalculateFinalLayout() { if (!Clay__treeNodeVisited.internalArray[dfsBuffer.length - 1]) { Clay__treeNodeVisited.internalArray[dfsBuffer.length - 1] = true; // If the element has no children or is the container for a text element, don't bother inspecting it - if (currentElement->children.length == 0 || (currentElement->children.length > 0 && currentElement->children.elements[0]->elementType == CLAY__LAYOUT_ELEMENT_TYPE_TEXT)) { + if (currentElement->elementType == CLAY__LAYOUT_ELEMENT_TYPE_TEXT || currentElement->children.length == 0 || Clay_LayoutElementArray_Get(&Clay__layoutElements, currentElement->children.elements[0])->elementType == CLAY__LAYOUT_ELEMENT_TYPE_TEXT) { dfsBuffer.length--; continue; } // Add the children to the DFS buffer (needs to be pushed in reverse so that stack traversal is in correct layout order) for (int i = 0; i < currentElement->children.length; i++) { Clay__treeNodeVisited.internalArray[dfsBuffer.length] = false; - Clay__LayoutElementTreeNodeArray_Add(&dfsBuffer, (Clay__LayoutElementTreeNode) { .layoutElement = currentElement->children.elements[i] }); + Clay__LayoutElementTreeNodeArray_Add(&dfsBuffer, (Clay__LayoutElementTreeNode) { .layoutElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, currentElement->children.elements[i]) }); // TODO fix before release } continue; } @@ -1741,7 +1937,7 @@ void Clay__CalculateFinalLayout() { if (layoutConfig->layoutDirection == CLAY_LEFT_TO_RIGHT) { // Resize any parent containers that have grown in height along their non layout axis for (int j = 0; j < currentElement->children.length; ++j) { - Clay_LayoutElement *childElement = currentElement->children.elements[j]; + Clay_LayoutElement *childElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, currentElement->children.elements[j]); float childHeightWithPadding = CLAY__MAX(childElement->dimensions.height + layoutConfig->padding.y * 2, currentElement->dimensions.height); currentElement->dimensions.height = CLAY__MIN(CLAY__MAX(childHeightWithPadding, layoutConfig->sizing.height.sizeMinMax.min), layoutConfig->sizing.height.sizeMinMax.max); } @@ -1749,7 +1945,7 @@ void Clay__CalculateFinalLayout() { // Resizing along the layout axis float contentHeight = (float)layoutConfig->padding.y * 2; for (int j = 0; j < currentElement->children.length; ++j) { - Clay_LayoutElement *childElement = currentElement->children.elements[j]; + Clay_LayoutElement *childElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, currentElement->children.elements[j]); contentHeight += childElement->dimensions.height; } contentHeight += (float)(CLAY__MAX(currentElement->children.length - 1, 0) * layoutConfig->childGap); @@ -1760,25 +1956,19 @@ void Clay__CalculateFinalLayout() { // Calculate sizing along the Y axis Clay__SizeContainersAlongAxis(false); - // layoutElementsHashMap has non-linear access pattern so just resetting .length won't zero out the data. - // Need to zero it all out here - for (int i = 0; i < Clay__layoutElementsHashMap.capacity; ++i) { - Clay__layoutElementsHashMap.internalArray[i] = -1; - } - Clay__layoutElementsHashMapInternal.length = 0; - // Calculate final positions and generate render commands Clay__renderCommands.length = 0; dfsBuffer.length = 0; for (int rootIndex = 0; rootIndex < Clay__layoutElementTreeRoots.length; ++rootIndex) { dfsBuffer.length = 0; Clay__LayoutElementTreeRoot *root = Clay__LayoutElementTreeRootArray_Get(&Clay__layoutElementTreeRoots, rootIndex); + Clay_LayoutElement *rootElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, (int)root->layoutElementIndex); Clay_Vector2 rootPosition = (Clay_Vector2) {}; Clay_LayoutElementHashMapItem *parentHashMapItem = Clay__GetHashMapItem(root->parentId); // Position root floating containers - if (parentHashMapItem) { - Clay_FloatingElementConfig *config = root->layoutElement->elementConfig.floatingElementConfig; - Clay_Dimensions rootDimensions = root->layoutElement->dimensions; + if (rootElement->elementType == CLAY__LAYOUT_ELEMENT_TYPE_FLOATING_CONTAINER && parentHashMapItem) { + Clay_FloatingElementConfig *config = rootElement->elementConfig.floatingElementConfig; + Clay_Dimensions rootDimensions = rootElement->dimensions; Clay_BoundingBox parentBoundingBox = parentHashMapItem->boundingBox; // Set X position Clay_Vector2 targetAttachPosition = (Clay_Vector2){}; @@ -1834,13 +2024,13 @@ void Clay__CalculateFinalLayout() { Clay_LayoutElementHashMapItem *clipHashMapItem = Clay__GetHashMapItem(root->clipElementId); if (clipHashMapItem) { Clay_RenderCommandArray_Add(&Clay__renderCommands, (Clay_RenderCommand) { - .id = Clay__RehashWithNumber(root->layoutElement->id, 10), // TODO need a better strategy for managing derived ids + .id = Clay__RehashWithNumber(rootElement->id, 10), // TODO need a better strategy for managing derived ids .commandType = CLAY_RENDER_COMMAND_TYPE_SCISSOR_START, .boundingBox = clipHashMapItem->boundingBox, }); } } - Clay__LayoutElementTreeNodeArray_Add(&dfsBuffer, (Clay__LayoutElementTreeNode) { .layoutElement = root->layoutElement, .position = rootPosition, .nextChildOffset = (Clay_Vector2) { .x = (float)root->layoutElement->layoutConfig->padding.x, .y = (float)root->layoutElement->layoutConfig->padding.y } }); + Clay__LayoutElementTreeNodeArray_Add(&dfsBuffer, (Clay__LayoutElementTreeNode) { .layoutElement = rootElement, .position = rootPosition, .nextChildOffset = (Clay_Vector2) { .x = (float)rootElement->layoutConfig->padding.x, .y = (float)rootElement->layoutConfig->padding.y } }); Clay__treeNodeVisited.internalArray[0] = false; while (dfsBuffer.length > 0) { @@ -1898,7 +2088,7 @@ void Clay__CalculateFinalLayout() { .config = currentElement->elementConfig }; - Clay_LayoutElementHashMapItem *hashMapItem = Clay__AddHashMapItem(currentElement->id, currentElement); + Clay_LayoutElementHashMapItem *hashMapItem = Clay__GetHashMapItem(currentElement->id); if (hashMapItem) { hashMapItem->boundingBox = renderCommand.boundingBox; } @@ -1941,7 +2131,7 @@ void Clay__CalculateFinalLayout() { Clay_Dimensions contentSize = (Clay_Dimensions) {0,0}; if (layoutConfig->layoutDirection == CLAY_LEFT_TO_RIGHT) { for (int i = 0; i < currentElement->children.length; ++i) { - Clay_LayoutElement *childElement = currentElement->children.elements[i]; + Clay_LayoutElement *childElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, currentElement->children.elements[i]); contentSize.width += childElement->dimensions.width; contentSize.height = CLAY__MAX(contentSize.height, childElement->dimensions.height); } @@ -1955,7 +2145,7 @@ void Clay__CalculateFinalLayout() { currentElementTreeNode->nextChildOffset.x += extraSpace; } else { for (int i = 0; i < currentElement->children.length; ++i) { - Clay_LayoutElement *childElement = currentElement->children.elements[i]; + Clay_LayoutElement *childElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, currentElement->children.elements[i]); contentSize.width = CLAY__MAX(contentSize.width, childElement->dimensions.width); contentSize.height += childElement->dimensions.height; } @@ -2006,7 +2196,7 @@ void Clay__CalculateFinalLayout() { Clay_Vector2 borderOffset = { (float)layoutConfig->padding.x, (float)layoutConfig->padding.y }; if (layoutConfig->layoutDirection == CLAY_LEFT_TO_RIGHT) { for (int i = 0; i < currentElement->children.length; ++i) { - Clay_LayoutElement *childElement = currentElement->children.elements[i]; + Clay_LayoutElement *childElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, currentElement->children.elements[i]); if (i > 0) { Clay_RenderCommandArray_Add(&Clay__renderCommands, (Clay_RenderCommand) { .id = Clay__RehashWithNumber(currentElement->id, 5 + i), @@ -2019,7 +2209,7 @@ void Clay__CalculateFinalLayout() { } } else { for (int i = 0; i < currentElement->children.length; ++i) { - Clay_LayoutElement *childElement = currentElement->children.elements[i]; + Clay_LayoutElement *childElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, currentElement->children.elements[i]); if (i > 0) { Clay_RenderCommandArray_Add(&Clay__renderCommands, (Clay_RenderCommand) { .id = Clay__RehashWithNumber(currentElement->id, 5 + i), @@ -2040,7 +2230,7 @@ void Clay__CalculateFinalLayout() { // Add children to the DFS buffer if (currentElement->elementType != CLAY__LAYOUT_ELEMENT_TYPE_TEXT) { for (int i = 0; i < currentElement->children.length; ++i) { - Clay_LayoutElement *childElement = currentElement->children.elements[i]; + Clay_LayoutElement *childElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, currentElement->children.elements[i]); // Alignment along non layout axis if (layoutConfig->layoutDirection == CLAY_LEFT_TO_RIGHT) { currentElementTreeNode->nextChildOffset.y = currentElement->layoutConfig->padding.y; @@ -2085,23 +2275,627 @@ void Clay__CalculateFinalLayout() { } if (root->clipElementId) { - Clay_RenderCommandArray_Add(&Clay__renderCommands, (Clay_RenderCommand) { .id = Clay__RehashWithNumber(root->layoutElement->id, 11), .commandType = CLAY_RENDER_COMMAND_TYPE_SCISSOR_END }); + Clay_RenderCommandArray_Add(&Clay__renderCommands, (Clay_RenderCommand) { .id = Clay__RehashWithNumber(rootElement->id, 11), .commandType = CLAY_RENDER_COMMAND_TYPE_SCISSOR_END }); } } } +typedef struct +{ + // Note: This is a pointer to the real internal scroll position, mutating it may cause a change in final layout. + // Intended for use with external functionality that modifies scroll position, such as scroll bars or auto scrolling. + Clay_Vector2 *scrollPosition; + Clay_Dimensions scrollContainerDimensions; + Clay_Dimensions contentDimensions; + Clay_ScrollElementConfig config; + // Indicates whether an actual scroll container matched the provided ID or if the default struct was returned. + bool found; +} Clay_ScrollContainerData; + +Clay_ScrollContainerData Clay_GetScrollContainerData(Clay_ElementId id); + #pragma region DebugTools -const Clay_Color CLAY__COLOR_LIGHT = (Clay_Color) {244, 235, 230, 255}; +const Clay_Color CLAY__DEBUGVIEW_COLOR_1 = (Clay_Color) {58, 56, 52, 255}; +const Clay_Color CLAY__DEBUGVIEW_COLOR_2 = (Clay_Color) {62, 60, 58, 255}; +const Clay_Color CLAY__DEBUGVIEW_COLOR_3 = (Clay_Color) {141, 133, 135, 255}; +const Clay_Color CLAY__DEBUGVIEW_COLOR_4 = (Clay_Color) {238, 226, 231, 255}; +const Clay_Color CLAY__DEBUGVIEW_COLOR_HIGHLIGHT = (Clay_Color) {102, 80, 78, 255}; +const int CLAY__DEBUGVIEW_ROW_HEIGHT = 30; +const int CLAY__DEBUGVIEW_OUTER_PADDING = 10; +const int CLAY__DEBUGVIEW_INDENT_WIDTH = 16; +Clay_TextElementConfig Clay__DebugView_TextNameConfig = (Clay_TextElementConfig) {.fontId = 1, .fontSize = 16, .textColor = CLAY__DEBUGVIEW_COLOR_4, .wrapMode = CLAY_TEXT_WRAP_NONE }; +Clay_LayoutConfig Clay__DebugView_ScrollViewItemLayoutConfig = (Clay_LayoutConfig) {}; + +Clay_String Clay__IntToString(int integer) { + if (integer == 0) { + return (Clay_String) { .length = 1, .chars = "0" }; + } + char *chars = (char *)(Clay__dynamicStringData.internalArray + Clay__dynamicStringData.length); + int length = 0; + // Save the copy of the number for sign + int sign = integer; + + // If the number is negative, make it positive + if (integer < 0) + integer = -integer; + + // Extract digits from the number and add them to the + // string + while (integer > 0) { + + // Convert integer digit to character and store + // it in the str + chars[length++] = (char)(integer % 10 + '0'); + integer /= 10; + } + + // If the number was negative, add a minus sign to the + // string + if (sign < 0) { + chars[length++] = '-'; + } + + // Reverse the string to get the correct order + for (int j = 0, k = length - 1; j < k; j++, k--) { + char temp = chars[j]; + chars[j] = chars[k]; + chars[k] = temp; + } + Clay__dynamicStringData.length += length; + return (Clay_String) { .length = length, .chars = chars }; +} + +typedef struct +{ + uint32_t rowCount; + uint32_t highlightedElementRowIndex; +} Clay__RenderDebugLayoutData; + +// Returns row count +Clay__RenderDebugLayoutData Clay__RenderDebugLayoutElementsList(int initialRootsLength) { + Clay_ElementId outerId = CLAY_ID("Clay__DebugView_ElementOuter"); + Clay_ElementId border = CLAY_ID("Clay__DebugView_ElementOuterBorder"); + Clay_ElementId inner = CLAY_ID("Clay__DebugView_ElementInner"); + Clay_ElementId paddingOffset = CLAY_ID("Clay__DebugView_ElementPaddingOffset"); + Clay_ElementId spacerId = CLAY_ID("Clay__DebugView_ElementSpacer"); + Clay_ElementId outerHighlightId = CLAY_ID("Clay__DebugView_OuterHighlight"); + Clay_ElementId collapseIconButton = CLAY_ID("Clay__DebugView_CollapseIconButton"); + Clay_ElementId collapseIcon = CLAY_ID("Clay__DebugView_CollapseIcon"); + Clay_ElementId elementNameId = CLAY_ID("Clay__DebugView_ElementName"); + Clay_ElementId elementDuplicateWarning = CLAY_ID("Clay__DebugView_ElementDuplicateWarning"); + Clay_ElementId elementOffscreenBorderId = CLAY_ID("Clay__DebugView_ElementOffscreenBorder"); + Clay_ElementId elementTextSpacer = CLAY_ID("Clay__DebugView_ElementTextSpacer"); + Clay_ElementId elementTypeBorderId = CLAY_ID("Clay__DebugView_ElementTextBorder"); + Clay_ElementId elementTypeInnerRectId = CLAY_ID("Clay__DebugView_ElementTextInnerRect"); + Clay_ElementId elementTypeTextId = CLAY_ID("Clay__DebugView_ElementTypeText"); + Clay_ElementId textContentsOuterId = CLAY_ID("Clay__DebugView_ElementTextContentsOuter"); + Clay_ElementId textContentsId = CLAY_ID("Clay__DebugView_ElementTextContents"); + Clay__int32_tArray dfsBuffer = Clay__reusableElementIndexBuffer; + Clay__DebugView_ScrollViewItemLayoutConfig = (Clay_LayoutConfig) { .sizing = { .height = CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT) }, .childAlignment = { .y = CLAY_ALIGN_Y_CENTER }, .childGap = 6}; + Clay__RenderDebugLayoutData layoutData = {}; + + uint32_t highlightedElementId = 0; + if (Clay__pointerInfo.position.x > Clay__layoutDimensions.width - (float)Clay__debugViewWidth && Clay__pointerInfo.position.x < Clay__layoutDimensions.width && Clay__pointerInfo.position.y > 0 && Clay__pointerInfo.position.y < Clay__layoutDimensions.height) { + for (int i = (int)Clay__pointerOverIds.length - 1; i >= 0; i--) { + Clay_ElementId *elementId = Clay__ElementIdArray_Get(&Clay__pointerOverIds, i); + if (elementId->baseId == collapseIconButton.baseId) { + Clay_LayoutElementHashMapItem *highlightedItem = Clay__GetHashMapItem(elementId->offset); + if (Clay__pointerInfo.state == CLAY__POINTER_INFO_PRESSED_THIS_FRAME) { + highlightedItem->debugData->collapsed = !highlightedItem->debugData->collapsed; + highlightedElementId = elementId->offset; + break; + } + } + if (elementId->baseId == outerId.baseId) { + Clay_LayoutElementHashMapItem *highlightedItem = Clay__GetHashMapItem(elementId->offset); + if (!highlightedItem->debugData->collision) { + if (Clay__pointerInfo.state == CLAY__POINTER_INFO_PRESSED_THIS_FRAME) { + Clay__debugSelectedElementId = elementId->offset; + } + highlightedElementId = elementId->offset; + } + } + } + } + + if (highlightedElementId) { + CLAY_FLOATING_CONTAINER(CLAY_ID("Clay__DebugView_ElementHighlight"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}), CLAY_FLOATING_CONFIG(.zIndex = 65535, .parentId = highlightedElementId), { + CLAY_RECTANGLE(CLAY_ID("Clay__DebugView_ElementHighlightRectangle"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}), CLAY_RECTANGLE_CONFIG(.color = {168, 66, 28, 100 }), {}); + }); + } + + for (int rootIndex = 0; rootIndex < initialRootsLength; ++rootIndex) { + dfsBuffer.length = 0; + Clay__LayoutElementTreeRoot *root = Clay__LayoutElementTreeRootArray_Get(&Clay__layoutElementTreeRoots, rootIndex); + Clay__int32_tArray_Add(&dfsBuffer, (int32_t)root->layoutElementIndex); + Clay__treeNodeVisited.internalArray[0] = false; + if (rootIndex > 0) { + CLAY_CONTAINER(CLAY_IDI("Clay__DebugView_EmptyRowOuter", rootIndex), CLAY_LAYOUT(.sizing = {.width = CLAY_SIZING_GROW()}, .padding = {CLAY__DEBUGVIEW_INDENT_WIDTH / 2}), { + CLAY_BORDER_CONTAINER(CLAY_IDI("Clay__DebugView_EmptyRow", rootIndex), CLAY_LAYOUT(.sizing = {.height = CLAY_SIZING_FIXED((float)CLAY__DEBUGVIEW_ROW_HEIGHT), .width = CLAY_SIZING_GROW()}), CLAY_BORDER_CONFIG(.top = { .width = 1, .color = CLAY__DEBUGVIEW_COLOR_3 } ), {}); + }); + layoutData.rowCount++; + } + while (dfsBuffer.length > 0) { + uint32_t currentElementIndex = Clay__int32_tArray_Get(&dfsBuffer, (int)dfsBuffer.length - 1); + Clay_LayoutElement *currentElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, (int)currentElementIndex); + if (Clay__treeNodeVisited.internalArray[dfsBuffer.length - 1]) { + if (currentElement->elementType != CLAY__LAYOUT_ELEMENT_TYPE_TEXT && currentElement->children.length > 0) { + Clay__CloseElementWithChildren(); + Clay__CloseElementWithChildren(); + Clay__CloseElementWithChildren(); + } + dfsBuffer.length--; + continue; + } + Clay__treeNodeVisited.internalArray[dfsBuffer.length - 1] = true; + Clay_String toPrint = Clay__layoutElementIdStrings.internalArray[currentElementIndex]; + Clay_ElementId outerHash = Clay__Rehash(outerId, currentElement->id); + Clay_LayoutElementHashMapItem *currentElementData = Clay__GetHashMapItem(currentElement->id); + Clay_BoundingBox currentElementBoundingBox = currentElementData->boundingBox; + bool offscreen = currentElementBoundingBox.x > (float)Clay__layoutDimensions.width || currentElementBoundingBox.y > (float)Clay__layoutDimensions.height || currentElementBoundingBox.x + currentElementBoundingBox.width < 0 || currentElementBoundingBox.y + currentElementBoundingBox.height < 0; + Clay_Color outerColor = {0,0,0,0}; + if (Clay__debugSelectedElementId == currentElement->id) { + layoutData.highlightedElementRowIndex = layoutData.rowCount; + } + CLAY_CONTAINER(outerHash, &Clay__DebugView_ScrollViewItemLayoutConfig, { + if (!(currentElement->elementType == CLAY__LAYOUT_ELEMENT_TYPE_TEXT || currentElement->children.length == 0)) { + CLAY_BORDER_CONTAINER(Clay__Rehash(collapseIconButton, currentElement->id), CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED(16), CLAY_SIZING_FIXED(16)}, .childAlignment = { CLAY_ALIGN_X_CENTER, CLAY_ALIGN_Y_CENTER}), CLAY_BORDER_CONFIG_OUTSIDE_RADIUS(1, CLAY__DEBUGVIEW_COLOR_3, 4), { + CLAY_TEXT(Clay__Rehash(collapseIcon, currentElement->id), (currentElementData && currentElementData->debugData->collapsed) ? CLAY_STRING("+") : CLAY_STRING("-"), CLAY_TEXT_CONFIG(.fontId = 1, .fontSize = 16, .textColor = CLAY__DEBUGVIEW_COLOR_4)); + }); + } else { + CLAY_CONTAINER(Clay__Rehash(collapseIconButton, currentElement->id), CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED(16), CLAY_SIZING_FIXED(16)}, .childAlignment = { CLAY_ALIGN_X_CENTER, CLAY_ALIGN_Y_CENTER}), { + CLAY_RECTANGLE(Clay__Rehash(collapseIcon, currentElement->id), CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED(8), CLAY_SIZING_FIXED(8)}), CLAY_RECTANGLE_CONFIG(.color = CLAY__DEBUGVIEW_COLOR_3, .cornerRadius = 2), {}); + }); + } + CLAY_CONTAINER(Clay__Rehash(outerHighlightId, currentElement->id), CLAY_LAYOUT(.padding = {0,4}, .childGap = 12, .childAlignment = { .y = CLAY_ALIGN_Y_CENTER }), { + if (currentElementData) { + if (currentElementData->debugData->collision) { + CLAY_TEXT(Clay__Rehash(elementDuplicateWarning, currentElement->id), CLAY_STRING("(Duplicate ID)"), CLAY_TEXT_CONFIG(.fontSize = 16, .fontId = 1, .textColor = { 177, 147, 8, 255})); + } + + if (offscreen) { + CLAY_BORDER_CONTAINER(Clay__Rehash(elementOffscreenBorderId, currentElement->id), CLAY_LAYOUT(.padding = { 8, 2 }), CLAY_BORDER_CONFIG_OUTSIDE_RADIUS(1, CLAY__DEBUGVIEW_COLOR_3, 4), { + CLAY_TEXT(Clay__Rehash(elementDuplicateWarning, currentElement->id), CLAY_STRING("Offscreen"), CLAY_TEXT_CONFIG(.fontSize = 16, .fontId = 1, .textColor = CLAY__DEBUGVIEW_COLOR_3)); + }); + } + } + CLAY_TEXT(Clay__Rehash(elementNameId, currentElement->id), Clay__layoutElementIdStrings.internalArray[currentElementIndex], offscreen ? CLAY_TEXT_CONFIG(.fontSize = 16, .fontId = 1, .textColor = CLAY__DEBUGVIEW_COLOR_3) : &Clay__DebugView_TextNameConfig); + Clay_String elementTypeName = (Clay_String){}; + Clay_Color elementTypeColor = (Clay_Color){}; + switch (currentElement->elementType) { + case CLAY__LAYOUT_ELEMENT_TYPE_RECTANGLE: elementTypeName = CLAY_STRING("Rectangle"); elementTypeColor = ((Clay_Color) {243,134,48,255}); break; + case CLAY__LAYOUT_ELEMENT_TYPE_CONTAINER: elementTypeName = CLAY_STRING("Container"); elementTypeColor = ((Clay_Color) {53,92,125, 255}); break; + case CLAY__LAYOUT_ELEMENT_TYPE_TEXT: elementTypeName = CLAY_STRING("Text"); elementTypeColor = ((Clay_Color) {105,210,231,255}); break; + case CLAY__LAYOUT_ELEMENT_TYPE_IMAGE: elementTypeName = CLAY_STRING("Image"); elementTypeColor = ((Clay_Color) {121,189,154,255}); break; + case CLAY__LAYOUT_ELEMENT_TYPE_FLOATING_CONTAINER: elementTypeName = CLAY_STRING("Floating"); elementTypeColor = ((Clay_Color) {250,105,0,255}); break; + case CLAY__LAYOUT_ELEMENT_TYPE_SCROLL_CONTAINER: elementTypeName = CLAY_STRING("Scroll"); elementTypeColor = ((Clay_Color) {242,196,90,255}); break; + case CLAY__LAYOUT_ELEMENT_TYPE_BORDER_CONTAINER: elementTypeName = CLAY_STRING("Border"); elementTypeColor = ((Clay_Color) {108,91,123, 255}); break; + case CLAY__LAYOUT_ELEMENT_TYPE_CUSTOM: elementTypeName = CLAY_STRING("Custom"); elementTypeColor = ((Clay_Color) {11,72,107,255}); break; + } + Clay_Color backgroundColor = elementTypeColor; + backgroundColor.a = 90; + CLAY_BORDER_CONTAINER(Clay__Rehash(elementTypeBorderId, currentElement->id), &CLAY_LAYOUT_DEFAULT, CLAY_BORDER_CONFIG_OUTSIDE_RADIUS(1, elementTypeColor, 4), { + CLAY_RECTANGLE(Clay__Rehash(elementTypeInnerRectId, currentElement->id), CLAY_LAYOUT(.padding = { 8, 2 }), CLAY_RECTANGLE_CONFIG(.color = backgroundColor, .cornerRadius = 4), { + CLAY_TEXT(Clay__Rehash(elementTypeTextId, currentElement->id), elementTypeName, CLAY_TEXT_CONFIG(.fontId = 1, .fontSize = 16, .textColor = offscreen ? CLAY__DEBUGVIEW_COLOR_3 : CLAY__DEBUGVIEW_COLOR_4)); + }); + }); + }); + }); + + // Render the text contents below the element as a non-interactive row + if (currentElement->elementType == CLAY__LAYOUT_ELEMENT_TYPE_TEXT) { + layoutData.rowCount++; + Clay_TextElementConfig *rawTextConfig = offscreen ? CLAY_TEXT_CONFIG(.fontSize = 16, .fontId = 1, .textColor = CLAY__DEBUGVIEW_COLOR_3) : &Clay__DebugView_TextNameConfig; + CLAY_RECTANGLE(Clay__Rehash(textContentsOuterId, currentElement->id), CLAY_LAYOUT(.sizing = { .height = CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT)}, .childAlignment = { .y = CLAY_ALIGN_Y_CENTER }), CLAY_RECTANGLE_CONFIG(), { + CLAY_CONTAINER(Clay__Rehash(elementTextSpacer, currentElement->id), CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_INDENT_WIDTH + 16)}), {}); + CLAY_TEXT(CLAY_IDI("Clay__DebugView_TextOpenQuote", currentElement->id), CLAY_STRING("\""), rawTextConfig); + CLAY_TEXT(Clay__Rehash(textContentsId, currentElement->id), currentElement->text.length > 40 ? ((Clay_String) { .chars = currentElement->text.chars, .length = 40 }) : currentElement->text, rawTextConfig); + if (currentElement->text.length > 40) { + CLAY_TEXT(CLAY_IDI("Clay__DebugView_TextEllipsis", currentElement->id), CLAY_STRING("..."), rawTextConfig); + } + CLAY_TEXT(CLAY_IDI("Clay__DebugView_TextCloseQuote", currentElement->id), CLAY_STRING("\""), rawTextConfig); + }); + } else if (currentElement->children.length > 0) { + Clay__OpenContainerElement(Clay__Rehash(paddingOffset, currentElement->id), CLAY_LAYOUT(.padding = { 8 })); + Clay__OpenBorderElement(Clay__Rehash(border, currentElement->id), CLAY_LAYOUT(.layoutDirection = CLAY_LEFT_TO_RIGHT), CLAY_BORDER_CONFIG(.left = { .color = CLAY__DEBUGVIEW_COLOR_3, .width = 1})); + CLAY_CONTAINER(Clay__Rehash(spacerId, currentElement->id), CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED( CLAY__DEBUGVIEW_INDENT_WIDTH)}, .childAlignment = { .x = CLAY_ALIGN_X_RIGHT }), {}); + Clay__OpenContainerElement(Clay__Rehash(inner, currentElement->id), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM)); + } + + layoutData.rowCount++; + if (!(currentElement->elementType == CLAY__LAYOUT_ELEMENT_TYPE_TEXT || (currentElementData && currentElementData->debugData->collapsed))) { + for (int i = currentElement->children.length - 1; i >= 0; --i) { + Clay__int32_tArray_Add(&dfsBuffer, currentElement->children.elements[i]); + Clay__treeNodeVisited.internalArray[dfsBuffer.length - 1] = false; // TODO needs to be ranged checked + } + } + } + } + return layoutData; +} + +void Clay__RenderDebugLayoutSizing(Clay_ElementId baseId, Clay_SizingAxis sizing, Clay_TextElementConfig *infoTextConfig) { + Clay_String sizingLabel = CLAY_STRING("GROW"); + if (sizing.type == CLAY__SIZING_TYPE_FIT) { + sizingLabel = CLAY_STRING("FIT"); + } else if (sizing.type == CLAY__SIZING_TYPE_PERCENT) { + sizingLabel = CLAY_STRING("PERCENT"); + } + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoSizingDataInternal", 1), sizingLabel, infoTextConfig); + if (sizing.type == CLAY__SIZING_TYPE_GROW || sizing.type == CLAY__SIZING_TYPE_FIT) { + CLAY_TEXT(Clay__Rehash(baseId, 2), CLAY_STRING("("), infoTextConfig); + if (sizing.sizeMinMax.min != 0) { + CLAY_TEXT(Clay__Rehash(baseId, 3), CLAY_STRING("min: "), infoTextConfig); + CLAY_TEXT(Clay__Rehash(baseId, 4), Clay__IntToString(sizing.sizeMinMax.min), infoTextConfig); + if (sizing.sizeMinMax.max != CLAY__MAXFLOAT) { + CLAY_TEXT(Clay__Rehash(baseId, 5), CLAY_STRING(", "), infoTextConfig); + } + } + if (sizing.sizeMinMax.max != CLAY__MAXFLOAT) { + CLAY_TEXT(Clay__Rehash(baseId, 6), CLAY_STRING("max: "), infoTextConfig); + CLAY_TEXT(Clay__Rehash(baseId, 7), Clay__IntToString(sizing.sizeMinMax.min), infoTextConfig); + } + CLAY_TEXT(Clay__Rehash(baseId, 8), CLAY_STRING(")"), infoTextConfig); + } +} + +void Clay__RenderDebugViewElementConfigHeader(Clay_String elementId, Clay_String title) { + CLAY_RECTANGLE(CLAY_IDI("Clay__DebugViewPanelBorder", 2), CLAY_LAYOUT(.sizing = {.width = CLAY_SIZING_GROW(), .height = CLAY_SIZING_FIXED(1)}), CLAY_RECTANGLE_CONFIG(.color = CLAY__DEBUGVIEW_COLOR_3), {}); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoItemHeader"), CLAY_LAYOUT(.sizing = { CLAY_SIZING_GROW(), CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT)}, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = {CLAY__DEBUGVIEW_OUTER_PADDING} ), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoTitle", 1), title, CLAY_TEXT_CONFIG(.fontId = 1, .fontSize = 16, .textColor = CLAY__DEBUGVIEW_COLOR_4, .wrapMode = CLAY_TEXT_WRAP_NONE)); + CLAY_CONTAINER(CLAY_IDI("Clay__DebugViewElementInfoTitleSpacer", 1), CLAY_LAYOUT(.sizing = { CLAY_SIZING_GROW() }), {}); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoTitle", 2), elementId, CLAY_TEXT_CONFIG(.fontId = 1, .fontSize = 16, .textColor = CLAY__DEBUGVIEW_COLOR_3, .wrapMode = CLAY_TEXT_WRAP_NONE)); + }); + CLAY_RECTANGLE(CLAY_IDI("Clay__DebugViewPanelBorder", 3), CLAY_LAYOUT(.sizing = {.width = CLAY_SIZING_GROW(), .height = CLAY_SIZING_FIXED(1)}), CLAY_RECTANGLE_CONFIG(.color = CLAY__DEBUGVIEW_COLOR_3), {}); +} + +void Clay__RenderDebugViewColor(Clay_Color color, Clay_TextElementConfig *textConfig) { + CLAY_CONTAINER(CLAY_ID_AUTO, CLAY_LAYOUT(.childAlignment = {.y = CLAY_ALIGN_Y_CENTER}), { + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING("{ r: "), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, Clay__IntToString(color.r), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING(", g: "), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, Clay__IntToString(color.g), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING(", b: "), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, Clay__IntToString(color.b), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING(", a: "), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, Clay__IntToString(color.a), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING(" }"), textConfig); + CLAY_CONTAINER(CLAY_ID_AUTO, CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED(10) }), {}); + CLAY_BORDER_CONTAINER(CLAY_ID_AUTO, CLAY_LAYOUT(.sizing = { CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT - 8), CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT - 8)}), CLAY_BORDER_CONFIG_OUTSIDE_RADIUS(1, CLAY__DEBUGVIEW_COLOR_4, 4), { + CLAY_RECTANGLE(CLAY_ID_AUTO, CLAY_LAYOUT(.sizing = { CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT - 8), CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT - 8)}), CLAY_RECTANGLE_CONFIG(.cornerRadius = 4, .color = color), {}); + }); + }); +} + +void Clay__RenderDebugViewCornerRadius(Clay_CornerRadius cornerRadius, Clay_TextElementConfig *textConfig) { + CLAY_CONTAINER(CLAY_ID_AUTO, CLAY_LAYOUT(.childAlignment = {.y = CLAY_ALIGN_Y_CENTER}), { + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING("{ topLeft: "), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, Clay__IntToString(cornerRadius.topLeft), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING(", topRight: "), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, Clay__IntToString(cornerRadius.topRight), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING(", bottomLeft: "), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, Clay__IntToString(cornerRadius.bottomLeft), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING(", bottomRight: "), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, Clay__IntToString(cornerRadius.bottomRight), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING(" }"), textConfig); + }); +} + +void Clay__RenderDebugViewBorder(int index, Clay_Border border, Clay_TextElementConfig *textConfig) { + CLAY_CONTAINER(CLAY_ID_AUTO, CLAY_LAYOUT(.childAlignment = {.y = CLAY_ALIGN_Y_CENTER}), { + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING("{ width: "), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, Clay__IntToString(border.width), textConfig); + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING(", color: "), textConfig); + Clay__RenderDebugViewColor(border.color, textConfig); + CLAY_TEXT(CLAY_ID_AUTO, CLAY_STRING(" }"), textConfig); + }); +} void Clay__RenderDebugView() { - CLAY_FLOATING_CONTAINER(CLAY_ID("Clay__DebugView"), CLAY_LAYOUT(.sizing = { CLAY_SIZING_FIXED(200) , CLAY_SIZING_GROW() }), CLAY_FLOATING_CONFIG(.attachment = { .element = CLAY_ATTACH_POINT_RIGHT_CENTER, .parent = CLAY_ATTACH_POINT_RIGHT_CENTER }), { - CLAY_SCROLL_CONTAINER(CLAY_ID("Clay__DebugViewOuterScrollPane"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}), CLAY_SCROLL_CONFIG(.vertical = true), { - CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewPane"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}), CLAY_RECTANGLE_CONFIG(.color = CLAY__COLOR_LIGHT), { - int initialElementsLength = Clay__layoutElements.length; - for (int i = 0; i < initialElementsLength; i++) { - CLAY_TEXT(CLAY_IDI("ElementText", i), CLAY_STRING("LayoutElement"), CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {0,0,0,255})); - } + Clay_ElementId closeButtonId = CLAY_ID("Clay__DebugViewTopHeaderCloseButtonOuter"); + if (Clay__pointerInfo.state == CLAY__POINTER_INFO_PRESSED_THIS_FRAME) { + for (int i = 0; i < Clay__pointerOverIds.length; ++i) { + Clay_ElementId *elementId = Clay__ElementIdArray_Get(&Clay__pointerOverIds, i); + if (elementId->id == closeButtonId.id) { + Clay__debugModeEnabled = false; + return; + } + } + } + + uint32_t initialRootsLength = Clay__layoutElementTreeRoots.length; + uint32_t initialElementsLength = Clay__layoutElements.length; + Clay_TextElementConfig *infoTextConfig = CLAY_TEXT_CONFIG(.fontId = 1, .fontSize = 16, .textColor = CLAY__DEBUGVIEW_COLOR_4, .wrapMode = CLAY_TEXT_WRAP_NONE); + Clay_TextElementConfig *infoTitleConfig = CLAY_TEXT_CONFIG(.fontId = 1, .fontSize = 16, .textColor = CLAY__DEBUGVIEW_COLOR_3, .wrapMode = CLAY_TEXT_WRAP_NONE); + uint32_t scrollId = CLAY_ID("Clay__DebugViewOuterScrollPane").id; + float scrollYOffset = 0; + for (int i = 0; i < Clay__scrollContainerDatas.length; ++i) { + Clay__ScrollContainerDataInternal *scrollContainerData = Clay__ScrollContainerDataInternalArray_Get(&Clay__scrollContainerDatas, i); + if (scrollContainerData->elementId == scrollId) { + scrollYOffset = scrollContainerData->scrollPosition.y; + break; + } + } + int32_t highlightedRow = (int32_t)((Clay__pointerInfo.position.y - scrollYOffset) / (float)CLAY__DEBUGVIEW_ROW_HEIGHT) - 1; + Clay__RenderDebugLayoutData layoutData = {}; + CLAY_FLOATING_CONTAINER(CLAY_ID("Clay__DebugView"), CLAY_LAYOUT(.sizing = { CLAY_SIZING_FIXED(Clay__debugViewWidth) , CLAY_SIZING_FIXED(Clay__layoutDimensions.height) }), CLAY_FLOATING_CONFIG(.attachment = { .element = CLAY_ATTACH_POINT_LEFT_CENTER, .parent = CLAY_ATTACH_POINT_RIGHT_CENTER }), { + CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewLeftBorder"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_FIXED(1), .height = CLAY_SIZING_GROW() }), CLAY_RECTANGLE_CONFIG(.color = CLAY__DEBUGVIEW_COLOR_3), {}); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewInner"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}), { + CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewTopHeaderOuter"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT - 1)}, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = {CLAY__DEBUGVIEW_OUTER_PADDING}), CLAY_RECTANGLE_CONFIG(.color = CLAY__DEBUGVIEW_COLOR_2), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewTopHeaderId", 1), CLAY_STRING("Clay Debug Tools"), infoTextConfig); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewTopHeaderSpacer"), CLAY_LAYOUT(.sizing = { CLAY_SIZING_GROW() }), {}); + CLAY_BORDER_CONTAINER(CLAY_ID("Clay__DebugViewTopHeaderCloseButtonOuter"), &CLAY_LAYOUT_DEFAULT, CLAY_BORDER_CONFIG_OUTSIDE_RADIUS(1, ((Clay_Color){217,91,67,255}), 4), { + CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewTopHeaderCloseButtonInner"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT - 10), CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT - 10)}, .childAlignment = {CLAY_ALIGN_X_CENTER, CLAY_ALIGN_Y_CENTER}), CLAY_RECTANGLE_CONFIG(.color = ((Clay_Color){217,91,67,80})), { + CLAY_TEXT(CLAY_ID("Clay__DebugViewTopHeaderCloseButtonText"), CLAY_STRING("x"), CLAY_TEXT_CONFIG(.fontId = 1, .fontSize = 16, .textColor = CLAY__DEBUGVIEW_COLOR_4)); + }); + }); }); + CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewTopHeaderBorder"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_FIXED(1)}), CLAY_RECTANGLE_CONFIG(.color = CLAY__DEBUGVIEW_COLOR_3), {}); + CLAY_SCROLL_CONTAINER(CLAY_ID("Clay__DebugViewOuterScrollPane"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}), CLAY_SCROLL_CONFIG(.vertical = true, .horizontal = true), { + CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewPaneBackground"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}), CLAY_RECTANGLE_CONFIG(.color = ((initialElementsLength + initialRootsLength) & 1) == 0 ? CLAY__DEBUGVIEW_COLOR_2 : CLAY__DEBUGVIEW_COLOR_1), { + Clay_ElementId panelContentsId = CLAY_ID("Clay__DebugViewPaneOuter"); + CLAY_FLOATING_CONTAINER(panelContentsId, CLAY_LAYOUT(.sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}), CLAY_FLOATING_CONFIG(), { + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewPane"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}, .padding = {.x = CLAY__DEBUGVIEW_OUTER_PADDING }), { + layoutData = Clay__RenderDebugLayoutElementsList(initialRootsLength); + }); + }); + float contentWidth = Clay__GetHashMapItem(panelContentsId.id)->layoutElement->dimensions.width; + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewScrollPanelWidth"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = {CLAY_SIZING_FIXED(contentWidth)}), {}); + for (uint32_t i = 0; i < layoutData.rowCount; i++) { + Clay_Color rowColor = (i & 1) == 0 ? CLAY__DEBUGVIEW_COLOR_2 : CLAY__DEBUGVIEW_COLOR_1; + if (i == layoutData.highlightedElementRowIndex) { + rowColor = CLAY__DEBUGVIEW_COLOR_HIGHLIGHT; + } + if (i == highlightedRow) { + rowColor.r *= 1.25; + rowColor.g *= 1.25; + rowColor.b *= 1.25; + } + CLAY_RECTANGLE(CLAY_IDI("Clay__DebugViewStripe", i), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT)}), CLAY_RECTANGLE_CONFIG(.color = rowColor), {}); + } + }); + }); + CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewPanelBorder"), CLAY_LAYOUT(.sizing = {.width = CLAY_SIZING_GROW(), .height = CLAY_SIZING_FIXED(1)}), CLAY_RECTANGLE_CONFIG(.color = CLAY__DEBUGVIEW_COLOR_3), {}); + if (Clay__debugSelectedElementId != 0) { + Clay_LayoutElementHashMapItem *selectedItem = Clay__GetHashMapItem(Clay__debugSelectedElementId); + CLAY_SCROLL_CONTAINER(CLAY_ID("Clay__DebugViewInfoScrollPane"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_FIXED(300)}, .childGap = 6), CLAY_SCROLL_CONFIG(.vertical = true), { + CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewElementInfoPane"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}), CLAY_RECTANGLE_CONFIG(.color = CLAY__DEBUGVIEW_COLOR_2), { + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoItemHeader"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT)}, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = {CLAY__DEBUGVIEW_OUTER_PADDING}), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoTitleId", 1), CLAY_STRING("Layout Config"), infoTextConfig); + CLAY_CONTAINER(CLAY_IDI("Clay__DebugViewElementInfoTitleSpacer", 1), CLAY_LAYOUT(.sizing = { CLAY_SIZING_GROW() }), {}); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoTitle", 2), selectedItem->elementId.stringId, infoTitleConfig); + if (selectedItem->elementId.offset != 0) { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoTitleIdOpenParen", 1), CLAY_STRING(" ("), infoTitleConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoTitleIdOpenParen", 1), Clay__IntToString(selectedItem->elementId.offset), infoTitleConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoTitleIdOpenParen", 1), CLAY_STRING(")"), infoTitleConfig); + } + }); + // Clay_LayoutConfig debug info + CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewElementInfoTopBorder"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_GROW(), .height = CLAY_SIZING_FIXED(1)}), CLAY_RECTANGLE_CONFIG(.color = CLAY__DEBUGVIEW_COLOR_3), {}); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoLayoutBody"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .padding = {8, 8}, .childGap = 8), { + // .boundingBox + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutTitle", 1), CLAY_STRING("Bounding Box"), infoTitleConfig); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoLayoutBoundingBox"), CLAY_LAYOUT(), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutBoundingData", 1), CLAY_STRING("{ x: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutBoundingData", 2), Clay__IntToString(selectedItem->boundingBox.x), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutBoundingData", 3), CLAY_STRING(", y: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutBoundingData", 4), Clay__IntToString(selectedItem->boundingBox.y), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutBoundingData", 5), CLAY_STRING(", width: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutBoundingData", 6), Clay__IntToString(selectedItem->boundingBox.width), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutBoundingData", 7), CLAY_STRING(", height: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutBoundingData", 8), Clay__IntToString(selectedItem->boundingBox.height), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutBoundingData", 9), CLAY_STRING(" }"), infoTextConfig); + }); + // .layoutDirection + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutTitle", 2), CLAY_STRING("Layout Direction"), infoTitleConfig); + Clay_LayoutConfig *layoutConfig = selectedItem->layoutElement->layoutConfig; + CLAY_TEXT(CLAY_ID("Clay__DebugViewElementInfoLayoutDirection"), layoutConfig->layoutDirection == CLAY_TOP_TO_BOTTOM ? CLAY_STRING("TOP_TO_BOTTOM") : CLAY_STRING("LEFT_TO_RIGHT"), infoTextConfig); + // .sizing + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutTitle", 3), CLAY_STRING("Sizing"), infoTitleConfig); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoSizing"), CLAY_LAYOUT(), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoSizingData", 1), CLAY_STRING("{ width: "), infoTextConfig); + Clay__RenderDebugLayoutSizing(CLAY_ID("Clay__DebugViewElementInfoSizingDataWidth"), layoutConfig->sizing.width, infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoSizingData", 2), CLAY_STRING(", height: "), infoTextConfig); + Clay__RenderDebugLayoutSizing(CLAY_ID("Clay__DebugViewElementInfoSizingDataHeight"), layoutConfig->sizing.height, infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoSizingData", 2), CLAY_STRING(" }"), infoTextConfig); + }); + // .padding + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutTitle", 4), CLAY_STRING("Padding"), infoTitleConfig); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoPadding"), CLAY_LAYOUT(), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutPaddingData", 1), CLAY_STRING("{ x: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutPaddingData", 2), Clay__IntToString(layoutConfig->padding.x), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutPaddingData", 3), CLAY_STRING(", y: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutPaddingData", 4), Clay__IntToString(layoutConfig->padding.y), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutPaddingData", 5), CLAY_STRING(" }"), infoTextConfig); + }); + // .childGap + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutTitle", 5), CLAY_STRING("Child Gap"), infoTitleConfig); + CLAY_TEXT(CLAY_ID("Clay__DebugViewElementInfoLayoutChildGap"), Clay__IntToString(layoutConfig->childGap), infoTextConfig); + // .childAlignment + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutTitle", 5), CLAY_STRING("Child Alignment"), infoTitleConfig); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoLayoutAlignment"), CLAY_LAYOUT(), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutAlignment", 1), CLAY_STRING("{ x: "), infoTextConfig); + Clay_String alignX = CLAY_STRING("LEFT"); + if (layoutConfig->childAlignment.x == CLAY_ALIGN_X_CENTER) { + alignX = CLAY_STRING("CENTER"); + } else if (layoutConfig->childAlignment.x == CLAY_ALIGN_X_RIGHT) { + alignX = CLAY_STRING("RIGHT"); + } + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutAlignment", 2), alignX, infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutAlignment", 3), CLAY_STRING(", y: "), infoTextConfig); + Clay_String alignY = CLAY_STRING("TOP"); + if (layoutConfig->childAlignment.y == CLAY_ALIGN_Y_CENTER) { + alignY = CLAY_STRING("CENTER"); + } else if (layoutConfig->childAlignment.y == CLAY_ALIGN_Y_BOTTOM) { + alignY = CLAY_STRING("BOTTOM"); + } + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutAlignment", 4), alignY, infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoLayoutAlignment", 5), CLAY_STRING(" }"), infoTextConfig); + }); + }); + switch (selectedItem->layoutElement->elementType) { + case CLAY__LAYOUT_ELEMENT_TYPE_CONTAINER: break; + case CLAY__LAYOUT_ELEMENT_TYPE_RECTANGLE: { + Clay_RectangleElementConfig *rectangleConfig = selectedItem->layoutElement->elementConfig.rectangleElementConfig; + Clay__RenderDebugViewElementConfigHeader(selectedItem->elementId.stringId, CLAY_STRING("Rectangle Element Config")); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoRectangleBody"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .padding = {8, 8}, .childGap = 8), { + // .color + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleColorTitle", 1), CLAY_STRING("Color"), infoTitleConfig); + Clay__RenderDebugViewColor(rectangleConfig->color, infoTextConfig); + // .cornerRadius + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleColorTitle", 2), CLAY_STRING("Corner Radius"), infoTitleConfig); + Clay__RenderDebugViewCornerRadius(rectangleConfig->cornerRadius, infoTextConfig); + }); + break; + } + case CLAY__LAYOUT_ELEMENT_TYPE_TEXT: { + Clay_TextElementConfig *textConfig = selectedItem->layoutElement->elementConfig.textElementConfig; + Clay__RenderDebugViewElementConfigHeader(selectedItem->elementId.stringId, CLAY_STRING("Text Element Config")); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoRectangleBody"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .padding = {8, 8}, .childGap = 8), { + // .fontSize + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontTitle", 1), CLAY_STRING("Font Size"), infoTitleConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontBody", 1), Clay__IntToString(textConfig->fontSize), infoTextConfig); + // .fontId + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontTitle", 2), CLAY_STRING("Font ID"), infoTitleConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontBody", 2), Clay__IntToString(textConfig->fontId), infoTextConfig); + // .lineSpacing + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontTitle", 3), CLAY_STRING("Line Spacing"), infoTitleConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontBody", 3), Clay__IntToString(textConfig->lineSpacing), infoTextConfig); + // .lineSpacing + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontTitle", 4), CLAY_STRING("Letter Spacing"), infoTitleConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontBody", 4), Clay__IntToString(textConfig->letterSpacing), infoTextConfig); + // .lineSpacing + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontTitle", 5), CLAY_STRING("Wrap Mode"), infoTitleConfig); + Clay_String wrapMode = CLAY_STRING("ALL"); + if (textConfig->wrapMode == CLAY_TEXT_WRAP_NONE) { + wrapMode = CLAY_STRING("NONE"); + } else if (textConfig->wrapMode == CLAY_TEXT_WRAP_NEWLINES) { + wrapMode = CLAY_STRING("NEWLINES"); + } + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontBody", 5), wrapMode, infoTextConfig); + // .textColor + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoRectangleFontTitle", 5), CLAY_STRING("Text Color"), infoTitleConfig); + Clay__RenderDebugViewColor(textConfig->textColor, infoTextConfig); + }); + break; + } + case CLAY__LAYOUT_ELEMENT_TYPE_IMAGE: { + Clay_ImageElementConfig *imageConfig = selectedItem->layoutElement->elementConfig.imageElementConfig; + Clay__RenderDebugViewElementConfigHeader(selectedItem->elementId.stringId, CLAY_STRING("Image Element Config")); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoImageBody"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .padding = {8, 8}, .childGap = 8), { + // .sourceDimensions + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoImageTitle", 1), CLAY_STRING("Source Dimensions"), infoTitleConfig); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoImageDimensions"), CLAY_LAYOUT(), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoImageDimensionsData", 1), CLAY_STRING("{ width: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoImageDimensionsData", 2), Clay__IntToString(imageConfig->sourceDimensions.width), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoImageDimensionsData", 3), CLAY_STRING(", height: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoImageDimensionsData", 4), Clay__IntToString(imageConfig->sourceDimensions.height), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoImageDimensionsData", 5), CLAY_STRING(" }"), infoTextConfig); + }); + // Image Preview + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoImageTitle", 2), CLAY_STRING("Preview"), infoTitleConfig); + CLAY_IMAGE(CLAY_ID("Clay__DebugViewElementInfoImagePreview"), CLAY_LAYOUT(.sizing = { CLAY_SIZING_FIXED(200), CLAY_SIZING_FIXED(200) }), imageConfig, {}); + }); + break; + } + case CLAY__LAYOUT_ELEMENT_TYPE_SCROLL_CONTAINER: { + Clay_ScrollElementConfig *scrollConfig = selectedItem->layoutElement->elementConfig.scrollElementConfig; + Clay__RenderDebugViewElementConfigHeader(selectedItem->elementId.stringId, CLAY_STRING("Scroll Element Config")); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoScrollBody"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .padding = {8, 8}, .childGap = 8), { + // .vertical + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoScrollTitle", 1), CLAY_STRING("Vertical"), infoTitleConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoImageVerticalData", 2), scrollConfig->vertical ? CLAY_STRING("true") : CLAY_STRING("false") , infoTextConfig); + // .horizontal + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoScrollTitle", 1), CLAY_STRING("Horizontal"), infoTitleConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoImageVerticalData", 2), scrollConfig->horizontal ? CLAY_STRING("true") : CLAY_STRING("false") , infoTextConfig); + }); + break; + } + case CLAY__LAYOUT_ELEMENT_TYPE_FLOATING_CONTAINER: { + Clay_FloatingElementConfig *floatingConfig = selectedItem->layoutElement->elementConfig.floatingElementConfig; + Clay__RenderDebugViewElementConfigHeader(selectedItem->elementId.stringId, CLAY_STRING("Floating Element Config")); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoScrollBody"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .padding = {8, 8}, .childGap = 8), { + // .offset + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingTitle", 1), CLAY_STRING("Offset"), infoTitleConfig); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoFloatingOffset"), CLAY_LAYOUT(), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingOffsetData", 1), CLAY_STRING("{ x: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingOffsetData", 2), Clay__IntToString(floatingConfig->offset.x), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingOffsetData", 3), CLAY_STRING(", y: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingOffsetData", 4), Clay__IntToString(floatingConfig->offset.y), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingOffsetData", 5), CLAY_STRING(" }"), infoTextConfig); + }); + // .expand + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingTitle", 2), CLAY_STRING("Expand"), infoTitleConfig); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoFloatingExpand"), CLAY_LAYOUT(), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingExpandData", 1), CLAY_STRING("{ width: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingExpandData", 2), Clay__IntToString(floatingConfig->expand.width), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingExpandData", 3), CLAY_STRING(", height: "), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingExpandData", 4), Clay__IntToString(floatingConfig->expand.height), infoTextConfig); + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingExpandData", 5), CLAY_STRING(" }"), infoTextConfig); + }); + // .zIndex + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingTitle", 3), CLAY_STRING("z-index"), infoTitleConfig); + CLAY_TEXT(CLAY_ID("Clay__DebugViewElementInfoFloatingZIndex"), Clay__IntToString(floatingConfig->zIndex), infoTextConfig); + // .parentId + CLAY_TEXT(CLAY_IDI("Clay__DebugViewElementInfoFloatingTitle", 4), CLAY_STRING("Parent"), infoTitleConfig); + Clay_LayoutElementHashMapItem *hashItem = Clay__GetHashMapItem(floatingConfig->parentId); + CLAY_TEXT(CLAY_ID("Clay__DebugViewElementInfoFloatingParent"), hashItem->elementId.stringId, infoTextConfig); + }); + break; + } + case CLAY__LAYOUT_ELEMENT_TYPE_BORDER_CONTAINER: { + Clay_BorderElementConfig *borderConfig = selectedItem->layoutElement->elementConfig.borderElementConfig; + Clay__RenderDebugViewElementConfigHeader(selectedItem->elementId.stringId, CLAY_STRING("Border Element Config")); + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewElementInfoBorderBody"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .padding = {8, 8}, .childGap = 8), { + // .left + CLAY_TEXT(CLAY_ID("Clay__DebugViewElementInfoBorderLeftTitle"), CLAY_STRING("Left Border"), infoTitleConfig); + Clay__RenderDebugViewBorder(1, borderConfig->left, infoTextConfig); + // .right + CLAY_TEXT(CLAY_ID("Clay__DebugViewElementInfoBorderRightTitle"), CLAY_STRING("Right Border"), infoTitleConfig); + Clay__RenderDebugViewBorder(2, borderConfig->right, infoTextConfig); + // .top + CLAY_TEXT(CLAY_ID("Clay__DebugViewElementInfoBorderTopTitle"), CLAY_STRING("Top Border"), infoTitleConfig); + Clay__RenderDebugViewBorder(3, borderConfig->top, infoTextConfig); + // .bottom + CLAY_TEXT(CLAY_ID("Clay__DebugViewElementInfoBorderBottomTitle"), CLAY_STRING("Bottom Border"), infoTitleConfig); + Clay__RenderDebugViewBorder(4, borderConfig->bottom, infoTextConfig); + // .betweenChildren + CLAY_TEXT(CLAY_ID("Clay__DebugViewElementInfoBorderChildrenTitle"), CLAY_STRING("Border Between Children"), infoTitleConfig); + Clay__RenderDebugViewBorder(5, borderConfig->betweenChildren, infoTextConfig); + // .cornerRadius + CLAY_TEXT(CLAY_ID("Clay__DebugViewElementInfoBorderCornerRadiusTitle"), CLAY_STRING("Border Between Children"), infoTitleConfig); + Clay__RenderDebugViewCornerRadius(borderConfig->cornerRadius, infoTextConfig); + }); + break; + } + case CLAY__LAYOUT_ELEMENT_TYPE_CUSTOM: { + Clay__RenderDebugViewElementConfigHeader(selectedItem->elementId.stringId, CLAY_STRING("Layout Element Config")); + break; + } + } + }); + }); + } else { + CLAY_SCROLL_CONTAINER(CLAY_ID("Clay__DebugViewWarningsScrollPane"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_FIXED(300)}, .childGap = 6), CLAY_SCROLL_CONFIG(.vertical = true), { + Clay_TextElementConfig *warningConfig = CLAY_TEXT_CONFIG(.fontId = 1, .fontSize = 16, .textColor = CLAY__DEBUGVIEW_COLOR_4, .wrapMode = CLAY_TEXT_WRAP_NONE); + CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewWarningsPane"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = {CLAY_SIZING_GROW(), CLAY_SIZING_GROW()}), CLAY_RECTANGLE_CONFIG(.color = CLAY__DEBUGVIEW_COLOR_2), { + CLAY_CONTAINER(CLAY_ID("Clay__DebugViewWarningItemHeader"), CLAY_LAYOUT(.sizing = {.height = CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT)}, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = {CLAY__DEBUGVIEW_OUTER_PADDING}, .childGap = 8), { + CLAY_TEXT(CLAY_ID("Clay__DebugViewWarningsTitle"), CLAY_STRING("Warnings"), warningConfig); + }); + CLAY_RECTANGLE(CLAY_ID("Clay__DebugViewWarningsTopBorder"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_GROW(), .height = CLAY_SIZING_FIXED(1)}), CLAY_RECTANGLE_CONFIG(.color = {200, 200, 200, 255}), {}); + int previousWarningsLength = Clay_warnings.length; + for (int i = 0; i < previousWarningsLength; i++) { + Clay__Warning warning = Clay_warnings.internalArray[i]; + CLAY_CONTAINER(CLAY_IDI("Clay__DebugViewWarningItem", i), CLAY_LAYOUT(.sizing = {.height = CLAY_SIZING_FIXED(CLAY__DEBUGVIEW_ROW_HEIGHT)}, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = {CLAY__DEBUGVIEW_OUTER_PADDING}, .childGap = 8), { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewWarningText", i), warning.baseMessage, warningConfig); + if (warning.dynamicMessage.length > 0) { + CLAY_TEXT(CLAY_IDI("Clay__DebugViewWarningTextDynamic", i), warning.dynamicMessage, warningConfig); + } + }); + } + }); + }); + } }); }); } @@ -2137,15 +2931,15 @@ void Clay_SetLayoutDimensions(Clay_Dimensions dimensions) { Clay__layoutDimensions = dimensions; } -CLAY_WASM_EXPORT("Clay_SetPointerPosition") -void Clay_SetPointerPosition(Clay_Vector2 position) { - Clay__pointerPosition = position; +CLAY_WASM_EXPORT("Clay_SetPointerState") +void Clay_SetPointerState(Clay_Vector2 position, bool isPointerDown) { + Clay__pointerInfo.position = position; Clay__pointerOverIds.length = 0; - Clay__LayoutElementPointerArray dfsBuffer = Clay__layoutElementChildrenBuffer; + Clay__int32_tArray dfsBuffer = Clay__layoutElementChildrenBuffer; for (int rootIndex = 0; rootIndex < Clay__layoutElementTreeRoots.length; ++rootIndex) { dfsBuffer.length = 0; Clay__LayoutElementTreeRoot *root = Clay__LayoutElementTreeRootArray_Get(&Clay__layoutElementTreeRoots, rootIndex); - Clay__LayoutElementPointerArray_Add(&dfsBuffer, root->layoutElement); + Clay__int32_tArray_Add(&dfsBuffer, (int32_t)root->layoutElementIndex); Clay__treeNodeVisited.internalArray[0] = false; while (dfsBuffer.length > 0) { if (Clay__treeNodeVisited.internalArray[dfsBuffer.length - 1]) { @@ -2153,16 +2947,16 @@ void Clay_SetPointerPosition(Clay_Vector2 position) { continue; } Clay__treeNodeVisited.internalArray[dfsBuffer.length - 1] = true; - Clay_LayoutElement *currentElement = *Clay__LayoutElementPointerArray_Get(&dfsBuffer, (int)dfsBuffer.length - 1); + Clay_LayoutElement *currentElement = Clay_LayoutElementArray_Get(&Clay__layoutElements, Clay__int32_tArray_Get(&dfsBuffer, (int)dfsBuffer.length - 1)); Clay_LayoutElementHashMapItem *mapItem = Clay__GetHashMapItem(currentElement->id); // TODO I wish there was a way around this, maybe the fact that it's essentially a binary tree limits the cost, have to measure if ((mapItem && Clay__PointIsInsideRect(position, mapItem->boundingBox)) || (!mapItem && Clay__PointIsInsideRect(position, (Clay_BoundingBox) {0,0, currentElement->dimensions.width, currentElement->dimensions.height}))) { - Clay__int32_tArray_Add(&Clay__pointerOverIds, (int)currentElement->id); + Clay__ElementIdArray_Add(&Clay__pointerOverIds, mapItem->elementId); if (currentElement->elementType == CLAY__LAYOUT_ELEMENT_TYPE_TEXT) { dfsBuffer.length--; continue; } for (int i = currentElement->children.length - 1; i >= 0; --i) { - Clay__LayoutElementPointerArray_Add(&dfsBuffer, currentElement->children.elements[i]); + Clay__int32_tArray_Add(&dfsBuffer, currentElement->children.elements[i]); Clay__treeNodeVisited.internalArray[dfsBuffer.length - 1] = false; // TODO needs to be ranged checked } } else { @@ -2170,6 +2964,20 @@ void Clay_SetPointerPosition(Clay_Vector2 position) { } } } + + if (isPointerDown) { + if (Clay__pointerInfo.state == CLAY__POINTER_INFO_PRESSED_THIS_FRAME) { + Clay__pointerInfo.state = CLAY__POINTER_INFO_PRESSED; + } else if (Clay__pointerInfo.state != CLAY__POINTER_INFO_PRESSED) { + Clay__pointerInfo.state = CLAY__POINTER_INFO_PRESSED_THIS_FRAME; + } + } else { + if (Clay__pointerInfo.state == CLAY__POINTER_INFO_RELEASED_THIS_FRAME) { + Clay__pointerInfo.state = CLAY__POINTER_INFO_RELEASED; + } else if (Clay__pointerInfo.state != CLAY__POINTER_INFO_RELEASED) { + Clay__pointerInfo.state = CLAY__POINTER_INFO_RELEASED_THIS_FRAME; + } + } } CLAY_WASM_EXPORT("Clay_Initialize") @@ -2236,7 +3044,7 @@ void Clay_UpdateScrollContainers(bool isPointerActive, Clay_Vector2 scrollDelta, scrollData->scrollPosition.y = CLAY__MAX(CLAY__MIN(scrollData->scrollPosition.y, 0), -(scrollData->contentSize.height - scrollData->layoutElement->dimensions.height)); for (int j = 0; j < Clay__pointerOverIds.length; ++j) { // TODO n & m are small here but this being n*m gives me the creeps - if (scrollData->layoutElement->id == Clay__int32_tArray_Get(&Clay__pointerOverIds, j)) { + if (scrollData->layoutElement->id == Clay__ElementIdArray_Get(&Clay__pointerOverIds, j)->id) { highestPriorityElementIndex = j; highestPriorityScrollData = scrollData; } @@ -2258,26 +3066,26 @@ void Clay_UpdateScrollContainers(bool isPointerActive, Clay_Vector2 scrollDelta, if (isPointerActive) { highestPriorityScrollData->scrollMomentum = (Clay_Vector2){0}; if (!highestPriorityScrollData->pointerScrollActive) { - highestPriorityScrollData->pointerOrigin = Clay__pointerPosition; + highestPriorityScrollData->pointerOrigin = Clay__pointerInfo.position; highestPriorityScrollData->scrollOrigin = highestPriorityScrollData->scrollPosition; highestPriorityScrollData->pointerScrollActive = true; } else { float scrollDeltaX = 0, scrollDeltaY = 0; if (canScrollHorizontally) { float oldXScrollPosition = highestPriorityScrollData->scrollPosition.x; - highestPriorityScrollData->scrollPosition.x = highestPriorityScrollData->scrollOrigin.x + (Clay__pointerPosition.x - highestPriorityScrollData->pointerOrigin.x); + highestPriorityScrollData->scrollPosition.x = highestPriorityScrollData->scrollOrigin.x + (Clay__pointerInfo.position.x - highestPriorityScrollData->pointerOrigin.x); highestPriorityScrollData->scrollPosition.x = CLAY__MAX(CLAY__MIN(highestPriorityScrollData->scrollPosition.x, 0), -(highestPriorityScrollData->contentSize.width - highestPriorityScrollData->boundingBox.width)); scrollDeltaX = highestPriorityScrollData->scrollPosition.x - oldXScrollPosition; } if (canScrollVertically) { float oldYScrollPosition = highestPriorityScrollData->scrollPosition.y; - highestPriorityScrollData->scrollPosition.y = highestPriorityScrollData->scrollOrigin.y + (Clay__pointerPosition.y - highestPriorityScrollData->pointerOrigin.y); + highestPriorityScrollData->scrollPosition.y = highestPriorityScrollData->scrollOrigin.y + (Clay__pointerInfo.position.y - highestPriorityScrollData->pointerOrigin.y); highestPriorityScrollData->scrollPosition.y = CLAY__MAX(CLAY__MIN(highestPriorityScrollData->scrollPosition.y, 0), -(highestPriorityScrollData->contentSize.height - highestPriorityScrollData->boundingBox.height)); scrollDeltaY = highestPriorityScrollData->scrollPosition.y - oldYScrollPosition; } if (scrollDeltaX > -0.1f && scrollDeltaX < 0.1f && scrollDeltaY > -0.1f && scrollDeltaY < 0.1f && highestPriorityScrollData->momentumTime > 0.15f) { highestPriorityScrollData->momentumTime = 0; - highestPriorityScrollData->pointerOrigin = Clay__pointerPosition; + highestPriorityScrollData->pointerOrigin = Clay__pointerInfo.position; highestPriorityScrollData->scrollOrigin = highestPriorityScrollData->scrollPosition; } else { highestPriorityScrollData->momentumTime += deltaTime; @@ -2297,55 +3105,54 @@ void Clay_UpdateScrollContainers(bool isPointerActive, Clay_Vector2 scrollDelta, CLAY_WASM_EXPORT("Clay_BeginLayout") void Clay_BeginLayout() { Clay__InitializeEphemeralMemory(&Clay__internalArena); + Clay__generation++; + Clay__dynamicElementIndex = 0; // Set up the root container that covers the entire window - Clay_LayoutElement rootLayoutElement = (Clay_LayoutElement){.layoutConfig = CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED((float)Clay__layoutDimensions.width), CLAY_SIZING_FIXED((float)Clay__layoutDimensions.height)})}; + Clay_Dimensions rootDimensions = (Clay_Dimensions) {Clay__layoutDimensions.width, Clay__layoutDimensions.height}; + if (Clay__debugModeEnabled) { + rootDimensions.width -= (float)Clay__debugViewWidth; + } + Clay_ElementId rootElementId = CLAY_ID("Clay__RootContainer"); + Clay_LayoutElement rootLayoutElement = (Clay_LayoutElement){.id = rootElementId.id, .layoutConfig = CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED((rootDimensions.width)), CLAY_SIZING_FIXED(rootDimensions.height)})}; Clay__openLayoutElement = Clay_LayoutElementArray_Add(&Clay__layoutElements, rootLayoutElement); Clay__LayoutElementPointerArray_Add(&Clay__openLayoutElementStack, Clay__openLayoutElement); - Clay__LayoutElementTreeRootArray_Add(&Clay__layoutElementTreeRoots, (Clay__LayoutElementTreeRoot) { .layoutElement = Clay__openLayoutElement }); - if (Clay__debugModeEnabled) { - Clay__OpenContainerElement(CLAY_ID("Clay__DebugViewScreenContainer"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED(Clay__layoutDimensions.width - 200), CLAY_SIZING_FIXED((float)Clay__layoutDimensions.height)})); - } + Clay__LayoutElementTreeRootArray_Add(&Clay__layoutElementTreeRoots, (Clay__LayoutElementTreeRoot) { .layoutElementIndex = Clay__layoutElements.length - 1 }); + Clay__StringArray_Add(&Clay__layoutElementIdStrings, CLAY_STRING("Clay__RootContainer")); + Clay__AddHashMapItem(rootElementId, Clay__openLayoutElement); } CLAY_WASM_EXPORT("Clay_EndLayout") Clay_RenderCommandArray Clay_EndLayout() { - if (Clay__debugModeEnabled) { - Clay__CloseElementWithChildren(); - Clay__RenderDebugView(); - } Clay__AttachContainerChildren(); + if (Clay__debugModeEnabled) { + #ifndef CLAY_DEBUG + Clay__warningsEnabled = false; + #endif + Clay__RenderDebugView(); + #ifndef CLAY_DEBUG + Clay__warningsEnabled = true; + #endif + } Clay__CalculateFinalLayout(); return Clay__renderCommands; } CLAY_WASM_EXPORT("Clay_PointerOver") -bool Clay_PointerOver(uint32_t id) { // TODO return priority for separating multiple results +bool Clay_PointerOver(Clay_ElementId elementId) { // TODO return priority for separating multiple results for (int i = 0; i < Clay__pointerOverIds.length; ++i) { - if (Clay__int32_tArray_Get(&Clay__pointerOverIds, i) == id) { + if (Clay__ElementIdArray_Get(&Clay__pointerOverIds, i)->id == elementId.id) { return true; } } return false; } -typedef struct -{ - // Note: This is a pointer to the real internal scroll position, mutating it may cause a change in final layout. - // Intended for use with external functionality that modifies scroll position, such as scroll bars or auto scrolling. - Clay_Vector2 *scrollPosition; - Clay_Dimensions scrollContainerDimensions; - Clay_Dimensions contentDimensions; - Clay_ScrollElementConfig config; - // Indicates whether an actual scroll container matched the provided ID or if the default struct was returned. - bool found; -} Clay_ScrollContainerData; - CLAY_WASM_EXPORT("Clay_GetScrollContainerData") -Clay_ScrollContainerData Clay_GetScrollContainerData(uint32_t id) { +Clay_ScrollContainerData Clay_GetScrollContainerData(Clay_ElementId id) { for (int i = 0; i < Clay__scrollContainerDatas.length; ++i) { Clay__ScrollContainerDataInternal *scrollContainerData = Clay__ScrollContainerDataInternalArray_Get(&Clay__scrollContainerDatas, i); - if (scrollContainerData->elementId == id) { + if (scrollContainerData->elementId == id.id) { return (Clay_ScrollContainerData) { .scrollPosition = &scrollContainerData->scrollPosition, .scrollContainerDimensions = (Clay_Dimensions) { scrollContainerData->boundingBox.width, scrollContainerData->boundingBox.height }, @@ -2358,7 +3165,7 @@ Clay_ScrollContainerData Clay_GetScrollContainerData(uint32_t id) { return (Clay_ScrollContainerData){}; } -CLAY_WASM_EXPORT("Clay_GetScrollContainerData") +CLAY_WASM_EXPORT("Clay_SetDebugModeEnabled") void Clay_SetDebugModeEnabled(bool enabled) { Clay__debugModeEnabled = enabled; } diff --git a/examples/clay-official-website/main.c b/examples/clay-official-website/main.c index 009f50f..69c78e6 100644 --- a/examples/clay-official-website/main.c +++ b/examples/clay-official-website/main.c @@ -18,7 +18,6 @@ const Clay_Color COLOR_LIGHT = (Clay_Color) {244, 235, 230, 255}; Clay_Color COLOR_LIGHT_HOVER = (Clay_Color) {224, 215, 210, 255}; Clay_Color COLOR_BUTTON_HOVER = (Clay_Color) {238, 227, 225, 255}; Clay_Color COLOR_BROWN = (Clay_Color) {61, 26, 5, 255}; -//Clay_Color COLOR_RED = (Clay_Color) {252, 67, 27, 255}; Clay_Color COLOR_RED = (Clay_Color) {168, 66, 28, 255}; Clay_Color COLOR_RED_HOVER = (Clay_Color) {148, 46, 8, 255}; Clay_Color COLOR_ORANGE = (Clay_Color) {225, 138, 50, 255}; diff --git a/examples/raylib-sidebar-scrolling-container/CMakeLists.txt b/examples/raylib-sidebar-scrolling-container/CMakeLists.txt index 7b7082d..32e833d 100644 --- a/examples/raylib-sidebar-scrolling-container/CMakeLists.txt +++ b/examples/raylib-sidebar-scrolling-container/CMakeLists.txt @@ -20,7 +20,7 @@ set(CMAKE_C_STANDARD 99) add_executable(clay_examples_raylib_sidebar_scrolling_container main.c) -target_compile_options(clay_examples_raylib_sidebar_scrolling_container PUBLIC -Wno-initializer-overrides) +target_compile_options(clay_examples_raylib_sidebar_scrolling_container PUBLIC -DCLAY_DEBUG) target_include_directories(clay_examples_raylib_sidebar_scrolling_container PUBLIC .) target_link_libraries(clay_examples_raylib_sidebar_scrolling_container PUBLIC raylib) diff --git a/examples/raylib-sidebar-scrolling-container/main.c b/examples/raylib-sidebar-scrolling-container/main.c index fc8fdbe..4cadf33 100644 --- a/examples/raylib-sidebar-scrolling-container/main.c +++ b/examples/raylib-sidebar-scrolling-container/main.c @@ -14,7 +14,7 @@ Clay_TextElementConfig headerTextConfig = (Clay_TextElementConfig) { .fontId = F // Examples of re-usable "Components" void RenderHeaderButton(uint16_t index, Clay_String text) { - uint32_t buttonId = CLAY_IDI("HeaderButton", index); + Clay_ElementId buttonId = CLAY_IDI("HeaderButton", index); CLAY_RECTANGLE(buttonId, CLAY_LAYOUT(.padding = {16, 8}), CLAY_RECTANGLE_CONFIG(.color = Clay_PointerOver(buttonId) ? COLOR_BLUE : COLOR_ORANGE), { CLAY_TEXT(CLAY_IDI("Button", index), text, &headerTextConfig); }); @@ -24,9 +24,9 @@ Clay_LayoutConfig dropdownTextItemLayout = (Clay_LayoutConfig) { .padding = {8, Clay_RectangleElementConfig dropdownRectangleConfig = (Clay_RectangleElementConfig) { .color = {180, 180, 180, 255} }; Clay_TextElementConfig dropdownTextElementConfig = (Clay_TextElementConfig) { .fontSize = 24, .textColor = {255,255,255,255} }; -void RenderDropdownTextItem() { - CLAY_RECTANGLE(CLAY_ID("ScrollContainerItem"), &dropdownTextItemLayout, &dropdownRectangleConfig, { // We can save a lot of memory by re-using configs in loops rather than redefining them - CLAY_TEXT(CLAY_ID("ScrollContainerText"), CLAY_STRING("I'm a text field in a scroll container."), &dropdownTextElementConfig); +void RenderDropdownTextItem(int index) { + CLAY_RECTANGLE(CLAY_IDI("ScrollContainerItem", index), &dropdownTextItemLayout, &dropdownRectangleConfig, { // We can save a lot of memory by re-using configs in loops rather than redefining them + CLAY_TEXT(CLAY_IDI("ScrollContainerText", index), CLAY_STRING("I'm a text field in a scroll container."), &dropdownTextElementConfig); }); } @@ -36,7 +36,7 @@ Clay_RenderCommandArray CreateLayout() { CLAY_RECTANGLE(CLAY_ID("SideBar"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { .width = CLAY_SIZING_FIXED(300), .height = CLAY_SIZING_GROW() }, .padding = {16, 16}, .childGap = 16), CLAY_RECTANGLE_CONFIG(.color = {150, 150, 255, 255}), { CLAY_RECTANGLE(CLAY_ID("ProfilePictureOuter"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_GROW() }, .padding = { 8, 8 }, .childGap = 8, .childAlignment = { .y = CLAY_ALIGN_Y_CENTER }), CLAY_RECTANGLE_CONFIG(.color = {130, 130, 255, 255}), { CLAY_IMAGE(CLAY_ID("ProfilePicture"), CLAY_LAYOUT( .sizing = { .width = CLAY_SIZING_FIXED(60), .height = CLAY_SIZING_FIXED(60) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {60, 60}), {}); - CLAY_TEXT(CLAY_ID("ProfileTitle"), profileText, CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {0, 0, 0, 255})); + CLAY_TEXT(CLAY_ID("ProfileTitle"), profileText, CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {0, 0, 0, 255}, .wrapMode = CLAY_TEXT_WRAP_WORDS)); }); CLAY_RECTANGLE(CLAY_ID("SidebarBlob1"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_GROW(), .height = CLAY_SIZING_FIXED(50) }), CLAY_RECTANGLE_CONFIG(.color = {110, 110, 255, 255}), {}); CLAY_RECTANGLE(CLAY_ID("SidebarBlob2"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_GROW(), .height = CLAY_SIZING_FIXED(50) }), CLAY_RECTANGLE_CONFIG(.color = {110, 110, 255, 255}), {}); @@ -52,62 +52,64 @@ Clay_RenderCommandArray CreateLayout() { }); CLAY_SCROLL_CONTAINER(CLAY_ID("MainContent"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_GROW(), .height = CLAY_SIZING_GROW() }), CLAY_SCROLL_CONFIG(.vertical = true), { CLAY_RECTANGLE(CLAY_ID("MainContentInner"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM, .padding = {16, 16}, .childGap = 16), CLAY_RECTANGLE_CONFIG(.color = {200, 200, 255, 255}), { - CLAY_FLOATING_CONTAINER(CLAY_ID("FloatingContainer"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_FIXED(300), .height = CLAY_SIZING_FIXED(300) }, .padding = {16, 16}), CLAY_FLOATING_CONFIG(.zIndex = 1, .attachment = { CLAY_ATTACH_POINT_CENTER_TOP, CLAY_ATTACH_POINT_CENTER_TOP }, .offset = {0, -16}), { - CLAY_RECTANGLE(CLAY_ID("FloatingContainerBackground"), CLAY_LAYOUT(.sizing = { CLAY_SIZING_GROW(), CLAY_SIZING_GROW() }), CLAY_RECTANGLE_CONFIG(.color = {140,80, 200, 200}), { - CLAY_TEXT(CLAY_ID("FloatingContainerText"), CLAY_STRING("I'm an inline floating container."), CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {255,255,255,255})); + CLAY_FLOATING_CONTAINER(CLAY_ID("FloatingContainer"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_FIXED(300), .height = CLAY_SIZING_FIXED(300) }), CLAY_FLOATING_CONFIG(.zIndex = 1, .attachment = { CLAY_ATTACH_POINT_CENTER_TOP, CLAY_ATTACH_POINT_CENTER_TOP }, .offset = {0, -16}), { + CLAY_BORDER_CONTAINER(CLAY_ID("FloatingContainerBorder"), CLAY_LAYOUT(.sizing = { CLAY_SIZING_GROW(), CLAY_SIZING_GROW() }, .padding = { 16, 16 }), CLAY_BORDER_CONFIG_OUTSIDE(.color = {80, 80, 80, 255}, .width = 2), { + CLAY_RECTANGLE(CLAY_ID("FloatingContainerBackground"), CLAY_LAYOUT(.sizing = { CLAY_SIZING_GROW(), CLAY_SIZING_GROW() }), CLAY_RECTANGLE_CONFIG(.color = {140,80, 200, 200}), { + CLAY_TEXT(CLAY_ID("FloatingContainerText"), CLAY_STRING("I'm an inline floating container."), CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {255,255,255,255}, .wrapMode = CLAY_TEXT_WRAP_WORDS)); + }); }); }); CLAY_TEXT(CLAY_ID("BodyText1"), CLAY_STRING("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt."), - CLAY_TEXT_CONFIG(.fontId = FONT_ID_BODY_24, .fontSize = 24, .textColor = {0,0,0,255})); + CLAY_TEXT_CONFIG(.fontId = FONT_ID_BODY_24, .fontSize = 24, .textColor = {0,0,0,255}, .wrapMode = CLAY_TEXT_WRAP_WORDS)); - CLAY_RECTANGLE(CLAY_ID("Photos"), CLAY_LAYOUT(.childGap = 16, .padding = { 16, 16 }), CLAY_RECTANGLE_CONFIG(.color = {180, 180, 220, 255}), { - CLAY_IMAGE(CLAY_ID("Picture1"), CLAY_LAYOUT( .sizing = { .width = CLAY_SIZING_FIXED(120), .height = CLAY_SIZING_FIXED(120) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {120, 120}), {}); - CLAY_IMAGE(CLAY_ID("Picture2"), CLAY_LAYOUT( .sizing = { .width = CLAY_SIZING_FIXED(120), .height = CLAY_SIZING_FIXED(120) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {120, 120}), {}); - CLAY_IMAGE(CLAY_ID("Picture3"), CLAY_LAYOUT( .sizing = { .width = CLAY_SIZING_FIXED(120), .height = CLAY_SIZING_FIXED(120) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {120, 120}), {}); + CLAY_RECTANGLE(CLAY_ID("Photos2"), CLAY_LAYOUT(.childGap = 16, .padding = { 16, 16 }), CLAY_RECTANGLE_CONFIG(.color = {180, 180, 220, 255}), { + CLAY_IMAGE(CLAY_ID("Picture4"), CLAY_LAYOUT( .sizing = { .width = CLAY_SIZING_FIXED(120), .height = CLAY_SIZING_FIXED(120) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {120, 120}), {}); + CLAY_IMAGE(CLAY_ID("Picture5"), CLAY_LAYOUT( .sizing = { .width = CLAY_SIZING_FIXED(120), .height = CLAY_SIZING_FIXED(120) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {120, 120}), {}); + CLAY_IMAGE(CLAY_ID("Picture6"), CLAY_LAYOUT( .sizing = { .width = CLAY_SIZING_FIXED(120), .height = CLAY_SIZING_FIXED(120) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {120, 120}), {}); }); CLAY_TEXT(CLAY_ID("BodyText2"), CLAY_STRING("Faucibus purus in massa tempor nec. Nec ullamcorper sit amet risus nullam eget felis eget nunc. Diam vulputate ut pharetra sit amet aliquam id diam. Lacus suspendisse faucibus interdum posuere lorem. A diam sollicitudin tempor id. Amet massa vitae tortor condimentum lacinia. Aliquet nibh praesent tristique magna."), - CLAY_TEXT_CONFIG(.fontSize = 24, .lineSpacing = 20, .textColor = {0,0,0,255})); + CLAY_TEXT_CONFIG(.fontSize = 24, .lineSpacing = 20, .textColor = {0,0,0,255}, .wrapMode = CLAY_TEXT_WRAP_WORDS)); CLAY_TEXT(CLAY_ID("BodyText3"), CLAY_STRING("Suspendisse in est ante in nibh. Amet venenatis urna cursus eget nunc scelerisque viverra. Elementum sagittis vitae et leo duis ut diam quam nulla. Enim nulla aliquet porttitor lacus. Pellentesque habitant morbi tristique senectus et. Facilisi nullam vehicula ipsum a arcu cursus vitae.\nSem fringilla ut morbi tincidunt. Euismod quis viverra nibh cras pulvinar mattis nunc sed. Velit sed ullamcorper morbi tincidunt ornare massa. Varius quam quisque id diam vel quam. Nulla pellentesque dignissim enim sit amet venenatis. Enim lobortis scelerisque fermentum dui faucibus in. Pretium viverra suspendisse potenti nullam ac tortor vitae. Lectus vestibulum mattis ullamcorper velit sed. Eget mauris pharetra et ultrices neque ornare aenean euismod elementum. Habitant morbi tristique senectus et. Integer vitae justo eget magna fermentum iaculis eu. Semper quis lectus nulla at volutpat diam. Enim praesent elementum facilisis leo. Massa vitae tortor condimentum lacinia quis vel."), - CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {0,0,0,255})); + CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {0,0,0,255}, .wrapMode = CLAY_TEXT_WRAP_WORDS)); CLAY_RECTANGLE(CLAY_ID("Photos"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_GROW() }, .childAlignment = { .x = CLAY_ALIGN_X_CENTER, .y = CLAY_ALIGN_Y_CENTER }, .childGap = 16, .padding = {16, 16}), CLAY_RECTANGLE_CONFIG(.color = {180, 180, 220, 255}), { CLAY_IMAGE(CLAY_ID("Picture2"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_FIXED(120), .height = CLAY_SIZING_FIXED(120) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {120, 120}), {}); CLAY_RECTANGLE(CLAY_ID("Picture1"), CLAY_LAYOUT(.childAlignment = { .x = CLAY_ALIGN_X_CENTER }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .padding = {8, 8}), CLAY_RECTANGLE_CONFIG(.color = {170, 170, 220, 255}), { - CLAY_IMAGE(CLAY_ID("ProfilePicture"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_FIXED(60), .height = CLAY_SIZING_FIXED(60) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {60, 60}), {}); - CLAY_TEXT(CLAY_ID("ProfileTitle"), CLAY_STRING("Image caption below"), CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {0,0,0,255})); + CLAY_IMAGE(CLAY_ID("ProfilePicture2"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_FIXED(60), .height = CLAY_SIZING_FIXED(60) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {60, 60}), {}); + CLAY_TEXT(CLAY_ID("ProfileTitle2"), CLAY_STRING("Image caption below"), CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {0,0,0,255})); }); CLAY_IMAGE(CLAY_ID("Picture3"), CLAY_LAYOUT( .sizing = { .width = CLAY_SIZING_FIXED(120), .height = CLAY_SIZING_FIXED(120) }), CLAY_IMAGE_CONFIG(.imageData = &profilePicture, .sourceDimensions = {120, 120}), {}); }); // CLAY_TEXT(CLAY_ID("BodyText4"), CLAY_STRING("Amet cursus sit amet dictum sit amet justo donec. Et malesuada fames ac turpis egestas maecenas. A lacus vestibulum sed arcu non odio euismod lacinia. Gravida neque convallis a cras. Dui nunc mattis enim ut tellus elementum sagittis vitae et. Orci sagittis eu volutpat odio facilisis mauris. Neque gravida in fermentum et sollicitudin ac orci. Ultrices dui sapien eget mi proin sed libero. Euismod quis viverra nibh cras pulvinar mattis. Diam volutpat commodo sed egestas egestas. In fermentum posuere urna nec tincidunt praesent semper. Integer eget aliquet nibh praesent tristique magna.\nId cursus metus aliquam eleifend mi in. Sed pulvinar proin gravida hendrerit lectus a. Etiam tempor orci eu lobortis elementum nibh tellus. Nullam vehicula ipsum a arcu cursus vitae. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant morbi tristique senectus. Condimentum lacinia quis vel eros donec ac odio. Mattis pellentesque id nibh tortor id aliquet lectus. Turpis egestas integer eget aliquet nibh praesent tristique. Porttitor massa id neque aliquam vestibulum morbi. Mauris commodo quis imperdiet massa tincidunt nunc pulvinar sapien et. Nunc scelerisque viverra mauris in aliquam sem fringilla. Suspendisse ultrices gravida dictum fusce ut placerat orci nulla.\nLacus laoreet non curabitur gravida arcu ac tortor dignissim. Urna nec tincidunt praesent semper feugiat nibh sed pulvinar. Tristique senectus et netus et malesuada fames ac. Nunc aliquet bibendum enim facilisis gravida. Egestas maecenas pharetra convallis posuere morbi leo urna molestie. Sapien nec sagittis aliquam malesuada bibendum arcu vitae elementum curabitur. Ac turpis egestas maecenas pharetra convallis posuere morbi leo urna. Viverra vitae congue eu consequat. Aliquet enim tortor at auctor urna. Ornare massa eget egestas purus viverra accumsan in nisl nisi. Elit pellentesque habitant morbi tristique senectus et netus et malesuada.\nSuspendisse ultrices gravida dictum fusce ut placerat orci nulla pellentesque. Lobortis feugiat vivamus at augue eget arcu. Vitae justo eget magna fermentum iaculis eu. Gravida rutrum quisque non tellus orci. Ipsum faucibus vitae aliquet nec. Nullam non nisi est sit amet. Nunc consequat interdum varius sit amet mattis vulputate enim. Sem fringilla ut morbi tincidunt augue interdum. Vitae purus faucibus ornare suspendisse. Massa tincidunt nunc pulvinar sapien et. Fringilla ut morbi tincidunt augue interdum velit euismod in. Donec massa sapien faucibus et. Est placerat in egestas erat imperdiet. Gravida rutrum quisque non tellus. Morbi non arcu risus quis varius quam quisque id diam. Habitant morbi tristique senectus et netus et malesuada fames ac. Eget lorem dolor sed viverra.\nOrnare massa eget egestas purus viverra. Varius vel pharetra vel turpis nunc eget lorem. Consectetur purus ut faucibus pulvinar elementum. Placerat in egestas erat imperdiet sed euismod nisi. Interdum velit euismod in pellentesque massa placerat duis ultricies lacus. Aliquam nulla facilisi cras fermentum odio eu. Est pellentesque elit ullamcorper dignissim cras tincidunt. Nunc sed id semper risus in hendrerit gravida rutrum. A pellentesque sit amet porttitor eget dolor morbi. Pellentesque habitant morbi tristique senectus et netus et malesuada fames. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper. Sed id semper risus in hendrerit gravida. Tincidunt praesent semper feugiat nibh. Aliquet lectus proin nibh nisl condimentum id venenatis a. Enim sit amet venenatis urna cursus eget. In egestas erat imperdiet sed euismod nisi porta lorem mollis. Lacinia quis vel eros donec ac odio tempor orci. Donec pretium vulputate sapien nec sagittis aliquam malesuada bibendum arcu. Erat pellentesque adipiscing commodo elit at.\nEgestas sed sed risus pretium quam vulputate. Vitae congue mauris rhoncus aenean vel elit scelerisque mauris pellentesque. Aliquam malesuada bibendum arcu vitae elementum. Congue mauris rhoncus aenean vel elit scelerisque mauris. Pellentesque dignissim enim sit amet venenatis urna cursus. Et malesuada fames ac turpis egestas sed tempus urna. Vel fringilla est ullamcorper eget nulla facilisi etiam dignissim. Nibh cras pulvinar mattis nunc sed blandit libero. Fringilla est ullamcorper eget nulla facilisi etiam dignissim. Aenean euismod elementum nisi quis eleifend quam adipiscing vitae proin. Mauris pharetra et ultrices neque ornare aenean euismod elementum. Ornare quam viverra orci sagittis eu. Odio ut sem nulla pharetra diam sit amet nisl suscipit. Ornare lectus sit amet est. Ullamcorper sit amet risus nullam eget. Tincidunt lobortis feugiat vivamus at augue eget arcu dictum.\nUrna nec tincidunt praesent semper feugiat nibh. Ut venenatis tellus in metus vulputate eu scelerisque felis. Cursus risus at ultrices mi tempus. In pellentesque massa placerat duis ultricies lacus sed turpis. Platea dictumst quisque sagittis purus. Cras adipiscing enim eu turpis egestas. Egestas sed tempus urna et pharetra pharetra. Netus et malesuada fames ac turpis egestas integer eget aliquet. Ac turpis egestas sed tempus. Sed lectus vestibulum mattis ullamcorper velit sed. Ante metus dictum at tempor commodo ullamcorper a. Augue neque gravida in fermentum et sollicitudin ac. Praesent semper feugiat nibh sed pulvinar proin gravida. Metus aliquam eleifend mi in nulla posuere sollicitudin aliquam ultrices. Neque gravida in fermentum et sollicitudin ac orci phasellus egestas.\nRidiculus mus mauris vitae ultricies. Morbi quis commodo odio aenean. Duis ultricies lacus sed turpis. Non pulvinar neque laoreet suspendisse interdum consectetur. Scelerisque eleifend donec pretium vulputate sapien nec sagittis aliquam. Volutpat est velit egestas dui id ornare arcu odio ut. Viverra tellus in hac habitasse platea dictumst vestibulum rhoncus est. Vestibulum lectus mauris ultrices eros. Sed blandit libero volutpat sed cras ornare. Id leo in vitae turpis massa sed elementum tempus. Gravida dictum fusce ut placerat orci nulla pellentesque. Pretium quam vulputate dignissim suspendisse in. Nisl suscipit adipiscing bibendum est ultricies integer quis auctor. Risus viverra adipiscing at in tellus. Turpis nunc eget lorem dolor sed viverra ipsum. Senectus et netus et malesuada fames ac. Habitasse platea dictumst vestibulum rhoncus est. Nunc sed id semper risus in hendrerit gravida. Felis eget velit aliquet sagittis id. Eget felis eget nunc lobortis.\nMaecenas pharetra convallis posuere morbi leo. Maecenas volutpat blandit aliquam etiam. A condimentum vitae sapien pellentesque habitant morbi tristique senectus et. Pulvinar mattis nunc sed blandit libero volutpat sed. Feugiat in ante metus dictum at tempor commodo ullamcorper. Vel pharetra vel turpis nunc eget lorem dolor. Est placerat in egestas erat imperdiet sed euismod. Quisque non tellus orci ac auctor augue mauris augue. Placerat vestibulum lectus mauris ultrices eros in cursus turpis. Enim nunc faucibus a pellentesque sit. Adipiscing vitae proin sagittis nisl. Iaculis at erat pellentesque adipiscing commodo elit at imperdiet. Aliquam sem fringilla ut morbi.\nArcu odio ut sem nulla pharetra diam sit amet nisl. Non diam phasellus vestibulum lorem sed. At erat pellentesque adipiscing commodo elit at. Lacus luctus accumsan tortor posuere ac ut consequat. Et malesuada fames ac turpis egestas integer. Tristique magna sit amet purus. A condimentum vitae sapien pellentesque habitant. Quis varius quam quisque id diam vel quam. Est ullamcorper eget nulla facilisi etiam dignissim diam quis. Augue interdum velit euismod in pellentesque massa. Elit scelerisque mauris pellentesque pulvinar pellentesque habitant. Vulputate eu scelerisque felis imperdiet. Nibh tellus molestie nunc non blandit massa. Velit euismod in pellentesque massa placerat. Sed cras ornare arcu dui. Ut sem viverra aliquet eget sit. Eu lobortis elementum nibh tellus molestie nunc non. Blandit libero volutpat sed cras ornare arcu dui vivamus.\nSit amet aliquam id diam maecenas. Amet risus nullam eget felis eget nunc lobortis mattis aliquam. Magna sit amet purus gravida. Egestas purus viverra accumsan in nisl nisi. Leo duis ut diam quam. Ante metus dictum at tempor commodo ullamcorper. Ac turpis egestas integer eget. Fames ac turpis egestas integer eget aliquet nibh. Sem integer vitae justo eget magna fermentum. Semper auctor neque vitae tempus quam pellentesque nec nam aliquam. Vestibulum mattis ullamcorper velit sed. Consectetur adipiscing elit duis tristique sollicitudin nibh. Massa id neque aliquam vestibulum morbi blandit cursus risus.\nCursus sit amet dictum sit amet justo donec enim diam. Egestas erat imperdiet sed euismod. Nullam vehicula ipsum a arcu cursus vitae congue mauris. Habitasse platea dictumst vestibulum rhoncus est pellentesque elit. Duis ultricies lacus sed turpis tincidunt id aliquet risus feugiat. Faucibus ornare suspendisse sed nisi lacus sed viverra. Pretium fusce id velit ut tortor pretium viverra. Fermentum odio eu feugiat pretium nibh ipsum consequat nisl vel. Senectus et netus et malesuada. Tellus pellentesque eu tincidunt tortor aliquam. Aenean sed adipiscing diam donec adipiscing tristique risus nec feugiat. Quis vel eros donec ac odio. Id interdum velit laoreet id donec ultrices tincidunt.\nMassa id neque aliquam vestibulum morbi blandit cursus risus at. Enim tortor at auctor urna nunc id cursus metus. Lorem ipsum dolor sit amet consectetur. At quis risus sed vulputate odio. Facilisis mauris sit amet massa vitae tortor condimentum lacinia quis. Et malesuada fames ac turpis egestas maecenas. Bibendum arcu vitae elementum curabitur vitae nunc sed velit dignissim. Viverra orci sagittis eu volutpat odio facilisis mauris. Adipiscing bibendum est ultricies integer quis auctor elit sed. Neque viverra justo nec ultrices dui sapien. Elementum nibh tellus molestie nunc non blandit massa enim. Euismod elementum nisi quis eleifend quam adipiscing vitae proin sagittis. Faucibus ornare suspendisse sed nisi. Quis viverra nibh cras pulvinar mattis nunc sed blandit. Tristique senectus et netus et. Magnis dis parturient montes nascetur ridiculus mus.\nDolor magna eget est lorem ipsum dolor. Nibh sit amet commodo nulla. Donec pretium vulputate sapien nec sagittis aliquam malesuada. Cras adipiscing enim eu turpis egestas pretium. Cras ornare arcu dui vivamus arcu felis bibendum ut tristique. Mus mauris vitae ultricies leo integer. In nulla posuere sollicitudin aliquam ultrices sagittis orci. Quis hendrerit dolor magna eget. Nisl tincidunt eget nullam non. Vitae congue eu consequat ac felis donec et odio. Vivamus at augue eget arcu dictum varius duis at. Ornare quam viverra orci sagittis.\nErat nam at lectus urna duis convallis. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Est ullamcorper eget nulla facilisi etiam dignissim diam. Arcu vitae elementum curabitur vitae nunc sed velit dignissim sodales. Tortor vitae purus faucibus ornare suspendisse sed nisi lacus. Neque viverra justo nec ultrices dui sapien eget mi proin. Viverra accumsan in nisl nisi scelerisque eu ultrices. Consequat interdum varius sit amet mattis. In aliquam sem fringilla ut morbi. Eget arcu dictum varius duis at. Nulla aliquet porttitor lacus luctus accumsan tortor posuere. Arcu bibendum at varius vel pharetra vel turpis. Hac habitasse platea dictumst quisque sagittis purus sit amet. Sapien eget mi proin sed libero enim sed. Quam elementum pulvinar etiam non quam lacus suspendisse faucibus interdum. Semper viverra nam libero justo. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Et malesuada fames ac turpis egestas maecenas pharetra convallis posuere.\nTurpis egestas sed tempus urna et pharetra pharetra massa. Gravida in fermentum et sollicitudin ac orci phasellus. Ornare suspendisse sed nisi lacus sed viverra tellus in. Fames ac turpis egestas maecenas pharetra convallis posuere. Mi proin sed libero enim sed faucibus turpis. Sit amet mauris commodo quis imperdiet massa tincidunt nunc. Ut etiam sit amet nisl purus in mollis nunc. Habitasse platea dictumst quisque sagittis purus sit amet volutpat consequat. Eget aliquet nibh praesent tristique magna. Sit amet est placerat in egestas erat. Commodo sed egestas egestas fringilla. Enim nulla aliquet porttitor lacus luctus accumsan tortor posuere ac. Et molestie ac feugiat sed lectus vestibulum mattis ullamcorper. Dignissim convallis aenean et tortor at risus viverra. Morbi blandit cursus risus at ultrices mi. Ac turpis egestas integer eget aliquet nibh praesent tristique magna.\nVolutpat sed cras ornare arcu dui. Egestas erat imperdiet sed euismod nisi porta lorem mollis aliquam. Viverra justo nec ultrices dui sapien. Amet risus nullam eget felis eget nunc lobortis. Metus aliquam eleifend mi in. Ut eu sem integer vitae. Auctor elit sed vulputate mi sit amet. Nisl nisi scelerisque eu ultrices. Dictum fusce ut placerat orci nulla. Pellentesque habitant morbi tristique senectus et. Auctor elit sed vulputate mi sit. Tincidunt arcu non sodales neque. Mi in nulla posuere sollicitudin aliquam. Morbi non arcu risus quis varius quam quisque id diam. Cras adipiscing enim eu turpis egestas pretium aenean pharetra magna. At auctor urna nunc id cursus metus aliquam. Mauris a diam maecenas sed enim ut sem viverra. Nunc scelerisque viverra mauris in. In iaculis nunc sed augue lacus viverra vitae congue eu. Volutpat blandit aliquam etiam erat velit scelerisque in dictum non."), - CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {0,0,0,255})); + CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {0,0,0,255}, .wrapMode = CLAY_TEXT_WRAP_WORDS)); }); }); }); - CLAY_FLOATING_CONTAINER(CLAY_ID("Blob4Floating"), &CLAY_LAYOUT_DEFAULT, CLAY_FLOATING_CONFIG(.zIndex = 1, .parentId = CLAY_ID("SidebarBlob4")), { + CLAY_FLOATING_CONTAINER(CLAY_ID("Blob4Floating2"), &CLAY_LAYOUT_DEFAULT, CLAY_FLOATING_CONFIG(.zIndex = 1, .parentId = CLAY_ID("SidebarBlob4").id), { CLAY_SCROLL_CONTAINER(CLAY_ID("ScrollContainer"), CLAY_LAYOUT(.sizing = { .height = CLAY_SIZING_FIXED(200) }, .childGap = 2), CLAY_SCROLL_CONFIG(.vertical = true), { - CLAY_FLOATING_CONTAINER(CLAY_ID("FloatingContainer"), CLAY_LAYOUT(), CLAY_FLOATING_CONFIG(.zIndex = 1), { - CLAY_RECTANGLE(CLAY_ID("FLoatingContainerInner"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_FIXED(300), .height = CLAY_SIZING_FIXED(300) }, .padding = {16, 16}), CLAY_RECTANGLE_CONFIG(.color = {140,80, 200, 200}), { - CLAY_TEXT(CLAY_ID("FloatingContainerText"), CLAY_STRING("I'm an inline floating container."), CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {255,255,255,255})); + CLAY_FLOATING_CONTAINER(CLAY_ID("FloatingContainer2"), CLAY_LAYOUT(), CLAY_FLOATING_CONFIG(.zIndex = 1), { + CLAY_RECTANGLE(CLAY_ID("FloatingContainerInner"), CLAY_LAYOUT(.sizing = { .width = CLAY_SIZING_FIXED(300), .height = CLAY_SIZING_FIXED(300) }, .padding = {16, 16}), CLAY_RECTANGLE_CONFIG(.color = {140,80, 200, 200}), { + CLAY_TEXT(CLAY_ID("FloatingContainerText2"), CLAY_STRING("I'm an inline floating container."), CLAY_TEXT_CONFIG(.fontSize = 24, .textColor = {255,255,255,255})); }); }); CLAY_RECTANGLE(CLAY_ID("ScrollContainerInner"), CLAY_LAYOUT(.layoutDirection = CLAY_TOP_TO_BOTTOM), CLAY_RECTANGLE_CONFIG(.color = {160, 160, 160, 255}), { for (int i = 0; i < 100; i++) { - RenderDropdownTextItem(); + RenderDropdownTextItem(i); } }); }); }); Clay_ScrollContainerData scrollData = Clay_GetScrollContainerData(CLAY_ID("MainContent")); - CLAY_FLOATING_CONTAINER(CLAY_ID("ScrollBar"), &CLAY_LAYOUT_DEFAULT, CLAY_FLOATING_CONFIG(.offset = { .y = -(scrollData.scrollPosition->y / scrollData.contentDimensions.height) * scrollData.scrollContainerDimensions.height }, .zIndex = 1, .parentId = CLAY_ID("MainContent"), .attachment = {.element = CLAY_ATTACH_POINT_RIGHT_TOP, .parent = CLAY_ATTACH_POINT_RIGHT_TOP}), { + CLAY_FLOATING_CONTAINER(CLAY_ID("ScrollBar"), &CLAY_LAYOUT_DEFAULT, CLAY_FLOATING_CONFIG(.offset = { .y = -(scrollData.scrollPosition->y / scrollData.contentDimensions.height) * scrollData.scrollContainerDimensions.height }, .zIndex = 1, .parentId = CLAY_ID("MainContent").id, .attachment = {.element = CLAY_ATTACH_POINT_RIGHT_TOP, .parent = CLAY_ATTACH_POINT_RIGHT_TOP}), { CLAY_RECTANGLE(CLAY_ID("ScrollBarButton"), CLAY_LAYOUT(.sizing = {CLAY_SIZING_FIXED(12), CLAY_SIZING_FIXED((scrollData.scrollContainerDimensions.height / scrollData.contentDimensions.height) * scrollData.scrollContainerDimensions.height)}), CLAY_RECTANGLE_CONFIG(.cornerRadius = 6, .color = Clay_PointerOver(CLAY_ID("ScrollBar")) ? (Clay_Color){100, 100, 140, 150} : (Clay_Color){120, 120, 160, 150}), {}); }); }); @@ -139,7 +141,7 @@ void UpdateDrawFrame(void) //---------------------------------------------------------------------------------- // Handle scroll containers Clay_Vector2 mousePosition = RAYLIB_VECTOR2_TO_CLAY_VECTOR2(GetMousePosition()); - Clay_SetPointerPosition(mousePosition); + Clay_SetPointerState(mousePosition, IsMouseButtonDown(0)); Clay_SetLayoutDimensions((Clay_Dimensions) { (float)GetScreenWidth(), (float)GetScreenHeight() }); if (!IsMouseButtonDown(0)) { scrollbarData.mouseDown = false; diff --git a/generator/array_set.template.c b/generator/array_set.template.c index 4729b04..36b560f 100644 --- a/generator/array_set.template.c +++ b/generator/array_set.template.c @@ -3,7 +3,9 @@ void $NAME$_Set($NAME$ *array, int index, $TYPE$ value) { array->internalArray[index] = value; array->length = index < array->length ? array->length : index + 1; } else { - Clay__StringArray_Add(&Clay_warnings, CLAY_STRING("Attempting to allocate array in arena, but arena is already at capacity and would overflow.")); + if (Clay__warningsEnabled) { + Clay__WarningArray_Add(&Clay_warnings, (Clay__Warning) { CLAY_STRING("Attempting to allocate array in arena, but arena is already at capacity and would overflow.") }); + } #ifdef CLAY_OVERFLOW_TRAP raise(SIGTRAP); #endif diff --git a/renderers/raylib/clay_renderer_raylib.c b/renderers/raylib/clay_renderer_raylib.c index c9fb80f..e96fdff 100644 --- a/renderers/raylib/clay_renderer_raylib.c +++ b/renderers/raylib/clay_renderer_raylib.c @@ -170,7 +170,7 @@ void Clay_Raylib_Render(Clay_RenderCommandArray renderCommands) case CLAY_RENDER_COMMAND_TYPE_RECTANGLE: { Clay_RectangleElementConfig *config = renderCommand->config.rectangleElementConfig; if (config->cornerRadius.topLeft > 0) { - float radius = (config->cornerRadius.topLeft * 2) / (boundingBox.width > boundingBox.height) ? boundingBox.height : boundingBox.width; + float radius = (config->cornerRadius.topLeft * 2) / (float)((boundingBox.width > boundingBox.height) ? boundingBox.height : boundingBox.width); DrawRectangleRounded((Rectangle) { boundingBox.x, boundingBox.y, boundingBox.width, boundingBox.height }, radius, 8, CLAY_COLOR_TO_RAYLIB_COLOR(config->color)); } else { DrawRectangle(boundingBox.x, boundingBox.y, boundingBox.width, boundingBox.height, CLAY_COLOR_TO_RAYLIB_COLOR(config->color));

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 literal 90309 zcmeF43AmKS(eLM7=5Sz+a#WNfqN!F?L~#!gw=gb%O7fX}CNWV_lW5{Vj1$ppB8aG{ zsED|4sJM$FxUZ9bT;me&?_d4Soa3(d`Mk-!&rJr;yl+=mS9e!;S5^PJ zr?kUvze!4^QgY3N2@^_{?bGq&lkwYU->u-17W$cc> z%f|cb7Knba>mN&*X!Nk#j$`A)lG|;!^De*K`FA`1V(fN1?Y_$|#_s&vUA7y$!_UX; znCx0AWsj=BtxHKt4U*C)|IZ8F$B+JW{YQ!?%1qr*77*e_9Hy))Kl~Yv^I!t;eRJQcXgeRjjQZ7D|VvLv5i=7AnOI3){lt(lb7_ zTf3Mo0{x=4h%H(Ri&?uZHYm-jS?I-^USq@J*3%ZRg(WOmiIRHT64rZgT5#*I4slyD za_eJ##BC|K^|hs}@93~JY?iU5ZJDv*TehTqs}_vP*r2qnEvZzedQAgw0&gl}(iWDr zWqVc*&KK!MYvlf~b+2@M%U;R&Y_BrUDSzo({uM2iRad8pGRsG+ZTflhS=o|7=_>q5 z2c`YhVylD}Wa(xt)@>}!)k<@9pGA9>t;gWZB1OeYRvDC*swG;lWNm7OQdo$u3#s|x z(m&9CD`jdwfAaS02#Z+HGdde^u~{@-*?JAmI;^}>)LP_bppy9PL*&b2_~YN;BFl*s^ajL|P>} z(U5M|Iz~!@j`WxnDiBqqD5S1}cC<+e7K%?kq&iTEh0X}=43_p93bDv66r#lzl@hc_ z2^JIa>S#tU^kMN?j3U(1R9R*6H+eIi*?XXUkc?J;U-b^9r_t(pE$<`rC?8Ben_yP>z*t zfUR5)tGIHkBIR(_10$DJZJ@2XCko*rtd0t-MyJQ8HEazDv}VkJLY#pbtZ8f4!nYBK z?q9D^jzK&Q>Qs)wJPz)n94%4~b~lpm+7>i^J%pM6+sz#Y4+)m!t_sjp)h4>LR5oILwB0T zr`CF?c=J?>`LrXn`3%vZrh?Q1ZMO|9a7xz3TLSZi}x| z`j*;cDbyghCDaBJSPnG3=GJ>q+TIv1`ASTQ60xJRNi=cfolVjQ)=OC*TdIz__4O!Ts!Iq|JO8@dcm_)nH)6MWP#DyRk@UB5Xrf_`|wFu|2HSm^Q3?`y`(Qi-o0? zBE+n%Mr$k-#pqetKS|meYWhDXM8D9Znlo)lkV;dKVp)?Q3n9otHLYh2L1t&&7ef~` z)5Zlh*=wPOU>`R}Vh$Sg%gqvNZQsw^;B&`NtEN-6+(OZc@aZ%UJ!!}0Y`U;5qQ$r$ z1FEMjI)=$~AzQ4*h;o}`aqDG^W0TO!OYn7x8vUN=kDDhYy1ut9sV?iF`+HfR8sjC= zAC_6!G)rTwEUom|7G4(Mn4?E3GY0dX%3T zR<&6%KJ~Z$vWZrrHUn%W8!$SoOf^=qm2H(VEVV1zz#5BfZmTj1G$Tx49V{`;=2~|f zHqq)xwg#`(s4>Z|S+xG@-<0au*H@jXQFR(>qrd-Qs#A`tGxqaTr{mMAqpo$;iK_9% zs?++#suPs~+g7TvTzo=%q#Dbk8rW&J!sxJKwX9Xy`j2H{Ud~pkp)?v{JqSU_S2x|`d|8sgpQu3Fw{YmLU% zYNM0CWj2PDV<`(Y`Z>2{i|%~XyOSxvmh0@!est&Zyz;JJq3F(j-&A+@{rcTGCG%0- zunqphMseRS>DJGf+`D!wjsJgSa_<`__c5O}xj+APCiic~Zq2`*-FilvgfAK0_*F!$ zWF->A(xlflc$MQ}HG)@PZYAa)vl4UJtz!6DR$}_8rQQdsTZveKQIaKW2~EcMTVmse zA|V;(5HuT7YSsL)m7K7Nn zsX?4Fh?B2p;LrH-9{WFR&@1eSLEqIXTdh>WMaH0Cw^SI^UAwCFGrOvYH-2VUP5wGv zHTfIy#ojD^{R#K<|G2)Q7N79Gs=QKHCAN6GN9y{-CGpEUjEo*39`jj)Ys%N@v2VtE z?*H{W?82k_(ZwFA{ARCEXJZjY|?tw6gDmvmBqfP(AC#80Z#p@layM|O@Pne zzxrw>Kx{o*NR3D+QGa?`PxV7H>RO8`u6R+3x6gLgSXyx5q6M|9^Oe_?FERnX^723T z-=$({RI#z2QZY^BU!q?3rOAq4J}zY3HF{RYo%hGr85gZ_TwvT)$HxeCYgqjKi$S}>H)RR_|4{G$ouS?{ zeWw44q27PnLe=l{7OE)zm(C>Lj7fdh{}U!PwfLk-&8z=ClbVd5Z&Kgxs`eHA)l2_f z3l>%Q9HS`8|E0S2V4AGZShc>|R$8mJdbNA!v51^aycP_RXw7~0j+ImUj#Z8sH$F;S zi)*Y_El+n`NGrR*z9qP5m6|QazU5+LSg!!pV9V*%5>^8Iu|&gn@|?Y`w~QK)Bl@$X z$UGu3hDEC*E?Q0pG(-e|LnJ*|04+J_w!Wqc$DQU7*zj1fcga+tI+`a^4+m73ZTY* z_=>w@Q}gZ}>`pYo*^BbM2^`9*_E|sx+`zu(ureQ;9dY95+a-u8*Du0EJ`aJ%SnUW4 zgBSrRqRs6H6Zw8v6u;5uhq~-p`HWEZmBXhozJ#7SLhou{riI?tF^2t!B_fs~m2>Xk z5A9KQumbe4zBMe`RDax}m7lV-!j#(HHquQHkW_zYaOGbPXvlJLd%GX${c2%(()lB- z5b0orY(;HvyBLn9>q`iGCCxYktiOOm(H-A345T8C6sm{S+yP##Ss5Th$^cdo=C+^{HLI z*oI$m*YEbMn`S445dSZknY4q#%ry4%W~SCp&rE7zpP8C7i^YK-ENG%w7TLAx*W?74w#euFuIId;i?lQADwza0&t1+|uM{L&p+h&!|4MN@g z)n=8iu*(?tteSzS|93)+v5CH-*ES=|R`yAw35)-7Ge+=dpz5+N+zt8$tr?-7eO+&E z4tcR1gxP?>+md5(b3i@|nzxiKt}vUYV{*wDaBnBapy|t;u}qw2H|>Pb)WdQT z6B^hmV9qNv=Y$oR6C7Sullc->sMrb^FkS!;{EAlP zzfBiE*RhD=f4MH^NwpEx`#26=YrYO(u=8YPohvD^j^%>q=jqUFXxuXbrLQ@H6Fr>{ z`iRi=h@6hcC8Cm~zR%<*Ieb%gAaImL@T{A=PWb7&*&P_=^TJIDs_fy3_Hbbe>ZZn);T&g~Rr z>sEW>nXhZ>jpfvilWkxd*!ptFbNg)rMNN7B;jEdsYrf6Z;%R_<~J(E7u6p zrvD0y!M9+vV~|GcZv5PUgKnhb*<-aL~S^c(j;4y zrt#p7wwaym<7!cG>rKj%BNZg3dw&{AaGD%oPNu7`V9gddvi&3fMg+>XW>~i4j6_#gpfa0z#)zBe0oJgJ2@a@`yYg}3Tio7FAW( zxAmGV)~6%}jBPMhLq=pn87JSZFXGt+h~ulaU|QsHnEL&3&S8A)+8H_ z29L1eHezhpG?Hy*o7twdusLL#H_1k#!QZoy_PssA_aoVV*?-yhcMDrUwndZd2WapQ z?FaV5vEjcX*_O7Y{dX<=2(lkF$$re>{)zqAeo_lt*;YL($CurIS*oGLpA&{fixq~& zaq%#0Uum(X_ioiSzi5hg_duth(Q}86PUcjS;;?T0w?}7V5i2pkIn29=AI&Zmj)Ty} z?u_^-Z@=6Fkbc6q@SgB(VC#;}6ldETE$_W6I$gF7Doo;%eB}s|7Ap@VO?NsD{i^T! z;siCv{8I7!5&JnMG?~M`OozUhLE4IP2d!29ec9^K&c#){{TvsoA31;}_%>7?SQwOP z1=06H)mPApfRb|xc-SY-e43y5gf3USM8TO=X^mA0&a`D7tZhZv%YGxX!BDmlH3q|`{R-dhsiZX>S00~__C}k=%-i`%l zsnE*FK=dw&dRNzM+Osmbd!+@R@Z0?B#+uTv_`7IhNT$^ZNvx?~N)X$ILCpg52mUZL z$5tOItg)H~X6Uw|8(!8L!>rw{n{}^gP4PFH9sWQgu(%9Lf32snjU{-DmZ7Pz&g@(D!1AIYh_oY#K+N`1*h#U_eufXh z!b}?>iV?vB5q`KsbuG^0N5gDb=c&MYSQ#~0S>5NkRSfi^E zfLxvW#sGt@#<@VXJf@j!GMQ$)`nG*rlgJ=jQyVGT{uxX*?6Tr?y$!B~b(C#gUahMo zW<9-PRB8BcVC&ch3U9QA@A400+JT|K z6{9M*;o6aj%`^f=tT0+yHnR~dp_{dzr8bL=xp_e~k~L=YqA|Y*_4fv)dukH$7H8$L z@6*e%omha>PQ?N=vSAr-5q>}yvIwyP{V=fj*p|b?kLbc5+mGzW_3#rK`zJIus>0gS zKfTa9@u%XsMfh1E#@4pA{j3mU8{5Wy%92y*?1F8p{lh4P8C470*><*VEo`qw*@0I( z)WXm0=X&)E`-QsTm$tqAGIqg^WZMavooeA%_AA@57JjX4JM(JiTBun~uSVNwwdEN5 zwT+2g@Efx20?jV9@LT(>{iYUnRkk{>>b3AY`<-6xX1gidSliXcHoIVVNOm8b^)G6* z2aJBttKZkcA8Zf%L;IPow14E)9|xry(;|PeKQ&t9&otSd_GjC3bQnjPv$=EOv``jibwXjcOe8wq^2i?YD663`tF+uF<-MDAiH_=?OpI+|= z{r-vVpA_@SzDdu@BVFK!2@^82tfixwd$NKk)1=d3nR?$RUCrxpX7IUpSLWVKCVw<+ zTN`qBR~CiL(m45Q!eR3D1KH}Sg~(1E*Y~ zXk12DfOiie=*#XEozy4Y?8g z)xX65K{IaQFG$m6ES>+-&QM}rT~I6npSpQt8{_7UbxK?F2McaXbjojJ@!L17+q%i> z8*04(f-_jRb4bH*Lsm;Tc4|H5(qsHz%VmqT4N1B7K?Dm``_OA_TndBJbG4)-M`UhT zWTR54G&J_tbQXjbTWknz>REd6)Jw{~3d?6pyxeAq&i(Zoy+kV)z#Hi>xwc_NXp#Fq z(pmn{9`k}YMR$>#7oT1K%JB&-Fi+3NMMhMQAs zIA76YjfJ&j#d;|$3(Cf_5Z0>LS}Y9Q#?fp?tS?y%L+BHH_Bq&HLu{SxxM3rSu6jMJ zkId^gW!_+;k3Jed9`|Dd`|gl5CnVv8;D-z>^}_6;B{sCGZCDQ*(GnZmMl!fq9yYOI z!^3d6y2nuuo5FR|CfCjA&CPK>Hm?Pi0rlqh?0a*=_hX~rZP8kSYUI7r4RqgOyvKi9Av<7>ruT4O?@Ie+}1^mc_HdBGyE zchWyTvJO;l_9b;6Uk4^8?Z+!;ANABWEC$f;o7lchde#9}i2aiGtDKBvUl1DXCMTLv z4oDE`02Ye_6FV>|rnAW`7EdS15)BhIr=>j__^GK!1D2^rqgcCMl;My+m!CPOb+sf9 zO~hY~xu(@B>m~#f<-{=M3@j~0$b%<^)_r>D2`j(61XXWm25PSpDbxvLuKm$PT5VYB z3)^Dte*YPo4jyWZX@@e zmBT-FGVW_^Ey_b@ZSIgWq{ic#6pu1h6K;djTIj{gHRj$Fnh$5wDhkE5;3agkwuVqf z>wogbl8ch0XQNRv+U+y$Z}H$)1GeQouTno(sPZR;Du1C+x*d$OC{c+Pt}gICRXl9r zqE8Wu;6iaFR6m+`Lg|}m%k-0C>vZVXYs>%n4(|3zp}Ku-q2`yf!I&h?UCOL_SMoW% zd^=GQ>Hf|7%Lt$EQIgx`i__sZCsF_ACk+L>GO6Y+;FUVF#RwRbZo`c^J*tnEK1TlneGY<;tQYy6tt0#Xd#Mhg?fl-*s|=p|(`}OcjQYTGq*w*^L@ID0sFk z5u!*Vg0W-He?Zi5OWd%q9Go3gQxD6tcrCBRixz^OIFW9hxU^Bf74`m7?U@rck{uKu zn|Il)QyS@^A;kI^+{QP{FHGDUi&<8su7GZ2rw}pX`ncgZtO@?=nzmLwtc@6J+i*_%-f7@deOt?k?B3oxjx@UY^m#1}yq%2O9Oz%4Y za8P&z`SF!U9EB z5DGn(OXe}oILR=J%B>ly>TQfJ&B6)9mw0^U^*OS&z!Bz<*<%;U24;TpZ_ zr2VCZeuE*G>ve%-u8o;ow!YkfR{*D$#=1c}V~7(}Y5|-o0Vk;6ZK!U$B6r&QM zMxwd=8G#w?l`dkOt5-8uh}FaLkaPN~7h&ubs)}n z1o$Ar+CLqNnavG|hJEd@kA79d#zu>EHPfmg23s(&L36;wL!7VsAY6+_cEK>I*T$MA zqQ7|s`lR9lioiG-iEBh|}y@7a+@-EZDlWgI8nSb&uTktr073si5i+3MSU(WMp&VwN2{}`|4U2i2C zBe9Ytqlqk}QFf|Fc%f0fTo#nB15CBC+?PZjgU`FBcjM7V-qZfr9skB}2OP@)?B>P` z1YHdS%s@YOn#%IPJQ!G7hV!bJjg4ypT~iiyMOlm@xq!99R|+z85atzD6)1SrTuesU zs=dA28{?AE%8r?$mbTQ0PXu;ZJmBDq!9%XL#$yo5GBPBXAco61!^XTq%c|;MvSTxTwB>AleVsm)Z9wdOZ2@MN2@5jJ&3 z#t`4L_YoCkVZ%)B*xHc~uBx5}>B$k{t0jH#P_-TBy94#G4#SQ8FtA!QrJY(kjp>JhUw+-ST1w9%H7n< zWnauTtB1|uOq9|_j+KKthjBC9zCTUlC2Uf$O@gA(Kd>J(s*ZCik5$`043@@Q_QeL4 z`Vp8!6B?08OpvW`P=AUm`ZN2f{cL#HnxeKL7P(D5Z0nWS*7XE`w84k?quOVC+g@me z9iacY?O;EzEBv@nqfWoHU&@u;5fOH>of=t*LF%o$qSJ6ie`Pz%Z-t0ZWP^xsq~shU zIe&xi`I~y!1v!6fyWooc79Vt1s}B#qqukwaH+QRtu`cIWmlH>{!DkQKLvsG!em}63 z;D{zTqJOYI*5!yICxzmQHi-AMJqMsl<6@8Cf9h#`>=9P?35oh-@5DQ0qMT0xk97i% zaGm5{=cHt8^fKot&Nv?Ta+=)AaYPzN1zgHR9_8c&m$Hsa=@K89MEy7@v4fh<>6FB# zu#3_w9Guv}NjM~Fs>z{=9qK7llPK3=i5=#0O^b3Jp4ha+4yS}c_>*da+cM&tF^#Exysa9m=1j!D?4FI4pSq`JUopA!<}b9~dq z_5pjMiaRN>6B9cLk9h|2*$ixojv`Wca$+YpnV*u_DM+1%Q=`-~6FW7rnMi$_*qol& zX^EZATzQ7%Iy12|l5kdHXC~q7#Q1V{vRODsl;&U+zqXg}*52uEhS5*j-TGO{3b~MU&p6>fA$@ zwlx-tws5b6yDzc(n!??m*!|wt55)F)FtG;`dk|(1C3bHT9!~6`B>XiozWg;A5gt*A zk0$m=Vvj=fSYnS+p4dK~*yFH`3&<0Cvmmhr&4Qjx>`5=^Z?T}K68l?XPr>8q#GXj( zY5MaS@3gk?Y+`(U7QK8fDOQx{6XWw-QY`{rVs=vVK6ZA0`IZ51D2D zCCZNy`&VKgk#Rzr4y6kxq;ZznJGH&3Ra}QArZy41Yz_OQwoe)+rG@6ShJ91p*HiYx zR?+;qe`@=ul5BG7v)=)!O-}8AlxZxbyn|9ZFtvlyv0+MTQ_?x%;MB-^a5^mW!BMFl znTDfNJ1Pywq{f$H(&6D)NpoCk$EJ21l*h-~AD{ZNa6)P)G`XLc+KFDZlTtg0Vv;aJ zc~552O6_Fwo|4)rX|a^GhEr2Jl@{q0W~vIOrFL4A)9I<5?n!5)#%Cs#K2xvkOls9j z^T=7Loz)~iJGHaDTIYDR&Q0x{)Xt^AS*q4~sm)5m`Kg_khS{m{Wj58iK%&h_?Sj0nHDz}E0cTC9POrpD)yv=K-pPg{6Q#XX+dW2rr!*1{9W zXHVczw-syPg47l?nLnA@lSrM1zeTB^O6_l{J%!Xyi_J5sJ)PP!Y(YLNxt>ey*)%+# z+H+}mAvM0dkZu-U6y;0ISE;>3#+PGzzFf5DE2+KGEbi6RUiIQ$i^aX3+H0x3POiU; z$v;y2dusonxHnRJBMon=y(#yt)ZWrl#okQA+eL%FliEA*>KopTy#ATmyQ%#XUhky_ z(R=Bb@P2CV)7BrT4L+a+bFF51_)wMkS8D%i3ieTIACc4+CS=CvL%L<}j90dI#w;3h zP0Yx(PiFfxy`@Q+P0BPN_sxvY#B5sFPp@o0a`kdx(Ege2-=v?M+2l;EeL&_j*nycH zklBG*Jsc$7Q!<+ZZCq;(&Wz7N{0_z;N;@<&K8J8&zb98MOcnNKYE}z}Wp-E=ow=Ts zS6T;hcFx_)=z2!?v;47l8R>F8lW}byd;i6>&5*M;U=k~RWjB)clVajYYO}DLCQ|>M zfjR*kcOgSFfHV9P0h~03aA*LJ-^4Y87>-tqMI&24FWTPgWs6#`QEV_IF@94Iy?xc` z9Ty$H=`dzzdqLR=FNURx)uxSrOVX-dY$r=UVKWap68e0-*rJgp&kKBAz7)f@= zRMx}yJ^S}#b_cdZ!3nx31Kwo#VY4alBJ~mvGW@Ut#^pzm`H$_#S~h+H%;hKBhOJ%TN<+Y24`E?HfG1C6j$Hn9QBD^PP$3^oHUk$TB2<3RJMg3ZO5=v zQ#SW0+vHP*ohr5yUggfA)=b5jl!#-v9k*8D5c+T6$o6JKAV;?_)x>Vv)pl(p)S(0C zG6x^CZo5ID36afC(mklLJC)tTcDFr7hu;^wkAJ|s{C)e0jp)@M?T-!OKSBIwc0d0- zI_y~xkHa(Ev#>uM=u!%wvC-MCjZS7mjMs_sI2+T=OKA^&N5Q8XqF#GBmV)0ZX`aRV z%%7-XZ%PqI)};OlL-G?f`qN)K6^ij%wWUwI58mUP#$@4JXZ%)#Ul!XPbnmBjc>uG- z9ka%61<_Lf-5MgVpk13+&9OI`uuFA?hwaJ(2s1gzwV$wawy69aUiM`+A$LE8pRAV_ z0Dt=APXYPM4kklC$*12~@Vp)nmcQjs9tmbOP@J)y`K6CvxgQxWQ+?TeS!NkqrdY(= zZ;@#H91J1acxOTA#~baR^(?jDtZ$K|XJzfAtgb5Q2uBRDa$qDlW~dglXb{cQPrP_q z`)!}i6RY~V7LCkWYwTL_<22O?^R!>3A9?83ew?ai*-9xya(ReBTHD~%x00pN8>*kk_Jl5N?ZN3xXV32A zATkc}bKzn?gw!E}(sR48|4x-)$2w2}_GdW?>pA=NZ9QAxzSBOX!5*RwV9zE2=*)Ds zvu6i$C>bL>Q|vb+bwf7ty0G7uaR0Cls?~u{pjku0&`|IhULzFL-1766FvpW zIlBGG2KzsN=@g`scL2Va?0zcaH58cd$J+c2N3e7w)@PUlz_Mvps4GtrAxi zcaN;v?(K6L+{c7J!JPoB{b_Leu5;%W-aW~;XN@T9IC0;L)V&6!6AtK{5yn>+l!W%l zYyxW@i{IXf;5{m0A1#2!f5*39)F@?pg0B>_uh2bUdgugA?A7N>ioxO!z@vcnl!(EK zXfn~AM@3XjK?e{MDhcC*LjbjhV#AbJ;=u~V5`-mY+d0>5N!XMk4^=Rh=qVlJMY4@g zY&9dmif5p>tSU$}7NThs={q?^k%t3UDiNZEdOFmEX^%(<(RwA1Qlyp;tsUN_$PvVA zDe@SFWQp6N$(rP}BX+Eq919b|wa0mp$2-yS6nR&dnec?9x?UhUn-QX|DN=h<5@y5_ zPfiHc5}qZj+gZu=!YL~8R1eLbLW#a$R_B+(Ofi`WlhYKZRV7b%qSGny%`WXq@OE_t zZ!-e7HN|hwQvBBINYIu@F8@8FONpx!&ZWdziSapC&FXa=63!Ek^Wbs50=X)X@GUg6 z)v8^pctKL_M@SdqIS>=potqHS^#U(aWS2NDQQyug_9MhgftPsT_F@X0BsB!BMvyln z%v&SKOLSKSUhXuPQ{a>?s(M9&jYG6IBi>t6y!Wa^QC_Jkao(#H>LnoDeo{kMJHk8_ zc&$f!=TYEPFVGbA%?SF|!u5*hs=)b9GoJ#F?o!|l34nkbMSLT~M15}}o)QZrxO=mQ zcyCDB>4doQv=R2Dz}pn;CH6ZwJ>CoKrSNY?=(nZ_@Eu;@olbKn1$m;HKZto`<0tGFrWL8;$`pH*6^UD zcn~Rw4L{^kJnS?NQ^K20gZ1)P5&ab+Ld1_G4U6oka?jS!F`DqMF^8K55M$)C!Q3M? z7)Ju;M(#3Yl#3H2)gIAF2A+0GqY6WDn1y&?*Oj@aP%31q$jMmZF^8NXhkP;p>2N$snob~FMKUw@;Opp(y5J(Id2A!;zt@aI$^VT88 zet^2wv3_{bmTf<~A$8xdBCH*#gH7YC`(gTI#Sg@Y^~%;?TeLGeS;yZF$~tilV(n03 zTcuNKetHVl_}aF{;B<aW zSvT?%DGkMZsP_+~nBDjny|ab!(genlUA~B85)=eV{9IR7cyK!7#UZFJi1@7dUgod( zG@e^O@%+j39$*(Dy1v`^mV!1JC;viH$=49Np%@&WjhinZ^6Qkg!y8~LV=MmP%LqH~ z7zCdI84pyy2T2jNDKuNjT33p5sDmln24}MDfUs&#oP{FRZY8-i-!)V~J<2C@+IOT|2-N!ntPaPz}lA&)p)RrP< zAk^%7h3+pcdq4O^S(~HnA#hruZ&;R$4wA2jeq`zw0}aHG=7bfHX$27QuwRj{EAoS# z=}-xwU(@U#S!3e|0Q0CgKVi9PSOso=roFBJ68l$?cr|LcIxOO$Dc9)L3Wp!qf%F)d zz0T3$c*pMimuddvWvrdRYQSW3I&!eFH4<+ zyCwUM&^E|zLkDN3a0oS6B~+~{P8+h4_(@%~7p5Ljs)3dtCZ@w-I)aSxNTO|`(^H$- za53FjOgATObC|+Xa(`w_DVFwM@ZJJU&la`Lc#@0p-z4}sDXegYuA>oZ4wd)tl9X;M zoxJq|eoDhQIH4Z4_J-NI*)R>jJVC-y%{qclP;hvA+dhn{*r>1r+;$kk@f}yBpVPC1 zl;&_s>gV>$Z9yntX4{UoQ$74j+`WWf6(#glSV=*^ot4?Jws*GL)?qYx#@J{ZQkyci|slp)FJyF7WD7xM3HtY6r-=ANMgCWGWCl=q^$`e0a38u+aK!K z(tm`u;`LDjH={@OuqWEOXVh?E=ErG^Y%fI&#{-xj&z4`pPr6|>W5{DG@0~P_=3z3F z6B){rWCqt|AMdBV-J;dD#7-vKh>eWBJUQ9CPqQiZPZrKne)GE0#y$Z3(H|UxO2lM7 zAi-uPh%U|;$_FLkU|Gx<$TFG_Nrq!3lZ0K26+9Kn!xH2_%!`FzLnpD4rzNThhB1sW zj1L!bp^jyYZeR{$9%B(7nFzMPm!n|}W+9RFi$Q!Wl*hps*2g7k8?_mDg(RFHpaOPn z9n+W86IF0jOt*lwxj94D@4!+ioU9C|xFLKB8Qk(!FGO}Tm5RkXQ$}xHChzG<9OtV5 zQ^1fFFRa}&;U%;J)R?$fy=Oy>rF#z4YQREK&h;r`Jz2XxuVCZy^*lDM-N>CQ6BnA< z$r0fKNU&QK$%3@6EZjM49G7I_wqWBb;N^ORh3f>ExfeOX#k|lsxI{<>&#n^Be@{pTv3*~g&_6Pcza3Uv@0-{B144~DRMd2fJC*pDqo z&ip{3t%1qHH`wI#@Bp%bBR`OG8blit;2TQ9Hyp%XCg6qxg>Tpfd;|3b+5pbs5OzHe zO_^E_O`B88)KuO*z=jsk4YlB~hTwPxpbtf`*{6Xvzzr&AE5RH1OhT#k#4|Bpv0z!a# z*!t6$2kLQ(>OnuTJfA8?r&5ENDTWNFhZb-Twcv;ce}9G`53(1|6z~DWgA4?I!+VG@ z4=tb`24_0WeYUa#b7%qUPzyjF_?*o*AP=+?n1>ed4tVztcu>M@;U2^n#KSD%9tyrA zgo0=R1c6lu-?^S207MHAh+4Qv;0K$_w~O^kUoH{wL5waH9s&eJWW)=A5G_CmNLyljncd}#_bpDNiz8Z~ zk;AbJ|0I6{7%lna5XiyMd(xeMA9(bEzxYPyBVIt!IIf$M-lIrw{*E-@z~s|@c5&cf zos#3X{I~c#_#avnm-hqHH8~Z!K+EyqzHz`lLx!K7dCUQyyMGL1g-VsMHpiNa)6=@c zp=3Q)im|Y`)i5~o2#Y)2gVHORh%nr7^I6GsDGK}7?DES&$K`0p-&mCWCVnG*(~s?5 z8#~tuSQH1TSt25bB@2wY-xbt;i9BJvj!b8CSy!RCRC^75rEg2~ngcSdwefZ1V(cob zjFHARWU#;v13&fBz>q*mtexEk8AAQ4%x{gOyBst43RkJb{On`PNN^N%FOI;hRvfzU zeFQ(U1KsSTaIx3Wc7je6*xJKC;eMDqACcI-k6u8aGhG*iT@uUkBL*GXJP^EKJ&Ekw z2X%G~d zOmWv^vuS>aVAwRa0%F;Kplzh@oyX_z+xL~5ZEWqKZy{NHGoViVKOz3_w=%>Ny2C>A zDxiAU3R$-5l;x+mMeb?T2=;HSMS^=6#F!Aj#2RIz=CWPA-IRcHVcSm&JJ=4k%{0aG zz5DPh?C07mW>Sf7e8;*q>{vWH6uLtpeKF@euKjvc*clPsv8ad9zUq%IBtjwBw^r+T z7+>pWYI}5jhJ>?Ci+z>@NJykt?E1jAF*#tS%M82N7tx zBf21>!3klim_>zVCGtZq0EgHm0}jYs&%iu)q1Vh^4`?d5C`8wb7Qp{-7ld)aw5quh z7eq(o(qejM6A(Xy{=yb_pG0Wt%MP29rRaJB zf;z_5>x9!?LvC#}D4B1QS0cT~AGuwQNuePm-6>SH+A(@0chD?%$l0KfyUX{yqf1=Y1kK$f)lm&<5 zQMn!U2(l(q1%D>skvx&i3HT-%uE~(px164ob210#gqMHg<#fIbAPG-pqf)6fRB-F3 z1h<|pxOIkyG9+cl#fm+vis7X^D@Ub{o8qnae4}DBl7PqZ0v_`+I4qj7aZm7EUV`>z zWyL*t#r>3*)!EE_-dwL~aeiItcqgyPL8;3_(;|LC|RdOh=U!= zl&1+8nCKabOyPUWI}uEBqL9{e1I`H$M(lQuf|TT)09b^65;8|4WfIXD-g2!B7uCo| z5nyruh_P(AD0R6g`=&T1xG7EK^$463WWyi9NjVso1n1-s40#s?ZifnFExTl@^QWN0 zQer)LCU_~+fX3pTkaRd!FCNKsC&eGha7x(FfQz>~$ZNtdLSEyC)bU8XH;;D52dO7; zjzlF3IuE6hGv3cSP8Rq%d3&KF9HGMk?g>32vYt>*3#%RsP9X=(`pJ z3jU`El`a0KrmWMr9JnYm$$grN!!N-{Ii1HYeu;|18Od-)YB(bJ9ZrEa!Y4W`r+IPs zBpHqg#WmCn_aupkY}}JN?ul3T{4UjXKSe_yKjnfH=cH58x$;Cb^l?uvR1z~{DiUyWSX zAQ#Z=VkxJQ=A|IBr8?I})wwPOrVTo~4oDltn=hEQ;Mwz2L9_XCBT(X-#PsGa&}?&9 zb|L1ispi+)B>io)CLI?QTJ|!#x6K1Ih-Q z4J3Ow$ZX2IU)XGL*>!N)ROEp!6?rhN&LixiQXit!hlR}!5tRMl$4WhvD2#YLDo8fK zY|fFy&U!3zlU$FxTu%s^4Jf-F7D%oqg~$eh4HP>(RRFMueH?&Y2Y~Gz|Eze?e$NSn zJx5sV=Y_@gE+3GN0gP=g>O}=;wm{j;lG76~*~aH3-1b*gk5}k>&7l1m_Tg1^2Po`U z)9||B*g&yCWCO(B3_Lc~c|(Y7(AaeV*fh7@f=eS()(>#d&}$GCRjhJJU-$Uqt7tw8mUGTa~>av)P$lKxOB|%FgMm z>|B+4VP;l)HHBZJzM7ZWHCebevw2y#4yzCNL^dp3FEQt5c70~^ zp}YYx?S?4i0L-m$BdiCY`{5=K6j*xM;o)X~wNOfZcaJ$&w0dOL-J79ljY=t`;t*~YIOJ;we0N@hNl~HkbW_<3-riFWWW%u}y5dU9? zd$THliOlZJ!u^@umxTv1B-(HL~<-(74h(tl+3k8DbKBQyUHq0WrY z->LXpjjFw!8QfXiERLtgx3h9PC*L-ls|wD_?cCgE!Tdb+ z!FgT!;C#49FJ`ND7l`Er6gbDLGgpsudAu+;K1#SKw~M?w7w0x7w~M<}=Mqt0LUl@% zcxi5MzLXL#%Z<-$C0<&H-X|`~-ny5Qpz^O!`B&yu3s;HsD$2S#H$GSL?HU(no)YHq zcx`TclyF^c*SR>?=XOnQ*LM+TzNqITjv>wsxlzy!h;w7kw0e`uxmg4^!{nCSZp`h9 z-1u@+R}pE?TSas$Y)3X$>yhC$-u1@;3b*HWTORJn?e;v}nHyj3%r^~xQH$S|+h20K zivsV??QW@*@{A1kcunpV*Lx}YzTEE1!~MDOxhF3`6A$F}fLH24kv&M^BMMb~NUR^u z?V;QrhV@^4z}R0K!-aFkxjjPGj_|0O^Re6>&FwMDc|5nro#hibn-mMgcLA@T%#Du- z{+1h`C%pY0&9xRkC8DQjzafRWKO#Jx+tbednVhxw+1#GV?O8HEr^24k?YZ2Z=kbNy zUhu+RRADcP&r7_1IX6BccqKPJFM46md10@L=v5Wg7O zeabem943`*pK{o@Y<$_bJS^;2hUfle+plc=rIwgbyk z!a-&8&$KY5YBo`|#j%mXOFgb^ z$8k8NZ#cee$5VVMoS-}>mhFVHok*UO%63w@b5fq6)RW6LqiiRWdP><&A+@N&sbxFW znawQQOqhW`5c%n4JFRS|Lw-it&Y*Ca*aO%HJk#3=qvNcy@%^mwsBpG2oKv>5%XSVK z&W#eE8zokrS!J754(F9S?fCP{cD~+J?7VWAt!ACAW_9%&8ZPkGoKv<7$~Fg%b0f#O zWi`@(bV#_69R1m^yr^s!m1PQD>{6{BE-4#dFDY*uE|pN1mF?29T?UKGBa6!$&A4{B zqHI@q-Yd&?WjS2ckZ$#Gb=j`g3xEdYa821L?HZ~%PaLl;+q|+}3&-ms$Lku^91^ZC z+x6uzKQfYdH$)SiCCE@I!)(}YVX2_eNwJ0PR0qeslCrK-?fjL z?8R?o7Q3ru|Et|o{ch%BhJGF1++N{qc~bVEwGSOzt7{9Y#j|muqeQ1^Dd+^iRUI0?!>oD>oGTgPzt~%!C!gyM z`PBmI?MB;mp5#_}+NY0r0P&P&sOD-3fp8mn^nHmg&&rpwXWzG|uk`M#=B1@QFF(ep z{e0>ju?E5c#GaS_Ml3?=@ATZ6me4*iJs(G}`gc8hJGiFMa*k?HYe!18R0;|paZPE| zsr_3I1luv}VU$ZObh;?P?3%N5<)@7Acswse^B>-+Nn6d)J0 z_(Gk%^*dtO!mhZ*i6J$+68v`e3oF0^Dj<#9;thnGhMq9ymy`U4Tw6p&W+Y#5ANi z2AZA(U4^!ST#0r7$V=M*{k+!7B3%Vi|M>>LLr@9&U9D9_sw>czE>OrKT@%tSzuW*k zS%(MLgw&Q+`XEXiq#OMGtYR1pdGkjc26HwLXgpoxKNmzj{r7@&H-4-(;Ck8F>(c`p zaFTF?bxQtgW5-tnOkOQnA`C4E8$e{+(1xy?@Pkp_YVpd;jfzu)!dCc={*>d`8kW9+3G@ zJWSqCjpRS^K;3^wuVdDpY-D1%v_QQz}3VepMV6 zlsQ^M#YS7rMvn~u3vBf69EUfK!~dpnxti@d>|?0qBJ!{s_8t7-JGS7vyN$KoYk-&c z5Z~X!*TKtU1zxs4><(tRhfchMA^0-@f<0~Au#W=>Y=ZXbqKtd{_@r(V6F>yu0)!x# zR9vb?xFn&D`w2T>`?2x1zaYwP_Qu?kJ@@nquw>8yAO}VZnw;B#Ofw6ZG+gY18bnhB zQwF143kQqnV2GY}BH9Y{0MxWK=mEYT3Mck5iJ3t3P=gaVf=C38fbY}bbhwBPhv-o! zqQAL*?XDicmwA5#1P&tr!d!i*2lxP99?eS!5D3Bywt)XmPm06wsKC2Dbe@kdFkzdR z@5h6<1WCZFH+ukP22uc+U|Kjy%uZs@^<7FHklxoL%+Q+|y!pW2!0F^hwo?jl^WouC zUiomFDd>Qha)m>xI*WF0j*K4XOaL&qNha!r5$m{)G|-@?Y@HbP#}obA&1Q z_+@N`#9#|zwa(WWK5zzy3tT|>qY&L&{Q{SYj-2CA1KT0u41DUKm~vd zE~b=A*f_=fy~KBuV~+qW;0p{u6Y%{q`tNdOxUM79=Ub&Vx-WS&i`wZS-ng9o}j`JPrd_8r%LHTazTE`pp z=0>o169KX5KU>Ef5H|csJcjlB>sUI?!jgf%*6%Jap{jzvv{N zIvMD}UBsjvBM{kuI=Dw~Du55dy)bvJxX;h<-HY71y+kh=9QUgw9}q+uG;~ea=p1x( zmx?^3HxG5K$isT0(|pZ}{8g9)iSh_ZUJ;N8e1DXRJf;F3cRcjt^zRd~f1hadFH69J z#1?q&Clh-z0hHj$#sgf|37r~yWxRo-g06VnaA1mZE?PHjY9VtaE9T!B#lpimP|fd~yWO~rXnZ{BP2 zL6zRuoA;ehrFwJ^!54_tkQvCrhmKv~x`zcl0?-9;3?Fe6(-$1(hzTi_6WAD>;R^mi z55X6RUGrvU53!o4$BAsi0%O=m;A#vI&6yr>YL<24-d+0W-S zf@dJg&EqKoF?a&#g;PBvNQN0gGAJWcu_z7Pt)w+JVnq4TwVL40?}>Z{Qz@ zaf`)$^u?4)#rM46gG+P2s2&g|0yG5ktf(G@YPJ(06Nm`rS>@}|Fb}8n03Jb-qa*sK zPkYaUg#a+|s6Y__B6MNhW9g;>LICyZf`b48QCN*|d6G(a=D#@{;>omdlAhAtblR{j3N2nyM#DpFKOXOfBYG5Ud&xeqgAX+Kjd=VyOBu`*V{aqa--&;?6v)B27o+j#P zB2RC2Z}jJz-GNY$G)Z`g24o%Z#6FpT6Z>WXumoTB&o%`jfv^V%1OY;Vy+Q#aivEPl zL0JJ>pCW(+fQbUPez3|sm@;4QUVXm1fD>#QW;Nj^K#3K&33;Rox(htP>`LOaj9DIF z1n`N&sS3l(|2~A1&OJ!oK~Vspkdhps97n+Yq3+dpy9-XiE+Pz$5}Kk9bK}wct_Igx z=>0Lg2S&l?Xucf>N};=;6Ko*z2xNkf5>6B}LcD=b947>Ygli2moYBdm@5E5dfc{ix zG*byPd33adDdBV>B{aN9zdM?;msz zASp@_Ng)))g@Q$Zr2rVQxj+c;V4MD3zl~)0SpCbihI;z65+1yfGEIEXllPN;)3oMk^&e7a5BoGv;krV<_JOV^kUkT&ye%k4BG^l#IpiL2rThJ1~LMS#4ykilmQOnMWG?U zz6udR8Ey&E&aY(E@c{_LD*{3g0$10(M%R4Modcx^{<>bg&Wqcd6Ugn|g^P&Qc3gz2 z{YI=dmUv2#1D4p2(l9c~!KHfL0~m?4iIEr!M#4xs5LO38U<9{%iun|Zy3}W( zgY|eY1VAJX$u$cdn(Lk*01-k(aA}W_5nv{m=<@2N-2TkVX|c<8TSZ@y=1wIV4@^Nf&kpI00rthiqo$Qt~(z`?LXCL68N^p{B0S?hZ(zko!u(AEfJ7!3Ap*oCL6mt0@x{#1(m%Cpd&~ z5`4Kf9|2AR!LAor0*pjGfQ^{%m;^c*t-C?c2z56w2>wzK0EtupiJNfH^RWd&;ue|^ zJjAU|dYc5i4FS*f20ORA&=9xd>$V9H0SR>l6LBX}_7NmPQg#JJAkRHQMgV&l8^A-{ z3u@&)$57mtPZJ^n7KrwMun=Mj7J`=#=A*(Ffgs3)B#wemCeRO25|9v&xg?KANuCfM z0=NScom%F}95@6}h_Mj|F-PDB@;-$mj(G^rIIbXy1n%Kk7wI`69!RQygAn{d;D#aT znY70M{wo+nEc``b9VE_60!Dy^zz9^SU?2cQyn+y~q9~}!tB!7nxxqcWmIHw3)SSQP z_IGCk;^7}ks(_3T0wR|3rT`E+cJr115x^R@4L~50CIq4m1j0*sw@WDiB4TdGLr6xj z5WIXJ89xsMfjSp8bQlB}h)x+nLhQ|+aT`DgVIU^3y*j}G5kMg(b)nl=mI6MMq1PF=Gqs#gQ zO&}7-l;?tvz&I}r4S*t!6)s}BP!ZU5NIz3X1&|14L1dlL9Lh7g3o8-p>QD&{Wk3=d zBp-uGoLCO03M>(33M2tMV#McxBMNS33KOBBe3tX4Ag~c>6B{uWYy^l2JC}OQ5+*{V z=Sjfx5b$^(%ExyP4vtVa0*pYXW_AYk?!B4{%Z5myKRAzTDt2){mn*b0x*>Zbic872fKpud^mJO;q%VQ$?VUBPQv7JCY@VSe20_DKu zRC`3^TaEQl!j6LDFh$nzaEKn&=3JL-0p$-PZ8}M&kN_nc0`)NTTB;zvz zM1X!61qg!N;2!`(JV);5WA5j>{_fJyum30;pTBEDh(QE8?G1_ZX4&2-+nb2}&|5>(o%Hh4T{j(h2FB@OpFK-$?5bF=i_CeV`g!RA5 z_AhEF)9|CReMIJSJ@W*9+p|9(J!`?uJBEw(>Yli_2NNk7_WGm1H&h5sDbVtfwZ{e>!yHwWqUlosQ25U-~n z5MLjx{0H;G{p>^Zbcm9hRiEBH9IC8STWo4e!_Pjf#SSHk$n6a+;qVsY%i%4XhUpUR zh!&gPVn?uFeI&Ouw8W|(CB8>_DXKO+k8UZv?qj&Ap~a4FDZK7uMR_cgQ@d|i3diZ` zxR$}$WS?H9;`efK17hUigcduYr8v2LqR37p( z(lR`pDk*1jZ9|LAM9R}zn6ghpPWP86;q(?eof7bVTkH(JaA%F!p9%X34Jppz>ISDd zyT#6KS&690IifiSN#FG!dPRhDTQGZPwb;2WHj9ork1HIYEQRx1s?WEE*`lA#`wO_a zCQ{7d-i8)CA08z#iFB@r=JMkCRvP0%JzdDt0xx1h_i#~5b;)pXi~TR&-ZMas;#vdk zp6Q*Q9M&=xAmA$yNkjt%8RKgPA%Q?3EQF0skcG5>79pX)b-eZ}r&V0#oO5E8bIv)T zfO5_`$M>D;9__4FGQ9WWiJGPQoKvSxor>LEUEc&BCQ{WTA13i&AAUdT>p4Ev{CGbt`>X;loN=x2mA5 ztDLf~*1Xj$$Qlt{>%$r!)>3qx59^$=uGb>#DY8LCzV~5+58qQ{qYoRMvbrU^=vSNE z0&VtTlMkC&pe@?soqS{C1H%?yp4uuFZ%r>5Q*KMiZTEp;8|8M0+>Sye+bNa0%ZHsl z?4m`xeb}ulbx%Rb_DFMOE8gqF9v}Al%Bg)m?31#1)P7CdPuc+=4$ycO=%A(@B<+w7 zhr}&>x~OS~Nju`h5lNe&j%wOb(vJCXOw#()aZNi;+6f;{NLpK+)U=bNo$}$7r1h)Q zns%DBGd`RtXdp+4<0FMU%R=r=H4qZdX=j|}^G4U77koJH!v*^Dq7UR=WW`^Sl$V^8 zP6J`e%c+!Cd|>52%{dU8L>pt9|tvNPwZ0)xOw$K{b zH!lv|M~@S~Jp`+h{IneX50~wIHpfjh2$u zR;@Ix6=}IPawV-_wbr!Oq_wfphH2Tc+{Sj*uiDy9?`dbFt&MheC)M7TezMoEI@n-n zZ|A8zl8|R>|2ke`%8n_yPBs`iQm(Veb=GnzFLkle#V*C6rmGfb8}4RjRZ+%%v^ysdokBRG$PZ49#25F3MSHPi+pL+v-zFq=JM zxQ$^phTA+)OmY|@IV30h)kx7a(&oz5#wc5j=H+A5s>awDW6MxG)&_}VZFw`tj~VpU zca+Z;0Z43|jd5CZybV&vYf-A6AgU)&V4{tQwwh$~vB_i`lWa^Taf%o`)y5PXQ&|vg z%rr?cjm+sbrrTD{QRLS+BIQ)W%9(j^b*SRWt<{Rw31b~E*V|wa z#s(W3v|kuSR>~wP{)LF zjI}ycH)skUw{ctxpRjR)k>cv4jgz*VUvSFCDSMncEon}(V~tIvIb-9DPIK1AS)Jyb z&D+fLHqO~NPs=XYxIh(LuiCgs6_-TCC8`+jmj`B- z(ywz&vT>EM8+LM_U*#}o@Y`BB7(OI{DGjuR8nDiBBp0 zV5E!xZPnG!(WILnUH$0h=Z6e_boX;DE1i)K2YU#&ryo81=;{AT_0n$bEe7?bL4Ew_ z<5zwCVCdy{UnKMsZa=z-L@Md)SN;9yuU$AmSOdtSMzVVP6&uVzvWlxg!Wu+YS6KlL zmaD;ZNINlnh#y04meOfZG;NreHr$V4ehjB+Bm5w11g#qB$4I}d4o8W^Xg@~zF`7ji zvg6f-olfF~N_C;#{|All++E zmx*GsSUlNZ+9OR!mwJjHQ^@kGslu8{R%6X#si*ldO|zy8YdTrdUbI7I_%Va5u$n2X znPf@h(5zX0%woAps@Z;d*gD6L*?!Dn!RGq8^qJ?!T)&#{$2=}Y{a|E)znoeqW-sz% zp&yGVxtK1%V%D#=pO!4~V+p-bLM@f-meT)M**94Awp!-r{IJ}QWqvHD16KI4LO0)) zBDs=v!~QEPUt6srr4$RUR{O!Q%Acp!h|n6>9a?Cu7HaNS>-=DRt)B-j`oXY{u?-@= z!Sw^TQrYTzE#8<1gZshoJ#}spp-mJLKWd@PI+E*GTl`>rGd2C-2g4S|WGcm0?Lc{a zu}vCoKX&=m9zS;b)m}ds*-L-!6Myda zW1k=UDS1Hrc|iP`Tx_d@lEp##>X09Y{OT|-9~ZYA@q_UrerL)(s;`bx?3h1E?r}+V zoR=s3U=YShKTc|2pYr3FAE$ImW^h_WPgCHGA7{AS^m9Zz=f_z;&XIUt`pN}A&iiqJ z<Z75d_dBrK?=EU15kmP6ha*K+_fo#baX$J=|Fo3}UcjA?yP*_9gp7~t$d0&+Zn{TV3@(6WU0K@3RtNN+S z@BsL9eMA7md4C=NBO?Rl)u;el@8|$V1u#0m0Wp9v0e7sYma%*_rW1b`0K?coe4xzt zDqr%jGFuC8d?Td&hbz>Bv2b@`yoK?*>W!eE=H*_?|`EC_)=`8<1zm z+}&rZO+wp5=H>u42hov&H#35zwHWO zTL8OsN@lQIM0ZnQPXK!YYHxtOYF_|*1K3C6escAgdLWQ2p$-OcAb^9U9}3`*cJ<)^ zD07%b8)EJe(RPFaM*}#@)nb6d((wR}1#q0i6Y@mtWB?}uIGL(9wy{$IoT4(Q(~|l$ zb@2wp$@WYDXXxpY>TE!!#&ZFj4d5JIeLj%f*+3fc1wlEy7{K`eE(YqWO95O6;1V;t z9KdC5;uX<)g<5$}<7mAaz*U{$wN&x02f+CCKzxSo88;-!4JPTRlXSFIj%*Zb5JV1l zNe0m%s2T;qNTc8zs&SCD*dz$GvDP90iM0u$jTUVi1gULBlr2b4%^fYAbJGRi#mD-(NlDwx2u8Ov=24#I0~*9gJ8UGu!HI+{^}n@e<~ahM86;g z1V2#&Mb{wtGdPHWK@6tCAwdk%3WpS!G*m0({68!R#)nbia8WoSh!IpcGKk?pjHJR* zL5z~bA#@3<(V}=v5Tk<_L&dTm6=Q=h8}fAFDgIU81^GZaKZx&w$Pd<2wB`TCIq?kni#}{ASMP2&Pk`|CIq9F;q~ySbQ&~C5>Cq=^bn}Tgo;k z2yW?|Lxbl^9nO_TRxmry3nqEck?eWLd}g&E2!?r#Ez}KgkuVnVa&Zt0!dMc-5}v%u z!7zx0K`aeAv-2{oXt~HQr__od7?v@%QY(@#0aZ4|~vUTzA4K^U8Z*sK+83F7-8wrE9sEU6XAhZopNsck_p z{J_|Dt!RfZcJOj%5DdcD6~r#BXm=3XgV-&KWawlK?GfocB<%FKv-4i9exK0yG41{! z_6D&(n7S=?Th9Thf`dUE2;v~C;E+_oA*ljAocHCrFo?t2okxN=5|mNvXi!G2V?i7Z z;uzB$m#xbuf;b*jCxbWDA`c!ojYrBWgErjm0wns>NrUxx% zL(-}FVIcQD_eyQKp_<+y^ww(ngwRJ=A@mBVzLIZW=9{anWXbx8?*1Y43!y*DGe86e zXg{Z38q*;ILl~&tJIHbG;1C9dFqpOsk>o=|7!tzJ&{t}h3>(8k7#30^LKq%WBSTX6eeCol-a_ggI1LT+Iz(ZfKmE7lIBQ)cg=AH9y4fZ&IokhQRnj zk`{^TMN}=1)%lXruNL#|cIYYN0kuRL)zT1_gs?PJFtGDF>NPy39)g#Ju#7e@7cI-R zmeliXpIRZik&Rc?N`C(z!pcx5wMxWRIbwRiF2!usYEt#%f;If?Mz@KzAuz0F$=3-9 z>zKqvq+Ks6*0TXzJlZp) ze&8GM5Po1s+bT7;ErhKhY@^Wj5Vogvv>hSr(7k7;*3XP~iBER(FaUm7!;ZEm1hV$9 zVeSoKuNK`W2JWMQ@+L&r<9?m^tWO;X;ef8RgTx`=IZ*66ha~^QJS30ryP5wHr_~)v zbscufqahp(sbi_GLp8_w&ReTF5yA;!g>WpSPD;Kf=_qIDqTDHN|JLq2O_uJ4XLyQd z2&d`Svm$+#(oRQX$xG!K8JT7=Pps041)Xca~)x#D0MR=IljI-7Ir zFj`Yt3DqVH65E7psq>~j4okxr9ihZx-mN<5r)w{JWllpLx&EkXBbS>Gn}V-r84dv z2IIX+>LVHVVa9yj=5)ip;UrYQF#3kkk9zxu(LXGAV*|o$fdj)B5XQi8TCW@sF6fnm z!WhH?4i=?@wNkfNp7g09VW(FP4P!_cL&KfaFcBN(h`GIza>Gg0y>dhtBUt3P8W{$| zaJp%fkT8l#;%p|5@!nO9ma~kV0Hesiv}ZaEo^sQ^S}> z#nZz{-Z+Obolg$Km=RX9!eC@pxSX0TCd>(Ab{KOgIoD}(bH#|{L7$o@9+=0x=SwLT zgfTyi1z}m@?ewXI!dyt^qA*toi^EtH#$uv*8OcpPwM3Xp$Xpr*gF|2KQ_F5XR0hc82AiY*!fD!q}zV5m&plqCFzNhf;gPVA##r zKCNiKF!uBEKo|_dI2gu3t>{n~`@%S+6>)v26&(@zBa}KC2E$>-j%h{5g>jshC&FM5 z#>p^FYDK5QI2Oh!Q6#HaI^wiQpC%#4bXT!wwED9`Kg+b|!Z;Jgxv;y6b$1)FhR%m^ zUN^N1x~W|Z<3bo0*?=xdC%hcSC2oWa<8oMC4TF)ZY--n}sa+4_S{T%}L?29DZjQL5oPfY8e4ZEhC?*RuNj6D}P!?&?{7xrD(6}8Uf>7BLr=Uu%C60pgR@zh@e{pJtCi|o}#Ol{OKJ*&j@-`VV?+kX@z|X zOzNu@&gXWY2pI22h5be0fCvUq;lK#`M=+2I2SqSQ5_2saQG-SCkO&4xFocSSQVE7e zUN*Rs#(Ii>)i4nl9>K5(hErgKIATPELxebyFGfa2cuzbkf{_u7ig1&UC>TvFKYn*$ z>0yxdG$w*E5qX|AR=8uy9qUWx`qX!F`5jZ`N01*;<9Nvzk3Ka%0>;NjoM##n^wk84 zO^hVTog}Fy@p5tm48oWa!IX&fyr~gPj9{ux$qc56=rjsUk6?O4&4}>f)XWHGL@<-Y zS>)<=G&{nFQ*$Di9l;#Z=SDD>=JJb{2q-g;_8MaDe9<|b32O~Ht zillwe5ywRO7zvY8ci_jh`V&Gw!L%nMI3B^th&y&kRgC4*FM?Ba)_dx-^ouhQoQ|lo z5uAyra}h9dF7mcIFU|cz1m`2Tz~+8Yn)}66bEl3=5nST9@)vbkbXK0{_?;b_BD7r`Ms~%C1)q@4> z8AVSm+Di=VMFY8Olr}LzM4dV$sz!WO^ITP7M&UesZ+Hm zbDkzSPou!}D5gi%jHrxoQOt;9CW*769Ft~8F)NDMuJSqhY7UumqhN681Doq1sJNOJ zP4Ymt`J#0`WfnxiFpsf?Q7PymVJzb1;wTt|u_THm+OnllER14l)EPOJX+_ILemSL9 zM8U9(v6WiUDq*bRx z2VrsCWvOgs6mX31~KlM ziGe{FjbdmNlg8gThMX80$E4l(Rg;($t*OX2rF^p(7@9EFTq|lJj266X83ThbTE);x zE6Ry@ zJ(e2jIlT3dC=| z48vkFY7f`?nbC+CN9~a@jEG@mtiBo*16iYJ?C2OqYtb=c;20VxpStj~4;}^@gJlSJ7h`Y1OwL{BD#4~u+i zN(_uop(Ce?&{PVwOO46XVwk4uYPztdlf|!*XbdOo88OVDo$slcG0bG8%@T=Ol<1m~ zJZh=gaygsjnG?gDn3~H=oorrAM(z1A%!^?@*$ZMEwHL;)Aclp!Tol71-QE_*z%+|v z&ZxaaUoD})QW1c}mc_74i!P6W)a6=~Ij@kMS5RPO3@c-5Rg9zd>KInVu$sg*F^(f^ zV^|ZzT37ixeYK9v^)WCw^qZshhFJ0>-vo=+?}<24)OAE3=G0J62lR#=x7WFV>p`X#m8{?>bE{3x)oFnnP zc>6*O=VQ1a-gZ0J#TYKK?Lb{(YTdLi$2e+ViQ#e#SD5Z<3}ju6xufbXI94e#s zb-B9EtC4A=_KjGwok!)w$;ydyD`6ZAH>j#%T+D1Fj7DTMj)OrMP2y-0mp<7vj)rkG z72tD@+RfsksJX~Dr+kYz7@9HGQY&gDj8?qNje|iLt>b7Nm%+A894+H$6L%)*wpvj; zk#9$-_Hi(@Wvqi%lqZZlUUrOwK^UFl=%f{Oj-x{yowXuv8`O%rihNf}b&G?c3uE22 zq8`HN!ONa;FbJbp9KE!n-f?t~qqiv1%XFs#)9FEcNE}1rGKde2V`zMw8Wwj3@!@d{i(`1a zlNu2RrANd&sF6&h$DUDfFpMN=wB$cJo?3l#v>PLb&yS5`OdMmG<98zP9V=;khTec7 zC)_e;**+NOUGlg%^5Yms!SNzEo`SqfHdA-W6XKWzLbm7K}w(A9tQRFvAUTY@il`oW*&|v@wqFhas9`Rs^edmK9`urrRGy7}x9 zlH{~I4hG3&PaJ!6CVS)9%S`sgp+g6?KMu<8kLRfaI^(^TIv59os5}(MA+7Ro9AqD+ z)DiK)5n8b`<%6SfJ_$G$$I&>BG0pKfj?*Os0TO?njN?QcC*x_4xKG6OBkr5uOzgDO zDYsppj^k7ur`fL0q`Yu8j4ys84lxmX5Q%w_+oSto#Kr@}Zc>*LhC$9y0Xp!Ju zUCN&=6KI)`H+QWPbYN}*trEyhq&cuvqOb$ETB>!z85r6m&^m!OiB77m&XdikT>|Zx zXIQmQfT3-I??;4$4$M^ExyZ0V6?v%y9TVuN6Ld;|A&&_<3kjVifipr-ZN$c9A>}a+C2DAb zL)owdh9)p9QBMs|fMEzVkB~GY5Ek4kR-Yn4Z84YM+_FOs3>G zn!qfkoGmG5GbN8|;N1mHnv($SpOcXFUtG=AS96(iUP26>FY@zwxgY@sVJu8wA+s{n zq6Fq8u!zN#Tb{)_k=mM5@0A@lc&1ePSQLg#6yl?kk*!h!Mt zQLSP!9{XUa)d?`Zn#tBAI1j8%U`+yR6Yl18K4n^$z&dt``_=k{%rqMkSf9X#1kb}s z=wbHzgfq<2ksA}($mYV2{0lE4=F<%a~w`+<#Ss}^BX+?K#LCJL+V z2{3FWZ-^>{ZvuODUi%W*$Gr9@K;C}p zJCMrjU;+o3D6S4Az;J-P!$QJg=HU3y*@P1kA6c#8{#8*+7nSCg%R2L?Hr$+2G5Ad{>HnOtyYf+2^oMw!X3 zmTD}F#=LBj2?k*_%|z2oX{*gL(I^wmGM%MobFHX_$hV+W%SM4w#yzG?;24VEhL~pIAPbPX~qK_z&E=@=D z73sbtj7{yl?x)rF7kYoD9gvBBnHZ3nzVzhB+ygV&z6NDtU?v7pYOsh8rpr18q-n`X z=R<@vguJ1d7@Apy)v>tezRBV5QrFz`E zTK9U3_X8R5fM-Yez^B4e7BUxWrhJL#CzD(H0|-EW+a>Txni=HK6C#uQ8o~%e?{Fh? zvSvoe&`;bwDvD@)m6!{UiXj$X>BJxR`c)k9Au2%|Gbzrp@yK+?MkHdP8X1B!AVo7% z#qrV}fs3)eqRkm{#Cw?k<1u*hy@8MAluy4IwHc+ce(r~8 zkMK`B?w@f=c>eurK?Wy{v>e>x8q&aTX7Q5eY!ha|9OWZ?o>~unIzLkU%1eE4{Z_r7 zK9D>pC)RtxEq5V=wnHwI;HQTj=MB8p``zXd-wp4s>d(flLzjm#N97?J`{(2 zsEA-M-T&U?PJ_qPdr=~ri1qjJnELy1uM6i%tqJeH;ta?0JNAbXV$2uNapVCuG@~^I*pwyFi0#AOWoo7TsPlK(>Q%g|l1Soz+*2=K!)xNFGUS%g zc!YwN_c~se(VD3B?uWeP$S(Jyhd6TbJn9WPN85}^X2QP>Zq>USQfJK)#p_Dd1=q9OhE+ud>$_E#h0Z$ zuS?M@s~V^w%ZY3fvrBu3%_YRI@RckVh3NzOI|$sTpH6@l!9L?C-9>9?qZZ=F%l^D2*?_u_v!l5mv#E2DqSR)3?ezcc#x zY$DnJ4gYY<{ZE#L$I#$Jd+;(iH{X$-Q$Qf zFwwx28~279LAsHgOi#@EI;yeB`M8My+pDH>GQDahhts1OkAo(@vw8C@dhTWAIo3Rj z{$^8dWwI^jrk_Gj*=fM~cFeWCsP5pNJO7o+Gg(+U zcm9>s=<$l2JkQTQO&%vNr_OgGVzWTl^Njg-dGb6{^VIpSf?UtfKIPbXxy{#^_K;)d zrM36egjaalJnyMeC(YNFljh0k!^5Qenmk`#B>S1tclwJF{Yf7n2ga*`8jQZ5Sul6fmrB*Cm=J3{8BUe-39YT`owf|+VG}N8{Uh}WR58A zOoiDpb39G~PJ@t7UgaGfr?&tM@cWb?g2D`u8RFJ#&Gd67H^9w15k!O;C6g~`ax_yb z*E6`D&6CbGr*LORr$-Yk6c>)%oWqw5bVOKXlFCV)6{Dx5V#wr#QjBxS&v93IP9mn_ z^nv1ah;?$eGmz_PW2Bb8*U?deP2@h5zOdEBcpPFMrL0~*f6kx|t2AQT=HoD(k| zq7mBFrYcDb2y}vye3~m->3~Nl@klnOkVi|h7s^zA_{H{~7xcVs5qw4fn`936@Rx$w zDN5(O@67Z6cBEydXRWz&zmrzrc`{rYp`NJMBal0;j6nH_ocsj*#_Q&rq6>VE&{H;u zoY4Ni>v_@5I|V1?CoE3}e>ZLVw*UeW;78h^&i!WD^tFKgr04~fi&ZH(r$mnBj`s?9 zQW}x{f3HKpgB*Y?r*<5mEas_g6|Jc{OZm?6>3_28~zuxAtzO)`)#FzHZ)Mr!NsV(7;jE#2_LzbvW9!gsG#m*C;0{L!Y}Hm;(B>d zoGTwk%iT$0+up-u_hb`d=w4OA)vEg)?v4)4{#y(z{^Gjm&AqJW1csa zf^t_Z4^rEMyo1q3aH4pKY1~B|d*H)(M7Tpr|}e?MyWJ&o}#~ttmqs)EckPH?kVFP^*r-=0ng)wIs!r@lcZCO7xAKe zVfm7KSsJBFc}j3WNBp5YLJwu&WiCU&6VzT+zbRuFn4@07Z}7?|>L&0|9rZiy$=``i zk$Y9-k}8Q;k^EG>#*EA0HI%6%D>}U>aB}9tPI4~i=KKcUkeuH{IlP(2Rh=XB7Tzl5 zd0o9tm5Y z!N>Tdj`|dzrWL6Qsz}a%adWPUs*>|(_zOPE<2uhVmkT{9QkGMs&yj`CJ93p*4PSKP zI?s{e3QyL1&!&o$&4#1lgkCn@aYbq-ORBF?6JKX@X=iY0S392zy9|6&+VcXh>!40P z7k3$`TiR0^8IRM`T;ZXfyq$CMsGlssg`NX0!~}oEU-Jnql!3p|mAodrP(D|88Tf~Q zeNw@b>Yw;u{Ifv8zbM6ZUOv}%|H8kyI!#&oAN;2j#kt6Ha?*=CscWw37;=c=(n!{O zT;S1ISE#Y9@g!Ljv&{3)*ZZBb+~ZoWqb&KzZARfIK@me%emtU1Ac(m2)I@WW>%NZ_ z7ku1$Dt}t*RbOkay|~27HC0=VFxx%L}DIj;1$1RTknM~QN-__+KV zP32>>;TV%(yN;Pch;MxxSk$ zph2>(og&adawjv@B)kxzgYpDHXquTT@Ih2ConSRH#Hg7j2p=?)M$K}Jnw4hMY?FvV zQmQ#p`niG;lrI=Tb4<)*spgA<1sW-60TnEC6f8_ru*k$BtzfZ9G$6IaE!9#%{>fL% z1pS9Zey&8oWfRK@O|S8AoSIx|VkHw7Qw0BUD60khM~b(`B-oD>Z>``05&tJotuwKX z#al19KUBl-m-y&7mGFB3{2}a5L7&)Y68T5qV>hK_Hk-uxkuheA0Q?XIh^KN0iP%26 zpX`Nvweni1#lh8f{^l@79Rg*A2`7Vsl71qxcjppNcimRF%OjBGy zd>l#x50QJMsvCNU*(0~#jXWT?kta_z7SNtt)x;wZKutWKs-_+q)y&22A^x&Qj|$B_ z1#@u=0qqf^T6$P2jnk7aC_OC&h36C1S`@SqtRBMi@IYZlLEAJ1gzIUi6%eSWy@voj zPO0()cqgBTJm@GyexB(OV4hAM)mbFm!gLW_9w}beRPhMO(@htTXgl3?@rcSpZVwi( zr@->$DvilQHT-0gH?gUNeFS%h06lDyEJ$CHiM#Wnr(|lSS5ozp680B_9-d{Yp9&1{ z5Vc1Q6sR6S=3!)zr@R_0Wgg!td~lBDxskQw}bv zCP+ypuq148P79bQl!>IAbo^M7AU#wu*@Ho&SI>m&ad3JF+A~|wdI;0=7GZjrey-r~U@q;PCw9(D*~x88 z^ToXj1fWM?dKM6HUXXf-&hv&^EJ>HR*gS+?_F!pRLJiI%{vkY12H|;L^gyiPzIp-Z zk?#*ydI-=X2XCyBJP5|a(>FXs=phylPu~zc9zyTXoV96MiNLd7H!WiAXl;bu`Cd1u zjT(PvBfG~Y4>n0sew67EkR4M%b~bykg=&eg!=r|YH1&X!e5;`Bh%toQ*+ydwLEACZ z4oS6BL+xqwFX?;?BI`K$5LbsFJ6D*`Rl(CC+)f9A>A3k2Plw?e^Lat%!&`|Pl2Hz!B{-H5 zm!g4}88y)G9*$`Zy~!sDn?ooa;^c6vm6xt>B4|1JidZ=r1k5SzDMlKxbDELXTxiWn zD=w?ZVycB;?GQu9T}ZO5Ed@(QZcv`2w9o z_<7R!W=3kRuPEr}B`glXbGW1vhxSi%=m0^;k(wJQ2?sKverv<>4)S6UIVFguL-j<` z8Nw^4q(f5$8Ro?>QcJ4gUV`cnGbc|lbO^sQ!pkjKDXCE!GG`=p>jgJ;j}`Rw{zxLzl2&NQYeM%WyeLgbtor0~;90n8zIPM(9FldEQHjGfuuPl=X8TjmO6 z4xw^5+&Q+)OS6T5IPysP>wrw(v`%^S*uI6E>$Xm8wi5aDuouj+RIbBLCcC!jez zQJu1UH?N1FBG@@>V1k~bZ}n*3Ei zszZ346ReYyQYQq@IVs>cb<}C6PEMzpeMSIuL;;a>&U%TW<211If}oSHE(nSaiTtwM zODrAN*h^kqVw&Otr{i>V4W=Wz8?Fk#4k2{%6p?hUu__3k!*ti#z;1{wIeh2uMGoOG z8d!SZXL`5FpD5MV6;0m5lDwX z5|rg9?_|XZsN>w_5>BTl_t;yX5>JN(CWH=gb^5TteVqdLbqXv=`spOURsFf&l<)oN zqXCj+AWzv4+#KG#@*K95c$g46P7Xu((w{H+nZr;KAI9&C1Tv?N8cr9_L1B! zB{(^}dlm7~{Gy2aODR5vo9Z2LJ=%}uHqN{c)4ki>|8o;F=hLE?ISyiu>$izg z-9*Tl#7deh&^g4)kr#1}SEpEr|N)r@^m^m}7g4txI z#rcRJIYi8v#U!&+6*R}vApPH$^#PAYq-&r-%c|5TBowtrYX<>I--Dk>A3N1gWI|_dQQGz=WG-r zPs$)DSjzUz+)&R<`I)$;pb%^hXB32HQZD*_4A*SpU=p5{%DZ3m~cBPrJ zn`f!%vh0zv?6t6$W!c9M$9Z}N%d%e-9N?CE0nZ_bgrneKnu0^zR<9Kt7Tg?y<~Tj| zD8C`1reoaoB*YMLbcmZn%p7$ht*4&k7AIY(Q*NO&SdPqZ#Ka-(3=5@^a&iSH=bR+w zVH@1yl=8|2o{quIPSR0z<=s!%99n#d8=d$a5iPzfm3KMKULxjPVU{llU=EL*kd_$7w5H^Ba=7}ZIAj28kG74(Hp`>ePOFSO2MZ^cNH|2&Aq>u^s*UXHZ!35>XiHPt zIi|ErGo^h7+G|rf2vSB~2J&bDKSt@0fsVuv=_CpWgVRaCaOw~fN0+5bnu4wZjw5C1 zCg3>4#&If-*f>3?sb>aZaY*EOLK%XK(<_5GI0eIOA1>Q;q58Uo>X(6jx={TyKw5tm zYJdRYyZQbSF?iLt;B zgSnSUOYw>vKBnZ3Nj?TNY_E%)O--2WoCgUX8;3lIFpMn1+3I16 z>Gv_eF?fWcyy?9s3H2yRZ3JmL6Y-MMo3TLsmC}<^NkFimb{De zO^ly=Yb-pQt$vAL;+bsqoFsdmB)zNV1tIYrj12BCa;wdYQVDVO5|fptOzCXCec}5T z*-pb`zai;2*?j5pijaPb-%7Io;U=5^kz{`LJN{m!%&XZdiKJ|%-B-oMlv6nR6ob?5@CH>s#RN#(P-o#suv73WhKHlMdidYc;|%>sz$ z3futm4$1Fi^A*gysF1BHCi|M)Ok=s5X@tbLE|TT@d^hvHSXx|FX0i_`^FcOu()q#aAps z`V5~*vTCS;YK~v3Gg%g8va-3E=5tifR$oZ6FG>0`TXxV0DI3|6>??eMuUx-SrY2=- z$_An7O~nIWQ&TOHxILyezD8{q;rSc38NOt}H|%q=Ugl+8)MZ!Di|2aD#X2!J)SzC$ z7L9N5ZA#*Qsq%kc^wea!zcTvQ7d@i!Z;bx!MNfT3|IX;&U-bOV*=2SQtLGodO$J}W zSomi)_u2dl|HxMVmpp3l{fmWvXDhyT5mJtc98-$bz{LOYEsI;Qn)3FAi&$QN=x$tV zWQxMZLT=1`7)|7b47b?CCrZuVBV$Zc;WZ_XuV9*)so|@$=?!pr@}%}<6yB2Pjz$^j zTNC4pMWqaqVR=U^TMxOR4|aU5&{;G;xNDC)ELm=D%HWqq`k5fN^U3x^?pP!iw5Eh9 zC+GIC!$gqb4o4}wMtIDUDVqv!Vsvft$_ObZIqMCSFM2GQKD>ILhNWb};r7qe^GLq7 zmNAlJqaQrpSB?e@AqbvG#hsq=2$GvSEERDdGs>VCai1~jJ%t9xLQ42kTM9Y!W#VV$ zR59w|_7D8Lj=Ib9D(>PeOiH0$AlyOtvJrE4DOu_s^6$kxxHsF`LrAmrz79j(M~)u! z>TtmG%A4pIH|RWN#1zO;08}0IAYG;RgJi3cDCs)l!B}XAH*l}Jks*VX8RXBGa-M+B z-)4H@v?9kCaRVp_Y~^>I$Kl_f+N7C!aqovu9LKs0AXr|>5nf?#&g8K*+*Kpa(}|+) zD{VTA`(p>{@kY-eETTwQbRKtXzbR9Qv>dunwq!c~D|gGgd=!@jjZSqpSJL<3Zs$e5 zfqSI|X+{Z@kd@edY()3TJ+LNnH>TXLJV4?DeDabE({TonO$TcJgZ%D-yD#yOcA#{u zhoSJWG{Rz>H4JATjTYrrOqmSyM$8hb6iPi~$b9iAo{)(}_F@`%@@3;Lsaq!S^QFGY zse>={v(+>7>NE7J)a`2qXAlF=It~4ojQ*0d29fBmJEHItY1It>u>7U zsPzTv*GAQvHEUO^T0aX_>(;IMchsoGNLHpM}@s7I-~Syik59aZb2TGel= zR;y8;@mkgK*V^CKtd83Mn^pJonzjG>G;_=`LnV@0Rn=(vJD>KR4;gO@Xww_}%239K)_z zqt;ifNsqtdP+oR74a@U$sp2YC-mhPm3_V&`Nmj4!i5sR>tW1UEpUA3Qsr6WwO4$l!-zocU z2p3e zUswI&rxZV?enejKe$dIg{5#1v?o@2Tr5jfK8An+;cc}UaMNgFc@g!ox!;T5%DpX8X zmY#Ea=SQXWW`nA9Q2{!!9ZSHqYAQn92SWxDJ_bXR?=MMSD49l>Jx%t0e zt#0j_HGe|>KX>!La{|f#DJTE;%T%gZp@KBJ%E|KYmaTLLOX6I%S$DaXyjHtz^{l!- z!IEFNmfSf(_3DNUW3Dl;Rjl+nP53cm5=MQ)D(-ZDr}w+I+rF~hp&jtbt$q9yk}?KF@=8N64!My>i;b#HG`iHCkP1s!AE_oHGu|NDP5 z|4Lb3bJ73)U#oueS=DM^8P)@i?&0aEg9A$u!?pD*LWeZ|}U5 zeE0R#82U3AL)9G>XxktBmE#Ggt#S}|)+w)7tzWgg_^(#gJB*3Kye@ZG^W?H3g+n(P{ zzW-*GcarZ_DPOtlJEepF1C=xKLq zW50g>xhnNz}<{a&6=< zZ^zMgJ?GAng@&KXb+fYGtzA9q_EtXc&XWHviF6xxjdIJ-Sh-T!vQ^%#_!Kp9aNp)J1A2GL5#fmrAcK1lzc~@d9aS^1^dgriS&KUpTy5+c*83D8jkVuuRKU z_H{uQa>t4L`5u}t7i!8~K~ZjM;Cw*VP_MYT>iMXAz4Eo{)u^5&3tGeaZ81j!+gIB7 zV_MFLU4`1Yu6AeEdaeW{XScuHRv?wRlFa|d&4Hdw%fYaI=Vnpyo2*)H2I8sr^xdl5 z)aa5G*8ia7>=vdr(^W_}k1JJ~$aS(J%=dY}`_)5Y&#SJZ)AE&-aM9e#d|9Jrb>1Vr z_U-4NXVon!X_M})kfgmiPr1e$)@y0pTW=Q(tBl)VByIXi+DzSF)ks@jyDNu!4@<7E zyCs&Cg;r69RW^-PXsKyf<qeG0NO>5h=<*B)YFU2o8^@GxZa~Q zD9-!QH|};kCN|x&G%vXG`_*H{yEm((P)*9vBptWj<5Ivk?{k##5hJIEn;E7m;P$OC z#VsWo%4a$n%G9h~FLjGzSZ}#E&0=KQeUNFn#@8>nl}b7M3DNepd*7L^P4{BAMHp5E zw_9q7Lf$p3cU<>r-Yvc{tal%9EG=KFM*SL9Yu5NjR@ra9#X$V>9U^{w%g-UkCNQR*7Sx6s`8%U|6|tWwsu^{ReWGt24YFN&Bu@UY_-tc&ZtBpkOj)pw`WKh&sKqkdNP z($Zoox&v`Rt-hC4w_c5U_4$Y+Rjsb#Z=9QgihKZHzIwf1OX~OB61>g?b!+e`e%AYJ z7s;<{*ZLyW$_?xHZbb@<-gVZ<^^!Fyl>A$bdWKag)$Xd+toCh9z8@%8gDd9>dWbZw zn7jIYFIlE+nKzS_OleK-YS)o*Yo_wwzsagxyU=1^NC9~U@xIf|-lF!fdONRBKlg|g= zRHs3=+=0-ke{!b&*RsB-;m$UO_2;P8Qnprg$8m=Bkt5}rB2{ZxA3KUU?cJhP#!=Jb za~`|#RY<{j`Ad&snpUP$Q?FI5SRu8z@(VpsA^CpgDzb+Ejp5H|-i}WOUx_|lw>Ay0 z`n0Rf{Q1-R@|Mc>81ce_Pyf;|?MM*Ch z<}Vy=`Y~mCxeVi3*9eYVRjT}yc4!&J3zQXpUgt5MC}36jv4?6NG!|MCpXV?3HB z_}?B_d5ltNl0WiX$zwd0Cj4I?0eOt)(nNpa(;A~tqM!Iwg>OyMa=K;B@7}5umbv|H zzsGneO-~VvZ)!?azit_~WOv)U)xs|RksCmd@o;(@zvFF}$0*@gt6QNgiwd>G!tLr7 zD~sF+{kU}ceTc`nH@yekGH40+Ww>^*+?B>n8zw!*eQAuMHwWUE0<}f?sr5VG z*Qd$RIYsXUZnk3Wy4#8rXuJE4+HSTft)@r~=%wk+4qG&<)GX;t;~wLIw2ac%E$#qa zudsw&bYbY{VzUEmBM4(pQa{lRaRiWI|gb`6j}>< zQ^RALlianK$9OPJ?H$&Gg_}-V-Zzz`+m`Ozn*!-Rxc#c|cFrxlE-Wl@yOm*KiQBCW z|4Vx*ygK|Zf`!+I9wWU47hWNHjC<0&d&?TJa6-3}yDLDC@pQr5{8QFZUL&e=y15+S z+w&29xf%%8&Em$8r_1oEjMdj?hfM37=`rjH9@AdxF|D;3e7LkLBg3%H^N-QcXV_hQ zroEiM-9FPg5g_||fb6^=*?oeBy(nnfTlhN>G_8hVuAkb6$sWu|VcKI7 zrm-~ikU{wpZn~|KR4|S{2l(eX>_?OU=1vuFzm&}O?xAMM~j=r zq`Q6gy1N)uTi)!=6>bv{&-Crv!=j`Rt|lnf4F-oxIO9dfgwe4nOb< z!)^o9?!{j|Oye4Sb~nX1e~Xl9oK*py$q28=mRJ!IuRUDB|}K5g2w_*?(9Y4mx^w72qiil?~t zel}n&d+t&C|2fmX&R^d1rZM|@+iLj&i9=s7?MeJCf59~Je&w^r{E80cZ_TevqsfZ_ zd+kf6y^Fu|FPX-G(ze~~*Q^o#M*Nz!^lRJR_8a<=zXq?E#`0Hu_Q6+7yUA}^Q@=Hh zMZXPLXMgvMVRwDiw1@CF{Z-RA^r~%*OOm)IY1%vaJC`(#Ij{NbZLhJ~_`C6%X^bor zFgm{ekhSCW=MB42S<~*o-;lDVvA(Qr^(jZP@zg^`_qs<$(aqW$VjQwvuWSxBT zdBbQ_{vo?-dD9-m-_-If$Xh|Vn!kB(na0VtY-{S`RAdn_(MMyB&Xn zDx1dI%C^<>gWnqV)DP%F{`P-BxBeku?ffH&jXyN)KKzaU(6kzVM8$a@QSngzF=l;a z*y}%Haris`k!j5M*k^D4nCbbu^08?Q{lvCTfAX4PxBHYj_#6MJX&n4CV0HQniBtYU zXYjY{FQ(PC8Wj(zM#ap=u(wsCXZgEP%`}!)_u2caQz?J#vY1g;z#9I=8-~5| z3)9}l-{~*dgub+`Ltm2EtOjeFzY#S|<9rRD-65ORz~A(2R%CX-nppE~!`@QUv=8xj zy{2i5_}aG4eNAFsEjC;JM$~2RsBhZ2|1j--|1iC${_%Um*Y=;3{AWe);(t~$yeI!z z$!|^k*ZYPs_g}AgSNtFONB+ zk9R~v^ACo19sl~RDUHlO8peV~=1bP##*A7!n+V}j6Z2)OX;X=IXv%H0*BP~}*3E>_ ztr>-fNz~fYTnLw&o4@w9Ye5O`@D@~RH)+YNI?12m{Nr8FQu5o)zkX|RD@n1wmHCpr zCzk>XTl3FW{;@XanSVB{?w$D87~IKx#5<*v`H|sWEPt&voy?C7V`nF`l=q?#jAot9 z54>GEGiv8|ri!`pXCwc3FA34u+Qs~nb-IiBsbO5_=_PizuH+AqKhycgXxh#E#O~fr zX!2(|{}?^GlQyQiT*{v{{9}ymVSeJB*+WcN*u(tHFxK{8xe)4A${}_FE=7}}4kNLS_EbU{K@m}p?eqmW7`kG%D#-zUH z3r64m=9kuq{&L-QfccQsXMjW}4ltjy*AJkUBl4%gKo)YqKq=(8f#!$Sj6r6$VJ#nI zvi0tgzsAKureSOwZ2rl6WH80NV~3cZTi*Th*Sf^NhS6lGnY7mMkUUN|!}!abj_zC@Y(pZU~)_=QvC-EKnZ*IQCJB^dS-Ny5;HGaJLwPDN~ z&uTv}1n<5H^7s1x)55t1MR{Iv{5c3B(V`CY1#_QO~HU$kyVNb3MQacDqsXe4Jg;mvasBCfnDwk3*I23 zf>7xHyzQ6YInQ~{b2-m-mv>*jP}W>icGoJ)>$D&BbD78)6kJcvim94-XfV*4Oxw1`p-=VKv^_&jnu){|V`+aIT`IU0P;T6B?>7B}AhYg+Pb&&u_ zG}LK+!g0s2;uwwu5c|0Ryj^txv>#I31LSm^Xw&i#UM}(so4;dbK%2tD=2!e+*c>MQIARXlbSq+h&EW_(39o`S zRYeipS5Yhoo(B=!2n@GIFcUlp+T0%Oj*h`lI)?LuTS1$is-a-qq#DGp z!lt=#vzap|Od3oTDr_2_FyG|I6UGfw(IkY;6)K2tst_8VG(YE+N$hAYnKEzNuG%R~ z$C%;?K<8s-3tx}n5aBRrQ`)roDSM}J1al3DCZDr9>8T)6N>tcYhcrt8+lXT`Y+DyBZgVRNz9nZxU!} z6^CcJ8=sZiGk_6*7c;Ei+gynM8bf?3(|X-zA4vQ()B2Oh)hr9AQ)8C3lXA1IO*ETr z?WQ@8l|a5?Bpc5FeV43Ed}ypxR{vXh`HGd`x_JXl4BP?k0aVazWf?x(Z0#3W1c@?Q ztOPmVW~C4{v{}!xyTig6=K+PsI;>Yo(tLPRi`IL5D1S0wy&@wa3md03Y`rYgVGGyQ z#1KgHL)Ht@7qxIkOh&Cu92v3ph!l-lxG*Y4tpvU^ZXLEc4kE}24Qv*~s7xTR+c9f9 zFUBm)FRe{mJNW91>U<>bh=#jPPWuCEJ3U;}Ac|5M^ECk4+>*w)b|Yz=W`s|=8C8#h zL=W7&lgiS0H?8CWmp%Nlbb8=Ml3SpHDhfD}u6TJnH+oqcZ#%_1`18}M^NJ(r^AZ$m zEpduvlsd)Em2x8cOBq*JP8s8VI$g$FC0fBpQD^l9{;f<^I{xRX9RDw?&`fSK>bcnL z*k@WDdsZ7K%5IF?MPW5JX< zR!zb2vltv(Vvb{a+;Kb`M`z2QIN_aLMt0+}lfC*MC%br+6J0~Aj4x3N&l(&4WQ}ui zj$BuuRbPmrrpiO$-mD$*cIP<3_p+;Ci>@V}tnJl7WdC zbPE>wB1l}8E|{bUNEA<(om7+|o47nfbl4yMPxv!6MW1F#0ySsJZn~c>yC`;4cFD&% zsFCQOIr0k{KZcSE$JEzVk%y*R6hi>d=gA@BynH$IJYNJiavNw%CrA{^M;sD$^qG7~ z=G^0gB~=I7obQp>#C6Vts=7`BF@UcX3MM=T5-k+UR%!66+ToQK>4{f%i|>@C!>8m$ zF1?^Z%TpCZM=#1Yj#oLu(Np7ynmP#KrCXYE<+Y)afMN=ehMX1gRyl}}PgO8p?! z`{h~b@C!CwLja_nfV{wy0l}3xuau>L;4;kY!kC=sQp4>ojIk7U>qysh%Wqu%ZZr~A zd<{@`P?G4=pkyPwpy0&CO$R})sUTby6xlt9y}HMVXG{gry&l=-I^KuOO2r+3ANJ|! zeA2H&aG_tey1ovf{$hR0=l_2&_~o`;+t%^AZxtF^_X96*X8n)wDP29ju^-PD4!((J zS>_q2`gX|Pw>Izj&^))}y?6HRd4F%p_uovy&tlhac`0#A;!E@|Ewmx|jraHMP5#5% nc*cXD{T#3oHoS8%Ss$})-k0>=o;Q*XB-jW3xbNM~c>MZb==%Yn diff --git a/bindings/odin/clay-odin/windows/clay.lib b/bindings/odin/clay-odin/windows/clay.lib index c4a727b3a51130fdd04c45e517f3e7d5b6cdf5c3..ea727a679e303e349c2c01da4a89a04154715b04 100644 GIT binary patch literal 178294 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