Report the glyph space transform of COLR sweep gradient layers

Abierto Apto para principiantes
#134 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
cpp

Línea de trabajo

Lee source/text/font_hb.cpp, especialmente paint_sweep_gradient en torno a los campos de capa que aparecen en el issue, y sigue cómo se usan glyphTransform() y radialTransform para otras capas de degradado. Revisa las pruebas pertinentes del renderizador o de degradados si el repositorio las identifica. El trabajo estará terminado cuando las capas de degradado sweep indiquen la transformación del espacio del glifo en el centro del sweep, para que los renderizadores puedan aplicar las transformaciones de fuentes envolventes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Report the glyph space transform of COLR sweep gradient layers.

- source/text/font_hb.cpp: COLR sweep gradient layers also report their glyph space transform in radialTransform, placed at the sweep center, so renderers can draw them as angular gradients under the font transforms enclosing them

diff --git a/source/text/font_hb.cpp b/source/text/font_hb.cpp
index bf18635190af367d266106d41d4327f259b7816d..8b8f74c922fb5445f37ff09afbc8fe189daf8ebe 100644
--- a/source/text/font_hb.cpp
+++ b/source/text/font_hb.cpp
@@ -647,6 +647,7 @@ static void paint_sweep_gradient(
   layer.y0 = sc.y;
   layer.startAngle = startAngle;
   layer.endAngle = endAngle;
+  layer.radialTransform = state->glyphTransform() * rive::Mat2D::fromTranslate(cx, cy);
 
   state->layers->push_back(std::move(layer));
 }
Lenguaje dominante
C++
Estrellas
1.2k
Forks
133
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de rive-app/rive-runtime

Todos los issues de rive-app/rive-runtime

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.