NAME

gluScaleImage - scale an image to an arbitrary size

C SPECIFICATION

GLint gglluuSSccaalleeIImmaaggee( GLenum _f_o_r_m_a_t,
                     GLsizei _w_I_n,
                     GLsizei _h_I_n,
                     GLenum _t_y_p_e_I_n,
                     const void _*_d_a_t_a_I_n,
                     GLsizei _w_O_u_t,
                     GLsizei _h_O_u_t,
                     GLenum _t_y_p_e_O_u_t,
                     GLvoid* _d_a_t_a_O_u_t )

delim $$

PARAMETERS

_f_o_r_m_a_t
Specifies the of the pixel data. The following symbolic values are valid: GGLL__CCOOLLOORR__IINNDDEEXX, GGLL__SSTTEENNCCIILL__IINNDDEEXX, GGLL__DDEEPPTTHH__CCOOMMPPOONNEENNTT, GGLL__RREEDD, GGLL__GGRREEEENN, GGLL__BBLLUUEE, GGLL__AALLPPHHAA, GGLL__RRGGBB, GGLL__RRGGBBAA, GGLL__BBGGRR, GGLL__BBGGRRAA, GGLL__LLUUMMIINNAANNCCEE, and GGLL__LLUUMMIINNAANNCCEE__AALLPPHHAA.
_w_I_n, _h_I_n
Specify in pixels the width and height, respectively, of the source image.
_t_y_p_e_I_n
Specifies the data type for _d_a_t_a_I_n. Must be one of GGLL__UUNNSSIIGGNNEEDD__BBYYTTEE, GGLL__BBYYTTEE, GGLL__BBIITTMMAAPP, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT, GGLL__SSHHOORRTT, GGLL__UUNNSSIIGGNNEEDD__IINNTT, GGLL__IINNTT, GGLL__FFLLOOAATT, GGLL__UUNNSSIIGGNNEEDD__BBYYTTEE__33__33__22, GGLL__UUNNSSIIGGNNEEDD__BBYYTTEE__22__33__33__RREEVV, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__66__55, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__66__55__RREEVV, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__44__44__44__44, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__44__44__44__44__RREEVV, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__55__55__11, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__11__55__55__55__RREEVV, GGLL__UUNNSSIIGGNNEEDD__IINNTT__88__88__88__88, GGLL__UUNNSSIIGGNNEEDD__IINNTT__88__88__88__88__RREEVV, GGLL__UUNNSSIIGGNNEEDD__IINNTT__1100__1100__1100__22, and GGLL__UUNNSSIIGGNNEEDD__IINNTT__22__1100__1100__1100__RREEVV.
_d_a_t_a_I_n
Specifies a pointer to the source image.
_w_O_u_t, _h_O_u_t
Specify the width and height, respectively, in pixels of the destination image.
_t_y_p_e_O_u_t
Specifies the data type for _d_a_t_a_O_u_t. Must be one of GGLL__UUNNSSIIGGNNEEDD__BBYYTTEE, GGLL__BBYYTTEE, GGLL__BBIITTMMAAPP, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT, GGLL__SSHHOORRTT, GGLL__UUNNSSIIGGNNEEDD__IINNTT, GGLL__IINNTT, GGLL__FFLLOOAATT, GGLL__UUNNSSIIGGNNEEDD__BBYYTTEE__33__33__22, GGLL__UUNNSSIIGGNNEEDD__BBYYTTEE__22__33__33__RREEVV, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__66__55, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__66__55__RREEVV, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__44__44__44__44, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__44__44__44__44__RREEVV, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__55__55__11, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__11__55__55__55__RREEVV, GGLL__UUNNSSIIGGNNEEDD__IINNTT__88__88__88__88, GGLL__UUNNSSIIGGNNEEDD__IINNTT__88__88__88__88__RREEVV, GGLL__UUNNSSIIGGNNEEDD__IINNTT__1100__1100__1100__22, or GGLL__UUNNSSIIGGNNEEDD__IINNTT__22__1100__1100__1100__RREEVV.
_d_a_t_a_O_u_t
Specifies a pointer to the destination image.

DESCRIPTION

gglluuSSccaalleeIImmaaggee scales a pixel image using the appropriate pixel store modes to unpack data from the source image and pack data into the destination image.

When shrinking an image, gglluuSSccaalleeIImmaaggee uses a box filter to sample the source image and create pixels for the destination image. When magnifying an image, the pixels from the source image are linearly interpolated to create the destination image.

A return value of zero indicates success, otherwise a GLU error code is returned (see gglluuEErrrroorrSSttrriinngg).

See the ggllRReeaaddPPiixxeellss reference page for a description of the acceptable values for the _f_o_r_m_a_t, _t_y_p_e_I_n, and _t_y_p_e_O_u_t parameters.

NOTES

Formats GGLL__BBGGRR, and GGLL__BBGGRRAA, and types GGLL__UUNNSSIIGGNNEEDD__BBYYTTEE__33__33__22, GGLL__UUNNSSIIGGNNEEDD__BBYYTTEE__22__33__33__RREEVV, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__66__55, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__66__55__RREEVV, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__44__44__44__44, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__44__44__44__44__RREEVV, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__55__55__11, GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__11__55__55__55__RREEVV, GGLL__UUNNSSIIGGNNEEDD__IINNTT__88__88__88__88, GGLL__UUNNSSIIGGNNEEDD__IINNTT__88__88__88__88__RREEVV, GGLL__UUNNSSIIGGNNEEDD__IINNTT__1100__1100__1100__22, and GGLL__UUNNSSIIGGNNEEDD__IINNTT__22__1100__1100__1100__RREEVV are only available if the GL version is 1.2 or greater.

ERRORS

GGLLUU__IINNVVAALLIIDD__VVAALLUUEE is returned if _w_I_n, _h_I_n, _w_O_u_t, or _h_O_u_t is negative.

GGLLUU__IINNVVAALLIIDD__EENNUUMM is returned if _f_o_r_m_a_t, _t_y_p_e_I_n, or _t_y_p_e_O_u_t is not legal.

GGLLUU__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is returned if _t_y_p_e_I_n or _t_y_p_e_O_u_t is GGLL__UUNNSSIIGGNNEEDD__BBYYTTEE__33__33__22 or GGLL__UUNNSSIIGGNNEEDD__BBYYTTEE__22__33__33__RREEVV and _f_o_r_m_a_t is not GGLL__RRGGBB.

GGLLUU__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is returned if _t_y_p_e_I_n or _t_y_p_e_O_u_t is GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__66__55 or GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__66__55__RREEVV and _f_o_r_m_a_t is not GGLL__RRGGBB.

GGLLUU__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is returned if _t_y_p_e_I_n or _t_y_p_e_O_u_t is GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__44__44__44__44 or GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__44__44__44__44__RREEVV and _f_o_r_m_a_t is neither GGLL__RRGGBBAA nor GGLL__BBGGRRAA.

GGLLUU__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is returned if _t_y_p_e_I_n or _t_y_p_e_O_u_t is GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__55__55__55__11 or GGLL__UUNNSSIIGGNNEEDD__SSHHOORRTT__11__55__55__55__RREEVV and _f_o_r_m_a_t is neither GGLL__RRGGBBAA nor GGLL__BBGGRRAA.

GGLLUU__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is returned if _t_y_p_e_I_n or _t_y_p_e_O_u_t is GGLL__UUNNSSIIGGNNEEDD__IINNTT__88__88__88__88 or GGLL__UUNNSSIIGGNNEEDD__IINNTT__88__88__88__88__RREEVV and _f_o_r_m_a_t is neither GGLL__RRGGBBAA nor GGLL__BBGGRRAA.

GGLLUU__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is returned if _t_y_p_e_I_n or _t_y_p_e_O_u_t is GGLL__UUNNSSIIGGNNEEDD__IINNTT__1100__1100__1100__22 or GGLL__UUNNSSIIGGNNEEDD__IINNTT__22__1100__1100__1100__RREEVV and _f_o_r_m_a_t is neither GGLL__RRGGBBAA nor GGLL__BBGGRRAA.

SEE ALSO

ggllDDrraawwPPiixxeellss((33GG)), ggllRReeaaddPPiixxeellss((33GG)), gglluuBBuuiilldd11DDMMiippmmaappss((33GG)), gglluuBBuuiilldd22DDMMiippmmaappss((33GG)), gglluuBBuuiilldd33DDMMiippmmaappss((33GG)), gglluuEErrrroorrSSttrriinngg((33GG))