From 1e411dd76c6983a434a8d512fa8dea580d600758 Mon Sep 17 00:00:00 2001 From: Nic Barker Date: Tue, 14 Jan 2025 09:24:47 +1300 Subject: [PATCH] update examples --- examples/SDL2-video-demo/main.c | 15 +++-- examples/cairo-pdf-rendering/main.c | 10 +-- .../build/clay/index.wasm | Bin 166763 -> 167381 bytes examples/clay-official-website/main.c | 60 +++++++++--------- examples/introducing-clay-video-demo/main.c | 13 ++-- examples/raylib-multi-context/main.c | 13 ++-- .../CMakeLists.txt | 5 +- 7 files changed, 59 insertions(+), 57 deletions(-) diff --git a/examples/SDL2-video-demo/main.c b/examples/SDL2-video-demo/main.c index 3bd2d2a..0a56ac6 100644 --- a/examples/SDL2-video-demo/main.c +++ b/examples/SDL2-video-demo/main.c @@ -10,13 +10,14 @@ #include #include - const int FONT_ID_BODY_16 = 0; Clay_Color COLOR_WHITE = { 255, 255, 255, 255}; +Clay_Padding outerPadding16 = { 16, 16, 16, 16 }; + void RenderHeaderButton(Clay_String text) { CLAY( - CLAY_LAYOUT({ .padding = { 16, 8 }}), + CLAY_LAYOUT({ .padding = { 16, 16, 8, 8 }}), CLAY_RECTANGLE({ .color = { 140, 140, 140, 255 }, .cornerRadius = 5 @@ -31,7 +32,7 @@ void RenderHeaderButton(Clay_String text) { } void RenderDropdownMenuItem(Clay_String text) { - CLAY(CLAY_LAYOUT({ .padding = { 16, 16 }})) { + CLAY(CLAY_LAYOUT({ .padding = outerPadding16})) { CLAY_TEXT(text, CLAY_TEXT_CONFIG({ .fontId = FONT_ID_BODY_16, .fontSize = 16, @@ -91,7 +92,7 @@ static Clay_RenderCommandArray CreateLayout() { CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = layoutExpand, - .padding = { 16, 16 }, + .padding = outerPadding16, .childGap = 16 }) ) { @@ -179,7 +180,7 @@ static Clay_RenderCommandArray CreateLayout() { CLAY_RECTANGLE(contentBackgroundConfig), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, - .padding = { 16, 16 }, + .padding = outerPadding16, .childGap = 8, .sizing = { .width = CLAY_SIZING_FIXED(250), @@ -191,7 +192,7 @@ static Clay_RenderCommandArray CreateLayout() { Document document = documents.documents[i]; Clay_LayoutConfig sidebarButtonLayout = { .sizing = { .width = CLAY_SIZING_GROW(0) }, - .padding = { 16, 16 } + .padding = outerPadding16 }; if (i == selectedDocumentIndex) { @@ -236,7 +237,7 @@ static Clay_RenderCommandArray CreateLayout() { CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 16, - .padding = { 16, 16 }, + .padding = outerPadding16, .sizing = layoutExpand }) ) { diff --git a/examples/cairo-pdf-rendering/main.c b/examples/cairo-pdf-rendering/main.c index f10f990..f9fc793 100644 --- a/examples/cairo-pdf-rendering/main.c +++ b/examples/cairo-pdf-rendering/main.c @@ -42,7 +42,7 @@ void Layout() { CLAY_RECTANGLE({ .color = BACKGROUND })) { CLAY(CLAY_ID("PageMargins"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, - .padding = { 70., 50. }, // Some nice looking page margins + .padding = { 70, 70, 50, 50 }, // Some nice looking page margins .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 10})) { @@ -62,7 +62,7 @@ void Layout() { .color = ACCENT, .cornerRadius = CLAY_CORNER_RADIUS(12), })) { - CLAY(CLAY_LAYOUT({.padding = { 20., 20. }, .childGap = 4, .layoutDirection = CLAY_TOP_TO_BOTTOM })) { + CLAY(CLAY_LAYOUT({.padding = CLAY_PADDING_ALL(20), .childGap = 4, .layoutDirection = CLAY_TOP_TO_BOTTOM })) { CLAY_TEXT(CLAY_STRING("- High performance"), CLAY_TEXT_CONFIG({ .textColor = PRIMARY, .fontSize = 14, .fontFamily = CLAY_STRING("Quicksand SemiBold") })); CLAY_TEXT(CLAY_STRING("- Declarative syntax"), @@ -77,7 +77,7 @@ void Layout() { } CLAY(CLAY_LAYOUT({ .sizing = {CLAY_SIZING_FIT(0), CLAY_SIZING_GROW(0)}, - .padding = { 10, 10 }, + .padding = CLAY_PADDING_ALL(10), .layoutDirection = CLAY_TOP_TO_BOTTOM, .childAlignment = { CLAY_ALIGN_X_CENTER, CLAY_ALIGN_Y_CENTER }, .childGap = 4 @@ -85,7 +85,7 @@ void Layout() { // Profile picture CLAY(CLAY_LAYOUT({ .sizing = {CLAY_SIZING_FIT(0), CLAY_SIZING_GROW(0)}, - .padding = { 30, 0 }, + .padding = { 30, 30, 0, 0 }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .childAlignment = { CLAY_ALIGN_X_CENTER, CLAY_ALIGN_Y_CENTER }}), CLAY_BORDER_OUTSIDE_RADIUS(2, PRIMARY, 10)) { CLAY(CLAY_LAYOUT({ .sizing = { CLAY_SIZING_FIXED(32), CLAY_SIZING_FIXED(32) } }), CLAY_IMAGE({ .sourceDimensions = { 32, 32 }, .path = CLAY_STRING("resources/check.png") })); @@ -97,7 +97,7 @@ void Layout() { CLAY(CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childGap = 10, .layoutDirection = CLAY_TOP_TO_BOTTOM })) { CLAY_TEXT(CLAY_STRING("Cairo"), CLAY_TEXT_CONFIG({ .fontFamily = CLAY_STRING("Calistoga"), .fontSize = 24, .textColor = PRIMARY })); - CLAY(CLAY_LAYOUT({ .padding = { 10, 10 } }), CLAY_RECTANGLE({ .color = ACCENT, .cornerRadius = CLAY_CORNER_RADIUS(10) })) { + CLAY(CLAY_LAYOUT({ .padding = CLAY_PADDING_ALL(10) }), CLAY_RECTANGLE({ .color = ACCENT, .cornerRadius = CLAY_CORNER_RADIUS(10) })) { CLAY_TEXT(CLAY_STRING("Officiis quia quia qui inventore ratione voluptas et. Quidem sunt unde similique. Qui est et exercitationem cumque harum illum. Numquam placeat aliquid quo voluptatem. " "Deleniti saepe nihil exercitationem nemo illo. Consequatur beatae repellat provident similique. Provident qui exercitationem deserunt sapiente. Quam qui dolor corporis odit. " "Assumenda corrupti sunt culpa pariatur. Vero sit ut minima. In est consequatur minus et cum sint illum aperiam. Qui ipsa quas nisi omnis aut quia nobis. " diff --git a/examples/clay-official-website/build/clay/index.wasm b/examples/clay-official-website/build/clay/index.wasm index ab6f9b5ecc6efcf1576170e8fa9d1e270c9327f4..9847ded4c2dbf47055b21b7eca464c53c9290415 100755 GIT binary patch delta 45252 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%0D#Rzs7YeF8CbQOX`Jw(FpbN0Gfm~nOh;q7 z2_$QYWbL6beTcQdYEX!ZWAIWLN=*DbpzdYKuplKlh~O$Q^Ot0#`;6e^Xav)`RwRP$ zen&)OSO-HlV>;A*Bz`z+fq__f#%q#b<^Jb*t~2p`058zd53oMsdB3^3P3wf&u+jLG zHX1Lw=^{e=an>?Y3oIPZ?f9*1v^>|_ve8toY_vSrJKUWH$#x>yZoOXUaPuiR^(J~L zs+DNsinWYFt9Dq{>*Jy}t(2HAb+uMX0-O%NvZD$EsLHUeAw9DZs4$7WhR{>K?98dZ zCXz1Y-hrJYKv zc>hwqD7_vHQJ}hqMzEd*-@>xsGJb(_I(y73_~ZMOdf-!O-HqlPwR4-DfNh8Xh62uV zta=l0C@D#99kSN+5-F@5Bv(}8gWfk~w}f~rlR^lt(=5(|!8OVyqNqHyN=#U618}N{ zB(#|RvI@@@Y-n((y&}UL`^gzZSB`NwrXSK~SvlY1M8-uWEz0?3QB=W;Mwv@mcB31*Ct1B4EM3DFmt21D z!W*ApeKW&i>_uRqOH^0zUsPrSP=k4Ox{q7I0C5lI*VCASd7RHKwXznHxC}*fsylog zhmCjqZo_XWLR_|qP?k%jr1Fr+Nwjq!c;ZZTuiA1#?{lcaR;M^$7I9UR?#sqybFif_ zG1zutPRC_Bke#ON4Oj4fCx*6rxG_YOd0Ef>3G`Vj-;|EHLnVLg@}tXuy?tNB1SvJ- zF>D)HCZL%KI9M|S;~#LyKXSOivp8oSKi-+8WsBd})A+cTngAs>;jjGz;5cs7+pKco>@$g@*h(t|sEzZB~h z@^N`;{P4Ew34Dx}rm+cpB#ubmFZM3vHwB+K-NsPl5x-r;j~Q#*pNw~oz&4}-JsLr1 zB|Y3R=Quah7!|r!Lctu4xhO~#A1&e&#>=LBX+TLT^q1ahHO$dX+N@VzMQ@l*o#>c} z)F?h=DZL7q%#b)`F)zb=^%gJYS!}PkbuphkD zlR^jV;ay{NP~SOM^3`KIWt+$nPT+g!tCkMC>&rF&5>nkr=c;)aUb9G$qoGC)c7kezx1*t;^-O0U({6b35cZ~2k{>XJP!Ykb*s;%_;lj; tT71Ui^WIJWs^STZjTZ;*;4{R?J9(Tq;ZFXA7<(5Vo^(PssyG5K{XhQsF|+^x delta 44438 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 diff --git a/examples/clay-official-website/main.c b/examples/clay-official-website/main.c index c12f9d5..4944262 100644 --- a/examples/clay-official-website/main.c +++ b/examples/clay-official-website/main.c @@ -41,15 +41,15 @@ Clay_TextElementConfig headerTextConfig = (Clay_TextElementConfig) { .fontId = 2 Clay_TextElementConfig blobTextConfig = (Clay_TextElementConfig) { .fontId = 2, .fontSize = 30, .textColor = {244, 235, 230, 255} }; void LandingPageBlob(int index, int fontSize, Clay_Color color, Clay_String text, Clay_String imageURL) { - CLAY(CLAY_IDI("HeroBlob", index), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(.max = 480) }, .padding = {16, 16}, .childGap = 16, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER} }), CLAY_BORDER_OUTSIDE_RADIUS(2, color, 10)) { + CLAY(CLAY_IDI("HeroBlob", index), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(.max = 480) }, .padding = CLAY_PADDING_ALL(16), .childGap = 16, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER} }), CLAY_BORDER_OUTSIDE_RADIUS(2, color, 10)) { CLAY(CLAY_IDI("CheckImage", index), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_FIXED(32) } }), CLAY_IMAGE({ .sourceDimensions = { 128, 128 }, .sourceURL = imageURL })) {} CLAY_TEXT(text, CLAY_TEXT_CONFIG({ .fontSize = fontSize, .fontId = FONT_ID_BODY_24, .textColor = color })); } } void LandingPageDesktop() { - CLAY(CLAY_ID("LandingPage1Desktop"), CLAY_LAYOUT({ .sizing = { .width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIT(.min = windowHeight - 70) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = { .x = 50 } })) { - CLAY(CLAY_ID("LandingPage1"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = { 32, 32 }, .childGap = 32 }), CLAY_BORDER({ .left = { 2, COLOR_RED }, .right = { 2, COLOR_RED } })) { + CLAY(CLAY_ID("LandingPage1Desktop"), CLAY_LAYOUT({ .sizing = { .width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIT(.min = windowHeight - 70) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = { 50, 50 } })) { + CLAY(CLAY_ID("LandingPage1"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = CLAY_PADDING_ALL(32), .childGap = 32 }), CLAY_BORDER({ .left = { 2, COLOR_RED }, .right = { 2, COLOR_RED } })) { CLAY(CLAY_ID("LeftText"), CLAY_LAYOUT({ .sizing = { .width = CLAY_SIZING_PERCENT(0.55f) }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("Clay is a flex-box style UI auto layout library in C, with declarative syntax and microsecond performance."), CLAY_TEXT_CONFIG({ .fontSize = 56, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_RED })); CLAY(CLAY_ID("LandingPageSpacer"), CLAY_LAYOUT({ .sizing = { .width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIXED(32) } })) {} @@ -67,7 +67,7 @@ void LandingPageDesktop() { } void LandingPageMobile() { - CLAY(CLAY_ID("LandingPage1Mobile"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { .width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIT(.min = windowHeight - 70) }, .childAlignment = {CLAY_ALIGN_X_CENTER, .y = CLAY_ALIGN_Y_CENTER}, .padding = { 16, 32 }, .childGap = 32 })) { + CLAY(CLAY_ID("LandingPage1Mobile"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { .width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIT(.min = windowHeight - 70) }, .childAlignment = {CLAY_ALIGN_X_CENTER, .y = CLAY_ALIGN_Y_CENTER}, .padding = { 16, 16, 32, 32 }, .childGap = 32 })) { CLAY(CLAY_ID("LeftText"), CLAY_LAYOUT({ .sizing = { .width = CLAY_SIZING_GROW(0) }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("Clay is a flex-box style UI auto layout library in C, with declarative syntax and microsecond performance."), CLAY_TEXT_CONFIG({ .fontSize = 48, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_RED })); CLAY(CLAY_ID("LandingPageSpacer"), CLAY_LAYOUT({ .sizing = { .width = CLAY_SIZING_GROW(0), .height = CLAY_SIZING_FIXED(32) } })) {} @@ -87,14 +87,14 @@ void FeatureBlocksDesktop() { CLAY(CLAY_ID("FeatureBlocksOuter"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0) } })) { CLAY(CLAY_ID("FeatureBlocksInner"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0) }, .childAlignment = { .y = CLAY_ALIGN_Y_CENTER } }), CLAY_BORDER({ .betweenChildren = { .width = 2, .color = COLOR_RED } })) { Clay_TextElementConfig *textConfig = CLAY_TEXT_CONFIG({ .fontSize = 24, .fontId = FONT_ID_BODY_24, .textColor = COLOR_RED }); - CLAY(CLAY_ID("HFileBoxOuter"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_PERCENT(0.5f) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {50, 32}, .childGap = 8 })) { + CLAY(CLAY_ID("HFileBoxOuter"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_PERCENT(0.5f) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {50, 50, 32, 32}, .childGap = 8 })) { CLAY(CLAY_ID("HFileIncludeOuter"), CLAY_LAYOUT({ .padding = {8, 4} }), CLAY_RECTANGLE({ .color = COLOR_RED, .cornerRadius = CLAY_CORNER_RADIUS(8) })) { CLAY_TEXT(CLAY_STRING("#include clay.h"), CLAY_TEXT_CONFIG({ .fontSize = 24, .fontId = FONT_ID_BODY_24, .textColor = COLOR_LIGHT })); } CLAY_TEXT(CLAY_STRING("~2000 lines of C99."), textConfig); CLAY_TEXT(CLAY_STRING("Zero dependencies, including no C standard library."), textConfig); } - CLAY(CLAY_ID("BringYourOwnRendererOuter"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_PERCENT(0.5f) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {.x = 50, .y = 32}, .childGap = 8 })) { + CLAY(CLAY_ID("BringYourOwnRendererOuter"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_PERCENT(0.5f) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {50, 50, 32, 32}, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("Renderer agnostic."), CLAY_TEXT_CONFIG({ .fontId = FONT_ID_BODY_24, .fontSize = 24, .textColor = COLOR_ORANGE })); CLAY_TEXT(CLAY_STRING("Layout with clay, then render with Raylib, WebGL Canvas or even as HTML."), textConfig); CLAY_TEXT(CLAY_STRING("Flexible output for easy compositing in your custom engine or environment."), textConfig); @@ -106,14 +106,14 @@ void FeatureBlocksDesktop() { void FeatureBlocksMobile() { CLAY(CLAY_ID("FeatureBlocksInner"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0) } }), CLAY_BORDER({ .betweenChildren = { .width = 2, .color = COLOR_RED } })) { Clay_TextElementConfig *textConfig = CLAY_TEXT_CONFIG({ .fontSize = 24, .fontId = FONT_ID_BODY_24, .textColor = COLOR_RED }); - CLAY(CLAY_ID("HFileBoxOuter"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {16, 32}, .childGap = 8 })) { + CLAY(CLAY_ID("HFileBoxOuter"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {16, 16, 32, 32}, .childGap = 8 })) { CLAY(CLAY_ID("HFileIncludeOuter"), CLAY_LAYOUT({ .padding = {8, 4} }), CLAY_RECTANGLE({ .color = COLOR_RED, .cornerRadius = CLAY_CORNER_RADIUS(8) })) { CLAY_TEXT(CLAY_STRING("#include clay.h"), CLAY_TEXT_CONFIG({ .fontSize = 24, .fontId = FONT_ID_BODY_24, .textColor = COLOR_LIGHT })); } CLAY_TEXT(CLAY_STRING("~2000 lines of C99."), textConfig); CLAY_TEXT(CLAY_STRING("Zero dependencies, including no C standard library."), textConfig); } - CLAY(CLAY_ID("BringYourOwnRendererOuter"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {.x = 16, .y = 32}, .childGap = 8 })) { + CLAY(CLAY_ID("BringYourOwnRendererOuter"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {16, 16, 32, 32}, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("Renderer agnostic."), CLAY_TEXT_CONFIG({ .fontId = FONT_ID_BODY_24, .fontSize = 24, .textColor = COLOR_ORANGE })); CLAY_TEXT(CLAY_STRING("Layout with clay, then render with Raylib, WebGL Canvas or even as HTML."), textConfig); CLAY_TEXT(CLAY_STRING("Flexible output for easy compositing in your custom engine or environment."), textConfig); @@ -122,8 +122,8 @@ void FeatureBlocksMobile() { } void DeclarativeSyntaxPageDesktop() { - CLAY(CLAY_ID("SyntaxPageDesktop"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {.x = 50} })) { - CLAY(CLAY_ID("SyntaxPage"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childAlignment = { 0, CLAY_ALIGN_Y_CENTER }, .padding = { 32, 32 }, .childGap = 32 }), CLAY_BORDER({ .left = { 2, COLOR_RED }, .right = { 2, COLOR_RED } })) { + CLAY(CLAY_ID("SyntaxPageDesktop"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = { 50, 50 } })) { + CLAY(CLAY_ID("SyntaxPage"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childAlignment = { 0, CLAY_ALIGN_Y_CENTER }, .padding = CLAY_PADDING_ALL(32), .childGap = 32 }), CLAY_BORDER({ .left = { 2, COLOR_RED }, .right = { 2, COLOR_RED } })) { CLAY(CLAY_ID("SyntaxPageLeftText"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_PERCENT(0.5) }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("Declarative Syntax"), CLAY_TEXT_CONFIG({ .fontSize = 52, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_RED })); CLAY(CLAY_ID("SyntaxSpacer"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(.max = 16) } })) {} @@ -139,7 +139,7 @@ void DeclarativeSyntaxPageDesktop() { } void DeclarativeSyntaxPageMobile() { - CLAY(CLAY_ID("SyntaxPageDesktop"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {CLAY_ALIGN_X_CENTER, CLAY_ALIGN_Y_CENTER}, .padding = {16, 32}, .childGap = 16 })) { + CLAY(CLAY_ID("SyntaxPageDesktop"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {CLAY_ALIGN_X_CENTER, CLAY_ALIGN_Y_CENTER}, .padding = {16, 16, 32, 32}, .childGap = 16 })) { CLAY(CLAY_ID("SyntaxPageLeftText"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0) }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("Declarative Syntax"), CLAY_TEXT_CONFIG({ .fontSize = 48, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_RED })); CLAY(CLAY_ID("SyntaxSpacer"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(.max = 16) } })) {} @@ -165,7 +165,7 @@ Clay_Color ColorLerp(Clay_Color a, Clay_Color b, float amount) { Clay_String LOREM_IPSUM_TEXT = CLAY_STRING("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."); void HighPerformancePageDesktop(float lerpValue) { - CLAY(CLAY_ID("PerformanceDesktop"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {.x = 82, 32}, .childGap = 64 }), CLAY_RECTANGLE({ .color = COLOR_RED })) { + CLAY(CLAY_ID("PerformanceOuter"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {82, 82, 32, 32}, .childGap = 64 }), CLAY_RECTANGLE({ .color = COLOR_RED })) { CLAY(CLAY_ID("PerformanceLeftText"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_PERCENT(0.5) }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("High Performance"), CLAY_TEXT_CONFIG({ .fontSize = 52, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_LIGHT })); CLAY(CLAY_ID("PerformanceSpacer"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(.max = 16) }})) {} @@ -175,10 +175,10 @@ void HighPerformancePageDesktop(float lerpValue) { } CLAY(CLAY_ID("PerformanceRightImageOuter"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_PERCENT(0.50) }, .childAlignment = {CLAY_ALIGN_X_CENTER} })) { CLAY(CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIXED(400) } }), CLAY_BORDER_ALL({ .width = 2, .color = COLOR_LIGHT })) { - CLAY(CLAY_ID("AnimationDemoContainerLeft"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_PERCENT(0.3f + 0.4f * lerpValue), CLAY_SIZING_GROW(0) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = {32, 32} }), CLAY_RECTANGLE({ .color = ColorLerp(COLOR_RED, COLOR_ORANGE, lerpValue) })) { + CLAY(CLAY_ID("AnimationDemoContainerLeft"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_PERCENT(0.3f + 0.4f * lerpValue), CLAY_SIZING_GROW(0) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = CLAY_PADDING_ALL(32) }), CLAY_RECTANGLE({ .color = ColorLerp(COLOR_RED, COLOR_ORANGE, lerpValue) })) { CLAY_TEXT(LOREM_IPSUM_TEXT, CLAY_TEXT_CONFIG({ .fontSize = 24, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_LIGHT })); } - CLAY(CLAY_ID("AnimationDemoContainerRight"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = {32, 32} }), CLAY_RECTANGLE({ .color = ColorLerp(COLOR_ORANGE, COLOR_RED, lerpValue) })) { + CLAY(CLAY_ID("AnimationDemoContainerRight"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = CLAY_PADDING_ALL(32) }), CLAY_RECTANGLE({ .color = ColorLerp(COLOR_ORANGE, COLOR_RED, lerpValue) })) { CLAY_TEXT(LOREM_IPSUM_TEXT, CLAY_TEXT_CONFIG({ .fontSize = 24, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_LIGHT })); } } @@ -187,7 +187,7 @@ void HighPerformancePageDesktop(float lerpValue) { } void HighPerformancePageMobile(float lerpValue) { - CLAY(CLAY_ID("PerformanceMobile"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {CLAY_ALIGN_X_CENTER, CLAY_ALIGN_Y_CENTER}, .padding = {.x = 16, 32}, .childGap = 32 }), CLAY_RECTANGLE({ .color = COLOR_RED })) { + CLAY(CLAY_ID("PerformanceOuter"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {CLAY_ALIGN_X_CENTER, CLAY_ALIGN_Y_CENTER}, .padding = {16, 16, 32, 32}, .childGap = 32 }), CLAY_RECTANGLE({ .color = COLOR_RED })) { CLAY(CLAY_ID("PerformanceLeftText"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0) }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("High Performance"), CLAY_TEXT_CONFIG({ .fontSize = 48, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_LIGHT })); CLAY(CLAY_ID("PerformanceSpacer"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(.max = 16) }})) {} @@ -197,10 +197,10 @@ void HighPerformancePageMobile(float lerpValue) { } CLAY(CLAY_ID("PerformanceRightImageOuter"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0) }, .childAlignment = {CLAY_ALIGN_X_CENTER} })) { CLAY(CLAY_ID(""), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIXED(400) } }), CLAY_BORDER_ALL({ .width = 2, .color = COLOR_LIGHT })) { - CLAY(CLAY_ID("AnimationDemoContainerLeft"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_PERCENT(0.35f + 0.3f * lerpValue), CLAY_SIZING_GROW(0) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = {16, 16} }), CLAY_RECTANGLE({ .color = ColorLerp(COLOR_RED, COLOR_ORANGE, lerpValue) })) { + CLAY(CLAY_ID("AnimationDemoContainerLeft"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_PERCENT(0.35f + 0.3f * lerpValue), CLAY_SIZING_GROW(0) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = CLAY_PADDING_ALL(16) }), CLAY_RECTANGLE({ .color = ColorLerp(COLOR_RED, COLOR_ORANGE, lerpValue) })) { CLAY_TEXT(LOREM_IPSUM_TEXT, CLAY_TEXT_CONFIG({ .fontSize = 24, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_LIGHT })); } - CLAY(CLAY_ID("AnimationDemoContainerRight"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = {16, 16} }), CLAY_RECTANGLE({ .color = ColorLerp(COLOR_ORANGE, COLOR_RED, lerpValue) })) { + CLAY(CLAY_ID("AnimationDemoContainerRight"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childAlignment = {.y = CLAY_ALIGN_Y_CENTER}, .padding = CLAY_PADDING_ALL(16) }), CLAY_RECTANGLE({ .color = ColorLerp(COLOR_ORANGE, COLOR_RED, lerpValue) })) { CLAY_TEXT(LOREM_IPSUM_TEXT, CLAY_TEXT_CONFIG({ .fontSize = 24, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_LIGHT })); } } @@ -217,7 +217,7 @@ void HandleRendererButtonInteraction(Clay_ElementId elementId, Clay_PointerData } void RendererButtonActive(Clay_String text) { - CLAY(CLAY_LAYOUT({ .sizing = {CLAY_SIZING_FIXED(300) }, .padding = {16, 16} }), + CLAY(CLAY_LAYOUT({ .sizing = {CLAY_SIZING_FIXED(300) }, .padding = CLAY_PADDING_ALL(16) }), CLAY_RECTANGLE({ .color = Clay_Hovered() ? COLOR_RED_HOVER : COLOR_RED, .cornerRadius = CLAY_CORNER_RADIUS(10) }) ) { CLAY_TEXT(text, CLAY_TEXT_CONFIG({ .disablePointerEvents = true, .fontSize = 28, .fontId = FONT_ID_BODY_36, .textColor = COLOR_LIGHT })); @@ -225,7 +225,7 @@ void RendererButtonActive(Clay_String text) { } void RendererButtonInactive(Clay_String text, size_t rendererIndex) { - CLAY(CLAY_LAYOUT({ .sizing = {CLAY_SIZING_FIXED(300)}, .padding = {16, 16} }), + CLAY(CLAY_LAYOUT({ .sizing = {CLAY_SIZING_FIXED(300)}, .padding = CLAY_PADDING_ALL(16) }), CLAY_BORDER_OUTSIDE_RADIUS(2, COLOR_RED, 10), CLAY_RECTANGLE({ .color = Clay_Hovered() ? COLOR_LIGHT_HOVER : COLOR_LIGHT, .cornerRadius = CLAY_CORNER_RADIUS(10), .cursorPointer = true }), Clay_OnHover(HandleRendererButtonInteraction, rendererIndex) @@ -235,8 +235,8 @@ void RendererButtonInactive(Clay_String text, size_t rendererIndex) { } void RendererPageDesktop() { - CLAY(CLAY_ID("RendererPageDesktop"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {.x = 50} })) { - CLAY(CLAY_ID("RendererPage"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childAlignment = { 0, CLAY_ALIGN_Y_CENTER }, .padding = { 32, 32 }, .childGap = 32 }), CLAY_BORDER({ .left = { 2, COLOR_RED }, .right = { 2, COLOR_RED } })) { + CLAY(CLAY_ID("RendererPageDesktop"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = { 50, 50 } })) { + CLAY(CLAY_ID("RendererPage"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) }, .childAlignment = { 0, CLAY_ALIGN_Y_CENTER }, .padding = CLAY_PADDING_ALL(32), .childGap = 32 }), CLAY_BORDER({ .left = { 2, COLOR_RED }, .right = { 2, COLOR_RED } })) { CLAY(CLAY_ID("RendererLeftText"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_PERCENT(0.5) }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("Renderer & Platform Agnostic"), CLAY_TEXT_CONFIG({ .fontSize = 52, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_RED })); CLAY(CLAY_ID("RendererSpacerLeft"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(.max = 16) }})) {} @@ -260,7 +260,7 @@ void RendererPageDesktop() { } void RendererPageMobile() { - CLAY(CLAY_ID("RendererMobile"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {.x = CLAY_ALIGN_X_CENTER, .y = CLAY_ALIGN_Y_CENTER}, .padding = {.x = 16, 32}, .childGap = 32 }), CLAY_RECTANGLE({ .color = COLOR_LIGHT })) { + CLAY(CLAY_ID("RendererMobile"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {.x = CLAY_ALIGN_X_CENTER, .y = CLAY_ALIGN_Y_CENTER}, .padding = { 16, 16, 32, 32}, .childGap = 32 }), CLAY_RECTANGLE({ .color = COLOR_LIGHT })) { CLAY(CLAY_ID("RendererLeftText"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0) }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("Renderer & Platform Agnostic"), CLAY_TEXT_CONFIG({ .fontSize = 48, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_RED })); CLAY(CLAY_ID("RendererSpacerLeft"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(.max = 16) }})) {} @@ -283,7 +283,7 @@ void RendererPageMobile() { } void DebuggerPageDesktop() { - CLAY(CLAY_ID("DebuggerDesktop"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = {.x = 82, 32}, .childGap = 64 }), CLAY_RECTANGLE({ .color = COLOR_RED })) { + CLAY(CLAY_ID("DebuggerDesktop"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIT(.min = windowHeight - 50) }, .childAlignment = {0, CLAY_ALIGN_Y_CENTER}, .padding = { 82, 82, 32, 32 }, .childGap = 64 }), CLAY_RECTANGLE({ .color = COLOR_RED })) { CLAY(CLAY_ID("DebuggerLeftText"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_PERCENT(0.5) }, .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 8 })) { CLAY_TEXT(CLAY_STRING("Integrated Debug Tools"), CLAY_TEXT_CONFIG({ .fontSize = 52, .fontId = FONT_ID_TITLE_56, .textColor = COLOR_LIGHT })); CLAY(CLAY_ID("DebuggerSpacer"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(.max = 16) }})) {} @@ -311,18 +311,18 @@ float animationLerpValue = -1.0f; Clay_RenderCommandArray CreateLayout(bool mobileScreen, float lerpValue) { Clay_BeginLayout(); CLAY(CLAY_ID("OuterContainer"), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_GROW(0) } }), CLAY_RECTANGLE({ .color = COLOR_LIGHT })) { - CLAY(CLAY_ID("Header"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIXED(50) }, .childAlignment = { 0, CLAY_ALIGN_Y_CENTER }, .childGap = 16, .padding = { 32 } })) { + CLAY(CLAY_ID("Header"), CLAY_LAYOUT({ .sizing = { CLAY_SIZING_GROW(0), CLAY_SIZING_FIXED(50) }, .childAlignment = { 0, CLAY_ALIGN_Y_CENTER }, .childGap = 16, .padding = { 32, 32 } })) { CLAY_TEXT(CLAY_STRING("Clay"), &headerTextConfig); CLAY(CLAY_ID("Spacer"), CLAY_LAYOUT({ .sizing = { .width = CLAY_SIZING_GROW(0) } })) {} if (!mobileScreen) { - CLAY(CLAY_ID("LinkExamplesOuter"), CLAY_LAYOUT({ .padding = {8} }), CLAY_RECTANGLE({ .link = CLAY_STRING("https://github.com/nicbarker/clay/tree/main/examples"), .color = {0,0,0,0} })) { + CLAY(CLAY_ID("LinkExamplesOuter"), CLAY_LAYOUT({ .padding = {8, 8} }), CLAY_RECTANGLE({ .link = CLAY_STRING("https://github.com/nicbarker/clay/tree/main/examples"), .color = {0,0,0,0} })) { CLAY_TEXT(CLAY_STRING("Examples"), CLAY_TEXT_CONFIG({ .disablePointerEvents = true, .fontId = FONT_ID_BODY_24, .fontSize = 24, .textColor = {61, 26, 5, 255} })); } - CLAY(CLAY_ID("LinkDocsOuter"), CLAY_LAYOUT({ .padding = {8} }), CLAY_RECTANGLE({ .link = CLAY_STRING("https://github.com/nicbarker/clay/blob/main/README.md"), .color = {0,0,0,0} })) { + CLAY(CLAY_ID("LinkDocsOuter"), CLAY_LAYOUT({ .padding = {8, 8} }), CLAY_RECTANGLE({ .link = CLAY_STRING("https://github.com/nicbarker/clay/blob/main/README.md"), .color = {0,0,0,0} })) { CLAY_TEXT(CLAY_STRING("Docs"), CLAY_TEXT_CONFIG({ .disablePointerEvents = true, .fontId = FONT_ID_BODY_24, .fontSize = 24, .textColor = {61, 26, 5, 255} })); } } - CLAY(CLAY_LAYOUT({ .padding = {16, 6} }), + CLAY(CLAY_LAYOUT({ .padding = {16, 16, 6, 6} }), CLAY_RECTANGLE({ .cornerRadius = CLAY_CORNER_RADIUS(10), .link = CLAY_STRING("https://discord.gg/b4FTWkxdvT"), @@ -331,7 +331,7 @@ Clay_RenderCommandArray CreateLayout(bool mobileScreen, float lerpValue) { ) { CLAY_TEXT(CLAY_STRING("Discord"), CLAY_TEXT_CONFIG({ .disablePointerEvents = true, .fontId = FONT_ID_BODY_24, .fontSize = 24, .textColor = {61, 26, 5, 255} })); } - CLAY(CLAY_LAYOUT({ .padding = {16, 6} }), + CLAY(CLAY_LAYOUT({ .padding = {16, 16, 6, 6} }), CLAY_RECTANGLE({ .cornerRadius = CLAY_CORNER_RADIUS(10), .link = CLAY_STRING("https://github.com/nicbarker/clay"), .color = Clay_Hovered() ? COLOR_LIGHT_HOVER : COLOR_LIGHT }), CLAY_BORDER_OUTSIDE_RADIUS(2, COLOR_RED, 10) ) { @@ -391,10 +391,10 @@ CLAY_WASM_EXPORT("UpdateDrawFrame") Clay_RenderCommandArray UpdateDrawFrame(floa windowHeight = height; Clay_SetLayoutDimensions((Clay_Dimensions) { width, height }); Clay_ScrollContainerData scrollContainerData = Clay_GetScrollContainerData(Clay_GetElementId(CLAY_STRING("OuterScrollContainer"))); - Clay_LayoutElementHashMapItem *perfPage = Clay__GetHashMapItem(Clay_GetElementId(CLAY_STRING("PerformancePageOuter")).id); + Clay_LayoutElementHashMapItem *perfPage = Clay__GetHashMapItem(Clay_GetElementId(CLAY_STRING("PerformanceOuter")).id); // NaN propagation can cause pain here float perfPageYOffset = perfPage->boundingBox.y + scrollContainerData.scrollPosition->y; - if (deltaTime == deltaTime && perfPageYOffset < height && perfPageYOffset + perfPage->boundingBox.height > 0) { + if (deltaTime == deltaTime && (ACTIVE_RENDERER_INDEX == 1 || (perfPageYOffset < height && perfPageYOffset + perfPage->boundingBox.height > 0))) { animationLerpValue += deltaTime; if (animationLerpValue > 1) { animationLerpValue -= 2; diff --git a/examples/introducing-clay-video-demo/main.c b/examples/introducing-clay-video-demo/main.c index 8f3ae42..002e798 100644 --- a/examples/introducing-clay-video-demo/main.c +++ b/examples/introducing-clay-video-demo/main.c @@ -4,10 +4,11 @@ const int FONT_ID_BODY_16 = 0; Clay_Color COLOR_WHITE = { 255, 255, 255, 255}; +Clay_Padding outerPadding16 = { 16, 16, 16, 16 }; void RenderHeaderButton(Clay_String text) { CLAY( - CLAY_LAYOUT({ .padding = { 16, 8 }}), + CLAY_LAYOUT({ .padding = { 16, 16, 8, 8 }}), CLAY_RECTANGLE({ .color = { 140, 140, 140, 255 }, .cornerRadius = 5 @@ -22,7 +23,7 @@ void RenderHeaderButton(Clay_String text) { } void RenderDropdownMenuItem(Clay_String text) { - CLAY(CLAY_LAYOUT({ .padding = { 16, 16 }})) { + CLAY(CLAY_LAYOUT({ .padding = outerPadding16})) { CLAY_TEXT(text, CLAY_TEXT_CONFIG({ .fontId = FONT_ID_BODY_16, .fontSize = 16, @@ -128,7 +129,7 @@ int main(void) { CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = layoutExpand, - .padding = { 16, 16 }, + .padding = outerPadding16, .childGap = 16 }) ) { @@ -216,7 +217,7 @@ int main(void) { CLAY_RECTANGLE(contentBackgroundConfig), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, - .padding = { 16, 16 }, + .padding = outerPadding16, .childGap = 8, .sizing = { .width = CLAY_SIZING_FIXED(250), @@ -228,7 +229,7 @@ int main(void) { Document document = documents.documents[i]; Clay_LayoutConfig sidebarButtonLayout = { .sizing = { .width = CLAY_SIZING_GROW(0) }, - .padding = { 16, 16 } + .padding = outerPadding16 }; if (i == selectedDocumentIndex) { @@ -273,7 +274,7 @@ int main(void) { CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 16, - .padding = { 16, 16 }, + .padding = outerPadding16, .sizing = layoutExpand }) ) { diff --git a/examples/raylib-multi-context/main.c b/examples/raylib-multi-context/main.c index 6ce7c1b..06d5e8a 100644 --- a/examples/raylib-multi-context/main.c +++ b/examples/raylib-multi-context/main.c @@ -4,10 +4,11 @@ const int FONT_ID_BODY_16 = 0; Clay_Color COLOR_WHITE = { 255, 255, 255, 255}; +Clay_Padding outerPadding16 = { 16, 16, 16, 16 }; void RenderHeaderButton(Clay_String text) { CLAY( - CLAY_LAYOUT({ .padding = { 16, 8 }}), + CLAY_LAYOUT({ .padding = { 16, 16, 8, 8 }}), CLAY_RECTANGLE({ .color = { 140, 140, 140, 255 }, .cornerRadius = 5 @@ -22,7 +23,7 @@ void RenderHeaderButton(Clay_String text) { } void RenderDropdownMenuItem(Clay_String text) { - CLAY(CLAY_LAYOUT({ .padding = { 16, 16 }})) { + CLAY(CLAY_LAYOUT({ .padding = outerPadding16})) { CLAY_TEXT(text, CLAY_TEXT_CONFIG({ .fontId = FONT_ID_BODY_16, .fontSize = 16, @@ -121,7 +122,7 @@ Clay_RenderCommandArray CreateLayout(Clay_Context* context, float yOffset, int32 CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .sizing = layoutExpand, - .padding = { 16, 16 }, + .padding = outerPadding16, .childGap = 16 }) ) { @@ -134,7 +135,7 @@ Clay_RenderCommandArray CreateLayout(Clay_Context* context, float yOffset, int32 CLAY_RECTANGLE(contentBackgroundConfig), CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, - .padding = { 16, 16 }, + .padding = outerPadding16, .childGap = 8, .sizing = { .width = CLAY_SIZING_FIXED(250), @@ -146,7 +147,7 @@ Clay_RenderCommandArray CreateLayout(Clay_Context* context, float yOffset, int32 Document document = documents.documents[i]; Clay_LayoutConfig sidebarButtonLayout = { .sizing = { .width = CLAY_SIZING_GROW() }, - .padding = { 16, 16 } + .padding = outerPadding16 }; if (i == *documentIndex) { @@ -194,7 +195,7 @@ Clay_RenderCommandArray CreateLayout(Clay_Context* context, float yOffset, int32 CLAY_LAYOUT({ .layoutDirection = CLAY_TOP_TO_BOTTOM, .childGap = 16, - .padding = { 16, 16 }, + .padding = outerPadding16, .sizing = layoutExpand }) ) { diff --git a/examples/raylib-sidebar-scrolling-container/CMakeLists.txt b/examples/raylib-sidebar-scrolling-container/CMakeLists.txt index 8f746ed..4989980 100644 --- a/examples/raylib-sidebar-scrolling-container/CMakeLists.txt +++ b/examples/raylib-sidebar-scrolling-container/CMakeLists.txt @@ -24,12 +24,11 @@ target_compile_options(clay_examples_raylib_sidebar_scrolling_container PUBLIC) target_include_directories(clay_examples_raylib_sidebar_scrolling_container PUBLIC .) target_link_libraries(clay_examples_raylib_sidebar_scrolling_container PUBLIC raylib) - if(MSVC) set(CMAKE_C_FLAGS_DEBUG "/D CLAY_DEBUG") else() - set(CMAKE_C_FLAGS_DEBUG "-Wall -Werror -Wno-error=missing-braces -DCLAY_DEBUG") - set(CMAKE_C_FLAGS_RELEASE "-O3") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -Werror -DCLAY_DEBUG -fsanitize=address") + set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3") endif() add_custom_command(