odin-blend2d

Odin bindings to Blend2D
Log | Files | Refs | README | LICENSE

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