message: [terminal_renderer] Fixes underscore cursor style wrt inverted Y-axis.
diff: @@ -130,15 +130,16 @@ auto CursorRenderer::createTileData(CursorShape cursorShape,
  return atlas::Buffer(unbox<size_t>(width) * unbox<size_t>(height), 0xFFu);
  });
  case CursorShape::Underscore:
  - return create(ImageSize { width, Height::cast_from(baseline) }, [&]() {
  + return create(defaultBitmapSize, [&]() {
  auto const height = Height::cast_from(baseline);
  auto const thickness = (unsigned) max(LineThickness * baseline / 3, 1);
  auto const base_y = max((*height - thickness) / 2, 0u);
  - auto image = atlas::Buffer(unbox<size_t>(width) * unbox<size_t>(height), 0);
  + auto image = atlas::Buffer(defaultBitmapSize.area(), 0);
  - for (size_t y = 1; y <= thickness; ++y)
  + assert(thickness <= static_cast<size_t>(baseline));
  + for (auto y = size_t(0); y <= static_cast<size_t>(thickness); ++y)
  for (size_t x = 0; x < *width; ++x)
  - image[(base_y + unsigned(y)) * *width + x] = 0xFF;
  + image[(defaultBitmapSize.height.as<size_t>() - 1 - base_y + unsigned(y)) * unbox<size_t>(width) + x] = 0xFF;
  return image;
  });
  case CursorShape::Bar:
  