message: [text_shaper] Another minor refactor and cleanup to work towards getting rid of shaper::has_color().
diff: @@ -392,9 +392,11 @@ void TextRenderer::renderTexture(crispy::Point const& _pos,
  + _glyphPos.offset.x
  ;
  - auto const y = textShaper_.has_color(_glyphPos.glyph.font)
  - ? _pos.y
  - : _pos.y // bottom left
  + auto const y =
  +#if 1 // TODO: get rid of the has_color dependency
  + textShaper_.has_color(_glyphPos.glyph.font) ? _pos.y :
  +#endif
  + _pos.y // bottom left
  + _glyphPos.offset.y // -> harfbuzz adjustment
  + gridMetrics_.baseline // -> baseline
  + _glyphMetrics.bearing.y // -> bitmap top
  @@ -405,13 +407,13 @@ void TextRenderer::renderTexture(crispy::Point const& _pos,
  #if 0
  if (crispy::debugtag::enabled(TextRendererTag))
  - debuglog(TextRendererTag).write("xy={}:{} pos=({}:{}) tex={}x{}, gpos=({}:{}), baseline={}, descender={}",
  + debuglog(TextRendererTag).write(
  + "xy={}:{} pos=({}:{}) tex={}, gpos=({}:{}), baseline={}",
  x, y,
  - _pos.x(), _pos.y(),
  - _textureInfo.width, _textureInfo.height,
  + _pos,
  + _textureInfo.bitmapSize,
  _glyphPos.offset.x, _glyphPos.offset.y,
  - textShaper_.metrics(_glyphPos.glyph.font).baseline(),
  - _glyph.descender);
  + gridMetrics_.baseline);
  #endif
  }
  @@ -568,6 +570,13 @@ text::shape_result ComplexTextShaper::shapeRun(unicode::run_segmenter::range con
  gpos
  );
  + // TODO: See if we can tweak here something in order to not depend
  + // on shaper::has_color() later on.
  + //
  + // if (isEmojiPresentation)
  + // for (text::glyph_position& gp: gpos)
  + // gp.offset.y = 0;
  +
  if (crispy::debugtag::enabled(TextRendererTag) && !gpos.empty())
  {
  auto msg = debuglog(TextRendererTag);
  