Compare commits

...

6 Commits

Author SHA1 Message Date
Sayed Murtadha Ahmed
e3042f8ca8
Merge 719fd5b130 into 208c7cb3a0 2025-01-12 07:11:29 +00:00
Sayed Murtadha Ahmed
719fd5b130 odin rebuild clay lib 2025-01-12 10:11:15 +03:00
Sayed Murtadha Ahmed
8af601d5ad
Merge branch 'nicbarker:main' into issue-179-use-clay-packed-enum-for-all 2025-01-12 10:08:46 +03:00
Sayed Murtadha Ahmed
388d74de4c odin EnumBackingType enum usage in ErrorType 2025-01-12 10:08:02 +03:00
Nic Barker
208c7cb3a0 Fix incorrect border between children after 2nd element
Some checks failed
CMake on multiple platforms / build (Release, cl, cl, windows-latest) (push) Waiting to run
CMake on multiple platforms / build (Release, clang, clang++, ubuntu-latest) (push) Failing after 12s
CMake on multiple platforms / build (Release, gcc, g++, ubuntu-latest) (push) Failing after 11s
2025-01-12 19:16:09 +13:00
Sayed Murtadha Ahmed
23f70e0477 changed enums to clay packed enum 2025-01-11 17:32:09 +03:00
7 changed files with 9 additions and 8 deletions

View File

@ -269,7 +269,7 @@ TypedConfig :: struct {
id: ElementId,
}
ErrorType :: enum {
ErrorType :: enum EnumBackingType {
TEXT_MEASUREMENT_FUNCTION_NOT_PROVIDED,
ARENA_CAPACITY_EXCEEDED,
ELEMENTS_CAPACITY_EXCEEDED,

Binary file not shown.

Binary file not shown.

Binary file not shown.

15
clay.h
View File

@ -315,7 +315,7 @@ struct Clay_RectangleElementConfig {
CLAY__TYPEDEF(Clay_RectangleElementConfig, struct Clay_RectangleElementConfig);
// Text
CLAY__TYPEDEF(Clay_TextElementConfigWrapMode, enum {
CLAY__TYPEDEF(Clay_TextElementConfigWrapMode, CLAY_PACKED_ENUM {
CLAY_TEXT_WRAP_WORDS,
CLAY_TEXT_WRAP_NEWLINES,
CLAY_TEXT_WRAP_NONE,
@ -362,7 +362,7 @@ CLAY__TYPEDEF(Clay_FloatingAttachPoints, struct {
Clay_FloatingAttachPointType parent;
});
CLAY__TYPEDEF(Clay_PointerCaptureMode, enum {
CLAY__TYPEDEF(Clay_PointerCaptureMode, CLAY_PACKED_ENUM {
CLAY_POINTER_CAPTURE_MODE_CAPTURE,
// CLAY_POINTER_CAPTURE_MODE_PARENT, TODO pass pointer through to attached parent
CLAY_POINTER_CAPTURE_MODE_PASSTHROUGH,
@ -464,7 +464,7 @@ CLAY__TYPEDEF(Clay_RenderCommandArray, struct {
Clay_RenderCommand *internalArray;
});
CLAY__TYPEDEF(Clay_PointerDataInteractionState, enum {
CLAY__TYPEDEF(Clay_PointerDataInteractionState, CLAY_PACKED_ENUM {
CLAY_POINTER_DATA_PRESSED_THIS_FRAME,
CLAY_POINTER_DATA_PRESSED,
CLAY_POINTER_DATA_RELEASED_THIS_FRAME,
@ -476,7 +476,7 @@ CLAY__TYPEDEF(Clay_PointerData, struct {
Clay_PointerDataInteractionState state;
});
CLAY__TYPEDEF(Clay_ErrorType, enum {
CLAY__TYPEDEF(Clay_ErrorType, CLAY_PACKED_ENUM {
CLAY_ERROR_TYPE_TEXT_MEASUREMENT_FUNCTION_NOT_PROVIDED,
CLAY_ERROR_TYPE_ARENA_CAPACITY_EXCEEDED,
CLAY_ERROR_TYPE_ELEMENTS_CAPACITY_EXCEEDED,
@ -2804,7 +2804,8 @@ void Clay__CalculateFinalLayout() {
Clay__AddRenderCommand(renderCommand);
if (borderConfig->betweenChildren.width > 0 && borderConfig->betweenChildren.color.a > 0) {
Clay_RectangleElementConfig *rectangleConfig = Clay__StoreRectangleElementConfig(CLAY__INIT(Clay_RectangleElementConfig) {.color = borderConfig->betweenChildren.color});
Clay_Vector2 borderOffset = { (float)layoutConfig->padding.x, (float)layoutConfig->padding.y };
float halfGap = layoutConfig->childGap / 2;
Clay_Vector2 borderOffset = { (float)layoutConfig->padding.x - halfGap, (float)layoutConfig->padding.y - halfGap };
if (layoutConfig->layoutDirection == CLAY_LEFT_TO_RIGHT) {
for (int32_t i = 0; i < currentElement->childrenOrTextContent.children.length; ++i) {
Clay_LayoutElement *childElement = Clay_LayoutElementArray_Get(&context->layoutElements, currentElement->childrenOrTextContent.children.elements[i]);
@ -2816,7 +2817,7 @@ void Clay__CalculateFinalLayout() {
.commandType = CLAY_RENDER_COMMAND_TYPE_RECTANGLE,
});
}
borderOffset.x += (childElement->dimensions.width + (float)layoutConfig->childGap / 2);
borderOffset.x += (childElement->dimensions.width + (float)layoutConfig->childGap);
}
} else {
for (int32_t i = 0; i < currentElement->childrenOrTextContent.children.length; ++i) {
@ -2829,7 +2830,7 @@ void Clay__CalculateFinalLayout() {
.commandType = CLAY_RENDER_COMMAND_TYPE_RECTANGLE,
});
}
borderOffset.y += (childElement->dimensions.height + (float)layoutConfig->childGap / 2);
borderOffset.y += (childElement->dimensions.height + (float)layoutConfig->childGap);
}
}
}