Reglas de conversión de float a XR_BIAS
Esta sección solo se aplica a los sistemas operativos Windows 7 y versiones posteriores.
Las reglas siguientes se aplican para convertir float en XR_BIAS. En estas reglas, supongamos que el valor float inicial es c.
Si c es NaN, el resultado es 0; de lo contrario, se aplican las siguientes reglas. NaN significa "no un número", lo que significa una entidad simbólica que representa un valor que no está disponible en formato de punto flotante.
Realice la siguiente operación para convertir de escala flotante a escala de enteros:
c = c * 510
La operación anterior podría inducir desbordamiento.
Realice la siguiente operación para el sesgo:
c = c + 384
La operación anterior podría inducir desbordamiento.
Realice una de las siguientes operaciones para fijar, dependiendo del exponente de c:
Si, después del sesgo, el exponente de c es mayor o igual que 2 (>= 2 o c es INF), el resultado es 0x3ff, que equivale aproximadamente a 1,2529.
Si, después del sesgo, el exponente de c es menor que 0 (< 0 o c es -INF), el resultado es 0x0, que representa aproximadamente -0,7529.
Vuelva a interpretar los 10 bits más significativos de la mantisa de c como resultado.
La conversión de float a XR_BIAS se permite la tolerancia de 0,6f Unit-Last-Place (ULP) en el lado XR. Esta tolerancia significa que después de convertir de float a XR, cualquier valor dentro de 0,6f ULP de un valor de formato de destino compatible con representa se permite asignar a ese valor. Tenga en cuenta que 1 ULP del resultado infinitomente preciso significa que, por ejemplo, se permite que una implementación trunque los resultados a 32 bits en lugar de realizar el round-to-nearest-even, ya que eso daría como resultado un error de al menos una unidad en el último lugar (menos significativo) representado en el número de punto flotante.
También se aplica el requisito estándar de Direct3D versión 10 para invertir datos.