Compare commits

...

6 Commits

Author SHA1 Message Date
peter
70cd85c662
Merge 23863edde0 into 208c7cb3a0 2025-01-12 11:03:22 +00: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
peterc-s
23863edde0
add undef
Author:    peterc-s <pjcsmail@gmail.com>
2024-12-28 14:22:18 +00:00
peterc-s
974af1e61c
update raylib video example to use header file and fix segfault
Author:    peterc-s <pjcsmail@gmail.com>
2024-12-28 14:22:16 +00:00
peterc-s
10f1565f6f
update raylib scrolling sidebar example
Author:    peterc-s <pjcsmail@gmail.com>
2024-12-28 14:22:13 +00:00
peterc-s
77bc75fc8b
move raylib renderer to header file
Author:    peterc-s <pjcsmail@gmail.com>
2024-12-28 14:22:05 +00:00
4 changed files with 23 additions and 9 deletions

7
clay.h
View File

@ -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);
}
}
}

View File

@ -1,6 +1,7 @@
#define CLAY_IMPLEMENTATION
#include "../../clay.h"
#include "../../renderers/raylib/clay_renderer_raylib.c"
#define CLAY_RAYLIB_IMPLEMENTATION // This is different to the video, the raylib renderer is now in a header file
#include "../../renderers/raylib/clay_renderer_raylib.h"
const int FONT_ID_BODY_16 = 0;
Clay_Color COLOR_WHITE = { 255, 255, 255, 255};

View File

@ -1,6 +1,7 @@
#define CLAY_IMPLEMENTATION
#include "../../clay.h"
#include "../../renderers/raylib/clay_renderer_raylib.c"
#define CLAY_RAYLIB_IMPLEMENTATION
#include "../../renderers/raylib/clay_renderer_raylib.h"
const uint32_t FONT_ID_BODY_24 = 0;
const uint32_t FONT_ID_BODY_16 = 1;

View File

@ -1,3 +1,6 @@
#ifndef CLAY_RENDERER_RAYLIB_H
#define CLAY_RENDERER_RAYLIB_H
#include "raylib.h"
#include "raymath.h"
#include "stdint.h"
@ -14,8 +17,6 @@ typedef struct
Font font;
} Raylib_Font;
Raylib_Font Raylib_fonts[10];
Camera Raylib_camera;
typedef enum
{
@ -38,6 +39,14 @@ typedef struct
};
} CustomLayoutElement;
#ifdef CLAY_RAYLIB_IMPLEMENTATION
#undef CLAY_RAYLIB_IMPLEMENTATION
// Global state
Raylib_Font Raylib_fonts[10];
Camera Raylib_camera;
uint32_t measureCalls = 0;
// Get a ray trace from the screen position (i.e mouse) within a specific section of the screen
Ray GetScreenToWorldPointWithZDistance(Vector2 position, Camera camera, int screenWidth, int screenHeight, float zDistance)
{
@ -87,8 +96,6 @@ Ray GetScreenToWorldPointWithZDistance(Vector2 position, Camera camera, int scre
return ray;
}
uint32_t measureCalls = 0;
static inline Clay_Dimensions Raylib_MeasureText(Clay_String *text, Clay_TextElementConfig *config) {
measureCalls++;
// Measure string size for Font
@ -122,6 +129,7 @@ static inline Clay_Dimensions Raylib_MeasureText(Clay_String *text, Clay_TextEle
}
void Clay_Raylib_Initialize(int width, int height, const char *title, unsigned int flags) {
measureCalls = 0;
SetConfigFlags(flags);
InitWindow(width, height, title);
// EnableEventWaiting();
@ -231,3 +239,6 @@ void Clay_Raylib_Render(Clay_RenderCommandArray renderCommands)
}
}
}
#endif // CLAY_RAYLIB_IMPLEMENTATION
#endif // CLAY_RENDERER_RAYLIB_H