sample_2.odin (1136B)
1 package main 2 3 import blend2d "../binding" 4 5 main :: proc() { 6 img: blend2d.ImageCore 7 8 blend2d.image_init(&img) 9 blend2d.image_create(&img, 480, 480, .PRGB32) 10 11 ctx: blend2d.ContextCore 12 ctx_cfg: blend2d.ContextCreateInfo 13 14 blend2d.context_init(&ctx) 15 blend2d.context_begin(&ctx, &img, &ctx_cfg) 16 blend2d.context_clear_all(&ctx) 17 18 grad: blend2d.GradientCore 19 grad_values := [4]f64{0, 0, 0, 480} 20 21 blend2d.gradient_init(&grad) 22 blend2d.gradient_set_values(&grad, 0, &grad_values[0], 4) 23 blend2d.gradient_add_stop_rgba32(&grad, 0.0, 0xFFFFFFFF) 24 blend2d.gradient_add_stop_rgba32(&grad, 0.5, 0xFF5FAFDF) 25 blend2d.gradient_add_stop_rgba32(&grad, 1.0, 0xFF2F5FDF) 26 27 blend2d.context_set_fill_style(&ctx, cast(^blend2d.Unknown)(&grad)) 28 29 rect := blend2d.RoundRect { 30 x = 40, 31 y = 40, 32 w = 400, 33 h = 400, 34 rx = 45.5, 35 ry = 45.5, 36 } 37 38 blend2d.context_fill_geometry(&ctx, .ROUND_RECT, &rect) 39 40 codec: blend2d.ImageCodecCore 41 codecs: blend2d.ArrayCore 42 43 blend2d.image_codec_array_init_built_in_codecs(&codecs) 44 blend2d.image_codec_init_by_name(&codec, "PNG", len("PNG"), nil) 45 blend2d.image_write_to_file(&img, "sample_2.png", &codec) 46 } 47