miércoles, 25 de agosto de 2010

News: Otro bug mítico eliminado…

 

News: Otro bug mítico eliminado…

 

El lanzamiento de la versión 0.3.12 se está haciendo esperar.Sin embargo el equipo de desarrolladores no está con los brazos cruzados.

  1. Las razones por las que la versión 0.3.12 se está demorando son varias y las comentaremos proximamente, mientras tanto los desarrolladores de ReactOS continúan eliminando Bugs míticos.

 

 

Los dos Bugs míticos por excelencia eran/son:

  • Timer Bug: Mover el ratón para navegar por Internet en Firefox. RIP

 

  • Contenido mostrado incorrectamente en Firefox 3.6 y superiores.

 

El primero cayó hace unas cuantas semanas de manos de Mjmartin.

El segundo ha sido eliminado este fin de semana.

Firefox 3.6

 

 FF3bug

 

Las versiones posteriores a Firefox  3.6 (inclusive) hacen uso de un nuevo método para renderizar el texto mostrado.

 El método es bastante complejo en el que intervienen distintas librerias.

 

Por un lado está Gfx, por otro Cairo/Thebes y finalmente Pango.

 

El texto es pasado a Cairo en forma de “Glyphs”(dibujos) para de esta manera poder manejar tanto texto “normal” como texto “especial”(hebreo,árabe, chino, indio,etc..).

Pango es la librería encargada de calcular las posiciones de los “Glyphs” en la página, para ello Gfx no utiliza las APIs de Pango de alto nivel, sino las funciones mas complejas y profundas. Pango calcula, pero no renderiza.

Del renderizado final se encarga Gfx.

¿Dónde está el fallo?¿Estamos pasando incorrectamente los “Glyphs” a Cairo?¿Está Pango fallando a la hora de elegir la posición de los “Glyphs”?¿O es GFX la que en el último momento no renderiza bien?

Cuando decimos que Pango, Cairo y GFX están fallando queremos decir que “una (o varias) de las funciones de ReactOS usadas por estas librerías tiene algun Bug que impide el correcto funcionamiento de las mismas.”

 

Bug resuelto

 

FF3repairTras indagar en las funciones, y tras miles de  opiniones/investigaciones vertidas, Timo Kreuzer ha resuelto este bug.

Este Bug también afecta a muchas otras aplicaciones como “SeaMonkey 2.0” o “SongBird” entre otras.

 

 

[WIN32K] / [GDI32]
- GetTextExtentExPointI and GetTextExtentPointI take an array of glyph indices, not characters.

Pass a flag GTEF_INDICES (This is a reactos specific definition and not exactly like on Windows XP, but the real names/values are undocumented and this is the easiest way.) to NtGdiGetTextExtent/NtGdiGetTextExtentExW and handle this flag in TextIntGetTextExtentPoint to account for this.
Fixes bug 3481

 

Por lo visto estábamos pasando a las funciones  GetTextExtentExPointI y GetTextExtentPointI un array de carácteres, cuando deberíamos pasarles un array de “Glyphs”(Sobra decir que no es lo mismo un dibujo que un carácter).

Además NtGdiGetTextExtent/NtGdiGetTextExtentExW no tenían soporte para “Glyphs” por ello se ha creado un “Flag” especial(de esta manera le decimos “Ey, que lo que te estoy pasando es un glyph.Y NO un carácter!")

 

Firefox 4

FF4ReactOS2Firefox 4 BETA, al igual que las versiones anteriores, usa el mismo método de renderizado, por lo que el texto también se mostraba desalineado.

A la izquierda tenéis la Beta de Firefox 4 funcionando en ReactOS tras solucionar el problema de renderizado.

11 comentarios:

  1. Se me antoja que la 0.3.12 va a ser memorable.

    Gracias por la noticia.

    ResponderEliminar
  2. Lo será, pero primero tendremos que resolver los problemas de Memoria.
    La diferencia de usabilidad será notable :)

    ResponderEliminar
  3. Pero la ventaja de solucionar estos bugs es que a la misma vez se solucionan otros :) . Saludos.

    ResponderEliminar
  4. Yo creo , o al menos espero que en la 0.3.12 añadan las partes del branch yarotows mas todas las regresiones resueltas , por que resulta , que sin algunas caracteristicas de yarotows , reactos se queda MUY MUY COJO y cuando digo cojo es ... COJO COJIIIIIIIIIIIIIIIIIIISIMOOOOOOOOOOOOOOO

    ResponderEliminar
  5. La versión 0.3.12 de ReactOS se podrá ejecutar en menos de 64MB Ram. :)
    El problema es que la mayoría de las aplicaciones actuales (Firefox,Opera,OpenOffice...) necesitan más de 64MB de Ram para funcionar.
    ReactOS siempre ha consumido muy pocos recursos y lo seguirá haciendo. :)

    ResponderEliminar
  6. Ciertamente Yarotows posee un par de características muy interesantes, pero no creo que sean tan fundamentales.
    El principal logro de Yarotows es la capacidad de cambiar de resolucion sin necesidad de reiniciar.
    ¿A qué otras características de Yarotows te refieres? :)

    ResponderEliminar
  7. A esa misma principalmente , y a la de los dibs y a que resuelva la información de los colores , dado que como bien se indica en el newsletter 75 reactos no es capaz de mostar bien algunas imagenes y algunos controles , tambien .... si es posible la compatibilidad con drivers .... bueno en fin ... creo que pido demasiado :(
    Y no es por comparar pero la alfa de haiku es mas funcional que la alpha de reactos (aunque no se xq me da que esto esta apunto de cambiar) , si fuera yo me centraria un poco mas en el soporte de drivers.

    ResponderEliminar
  8. Hola:
    Encontre reactos buscando sistemas operativos alternativos.No soy programador y tampoco informatico,pero creo que estan haciendo un gran trabajo y un esfuerzo monumental.

    Les sigo muy a menudo y me intereso por sus avances,y lo que creo es que cada vez estan mas cerca de conseguir su proposito.

    Sigan asi y no se rindan,porque de todo esto puede salir algo muy bueno.Siento admiración y cada vez que entro en su blog,me sorprendo cada vez mas de sus avances.

    Sigan trabajando y no se rindan,porque cada golpe cada fallo,es un obstaculo a superar,y creo que ustedes son personas capaces de superar grandes retos.Un saludo.Les admiro de verdad.

    ResponderEliminar
  9. y porque tarda tanto en salir la version 0.3.12? además he visto que la branch de arwinss ya no se sigue desarrollando...

    ResponderEliminar
  10. Sin animos de joder .... Puede ser xq ya no saben por donde cojer el bicho???

    ResponderEliminar