2011 Khronos Group
packUnorm 3G
packUnorm pack floating-point values into an unsigned integer

## Declaration

uint `packUnorm2x16` vec2 v uint `packSnorm2x16` vec2 v uint `packUnorm4x8` vec4 v uint `packSnorm4x8` vec4 v

## Parameters

v

  Specifies a vector of values to be packed into an unsigned integer.

## Description

`packUnorm2x16`, `packSnorm2x16`, `packUnorm4x8` and `packSnorm4x8` convert each component of the normalized floating-ponit value v into 8- or 16-bit integer values and then packs the results into a 32-bit unsigned intgeter.

The conversion for component c of v to fixed-point is performed as follows:

- `packUnorm2x16`: `round(clamp(c, 0.0, 1.0) * 65535.0)`
- `packSnorm2x16`: `round(clamp(c, -1.0, 1.0) * 32767.0)`
- `packUnorm4x8`: `round(clamp(c, 0.0, 1.0) * 255.0)`
- `packSnorm4x8`: `round(clamp(c, -1.0, 1.0) * 127.0)`

The first component of the vector will be written to the least significant bits of the output; the last component will be written to the most significant bits.

## Version Support

#VARTABLECOLS#
#FUNCTABLEHEADER#
packUnorm2x16#newin41#
packSnorm2x16#newin42#
packUnorm4x8#newin41#
packSnorm4x8#newin41#

## See Also

unpackUnorm2x16, unpackSnorm2x16, unpackUnorm4x8, unpackSnorm4x8

## Copyright

Copyright 2011 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.