mirror of
				https://github.com/nicbarker/clay.git
				synced 2025-11-04 00:26:17 +00:00 
			
		
		
		
	Compare commits
	
		
			4 commits
		
	
	
		
			eb9cf7f41a
			...
			757db690c0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							
							
								 | 
						757db690c0 | ||
| 
							
							
								 | 
						ea3e29be5c | ||
| 
							
							
								 | 
						134beca09c | ||
| 
							
							
								 | 
						b3cdf90d39 | 
							
								
								
									
										5
									
								
								bindings/D/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								bindings/D/README.md
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					### D Language Example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					dmd main.d clay.c
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										2
									
								
								bindings/D/clay.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								bindings/D/clay.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					#define CLAY_IMPLEMENTATION
 | 
				
			||||||
 | 
					#include "../../clay.h"
 | 
				
			||||||
							
								
								
									
										88
									
								
								bindings/D/main.d
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								bindings/D/main.d
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,88 @@
 | 
				
			||||||
 | 
					import clay;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import core.stdc.stdlib;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__gshared:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Clay_LayoutConfig layoutElement = { padding: {5} };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern(C) void main()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ulong totalMemorySize = Clay_MinMemorySize();
 | 
				
			||||||
 | 
					    Clay_Arena clayMemory = {
 | 
				
			||||||
 | 
					        label: str("Clay Memory Arena"),
 | 
				
			||||||
 | 
					        capacity: totalMemorySize,
 | 
				
			||||||
 | 
					        memory: cast(char*)malloc(totalMemorySize)
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Clay_Initialize(clayMemory, Clay_Dimensions(1024,768));
 | 
				
			||||||
 | 
					    Clay_BeginLayout();
 | 
				
			||||||
 | 
					    if (ClayBegin( Rectangle(color: Clay_Color(255,255,255,0)), Layout(layoutElement)))
 | 
				
			||||||
 | 
					    {   }
 | 
				
			||||||
 | 
					    ClayEnd();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// helper functions
 | 
				
			||||||
 | 
					Clay_String str(string it)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return Clay_String(cast(int)it.length, it.ptr);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool ClayBegin(A...)(A configs)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Clay__OpenElement();
 | 
				
			||||||
 | 
					    foreach(config; configs)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        alias T = typeof(config);
 | 
				
			||||||
 | 
					        static if (is(T == Clay_ElementId))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Clay__AttachId(config);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else static if(is(T == Clay_LayoutConfig*))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Clay__AttachLayoutConfig(config);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else static if(is(T == Clay_ElementConfig))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            Clay__AttachElementConfig(config.config, config.type);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else static assert(0, "unsupported " ~ typeof(config).stringof);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Clay__ElementPostConfiguration();
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ClayEnd()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Clay__CloseElement();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Clay_ElementId Id(string label)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					     return Clay__HashString(str(label), 0, 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Clay_LayoutConfig* Layout(lazy Clay_Sizing sizing = Clay_Sizing.init)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Clay_LayoutConfig config;
 | 
				
			||||||
 | 
					    config.sizing = sizing;
 | 
				
			||||||
 | 
					    return Clay__StoreLayoutConfig(config);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Clay_LayoutConfig* Layout(Clay_LayoutConfig config)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return Clay__StoreLayoutConfig(config);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Clay_ElementConfig Rectangle(lazy Clay_Color color = Clay_Color.init)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Clay_RectangleElementConfig config;
 | 
				
			||||||
 | 
					    config.color = color;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Clay_ElementConfig ret;
 | 
				
			||||||
 | 
					    ret.type = Clay__ElementConfigType.CLAY__ELEMENT_CONFIG_TYPE_RECTANGLE;
 | 
				
			||||||
 | 
					    ret.config.rectangleElementConfig = Clay__StoreRectangleElementConfig(config);
 | 
				
			||||||
 | 
					    return ret;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in a new issue