mirror of
				https://github.com/nicbarker/clay.git
				synced 2025-11-04 00:26:17 +00:00 
			
		
		
		
	Update odin bindings for new text measurement API
This commit is contained in:
		
							parent
							
								
									326325ffaf
								
							
						
					
					
						commit
						01d3ab127f
					
				| 
						 | 
					@ -2,7 +2,7 @@ cp ../../clay.h clay.c;
 | 
				
			||||||
# Intel Mac
 | 
					# Intel Mac
 | 
				
			||||||
clang -c -DCLAY_IMPLEMENTATION -o clay.o -static -target x86_64-apple-darwin clay.c -fPIC && ar r clay-odin/macos/clay.a clay.o;
 | 
					clang -c -DCLAY_IMPLEMENTATION -o clay.o -static -target x86_64-apple-darwin clay.c -fPIC && ar r clay-odin/macos/clay.a clay.o;
 | 
				
			||||||
# ARM Mac
 | 
					# ARM Mac
 | 
				
			||||||
clang -c -DCLAY_IMPLEMENTATION -o clay.o -static clay.c -fPIC && ar r clay-odin/macos-arm64/clay.a clay.o;
 | 
					clang -c -DCLAY_IMPLEMENTATION -g -o clay.o -static clay.c -fPIC && ar r clay-odin/macos-arm64/clay.a clay.o;
 | 
				
			||||||
# x64 Windows
 | 
					# x64 Windows
 | 
				
			||||||
clang -c -DCLAY_IMPLEMENTATION -o clay-odin/windows/clay.lib -target x86_64-pc-windows-msvc -fuse-ld=llvm-lib -static clay.c;
 | 
					clang -c -DCLAY_IMPLEMENTATION -o clay-odin/windows/clay.lib -target x86_64-pc-windows-msvc -fuse-ld=llvm-lib -static clay.c;
 | 
				
			||||||
# Linux
 | 
					# Linux
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,6 +22,12 @@ String :: struct {
 | 
				
			||||||
    chars:  [^]c.char,
 | 
					    chars:  [^]c.char,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					StringSlice :: struct {
 | 
				
			||||||
 | 
					    length: c.int32_t,
 | 
				
			||||||
 | 
					    chars:  [^]c.char,
 | 
				
			||||||
 | 
					    baseChars:  [^]c.char,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Vector2 :: [2]c.float
 | 
					Vector2 :: [2]c.float
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Dimensions :: struct {
 | 
					Dimensions :: struct {
 | 
				
			||||||
| 
						 | 
					@ -305,7 +311,7 @@ foreign Clay {
 | 
				
			||||||
    PointerOver :: proc(id: ElementId) -> bool ---
 | 
					    PointerOver :: proc(id: ElementId) -> bool ---
 | 
				
			||||||
    GetElementId :: proc(id: String) -> ElementId ---
 | 
					    GetElementId :: proc(id: String) -> ElementId ---
 | 
				
			||||||
    GetScrollContainerData :: proc(id: ElementId) -> ScrollContainerData ---
 | 
					    GetScrollContainerData :: proc(id: ElementId) -> ScrollContainerData ---
 | 
				
			||||||
    SetMeasureTextFunction :: proc(measureTextFunction: proc "c" (text: ^String, config: ^TextElementConfig) -> Dimensions) ---
 | 
					    SetMeasureTextFunction :: proc(measureTextFunction: proc "c" (text: StringSlice, config: ^TextElementConfig, userData: uintptr) -> Dimensions, userData: uintptr) ---
 | 
				
			||||||
    RenderCommandArray_Get :: proc(array: ^ClayArray(RenderCommand), index: i32) -> ^RenderCommand ---
 | 
					    RenderCommandArray_Get :: proc(array: ^ClayArray(RenderCommand), index: i32) -> ^RenderCommand ---
 | 
				
			||||||
    SetDebugModeEnabled :: proc(enabled: bool) ---
 | 
					    SetDebugModeEnabled :: proc(enabled: bool) ---
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -493,8 +493,8 @@ main :: proc() {
 | 
				
			||||||
    minMemorySize: u32 = clay.MinMemorySize()
 | 
					    minMemorySize: u32 = clay.MinMemorySize()
 | 
				
			||||||
    memory := make([^]u8, minMemorySize)
 | 
					    memory := make([^]u8, minMemorySize)
 | 
				
			||||||
    arena: clay.Arena = clay.CreateArenaWithCapacityAndMemory(minMemorySize, memory)
 | 
					    arena: clay.Arena = clay.CreateArenaWithCapacityAndMemory(minMemorySize, memory)
 | 
				
			||||||
    clay.SetMeasureTextFunction(measureText)
 | 
					 | 
				
			||||||
    clay.Initialize(arena, {cast(f32)raylib.GetScreenWidth(), cast(f32)raylib.GetScreenHeight()}, { handler = errorHandler })
 | 
					    clay.Initialize(arena, {cast(f32)raylib.GetScreenWidth(), cast(f32)raylib.GetScreenHeight()}, { handler = errorHandler })
 | 
				
			||||||
 | 
					    clay.SetMeasureTextFunction(measureText, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    raylib.SetConfigFlags({.VSYNC_HINT, .WINDOW_RESIZABLE, .WINDOW_HIGHDPI, .MSAA_4X_HINT})
 | 
					    raylib.SetConfigFlags({.VSYNC_HINT, .WINDOW_RESIZABLE, .WINDOW_HIGHDPI, .MSAA_4X_HINT})
 | 
				
			||||||
    raylib.InitWindow(windowWidth, windowHeight, "Raylib Odin Example")
 | 
					    raylib.InitWindow(windowWidth, windowHeight, "Raylib Odin Example")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@ clayColorToRaylibColor :: proc(color: clay.Color) -> raylib.Color {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
raylibFonts := [10]RaylibFont{}
 | 
					raylibFonts := [10]RaylibFont{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
measureText :: proc "c" (text: ^clay.String, config: ^clay.TextElementConfig) -> clay.Dimensions {
 | 
					measureText :: proc "c" (text: clay.StringSlice, config: ^clay.TextElementConfig, userData: uintptr) -> clay.Dimensions {
 | 
				
			||||||
    // Measure string size for Font
 | 
					    // Measure string size for Font
 | 
				
			||||||
    textSize: clay.Dimensions = {0, 0}
 | 
					    textSize: clay.Dimensions = {0, 0}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue