mirror of
				https://github.com/nicbarker/clay.git
				synced 2025-11-04 00:26:17 +00:00 
			
		
		
		
	[Compilers] Add struct names to public structs (#336)
This commit is contained in:
		
							parent
							
								
									65e813d4df
								
							
						
					
					
						commit
						34ff7e1bea
					
				
							
								
								
									
										72
									
								
								clay.h
									
									
									
									
									
								
							
							
						
						
									
										72
									
								
								clay.h
									
									
									
									
									
								
							| 
						 | 
					@ -184,7 +184,7 @@ extern "C" {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Note: Clay_String is not guaranteed to be null terminated. It may be if created from a literal C string,
 | 
					// 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.
 | 
					// but it is also used to represent slices.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_String {
 | 
				
			||||||
    // Set this boolean to true if the char* data underlying this string will live for the entire lifetime of the program.
 | 
					    // Set this boolean to true if the char* data underlying this string will live for the entire lifetime of the program.
 | 
				
			||||||
    // This will automatically be set for strings created with CLAY_STRING, as the macro requires a string literal.
 | 
					    // This will automatically be set for strings created with CLAY_STRING, as the macro requires a string literal.
 | 
				
			||||||
    bool isStaticallyAllocated;
 | 
					    bool isStaticallyAllocated;
 | 
				
			||||||
| 
						 | 
					@ -195,7 +195,7 @@ typedef struct {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Clay_StringSlice is used to represent non owning string slices, and includes
 | 
					// Clay_StringSlice is used to represent non owning string slices, and includes
 | 
				
			||||||
// a baseChars field which points to the string this slice is derived from.
 | 
					// a baseChars field which points to the string this slice is derived from.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_StringSlice {
 | 
				
			||||||
    int32_t length;
 | 
					    int32_t length;
 | 
				
			||||||
    const char *chars;
 | 
					    const char *chars;
 | 
				
			||||||
    const char *baseChars; // The source string / char* that this slice was derived from
 | 
					    const char *baseChars; // The source string / char* that this slice was derived from
 | 
				
			||||||
| 
						 | 
					@ -205,33 +205,33 @@ typedef struct Clay_Context Clay_Context;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Clay_Arena is a memory arena structure that is used by clay to manage its internal allocations.
 | 
					// Clay_Arena is a memory arena structure that is used by clay to manage its internal allocations.
 | 
				
			||||||
// Rather than creating it by hand, it's easier to use Clay_CreateArenaWithCapacityAndMemory()
 | 
					// Rather than creating it by hand, it's easier to use Clay_CreateArenaWithCapacityAndMemory()
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_Arena {
 | 
				
			||||||
    uintptr_t nextAllocation;
 | 
					    uintptr_t nextAllocation;
 | 
				
			||||||
    size_t capacity;
 | 
					    size_t capacity;
 | 
				
			||||||
    char *memory;
 | 
					    char *memory;
 | 
				
			||||||
} Clay_Arena;
 | 
					} Clay_Arena;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_Dimensions {
 | 
				
			||||||
    float width, height;
 | 
					    float width, height;
 | 
				
			||||||
} Clay_Dimensions;
 | 
					} Clay_Dimensions;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_Vector2 {
 | 
				
			||||||
    float x, y;
 | 
					    float x, y;
 | 
				
			||||||
} Clay_Vector2;
 | 
					} Clay_Vector2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Internally clay conventionally represents colors as 0-255, but interpretation is up to the renderer.
 | 
					// Internally clay conventionally represents colors as 0-255, but interpretation is up to the renderer.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_Color {
 | 
				
			||||||
    float r, g, b, a;
 | 
					    float r, g, b, a;
 | 
				
			||||||
} Clay_Color;
 | 
					} Clay_Color;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_BoundingBox {
 | 
				
			||||||
    float x, y, width, height;
 | 
					    float x, y, width, height;
 | 
				
			||||||
} Clay_BoundingBox;
 | 
					} Clay_BoundingBox;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Primarily created via the CLAY_ID(), CLAY_IDI(), CLAY_ID_LOCAL() and CLAY_IDI_LOCAL() macros.
 | 
					// Primarily created via the CLAY_ID(), CLAY_IDI(), CLAY_ID_LOCAL() and CLAY_IDI_LOCAL() macros.
 | 
				
			||||||
// Represents a hashed string ID used for identifying and finding specific clay UI elements, required
 | 
					// Represents a hashed string ID used for identifying and finding specific clay UI elements, required
 | 
				
			||||||
// by functions such as Clay_PointerOver() and Clay_GetElementData().
 | 
					// by functions such as Clay_PointerOver() and Clay_GetElementData().
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_ElementId {
 | 
				
			||||||
    uint32_t id; // The resulting hash generated from the other fields.
 | 
					    uint32_t id; // The resulting hash generated from the other fields.
 | 
				
			||||||
    uint32_t offset; // A numerical offset applied after computing the hash from stringId.
 | 
					    uint32_t offset; // A numerical offset applied after computing the hash from stringId.
 | 
				
			||||||
    uint32_t baseId; // A base hash value to start from, for example the parent element ID is used when calculating CLAY_ID_LOCAL().
 | 
					    uint32_t baseId; // A base hash value to start from, for example the parent element ID is used when calculating CLAY_ID_LOCAL().
 | 
				
			||||||
| 
						 | 
					@ -248,7 +248,7 @@ typedef struct
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls the "radius", or corner rounding of elements, including rectangles, borders and images.
 | 
					// Controls the "radius", or corner rounding of elements, including rectangles, borders and images.
 | 
				
			||||||
// The rounding is determined by drawing a circle inset into the element corner by (radius, radius) pixels.
 | 
					// The rounding is determined by drawing a circle inset into the element corner by (radius, radius) pixels.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_CornerRadius {
 | 
				
			||||||
    float topLeft;
 | 
					    float topLeft;
 | 
				
			||||||
    float topRight;
 | 
					    float topRight;
 | 
				
			||||||
    float bottomLeft;
 | 
					    float bottomLeft;
 | 
				
			||||||
| 
						 | 
					@ -298,20 +298,20 @@ typedef CLAY_PACKED_ENUM {
 | 
				
			||||||
} Clay__SizingType;
 | 
					} Clay__SizingType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls how child elements are aligned on each axis.
 | 
					// Controls how child elements are aligned on each axis.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_ChildAlignment {
 | 
				
			||||||
    Clay_LayoutAlignmentX x; // Controls alignment of children along the x axis.
 | 
					    Clay_LayoutAlignmentX x; // Controls alignment of children along the x axis.
 | 
				
			||||||
    Clay_LayoutAlignmentY y; // Controls alignment of children along the y axis.
 | 
					    Clay_LayoutAlignmentY y; // Controls alignment of children along the y axis.
 | 
				
			||||||
} Clay_ChildAlignment;
 | 
					} Clay_ChildAlignment;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls the minimum and maximum size in pixels that this element is allowed to grow or shrink to,
 | 
					// Controls the minimum and maximum size in pixels that this element is allowed to grow or shrink to,
 | 
				
			||||||
// overriding sizing types such as FIT or GROW.
 | 
					// overriding sizing types such as FIT or GROW.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_SizingMinMax {
 | 
				
			||||||
    float min; // The smallest final size of the element on this axis will be this value in pixels.
 | 
					    float min; // The smallest final size of the element on this axis will be this value in pixels.
 | 
				
			||||||
    float max; // The largest final size of the element on this axis will be this value in pixels.
 | 
					    float max; // The largest final size of the element on this axis will be this value in pixels.
 | 
				
			||||||
} Clay_SizingMinMax;
 | 
					} Clay_SizingMinMax;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls the sizing of this element along one axis inside its parent container.
 | 
					// Controls the sizing of this element along one axis inside its parent container.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_SizingAxis {
 | 
				
			||||||
    union {
 | 
					    union {
 | 
				
			||||||
        Clay_SizingMinMax minMax; // Controls the minimum and maximum size in pixels that this element is allowed to grow or shrink to, overriding sizing types such as FIT or GROW.
 | 
					        Clay_SizingMinMax minMax; // Controls the minimum and maximum size in pixels that this element is allowed to grow or shrink to, overriding sizing types such as FIT or GROW.
 | 
				
			||||||
        float percent; // Expects 0-1 range. Clamps the axis size to a percent of the parent container's axis size minus padding and child gaps.
 | 
					        float percent; // Expects 0-1 range. Clamps the axis size to a percent of the parent container's axis size minus padding and child gaps.
 | 
				
			||||||
| 
						 | 
					@ -320,14 +320,14 @@ typedef struct {
 | 
				
			||||||
} Clay_SizingAxis;
 | 
					} Clay_SizingAxis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls the sizing of this element along one axis inside its parent container.
 | 
					// Controls the sizing of this element along one axis inside its parent container.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_Sizing {
 | 
				
			||||||
    Clay_SizingAxis width; // Controls the width sizing of the element, along the x axis.
 | 
					    Clay_SizingAxis width; // Controls the width sizing of the element, along the x axis.
 | 
				
			||||||
    Clay_SizingAxis height;  // Controls the height sizing of the element, along the y axis.
 | 
					    Clay_SizingAxis height;  // Controls the height sizing of the element, along the y axis.
 | 
				
			||||||
} Clay_Sizing;
 | 
					} Clay_Sizing;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls "padding" in pixels, which is a gap between the bounding box of this element and where its children
 | 
					// Controls "padding" in pixels, which is a gap between the bounding box of this element and where its children
 | 
				
			||||||
// will be placed.
 | 
					// will be placed.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_Padding {
 | 
				
			||||||
    uint16_t left;
 | 
					    uint16_t left;
 | 
				
			||||||
    uint16_t right;
 | 
					    uint16_t right;
 | 
				
			||||||
    uint16_t top;
 | 
					    uint16_t top;
 | 
				
			||||||
| 
						 | 
					@ -338,7 +338,7 @@ CLAY__WRAPPER_STRUCT(Clay_Padding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls various settings that affect the size and position of an element, as well as the sizes and positions
 | 
					// Controls various settings that affect the size and position of an element, as well as the sizes and positions
 | 
				
			||||||
// of any child elements.
 | 
					// of any child elements.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_LayoutConfig {
 | 
				
			||||||
    Clay_Sizing sizing; // Controls the sizing of this element inside it's parent container, including FIT, GROW, PERCENT and FIXED sizing.
 | 
					    Clay_Sizing sizing; // Controls the sizing of this element inside it's parent container, including FIT, GROW, PERCENT and FIXED sizing.
 | 
				
			||||||
    Clay_Padding padding; // Controls "padding" in pixels, which is a gap between the bounding box of this element and where its children will be placed.
 | 
					    Clay_Padding padding; // Controls "padding" in pixels, which is a gap between the bounding box of this element and where its children will be placed.
 | 
				
			||||||
    uint16_t childGap; // Controls the gap in pixels between child elements along the layout axis (horizontal gap for LEFT_TO_RIGHT, vertical gap for TOP_TO_BOTTOM).
 | 
					    uint16_t childGap; // Controls the gap in pixels between child elements along the layout axis (horizontal gap for LEFT_TO_RIGHT, vertical gap for TOP_TO_BOTTOM).
 | 
				
			||||||
| 
						 | 
					@ -371,7 +371,7 @@ typedef CLAY_PACKED_ENUM {
 | 
				
			||||||
} Clay_TextAlignment;
 | 
					} Clay_TextAlignment;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls various functionality related to text elements.
 | 
					// Controls various functionality related to text elements.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_TextElementConfig {
 | 
				
			||||||
    // A pointer that will be transparently passed through to the resulting render command.
 | 
					    // A pointer that will be transparently passed through to the resulting render command.
 | 
				
			||||||
    void *userData;
 | 
					    void *userData;
 | 
				
			||||||
    // The RGBA color of the font to render, conventionally specified as 0-255.
 | 
					    // The RGBA color of the font to render, conventionally specified as 0-255.
 | 
				
			||||||
| 
						 | 
					@ -426,7 +426,7 @@ typedef CLAY_PACKED_ENUM {
 | 
				
			||||||
} Clay_FloatingAttachPointType;
 | 
					} Clay_FloatingAttachPointType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls where a floating element is offset relative to its parent element.
 | 
					// Controls where a floating element is offset relative to its parent element.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_FloatingAttachPoints {
 | 
				
			||||||
    Clay_FloatingAttachPointType element; // Controls the origin point on a floating element that attaches to its parent.
 | 
					    Clay_FloatingAttachPointType element; // Controls the origin point on a floating element that attaches to its parent.
 | 
				
			||||||
    Clay_FloatingAttachPointType parent; // Controls the origin point on the parent element that the floating element attaches to.
 | 
					    Clay_FloatingAttachPointType parent; // Controls the origin point on the parent element that the floating element attaches to.
 | 
				
			||||||
} Clay_FloatingAttachPoints;
 | 
					} Clay_FloatingAttachPoints;
 | 
				
			||||||
| 
						 | 
					@ -463,7 +463,7 @@ typedef CLAY_PACKED_ENUM {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls various settings related to "floating" elements, which are elements that "float" above other elements, potentially overlapping their boundaries,
 | 
					// Controls various settings related to "floating" elements, which are elements that "float" above other elements, potentially overlapping their boundaries,
 | 
				
			||||||
// and not affecting the layout of sibling or parent elements.
 | 
					// and not affecting the layout of sibling or parent elements.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_FloatingElementConfig {
 | 
				
			||||||
    // Offsets this floating element by the provided x,y coordinates from its attachPoints.
 | 
					    // Offsets this floating element by the provided x,y coordinates from its attachPoints.
 | 
				
			||||||
    Clay_Vector2 offset;
 | 
					    Clay_Vector2 offset;
 | 
				
			||||||
    // Expands the boundaries of the outer floating element without affecting its children.
 | 
					    // Expands the boundaries of the outer floating element without affecting its children.
 | 
				
			||||||
| 
						 | 
					@ -500,7 +500,7 @@ CLAY__WRAPPER_STRUCT(Clay_FloatingElementConfig);
 | 
				
			||||||
// Custom -----------------------------
 | 
					// Custom -----------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls various settings related to custom elements.
 | 
					// Controls various settings related to custom elements.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_CustomElementConfig {
 | 
				
			||||||
    // A transparent pointer through which you can pass custom data to the renderer.
 | 
					    // A transparent pointer through which you can pass custom data to the renderer.
 | 
				
			||||||
    // Generates CUSTOM render commands.
 | 
					    // Generates CUSTOM render commands.
 | 
				
			||||||
    void* customData;
 | 
					    void* customData;
 | 
				
			||||||
| 
						 | 
					@ -511,7 +511,7 @@ CLAY__WRAPPER_STRUCT(Clay_CustomElementConfig);
 | 
				
			||||||
// Scroll -----------------------------
 | 
					// Scroll -----------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls the axis on which an element switches to "scrolling", which clips the contents and allows scrolling in that direction.
 | 
					// Controls the axis on which an element switches to "scrolling", which clips the contents and allows scrolling in that direction.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_ClipElementConfig {
 | 
				
			||||||
    bool horizontal; // Clip overflowing elements on the X axis.
 | 
					    bool horizontal; // Clip overflowing elements on the X axis.
 | 
				
			||||||
    bool vertical; // Clip overflowing elements on the Y axis.
 | 
					    bool vertical; // Clip overflowing elements on the Y axis.
 | 
				
			||||||
    Clay_Vector2 childOffset; // Offsets the x,y positions of all child elements. Used primarily for scrolling containers.
 | 
					    Clay_Vector2 childOffset; // Offsets the x,y positions of all child elements. Used primarily for scrolling containers.
 | 
				
			||||||
| 
						 | 
					@ -522,7 +522,7 @@ CLAY__WRAPPER_STRUCT(Clay_ClipElementConfig);
 | 
				
			||||||
// Border -----------------------------
 | 
					// Border -----------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls the widths of individual element borders.
 | 
					// Controls the widths of individual element borders.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_BorderWidth {
 | 
				
			||||||
    uint16_t left;
 | 
					    uint16_t left;
 | 
				
			||||||
    uint16_t right;
 | 
					    uint16_t right;
 | 
				
			||||||
    uint16_t top;
 | 
					    uint16_t top;
 | 
				
			||||||
| 
						 | 
					@ -534,7 +534,7 @@ typedef struct {
 | 
				
			||||||
} Clay_BorderWidth;
 | 
					} Clay_BorderWidth;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Controls settings related to element borders.
 | 
					// Controls settings related to element borders.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_BorderElementConfig {
 | 
				
			||||||
    Clay_Color color; // Controls the color of all borders with width > 0. Conventionally represented as 0-255, but interpretation is up to the renderer.
 | 
					    Clay_Color color; // Controls the color of all borders with width > 0. Conventionally represented as 0-255, but interpretation is up to the renderer.
 | 
				
			||||||
    Clay_BorderWidth width; // Controls the widths of individual borders. At least one of these should be > 0 for a BORDER render command to be generated.
 | 
					    Clay_BorderWidth width; // Controls the widths of individual borders. At least one of these should be > 0 for a BORDER render command to be generated.
 | 
				
			||||||
} Clay_BorderElementConfig;
 | 
					} Clay_BorderElementConfig;
 | 
				
			||||||
| 
						 | 
					@ -544,7 +544,7 @@ CLAY__WRAPPER_STRUCT(Clay_BorderElementConfig);
 | 
				
			||||||
// Render Command Data -----------------------------
 | 
					// Render Command Data -----------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_TEXT
 | 
					// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_TEXT
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_TextRenderData {
 | 
				
			||||||
    // A string slice containing the text to be rendered.
 | 
					    // A string slice containing the text to be rendered.
 | 
				
			||||||
    // Note: this is not guaranteed to be null terminated.
 | 
					    // Note: this is not guaranteed to be null terminated.
 | 
				
			||||||
    Clay_StringSlice stringContents;
 | 
					    Clay_StringSlice stringContents;
 | 
				
			||||||
| 
						 | 
					@ -560,7 +560,7 @@ typedef struct {
 | 
				
			||||||
} Clay_TextRenderData;
 | 
					} Clay_TextRenderData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_RECTANGLE
 | 
					// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_RECTANGLE
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_RectangleRenderData {
 | 
				
			||||||
    // The solid background color to fill this rectangle with. Conventionally represented as 0-255 for each channel, but interpretation is up to the renderer.
 | 
					    // The solid background color to fill this rectangle with. Conventionally represented as 0-255 for each channel, but interpretation is up to the renderer.
 | 
				
			||||||
    Clay_Color backgroundColor;
 | 
					    Clay_Color backgroundColor;
 | 
				
			||||||
    // Controls the "radius", or corner rounding of elements, including rectangles, borders and images.
 | 
					    // Controls the "radius", or corner rounding of elements, including rectangles, borders and images.
 | 
				
			||||||
| 
						 | 
					@ -569,7 +569,7 @@ typedef struct {
 | 
				
			||||||
} Clay_RectangleRenderData;
 | 
					} Clay_RectangleRenderData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_IMAGE
 | 
					// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_IMAGE
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_ImageRenderData {
 | 
				
			||||||
    // The tint color for this image. Note that the default value is 0,0,0,0 and should likely be interpreted
 | 
					    // The tint color for this image. Note that the default value is 0,0,0,0 and should likely be interpreted
 | 
				
			||||||
    // as "untinted".
 | 
					    // as "untinted".
 | 
				
			||||||
    // Conventionally represented as 0-255 for each channel, but interpretation is up to the renderer.
 | 
					    // Conventionally represented as 0-255 for each channel, but interpretation is up to the renderer.
 | 
				
			||||||
| 
						 | 
					@ -584,7 +584,7 @@ typedef struct {
 | 
				
			||||||
} Clay_ImageRenderData;
 | 
					} Clay_ImageRenderData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_CUSTOM
 | 
					// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_CUSTOM
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_CustomRenderData {
 | 
				
			||||||
    // Passed through from .backgroundColor in the original element declaration.
 | 
					    // Passed through from .backgroundColor in the original element declaration.
 | 
				
			||||||
    // Conventionally represented as 0-255 for each channel, but interpretation is up to the renderer.
 | 
					    // Conventionally represented as 0-255 for each channel, but interpretation is up to the renderer.
 | 
				
			||||||
    Clay_Color backgroundColor;
 | 
					    Clay_Color backgroundColor;
 | 
				
			||||||
| 
						 | 
					@ -596,13 +596,13 @@ typedef struct {
 | 
				
			||||||
} Clay_CustomRenderData;
 | 
					} Clay_CustomRenderData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_SCISSOR_START || commandType == CLAY_RENDER_COMMAND_TYPE_SCISSOR_END
 | 
					// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_SCISSOR_START || commandType == CLAY_RENDER_COMMAND_TYPE_SCISSOR_END
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_ScrollRenderData {
 | 
				
			||||||
    bool horizontal;
 | 
					    bool horizontal;
 | 
				
			||||||
    bool vertical;
 | 
					    bool vertical;
 | 
				
			||||||
} Clay_ClipRenderData;
 | 
					} Clay_ClipRenderData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_BORDER
 | 
					// Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_BORDER
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_BorderRenderData {
 | 
				
			||||||
    // Controls a shared color for all this element's borders.
 | 
					    // Controls a shared color for all this element's borders.
 | 
				
			||||||
    // Conventionally represented as 0-255 for each channel, but interpretation is up to the renderer.
 | 
					    // Conventionally represented as 0-255 for each channel, but interpretation is up to the renderer.
 | 
				
			||||||
    Clay_Color color;
 | 
					    Clay_Color color;
 | 
				
			||||||
| 
						 | 
					@ -614,7 +614,7 @@ typedef struct {
 | 
				
			||||||
} Clay_BorderRenderData;
 | 
					} Clay_BorderRenderData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// A struct union containing data specific to this command's .commandType
 | 
					// A struct union containing data specific to this command's .commandType
 | 
				
			||||||
typedef union {
 | 
					typedef union Clay_RenderData {
 | 
				
			||||||
    // Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_RECTANGLE
 | 
					    // Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_RECTANGLE
 | 
				
			||||||
    Clay_RectangleRenderData rectangle;
 | 
					    Clay_RectangleRenderData rectangle;
 | 
				
			||||||
    // Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_TEXT
 | 
					    // Render command data when commandType == CLAY_RENDER_COMMAND_TYPE_TEXT
 | 
				
			||||||
| 
						 | 
					@ -632,7 +632,7 @@ typedef union {
 | 
				
			||||||
// Miscellaneous Structs & Enums ---------------------------------
 | 
					// Miscellaneous Structs & Enums ---------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Data representing the current internal state of a scrolling element.
 | 
					// Data representing the current internal state of a scrolling element.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_ScrollContainerData {
 | 
				
			||||||
    // Note: This is a pointer to the real internal scroll position, mutating it may cause a change in final layout.
 | 
					    // 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.
 | 
					    // Intended for use with external functionality that modifies scroll position, such as scroll bars or auto scrolling.
 | 
				
			||||||
    Clay_Vector2 *scrollPosition;
 | 
					    Clay_Vector2 *scrollPosition;
 | 
				
			||||||
| 
						 | 
					@ -647,7 +647,7 @@ typedef struct {
 | 
				
			||||||
} Clay_ScrollContainerData;
 | 
					} Clay_ScrollContainerData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Bounding box and other data for a specific UI element.
 | 
					// Bounding box and other data for a specific UI element.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_ElementData {
 | 
				
			||||||
    // The rectangle that encloses this UI element, with the position relative to the root of the layout.
 | 
					    // The rectangle that encloses this UI element, with the position relative to the root of the layout.
 | 
				
			||||||
    Clay_BoundingBox boundingBox;
 | 
					    Clay_BoundingBox boundingBox;
 | 
				
			||||||
    // Indicates whether an actual Element matched the provided ID or if the default struct was returned.
 | 
					    // Indicates whether an actual Element matched the provided ID or if the default struct was returned.
 | 
				
			||||||
| 
						 | 
					@ -674,7 +674,7 @@ typedef CLAY_PACKED_ENUM {
 | 
				
			||||||
    CLAY_RENDER_COMMAND_TYPE_CUSTOM,
 | 
					    CLAY_RENDER_COMMAND_TYPE_CUSTOM,
 | 
				
			||||||
} Clay_RenderCommandType;
 | 
					} Clay_RenderCommandType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_RenderCommand {
 | 
				
			||||||
    // A rectangular box that fully encloses this UI element, with the position relative to the root of the layout.
 | 
					    // A rectangular box that fully encloses this UI element, with the position relative to the root of the layout.
 | 
				
			||||||
    Clay_BoundingBox boundingBox;
 | 
					    Clay_BoundingBox boundingBox;
 | 
				
			||||||
    // A struct union containing data specific to this command's commandType.
 | 
					    // A struct union containing data specific to this command's commandType.
 | 
				
			||||||
| 
						 | 
					@ -699,7 +699,7 @@ typedef struct {
 | 
				
			||||||
} Clay_RenderCommand;
 | 
					} Clay_RenderCommand;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// A sized array of render commands.
 | 
					// A sized array of render commands.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_RenderCommandArray {
 | 
				
			||||||
    // The underlying max capacity of the array, not necessarily all initialized.
 | 
					    // The underlying max capacity of the array, not necessarily all initialized.
 | 
				
			||||||
    int32_t capacity;
 | 
					    int32_t capacity;
 | 
				
			||||||
    // The number of initialized elements in this array. Used for loops and iteration.
 | 
					    // The number of initialized elements in this array. Used for loops and iteration.
 | 
				
			||||||
| 
						 | 
					@ -721,7 +721,7 @@ typedef CLAY_PACKED_ENUM {
 | 
				
			||||||
} Clay_PointerDataInteractionState;
 | 
					} Clay_PointerDataInteractionState;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Information on the current state of pointer interactions this frame.
 | 
					// Information on the current state of pointer interactions this frame.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_PointerData {
 | 
				
			||||||
    // The position of the mouse / touch / pointer relative to the root of the layout.
 | 
					    // The position of the mouse / touch / pointer relative to the root of the layout.
 | 
				
			||||||
    Clay_Vector2 position;
 | 
					    Clay_Vector2 position;
 | 
				
			||||||
    // Represents the current state of interaction with clay this frame.
 | 
					    // Represents the current state of interaction with clay this frame.
 | 
				
			||||||
| 
						 | 
					@ -732,7 +732,7 @@ typedef struct {
 | 
				
			||||||
    Clay_PointerDataInteractionState state;
 | 
					    Clay_PointerDataInteractionState state;
 | 
				
			||||||
} Clay_PointerData;
 | 
					} Clay_PointerData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_ElementDeclaration {
 | 
				
			||||||
    // Primarily created via the CLAY_ID(), CLAY_IDI(), CLAY_ID_LOCAL() and CLAY_IDI_LOCAL() macros.
 | 
					    // Primarily created via the CLAY_ID(), CLAY_IDI(), CLAY_ID_LOCAL() and CLAY_IDI_LOCAL() macros.
 | 
				
			||||||
    // Represents a hashed string ID used for identifying and finding specific clay UI elements, required by functions such as Clay_PointerOver() and Clay_GetElementData().
 | 
					    // Represents a hashed string ID used for identifying and finding specific clay UI elements, required by functions such as Clay_PointerOver() and Clay_GetElementData().
 | 
				
			||||||
    Clay_ElementId id;
 | 
					    Clay_ElementId id;
 | 
				
			||||||
| 
						 | 
					@ -783,7 +783,7 @@ typedef CLAY_PACKED_ENUM {
 | 
				
			||||||
} Clay_ErrorType;
 | 
					} Clay_ErrorType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Data to identify the error that clay has encountered.
 | 
					// Data to identify the error that clay has encountered.
 | 
				
			||||||
typedef struct {
 | 
					typedef struct Clay_ErrorData {
 | 
				
			||||||
    // Represents the type of error clay encountered while computing layout.
 | 
					    // Represents the type of error clay encountered while computing layout.
 | 
				
			||||||
    // CLAY_ERROR_TYPE_TEXT_MEASUREMENT_FUNCTION_NOT_PROVIDED - A text measurement function wasn't provided using Clay_SetMeasureTextFunction(), or the provided function was null.
 | 
					    // CLAY_ERROR_TYPE_TEXT_MEASUREMENT_FUNCTION_NOT_PROVIDED - A text measurement function wasn't provided using Clay_SetMeasureTextFunction(), or the provided function was null.
 | 
				
			||||||
    // CLAY_ERROR_TYPE_ARENA_CAPACITY_EXCEEDED - Clay attempted to allocate its internal data structures but ran out of space. The arena passed to Clay_Initialize was created with a capacity smaller than that required by Clay_MinMemorySize().
 | 
					    // CLAY_ERROR_TYPE_ARENA_CAPACITY_EXCEEDED - Clay attempted to allocate its internal data structures but ran out of space. The arena passed to Clay_Initialize was created with a capacity smaller than that required by Clay_MinMemorySize().
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue