La extensión X Rendering ( Render o XRender ) es una extensión del protocolo central X11 para implementar la composición de imágenes en el servidor X , para permitir una visualización eficiente de imágenes transparentes.
Fue escrito por Keith Packard en 2000 y se lanzó por primera vez con la versión 4.0.1 de XFree86 . Su diseño estuvo influenciado por rio , el sistema de ventanas de Plan 9. [ 1]
El protocolo de dibujo básico del sistema X Window no tiene una forma de dibujar objetos transparentes de manera eficiente: una pantalla de computadora está compuesta de píxeles individuales , que solo pueden mostrar un solo color a la vez. Por lo tanto, la transparencia solo se puede lograr mezclando los colores del objeto transparente que se va a dibujar con el color de fondo ( composición alfa ). Sin embargo, el protocolo X estándar solo permite dibujar con colores sólidos, por lo que la única forma de lograr transparencia es obtener el color de fondo de la pantalla, mezclarlo con el color del objeto y luego volver a escribirlo, lo que es bastante ineficiente. [2]
Dado que muchas operaciones requieren transparencia (por ejemplo, anti-aliasing espacial , especialmente durante la rasterización de fuentes , y efectos de transparencia en administradores de ventanas , como ventanas o menús transparentes), esta limitación causó problemas y se implementó Xrender para solucionarlo.
Proporciona varias operaciones de renderizado y también realiza mezclas alfa . A partir de 2011, [actualizar]sirve principalmente para implementar fuentes suavizadas , pero por ejemplo KWin , el gestor de ventanas de KDE, lo utiliza para dibujar sombras paralelas y translucidez en caso de que OpenGL no esté disponible.
Las figuras geométricas se representan mediante teselación del lado del cliente en triángulos o trapecios . El texto se dibuja cargando los glifos en el servidor y representándolos como un grupo.
Está diseñado para aprovechar las capacidades de gráficos 3D de las tarjetas de video más nuevas.