   vec4 target_colored_rect = drawRect(position, target_rect, black);
 
   return mix(white, target_colored_rect, target_colored_rect.a);
-
-  //vec4 white = vec4(1.0, 1.0, 1.0, 1.0);
-  //return white;
 }
 
 void draw_dotted_border(void) {

    case PST_TOP_RIGHT:
    case PST_BOTTOM_LEFT:
    case PST_BOTTOM_RIGHT:
      // TODO: Fix for corners with a border-radius
      oFragColor = draw_dotted_edge();
      break;
    case PST_BOTTOM:
    case PST_TOP:
    case PST_LEFT:
    case PST_RIGHT:
      oFragColor = draw_dotted_edge();
      break;
  }
}


  return mix(white, circleColor, circleColor.a);
}

// Our current edge calculation is based only on
// the size of the border-size, but we need to draw
// the dashes in the center of the segment we're drawing.
// This calculates how much to nudge and which axis to nudge on.
vec2 get_dashed_nudge_factor(vec2 dash_size, bool is_corner) {
  if (is_corner) {
    return vec2(0.0, 0.0);
  }

  bool xAxisFudge = vBorders.z > vBorders.w;
  if (xAxisFudge) {
    return vec2(dash_size.x / 2.0, 0);
  } else {
    return vec2(0.0, dash_size.y / 2.0);
  }
}

vec4 draw_dashed_edge(bool is_corner) {
  // Everything here should be in device pixels.
  // We want the dot to be roughly the size of the whole border spacing
  // 5.5 here isn't a magic number, it's just what mostly looks like FF/Chrome
  float dash_interval = min(vBorders.w, vBorders.z) * 5.5;
  vec2 edge_size = vec2(vBorders.z, vBorders.w);
  vec2 dash_size = vec2(dash_interval / 2.0, dash_interval / 2.0);
  vec2 position = vDevicePos - vBorders.xy;
