mirror of
https://github.com/nicbarker/clay.git
synced 2025-04-19 20:58:03 +00:00
55 lines
2.1 KiB
Odin
55 lines
2.1 KiB
Odin
package main
|
|
|
|
import clay "clay-odin"
|
|
import "core:c"
|
|
import "core:fmt"
|
|
import "vendor:raylib"
|
|
|
|
createLayout :: proc() -> clay.ClayArray(clay.RenderCommand) {
|
|
clay.BeginLayout(1024, 768)
|
|
layoutConfig: clay.LayoutConfig = clay.LayoutConfig {
|
|
sizing = {width = {type = clay.SizingType.GROW}, height = {type = clay.SizingType.GROW}},
|
|
padding = {16, 16},
|
|
}
|
|
rectangleConfig: clay.RectangleElementConfig = clay.RectangleElementConfig {
|
|
cornerRadius = {topLeft = 5},
|
|
}
|
|
|
|
if clay.Rectangle(
|
|
clay.ID("Outer Container"),
|
|
clay.Layout({sizing = {width = {type = clay.SizingType.GROW}, height = {type = clay.SizingType.GROW}}, padding = {16, 16}}),
|
|
clay.RectangleConfig({cornerRadius = {topLeft = 5}}),
|
|
) {
|
|
if clay.Rectangle(clay.ID("Inner Container"), &layoutConfig, &rectangleConfig) {
|
|
if clay.Rectangle(clay.ID("percentContainer"), clay.Layout({sizing = {width = clay.SizingPercent(0.5)}}), clay.RectangleConfig({})) {}
|
|
if clay.Rectangle(clay.ID("growContainer"), clay.Layout({sizing = {width = clay.SizingGrow({max = 200})}}), clay.RectangleConfig({})) {}
|
|
clay.Text(clay.ID("textfield"), clay.MakeString("Texti"), clay.TextConfig({fontId = 0, fontSize = 24, textColor = {255, 255, 255, 255}}))
|
|
}
|
|
}
|
|
|
|
return clay.EndLayout(1024, 768)
|
|
}
|
|
|
|
main :: proc() {
|
|
minMemorySize: c.uint32_t = clay.MinMemorySize()
|
|
memory := make([^]u8, minMemorySize)
|
|
arena: clay.Arena = clay.CreateArenaWithCapacityAndMemory(minMemorySize, memory)
|
|
clay.SetMeasureTextFunction(measureText)
|
|
clay.Initialize(arena)
|
|
|
|
raylib.InitWindow(1024, 768, "Raylib Odin Example")
|
|
|
|
raylibFonts[0] = RaylibFont {
|
|
font = raylib.LoadFontEx("resources/Roboto-Regular.ttf", 32, nil, 0),
|
|
fontId = 0,
|
|
}
|
|
raylib.SetTextureFilter(raylibFonts[0].font.texture, raylib.TextureFilter.TRILINEAR)
|
|
|
|
for !raylib.WindowShouldClose() {
|
|
renderCommands: clay.ClayArray(clay.RenderCommand) = createLayout()
|
|
raylib.BeginDrawing()
|
|
clayRaylibRender(&renderCommands)
|
|
raylib.EndDrawing()
|
|
}
|
|
}
|