src/2d.c

changeset 256
60014484121c
parent 251
2e2d4c3bf1cd
--- a/src/2d.c	Tue Aug 05 20:38:11 2025 +0200
+++ b/src/2d.c	Wed Aug 06 00:37:01 2025 +0200
@@ -109,13 +109,13 @@
     asc_shader_upload_model_matrix(shader, node);
 
     if (filled) {
-        asc_shader_upload_col4f(rect_shader->color, rectangle->color);
+        asc_shader_upload_color(rect_shader->color, rectangle->color);
     }
     asc_shader_upload_vec2f(rect_shader->size, rectangle->size);
 
     if (border) {
         asc_shader_upload_float(rect_shader->thickness, rectangle->thickness);
-        asc_shader_upload_col4f(rect_shader->border_color, rectangle->border_color);
+        asc_shader_upload_color(rect_shader->border_color, rectangle->border_color);
     }
     if (round) {
         asc_shader_upload_float(rect_shader->radius, rectangle->radius);
@@ -148,15 +148,15 @@
         // use the main color
         args.border_color = args.color;
     }
-    rectangle->color = asc_col_itof(args.color);
-    rectangle->border_color = asc_col_itof(args.border_color);
+    rectangle->color = args.color;
+    rectangle->border_color = args.border_color;
 
     asc_ptr_cast(AscSceneNode, node, rectangle);
     asc_scene_node_init(node,
         ASC_SCENE_NODE_FUNCS(asc_rectangle),
         .pos2d = ASC_VEC2I(pos_x, pos_y),
         .origin2d = ASC_VEC2I(args.origin_x, args.origin_y),
-        .render_group = (args.filled && args.color.alpha < 255) || args.border_color.alpha < 255
+        .render_group = (args.filled && args.color.alpha < 1) || args.border_color.alpha < 1
                              ? ASC_RENDER_GROUP_2D_BLEND
                              : ASC_RENDER_GROUP_2D_OPAQUE
     );
@@ -254,13 +254,13 @@
     asc_shader_upload_model_matrix(shader, node);
 
     if (filled) {
-        asc_shader_upload_col4f(ellipsis_shader->color, ellipsis->color);
+        asc_shader_upload_color(ellipsis_shader->color, ellipsis->color);
     }
     asc_shader_upload_vec2f(ellipsis_shader->radii, ellipsis->radii);
 
     if (border) {
         asc_shader_upload_float(ellipsis_shader->thickness, ellipsis->thickness);
-        asc_shader_upload_col4f(ellipsis_shader->border_color, ellipsis->border_color);
+        asc_shader_upload_color(ellipsis_shader->border_color, ellipsis->border_color);
     }
 
     // Draw mesh
@@ -295,21 +295,21 @@
         ellipsis->thickness = args.thickness;
     }
 
-    if (!args.filled && asc_memcmpz(&args.border_color, sizeof(args.border_color))) {
+    if (!args.filled && asc_memcmpz(&args.border_color, sizeof(asc_color))) {
         // convenience fallback:
         // when we are drawing an outline but have no explicit border color,
         // use the main color
         args.border_color = args.color;
     }
-    ellipsis->color = asc_col_itof(args.color);
-    ellipsis->border_color = asc_col_itof(args.border_color);
+    ellipsis->color = args.color;
+    ellipsis->border_color = args.border_color;
 
     asc_ptr_cast(AscSceneNode, node, ellipsis);
     asc_scene_node_init(node,
         ASC_SCENE_NODE_FUNCS(asc_ellipsis),
         .pos2d = ASC_VEC2I(pos_x, pos_y),
         .origin3d = ASC_VEC3F(ellipsis->radii.x, ellipsis->radii.y, 0), // use float to avoid cast
-        .render_group = (args.filled && args.color.alpha < 255) || args.border_color.alpha < 255
+        .render_group = (args.filled && args.color.alpha < 1) || args.border_color.alpha < 1
                              ? ASC_RENDER_GROUP_2D_BLEND
                              : ASC_RENDER_GROUP_2D_OPAQUE
     );

mercurial