<HTML> <HEAD> <TITLE>cgGLSetStateMatrixParameter</TITLE> <STYLE TYPE="text/css" MEDIA=screen> <!-- BODY { font-family: Arial,Helvetica; } BLOCKQUOTE { margin: 10pt; } H1,A { color: #336699; } /*** Top menu style ****/ .mmenuon { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ff6600; font-size: 10pt; } .mmenuoff { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: 10pt; } .cpyright { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: xx-small; } .cpyrightText { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #ffffff; font-size: xx-small; } .sections { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 11pt; } .dsections { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 12pt; } .slink { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #336699; font-size: 9pt; } .slink2 { font-family: Arial,Helvetica; text-decoration: none; color: #336699; } .maintitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 18pt; } .dblArrow { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } .menuSec { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } .newstext { font-family: Arial,Helvetica; font-size: small; } .linkmenu { font-family: Arial,Helvetica; color: #000000; font-weight: bold; text-decoration: none; } P { font-family: Arial,Helvetica; } PRE { font-family: monospace; white-space: pre; font-color: #333333; font-weight: 100; background-color: #eeeeee; padding: 5px; width: 90%; border-style: solid; border-width: 2px; border-color: #bebebe; } .quote { font-family: Times; text-decoration: none; color: #000000; font-size: 9pt; font-style: italic; } .smstd { font-family: Arial,Helvetica; color: #000000; font-size: x-small; } .std { font-family: Arial,Helvetica; color: #000000; } .meerkatTitle { font-family: sans-serif; font-size: x-small; color: black; } .meerkatDescription { font-family: sans-serif; font-size: 10pt; color: black } .meerkatCategory { font-family: sans-serif; font-size: 9pt; font-weight: bold; font-style: italic; color: brown; } .meerkatChannel { font-family: sans-serif; font-size: 9pt; font-style: italic; color: brown; } .meerkatDate { font-family: sans-serif; font-size: xx-small; color: #336699; } .tocTitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 10pt; } .toc-item { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; text-decoration: underline; } .perlVersion { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; text-decoration: none; } .docTitle { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #000000; font-size: 10pt; } .dotDot { font-family: Arial,Helvetica; font-weight: bold; color: #000000; font-size: 9pt; } .docSec { font-family: Arial,Helvetica; font-weight: normal; color: #333333; font-size: 9pt; } .docVersion { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 10pt; } .docSecs-on { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #ff0000; font-size: 10pt; } .docSecs-off { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #333333; font-size: 10pt; } h3 { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: small; } h2 { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: medium; } h1 { font-family: Verdana,Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: large; } DL { font-family: Arial,Helvetica; font-weight: normal; text-decoration: none; color: #333333; font-size: 10pt; } UL > LI > A { font-family: Arial,Helvetica; font-weight: bold; color: #336699; font-size: 10pt; } .moduleInfo { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 11pt; } .moduleInfoSec { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 10pt; } .moduleInfoVal { font-family: Arial,Helvetica; font-weight: normal; text-decoration: underline; color: #000000; font-size: 10pt; } .cpanNavTitle { font-family: Arial,Helvetica; font-weight: bold; color: #ffffff; font-size: 10pt; } .cpanNavLetter { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #333333; font-size: 9pt; } .cpanCat { font-family: Arial,Helvetica; font-weight: bold; text-decoration: none; color: #336699; font-size: 9pt; } --> </STYLE> </HEAD> <BODY> <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"> </object> <BLOCKQUOTE> <H1><A NAME="NAME"><A NAME="1">NAME </A></A></H1> <P> <B>cgGLSetStateMatrixParameter</B> - set the values of a matrix parameter to a matrix in the OpenGL state </P> <H1><A NAME="SYNOPSIS"><A NAME="2">SYNOPSIS </A></A></H1> <PRE> #include <Cg/cgGL.h> void cgGLSetStateMatrixParameter( CGparameter param, CGGLenum matrix, CGGLenum transform ); </PRE> <H1><A NAME="PARAMETERS"><A NAME="3">PARAMETERS </A></A></H1> <DL> <DT><STRONG>param </STRONG></DT> <DD> <P> The matrix parameter that will be set. </P> <DT><STRONG>matrix </STRONG></DT> <DD> <P> An enumerant indicating which matrix should be retrieved from the OpenGL state. Must be one of the following : </P> <UL> <LI> <B>CG_GL_MODELVIEW_MATRIX</B> </LI> <LI> <B>CG_GL_PROJECTION_MATRIX</B> </LI> <LI> <B>CG_GL_TEXTURE_MATRIX</B> </LI> <LI> <B>CG_GL_MODELVIEW_PROJECTION_MATRIX</B> </LI> </UL> <DT><STRONG>transform </STRONG></DT> <DD> <P> An enumerant indicating an optional transformation that may be applied to the matrix before it is set. Must be one of the following : </P> <UL> <LI> <B>CG_GL_MATRIX_IDENTITY</B> </LI> <LI> <B>CG_GL_MATRIX_TRANSPOSE</B> </LI> <LI> <B>CG_GL_MATRIX_INVERSE</B> </LI> <LI> <B>CG_GL_MATRIX_INVERSE_TRANSPOSE</B> </LI> </UL> </DD></DL> <H1><A NAME="RETURN_VALUES"><A NAME="4">RETURN VALUES </A></A></H1> <P> None. </P> <H1><A NAME="DESCRIPTION"><A NAME="5">DESCRIPTION </A></A></H1> <P> <B>cgGLSetStateMatrixParameter</B> sets a matrix parameter to the values retrieved from an OpenGL state matrix. The state matrix to retrieve is indicated by <B>matrix</B>, which may be one of the following : </P> <UL> <LI> <B>CG_GL_MODELVIEW_MATRIX</B> </LI> <P> Get the current modelview matrix. </P> <LI> <B>CG_GL_PROJECTION_MATRIX</B> </LI> <P> Get the current projection matrix. </P> <LI> <B>CG_GL_TEXTURE_MATRIX</B> </LI> <P> Get the current texture matrix. </P> <LI> <B>CG_GL_MODELVIEW_PROJECTION_MATRIX</B> </LI> <P> Get the concatenated modelview and projection matrices. </P> </UL> <P> The <B>transform</B> parameter specifies an optional transformation which will be applied to the retrieved matrix before setting the values in the parameter. <B>transform</B> must be one of the following : </P> <UL> <LI> <B>CG_GL_MATRIX_IDENTITY</B> </LI> <P> Don't apply any transform, leaving the matrix as is. </P> <LI> <B>CG_GL_MATRIX_TRANSPOSE</B> </LI> <P> Transpose the matrix. </P> <LI> <B>CG_GL_MATRIX_INVERSE</B> </LI> <P> Invert the matrix. </P> <LI> <B>CG_GL_MATRIX_INVERSE_TRANSPOSE</B> </LI> <P> Transpose and invert the matrix. </P> </UL> <P> <B>cgGLSetStateMatrixParameter</B> may only be called with a uniform matrix parameter. If the size of the matrix is less than 4x4, the upper left corner of the matrix that fits into the given matrix parameter will be returned. </P> <H1><A NAME="EXAMPLES"><A NAME="6">EXAMPLES </A></A></H1> <P> <I>to-be-written</I> </P> <H1><A NAME="ERRORS"><A NAME="7">ERRORS </A></A></H1> <P> <B>CG_INVALID_PROFILE_ERROR</B> is generated if <B>param</B>'s profile is not a supported OpenGL profile. </P> <P> <B>CG_NOT_MATRIX_PARAM_ERROR</B> is generated if <B>param</B> is not a matrix parameter. </P> <P> <B>CG_INVALID_ENUMERANT_ERROR</B> is generated if either <B>matrix</B> or <B>transform</B> is not one of the allowed enumerant values. </P> <P> <B>CG_INVALID_PARAM_HANDLE_ERROR</B> is generated if <B>param</B> is not a valid parameter. </P> <P> <B>CG_INVALID_PARAMETER_ERROR</B> is generated if the parameter fails to set for any other reason. </P> <H1><A NAME="HISTORY"><A NAME="8">HISTORY </A></A></H1> <P> <B>cgGLSetStateMatrixParameter</B> was introduced in Cg 1.1. </P> <H1><A NAME="SEE_ALSO"><A NAME="9">SEE ALSO </A></A></H1> <P> <A HREF="cgGLSetMatrixParameter.html">cgGLSetMatrixParameter</A>, <A HREF="cgGLGetMatrixParameter.html">cgGLGetMatrixParameter</A> </P> </BLOCKQUOTE> </BODY>