Test msvc replacement for attribute packed

This commit is contained in:
Nic Barker 2024-09-28 16:21:22 +12:00
parent 9a0b29b712
commit e5e39d12e9

18
clay.h
View File

@ -28,6 +28,12 @@
#define CLAY_WASM_EXPORT(null) #define CLAY_WASM_EXPORT(null)
#endif #endif
#ifdef MSC_VER
#define CLAY_PACKED_ENUM : unsigned char
#else
#define CLAY_PACKED_ENUM __attribute__((__packed__))
#endif
// Public Macro API ------------------------ // Public Macro API ------------------------
#define CLAY_LAYOUT(...) Clay__StoreLayoutConfig((Clay_LayoutConfig) {__VA_ARGS__ }) #define CLAY_LAYOUT(...) Clay__StoreLayoutConfig((Clay_LayoutConfig) {__VA_ARGS__ })
@ -158,24 +164,24 @@ typedef struct {
// Element Configs --------------------------- // Element Configs ---------------------------
// Layout // Layout
typedef enum __attribute__((__packed__)) { typedef enum CLAY_PACKED_ENUM {
CLAY_LEFT_TO_RIGHT, CLAY_LEFT_TO_RIGHT,
CLAY_TOP_TO_BOTTOM, CLAY_TOP_TO_BOTTOM,
} Clay_LayoutDirection; } Clay_LayoutDirection;
typedef enum __attribute__((__packed__)) { typedef enum CLAY_PACKED_ENUM {
CLAY_ALIGN_X_LEFT, CLAY_ALIGN_X_LEFT,
CLAY_ALIGN_X_RIGHT, CLAY_ALIGN_X_RIGHT,
CLAY_ALIGN_X_CENTER, CLAY_ALIGN_X_CENTER,
} Clay_LayoutAlignmentX; } Clay_LayoutAlignmentX;
typedef enum __attribute__((__packed__)) { typedef enum CLAY_PACKED_ENUM {
CLAY_ALIGN_Y_TOP, CLAY_ALIGN_Y_TOP,
CLAY_ALIGN_Y_BOTTOM, CLAY_ALIGN_Y_BOTTOM,
CLAY_ALIGN_Y_CENTER, CLAY_ALIGN_Y_CENTER,
} Clay_LayoutAlignmentY; } Clay_LayoutAlignmentY;
typedef enum __attribute__((__packed__)) { typedef enum CLAY_PACKED_ENUM {
CLAY__SIZING_TYPE_FIT, CLAY__SIZING_TYPE_FIT,
CLAY__SIZING_TYPE_GROW, CLAY__SIZING_TYPE_GROW,
CLAY__SIZING_TYPE_PERCENT, CLAY__SIZING_TYPE_PERCENT,
@ -260,7 +266,7 @@ typedef struct
} Clay_ImageElementConfig; } Clay_ImageElementConfig;
// Floating // Floating
typedef enum __attribute__((__packed__)) { typedef enum CLAY_PACKED_ENUM {
CLAY_ATTACH_POINT_LEFT_TOP, CLAY_ATTACH_POINT_LEFT_TOP,
CLAY_ATTACH_POINT_LEFT_CENTER, CLAY_ATTACH_POINT_LEFT_CENTER,
CLAY_ATTACH_POINT_LEFT_BOTTOM, CLAY_ATTACH_POINT_LEFT_BOTTOM,
@ -596,7 +602,7 @@ Clay_ElementId *Clay__ElementIdArray_Add(Clay__ElementIdArray *array, Clay_Eleme
#pragma endregion #pragma endregion
// __GENERATED__ template // __GENERATED__ template
typedef enum __attribute__((__packed__)) { typedef enum CLAY_PACKED_ENUM {
CLAY__LAYOUT_ELEMENT_TYPE_CONTAINER, CLAY__LAYOUT_ELEMENT_TYPE_CONTAINER,
CLAY__LAYOUT_ELEMENT_TYPE_RECTANGLE, CLAY__LAYOUT_ELEMENT_TYPE_RECTANGLE,
CLAY__LAYOUT_ELEMENT_TYPE_BORDER_CONTAINER, CLAY__LAYOUT_ELEMENT_TYPE_BORDER_CONTAINER,