GDI Floating-Point Services
Kernel-mode graphics drivers must do all floating-point operations between calls to the GDI-supplied EngSaveFloatingPointState and EngRestoreFloatingPointState routines.
If the hardware has a floating-point processor, the driver can do floating-point operations directly. Otherwise, the driver can use the GDI FLOATOBJ services shown in the following table to emulate floating-point operations. Regardless of processor type, the driver should use the FLOATL data type when declaring floating-point values.
Function | Description |
---|---|
Restores the Windows 2000 and later kernel floating-point state after the driver uses any floating-point or MMX hardware instructions. |
|
Saves the current Windows 2000 and later kernel floating-point state. |
|
Adds two FLOATOBJs. |
|
Adds a FLOATOBJ and a FLOATL. |
|
Adds a FLOATOBJ and a LONG. |
|
Divides one FLOATOBJ by another. |
|
Divides a FLOATOBJ by a FLOATL. |
|
Divides a FLOATOBJ by a LONG. |
|
Determines whether two FLOATOBJs are equal. |
|
Determines whether a FLOATOBJ and a LONG are equal. |
|
Calculate and return the FLOAT-equivalent value of a FLOATOBJ. |
|
Calculate and return the LONG-equivalent value of a FLOATOBJ. |
|
Determines whether one FLOATOBJ is larger than another. |
|
Determines whether a FLOATOBJ is larger than a LONG. |
|
Determines whether one FLOATOBJ is less than another. |
|
Determines whether a FLOATOBJ is less than a LONG. |
|
Multiplies two FLOATOBJ values. |
|
Multiplies a FLOATOBJ by a FLOATL. |
|
Multiplies a FLOATOBJ by a LONG. |
|
Changes the sign of a FLOATOBJ. |
|
Sets a FLOATOBJ to a particular FLOATL value. |
|
Sets a FLOATOBJ to a particular LONG value. |
|
Subtracts one FLOATOBJ from another. |
|
Subtracts a FLOATL from a FLOATOBJ. |
|
Subtracts a LONG from a FLOATOBJ. |